Faits: A. Le 9 septembre 2010, C._ a été prévenu d'abus de confiance. Le 5 septembre 2012, il avait pris possession d'une montre d'une valeur de plusieurs centaines de milliers de francs, qui avait été confiée à son employeur D._ par le directeur de A._, et l'aurait remise à un inconnu en échange de 780'000 euros, déclarant que la montre avait été volée. Divers objets ont été saisis dans un véhicule appartenant au prévenu, en particulier cinq diamants dont le prévenu affirmait qu'ils lui auraient été remis le 20 août 2010 par l'administrateur de B._. Cette dernière a réclamé, le 18 octobre 2012, la restitution des pierres, ce à quoi s'est opposée la plaignante A._. B. Par décision du 16 juillet 2012, le Ministère public genevois a refusé de lever le séquestre. B._ n'avait pas produit de documents établissant sa propriété sur les pierres, et on ne pouvait exclure qu'il y ait un lien entre leur remise au prévenu et l'infraction d'abus de confiance. Par arrêt du 31 octobre 2012, la Chambre pénale de recours de la Cour de justice genevoise a admis le recours formé par B._ et levé le séquestre. Les diamants avaient été remis avant la disparition de la montre. La propriété de B._ était attestée par une expertise et divers documents. Après deux ans d'enquête, le lien avec l'abus de confiance ne paraissait plus suffisant. C. Par acte du 9 novembre 2012, A._ forme un recours en matière pénale par lequel elle demande l'annulation de l'arrêt cantonal et la confirmation de l'ordonnance de refus de levée du séquestre. Subsidiairement, elle demande le renvoi de la cause à la Cour de justice pour nouvelle décision dans le sens des considérants. La recourante a requis et obtenu, le 3 décembre 2012, l'effet suspensif. La Chambre pénale de recours se réfère à son arrêt. Le Ministère public conclut à l'admission du recours. D._ conclut également à l'admission du recours. B._ conclut à l'irrecevabilité, subsidiairement au rejet du recours. 