Faits : A. Depuis 1972, B._, C._ et D._ louent à A._ un appartement de trois pièces sis dans un immeuble dont ils sont propriétaires. Le contrat se renouvelle tacitement d'année en année. En dernier lieu, le loyer mensuel a été fixé à 793 francs. En cours de bail, la locataire a fait l'objet à différentes reprises de plaintes de voisins, notamment pour des problèmes d'odeurs. Entre le 21 juillet et le 15 septembre 2003, les bailleurs ont mis la locataire en demeure de faire nettoyer son appartement et de le faire traiter contre les cafards, avec menace de résiliation. La locataire, qui n'a d'abord pas été atteinte à cause d'une absence prolongée, n'a pas donné suite à cette injonction, n'en voyant pas l'utilité. Par avis officiel du 10 novembre 2003, les bailleurs ont résilié le bail pour le 31 décembre 2003. Ils se prévalaient de la violation du devoir de diligence (art. 257f CO). B. Le 19 décembre 2003, la locataire a saisi la Commission de conciliation en matière de baux et loyers du canton de Genève en vue de faire constater l'inefficacité de la résiliation, subsidiairement de la faire annuler. Le 16 janvier 2004, les bailleurs ont déposé une requête en évacuation auprès de la même autorité. Suite à une première séance de conciliation du 22 mars 2004, les bailleurs ont mandaté plusieurs entreprises pour procéder à la désinsectisation du logement litigieux et poser un filet anti-pigeons sur le balcon. Lors d'une deuxième audience de conciliation du 10 mai 2004, les parties ont signé la convention suivante: "Mme A._ s'engage, en cas d'absence, à remettre la clé de l'appartement au concierge de l'immeuble et, lorsqu'elle est à Genève, à permettre à l'entreprise de désinsectiser son appartement. Elle s'engage en outre à maintenir la chose louée, y compris le balcon, en bon état et à veiller à ce que le fil anti-pigeons reste en place. Un délai d'épreuve est prévu pour une durée de 9 mois, les parties seront convoquées en février et le congé du 10 novembre 2003 et la requête en évacuation du 16 janvier 2004 seront retirés pour autant que les conditions précitées aient été respectées. A cet effet, Mme A._laissera visiter son appartement à la régie en janvier 2005". Le 1er février 2005, la régie a procédé à une visite des lieux et a constaté que l'appartement était dans un état d'insalubrité total. La nouvelle tentative de conciliation du 3 février 2005 s'étant soldée par un échec, la locataire a porté sa requête devant le Tribunal des baux et loyers du canton de Genève qui, par jugement du 22 mai 2006, a déclaré le congé valable et débouté les parties de toutes autres conclusions. Statuant sur appel de la locataire par arrêt du 2 avril 2007, la Chambre d'appel en matière de baux et loyers du canton de Genève confirmé le jugement attaqué. C. La locataire (la recourante) interjette le présent recours en matière civile au Tribunal fédéral. Elle conclut principalement au constat de l'inefficacité du congé litigieux, subsidiairement à l'annulation de la résiliation, plus subsidiairement à la condamnation des bailleurs à retirer le congé conformément à l'engagement pris le 10 mai 2004, le tout avec suite de dépens. Les bailleurs (les intimés) proposent le rejet du recours, sous suite de dépens.