Faits:
A.
X._ SA est propriétaire d'un groupe de quatre immeubles sis 29, 31, 33 et 35, rue ..., à ..., qui appartenaient précédemment à la SI A._ SA et à la SI B._ SA. Construit au début des années soixante, cet ensemble comprend 96 appartements totalisant 354 pièces.
H.F._ et F.F._ sont locataires d'un appartement de 3 pièces, cuisine et hall non compris, dans l'immeuble sis 35, rue .... Depuis le 1 er octobre 1994, le loyer annuel s'élève à 15'384 fr.; le taux hypothécaire de référence était alors de 5,5% et l'indice suisse des prix à la consommation (ISPC) était fixé à 139.8 points.
En 2007, la SI A._ SA et la SI B._ SA se sont vu accorder une autorisation de construire portant sur la réfection des façades et de la toiture avec isolation extérieure, sur le remplacement des fenêtres et des garde-corps, ainsi que sur la mise en conformité des canalisations. A l'époque, l'enveloppe des bâtiments était vétuste et ne correspondait pas aux exigences en matière d'économie d'énergie et d'isolation phonique et thermique; les vitrages étaient en mauvais état, les volets roulant en bois se trouvaient dans un état de décrépitude avancé et les caissons des stores n'étaient pas isolés; les parapets des balcons étaient attaqués par endroits par la carbonatation, les garde-corps des balcons étaient dans un état pitoyable et pouvaient présenter des débuts de descellement; enfin, la toiture devait être mise aux normes et présentait un risque d'obstruction des évacuations d'eaux pluviales.
Les travaux ont été exécutés en 2008. Ils comprenaient la mise en séparatif des canalisations, le traitement de la carbonatation, les travaux d'étanchéité, d'isolation, de ferblanterie et de ventilation, ainsi que les travaux de menuiserie extérieure, d'isolation thermique et de peinture extérieure (remplacement des fenêtres, des stores, des mains courantes et des garde-corps). Le coût des travaux s'est élevé à 3'792'000 fr.
Par avis officiel du 11 mai 2010 adressé aux époux F._, la SI A._ SA a fixé le loyer annuel à 15'384 fr. dès le 1 er octobre 2010 et à 17'808 fr. dès le 1er mai 2012; il était mentionné que le loyer était bloqué, selon la LDTR, jusqu'au 30 avril 2012; l'augmentation de 202 fr. par mois était motivée par des prestations supplémentaires (travaux à plus-value) au sens des <ref-law> et 14 OBLF. Dans la lettre recommandée accompagnant l'avis de majoration, il était précisé que "le calcul de répercussion sur [le] loyer des travaux à plus-value permet[tait] une augmentation de 537 fr.70 par pièce."
B.
H.F._ et F.F._ ont contesté la hausse de loyer devant la Commission de conciliation en matière de baux et loyers. La tentative de conciliation a échoué.
X._ SA, devenue entre-temps la bailleresse, a porté l'affaire devant le Tribunal des baux et loyers du canton de Genève. Elle concluait à ce que le loyer annuel soit fixé à 17'119 fr.80 depuis le 1 er mai 2012, ce qui correspondait à une hausse mensuelle de 144 fr.65, obtenue selon le calcul suivant:
- Coûts liés à l'investissement à plus-value pouvant
être répercutés sur les loyers de l'immeuble entier 109'494 fr.
- Hausse annuelle admissible par pièce
(109'494 fr. : 180) 608 fr.30
- Hausse admissible par mois appartement
F._ ([4,5 x 608 fr.30] : 12) 228 fr.10
- Réduction par mois liée à la baisse du taux
hypothécaire compensée partiellement par
la hausse de l'ISPC - 83 fr.45
Prétention en augmentation du loyer mensuel 144 fr.65
Par jugement du 20 juin 2011, le Tribunal des baux et loyers a débouté la bailleresse de ses conclusions. Il a fixé à 88'638 fr. le montant pouvant être répercuté annuellement sur les loyers de tout l'immeuble. Il a ensuite rapporté ce montant à l'état locatif avant travaux, qui s'élevait à 592'246 fr., pour aboutir à une hausse de loyer de 14,99% en raison des travaux à plus-value. Par ailleurs, la diminution du taux hypothécaire de référence depuis la dernière fixation de loyer justifiait une réduction du loyer de 22,48%, compensée à raison de 6,4% par la hausse de l'ISPC. La baisse de loyer de 16,08% étant supérieure à la hausse liée aux travaux à plus-value, la prétention en augmentation de loyer de la bailleresse n'était pas fondée.
La bailleresse a interjeté appel. Elle concluait désormais à la fixation du loyer annuel à 15'384 fr. depuis le 1er mai 2012, les nouveaux critères du loyer étant un taux hypothécaire de 3% et l'ISPC de 114.9 avec une réserve de baisse de loyer de 220 fr.40. Elle critiquait uniquement la clé adoptée par les premiers juges pour répartir le coût des travaux à plus-value entre les locataires de l'immeuble. Elle admettait toutefois que la hausse de loyer due aux travaux à plus-value, même selon son calcul, était inférieure à la baisse de loyer liée à la diminution du taux hypothécaire. Statuant le 5 novembre 2012, la Chambre des baux et loyers de la Cour de justice du canton de Genève a confirmé le jugement querellé. En substance, elle a jugé que le Tribunal des baux et loyers n'avait pas outrepassé son large pouvoir d'appréciation en choisissant de répartir les coûts entre locataires au prorata des loyers - système usuel et admis à plusieurs reprises par le Tribunal fédéral -, plutôt que d'appliquer la clé de répartition en fonction du nombre de pièces, préconisée par la bailleresse.
Devant le Tribunal des baux et loyers et la Chambre des baux et loyers, les époux F._ étaient représentés par l'ASLOCA qui, notamment en appel, agissait sous la signature de François Zutter.
C.
X._ SA interjette un recours en matière civile et un recours constitutionnel subsidiaire. Dans les deux recours, elle prend les conclusions principales suivantes:
" I. La hausse de loyer du 11 mai 2010 n'est pas abusive.
II. Le loyer annuel est fixé à 15'584 fr. (...) depuis le 1 er octobre 2012.
III. Les nouveaux critères du loyer sont un taux hypothécaire à 3% et un IPC à 115.4 (base mai 1993) avec une réserve de baisse de loyer de 220 fr.40. "
A titre subsidiaire, la recourante demande le renvoi de la cause à la cour cantonale pour nouvelle décision.
H.F._ et F.F._, assistés par François Zutter agissant dorénavant en qualité d'avocat, proposent le rejet des deux recours.
La réponse a été suivie d'une ultime prise de position de la recourante.

Considérant en droit:
1.
Le Tribunal fédéral contrôle d'office et librement la recevabilité des recours qui lui sont soumis (<ref-ruling> consid. 1 p. 476; <ref-ruling> consid. 1, 471 consid. 1 p. 475).
1.1. Aux termes de l'<ref-law>, applicable également au recours constitutionnel (<ref-law>), toute conclusion nouvelle est irrecevable.
La recourante demande au Tribunal fédéral à la fois de déclarer que la hausse du 11 mai 2010 - portant le loyer annuel à 15'384 fr., puis à 17'808 fr. - n'est pas abusive et de fixer le loyer annuel à 15'584 fr. Indépendamment du fait que ces deux chefs de conclusions ne sont guère compatibles, il convient de constater que la première conclusion, qui n'a pas été formulée en appel, est nouvelle et qu'elle est dès lors irrecevable.
Tel est également le cas de la deuxième conclusion en tant qu'elle porte sur un montant supérieur à 15'384 fr. Si, dans son mémoire d'appel, elle concluait effectivement à la fixation d'un loyer annuel de 15'584 fr., la recourante a, dans un courrier ultérieur adressé à la Cour de justice, précisé que ce montant résultait d'une "erreur de plume" et que le loyer annuel restant à fixer s'élevait bien à 15'384 fr., montant qui correspondait au loyer en vigueur; en effet, dans son appel, elle admettait que la hausse de loyer due aux travaux à plus-value, même selon ses calculs, était inférieure à la baisse de loyer liée à la diminution du taux hypothécaire. Il s'ensuit qu'en réclamant à nouveau, devant le Tribunal fédéral, la fixation d'un loyer annuel de 15'584 fr., la recourante formule une conclusion partiellement nouvelle.
1.2. En tant qu'ils tendent à la fixation d'un loyer annuel de 15'384 fr., les recours se révèlent irrecevables pour le motif suivant.
Selon l'<ref-law>, l'auteur d'un recours en matière civile doit avoir un intérêt digne de protection à l'annulation de la décision attaquée. L'intérêt digne de protection consiste dans l'utilité pratique que l'admission du recours apporterait à son auteur, en lui évitant de subir un préjudice de nature économique, idéale, matérielle ou autre que la décision attaquée lui occasionnerait (<ref-ruling> consid. 2.3 p. 43). Aux termes de l'<ref-law>, la qualité pour former un recours constitutionnel subsidiaire suppose pour sa part un intérêt juridique à l'annulation ou à la modification de la décision attaquée; il faut donc que le recourant soit atteint par l'acte attaqué dans ses intérêts propres et juridiquement protégés (<ref-ruling> consid. 3 p. 190 s.).
En l'espèce, le loyer annuel de 15'384 fr. correspond au loyer payé par les locataires depuis le 1er octobre 1994. Comme la recourante admet elle-même qu'elle ne peut prétendre à une augmentation du loyer, on ne voit pas quel intérêt digne de protection ou juridiquement protégé elle pourrait faire valoir pour obtenir la modification de l'arrêt cantonal confirmant le rejet de ses conclusions en "hausse" de loyer.
1.3. Quant à la conclusion III des recours, elle est dépourvue de toute motivation et, par conséquent, irrecevable sur la base de l'art. 42 al. 1 et 2 LTF.
2.
Sur le vu de ce qui précède, les recours sont entièrement irrecevables.
La recourante, qui succombe, prendra les frais judiciaires à sa charge (<ref-law>).
En revanche, elle n'aura pas à verser de dépens aux intimés, qui ne sont pas valablement représentés. En effet, ces derniers étaient défendus devant les instances cantonales par l'ASLOCA, pour laquelle François Zutter a agi en partie, et ils sont représentés devant le Tribunal fédéral par le même François Zutter, en qualité d'avocat. Or, la cour de céans a jugé récemment que, dans une telle constellation, l'avocat ne satisfaisait pas à l'exigence légale d'indépendance et que la partie n'était donc pas valablement représentée (arrêt 4A_38/2013 du 12 avril 2013 consid. 1 destiné à la publication).

Par ces motifs, le Tribunal fédéral prononce:
1.
Les recours sont irrecevables.
2.
Les frais judiciaires, arrêtés à 1'000 fr., sont mis à la charge de la recourante.
3.
Il n'est pas alloué de dépens.
4.
Le présent arrêt est communiqué au mandataire de la recourante, aux intimés et à la Chambre des baux et loyers de la Cour de justice du canton de Genève, ainsi que, pour information, à Me François Zutter.
Lausanne, le 21 mai 2013
Au nom de la Ire Cour de droit civil
du Tribunal fédéral suisse
La Présidente: Klett
La Greffière: Godat Zimmermann