Faits:
A.
En tant qu'héritiers de Z._, A._, B._ et C._ sont devenus propriétaires de la parcelle 221 de la commune de ... (Vaud), sur laquelle est édifié un bâtiment comprenant des locaux commerciaux et des habitations. C._ est décédé le 30 janvier 2007 et ses héritiers, A.C._, B.C._ et C.C._ lui ont succédé.
Les propriétaires ont souhaité rénover et transformer le bâtiment.
A cette fin, ils ont pris contact avec le bureau d'architecture R._ SA, qui leur a proposé diverses variantes. Une demande de permis de construire a été déposée le 16 juillet 2001 et le permis a été accordé le 28 mars 2002.
Les propriétaires ont été approchés par S._, qui leur a présenté une carte de visite à l'en-tête de la société X._, et leur a conseillé de consulter cette société. S._ n'était ni organe, ni employé de cette société. Par la suite, des missions d'architecte lui ont été confiées à titre indépendant, pour lesquelles il a été rémunéré.
Suivant les conseils de S._, les propriétaires sont entrés en contact avec la société X._ Sàrl qui a son siège à Genève. Les parties ont conclu, le 21 juin 2002, un contrat, comportant une élection de for en faveur des tribunaux vaudois, par lequel les propriétaires chargeaient la société de fournir les prestations suivantes: le devis général, les appels d'offres et leur analyse, le calendrier de l'exécution, la phase de l'exécution, la phase finale, le décompte et les travaux de garantie. Les parties ont prévu l'application de la norme SIA 102 (édition 1984). La société devait respecter le devis général qui avait été établi et elle devait être rémunérée, selon la norme SIA 102, sur la base d'un montant des travaux de 960'000 fr.
Les propriétaires, qui n'avaient pas de fonds propres disponibles, avaient sollicité un prêt de la banque V._, qui leur a été refusé. Les travaux ont finalement été financés par un prêt de la banque W._, dont le collaborateur a bien compris qu'il était primordial pour les propriétaires que le budget devisé soit tenu.
En cours de chantier, les propriétaires, représentés par B._ (qui est décorateur d'intérieur), se sont plaints de ne pas être correctement informés par X._ Sàrl, que le chantier prenait du retard et qu'il y avait des malfaçons. Des différends sont survenus avec des entrepreneurs qui n'étaient pas payés et avec des locataires de l'immeuble en raison des retards. Après l'achèvement des travaux, des finitions et des corrections de malfaçons ont dû être effectuées. Le budget n'a pas été tenu, de sorte que le crédit de construction accordé par la banque W._, fixé initialement à 1'250'000 fr., a été augmenté successivement à 1'650'000 fr., puis à 1'800'000 fr. en premier rang et 200'000 fr. en deuxième rang.
Un appartement a été aménagé dans les combles, ce qui n'était pas prévu à l'origine.
X._ a envoyé aux propriétaires une note d'honoraires finale, leur réclamant, après déduction des acomptes versés, un solde de 109'488 fr.80.
Par lettre de leur avocat du 5 mars 2009, les propriétaires se sont opposés totalement à cette prétention, ont invoqué la compensation et se sont réservés de réclamer des dommages-intérêts pour cause de mauvaise exécution du mandat.
B.
Par demande du 4 mai 2004 déposée au greffe du Tribunal d'arrondissement de l'Est vaudois, X._ Sàrl a conclu à ce que les propriétaires soient condamnés solidairement à lui payer la somme de 99'999 fr. avec intérêts à 5% l'an dès le 29 février 2004.
Les propriétaires ont conclu au rejet de la demande et ont formé une demande reconventionnelle, réclamant à la société la somme de 499'990 fr. avec intérêts à 5% l'an dès le 6 septembre 2009.
En raison de la modification de la valeur litigieuse, le Tribunal d'arrondissement de l'Est vaudois a transmis la cause à la Cour civile du Tribunal cantonal.
En cours d'instance, une expertise a été confiée à l'architecte T._, qui a rendu un rapport, puis un rapport complémentaire.
Par jugement du 2 octobre 2009, la Cour civile a rejeté les conclusions prises par X._ Sàrl et a condamné cette dernière à payer aux propriétaires la somme de 333'183 fr.40 avec intérêts à 5% l'an dès le 8 septembre 2004.
Saisie par X._ Sàrl, la Chambre des recours du Tribunal cantonal, par arrêt du 21 février 2011, a annulé le jugement attaqué et renvoyé la cause à la Cour civile.
Par jugement du 30 septembre 2011, la Cour civile a derechef rejeté les conclusions prises par X._ Sàrl et a condamné cette dernière à payer aux propriétaires, solidairement entre eux, le montant de 305'650 fr.20 avec intérêts à 5% l'an dès le 8 septembre 2004.
Saisie d'un appel formé par X._ Sàrl, la Cour d'appel civile du Tribunal cantonal vaudois, par arrêt du 27 septembre 2012, a admis partiellement l'appel en ce sens qu'elle a réduit le montant dû par X._ Sàrl à 255'525 fr.90 avec intérêts à 5% l'an dès le 8 septembre 2004, statuant par ailleurs sur les frais et dépens. Bien que le montant à payer ait été réduit d'environ 50'000 fr., la cour cantonale n'a pas modifié le montant des dépens qui avaient été alloués aux propriétaires pour la procédure de première instance, à savoir 54'069 fr.20. En substance, la cour cantonale a retenu que le devis des travaux figurant au contrat avait été dépassé de 561'685 fr. Après avoir déduit les plus-values par rapport aux travaux initialement prévus, elle a réduit ce montant à 356'518 fr.40. Considérant que la société avait mal exécuté son mandat et que les propriétaires n'avaient qu'une utilité subjective réduite de travaux aussi coûteux, elle a mis les deux tiers de cette somme, soit 237'678 fr.90 à la charge de la société. Elle y a ajouté le montant de 31'950 fr. pour des pertes de loyers dues à des retards et des honoraires d'avocat de 5'738 fr.65 pour des activités hors procès rendues nécessaires par la conduite chaotique du chantier. Elle a soustrait de cette somme (la compensation ayant été invoquée) un montant de 19'841 fr.70 à titre d'honoraires réduits pour X._.
C.
X._ Sàrl exerce un recours en matière civile au Tribunal fédéral contre l'arrêt cantonal du 27 septembre 2012. Invoquant une violation du droit d'être entendu, un déni de justice, l'arbitraire, ainsi qu'une violation des art. 310, 106 CPC et 8 CC, elle conclut, sous suite de frais et dépens, à son annulation, à ce que les intimés soient condamnés solidairement à lui payer la somme de 19'841 fr.70 avec intérêts à 5% l'an dès le 29 février 2004, à ce que la demande reconventionnelle soit rejetée et à ce que tous les frais judiciaires de première et deuxième instances cantonales soient mis à la charge des intimés; subsidiairement, elle demande le renvoi de la cause à la cour cantonale pour nouvelle décision.
Les intimés concluent, sous suite de frais et dépens, au rejet du recours dans la mesure où il est recevable.
Les parties ont répliqué et dupliqué.

Considérant en droit:
1.
1.1. Interjeté par une partie qui a succombé dans ses conclusions en paiement ainsi que partiellement dans ses conclusions libératoires et qui a donc qualité pour recourir (<ref-law>), dirigé contre un arrêt final (<ref-law>) rendu en matière civile (<ref-law>) par un tribunal supérieur statuant sur recours en dernière instance cantonale (<ref-law>) dans une affaire pécuniaire dont la valeur litigieuse atteint le seuil de 30'000 fr. (<ref-law>), le recours est recevable, puisqu'il a été déposé dans le délai (art. 46 al. 1 let. c, 45 al. 1, 48 al. 1 et 100 al. 1 LTF) et la forme (<ref-law>) prévus par la loi.
1.2. Le recours peut être interjeté pour violation du droit, tel qu'il est délimité par les art. 95 et 96 LTF. Il peut donc être formé également pour violation d'un droit constitutionnel (<ref-ruling> consid. 2.1 p. 247; <ref-ruling> consid. 2.4 p. 313).
Le Tribunal fédéral applique d'office le droit dont il peut contrôler le respect (<ref-law>). Il n'est donc limité ni par les arguments soulevés dans le recours, ni par la motivation retenue par l'autorité précédente; il peut admettre un recours pour un autre motif que ceux qui ont été invoqués et il peut rejeter un recours en adoptant une argumentation différente de celle de l'autorité précédente (<ref-ruling> consid. 1.3 p. 336; <ref-ruling> consid. 4 p. 317 s.). Compte tenu de l'exigence de motivation contenue à l'art. 42 al. 1 et 2 LTF, sous peine d'irrecevabilité (<ref-law>), le Tribunal fédéral n'examine en principe que les griefs invoqués; il n'est pas tenu de traiter, comme le ferait une autorité de première instance, toutes les questions juridiques qui se posent, lorsque celles-ci ne sont plus discutées devant lui (<ref-ruling> consid. 1.3 p. 584; <ref-ruling> consid. 2.2.1 p. 389; <ref-ruling> consid. 1.4 p. 400).
Par exception à la règle selon laquelle il applique le droit d'office, le Tribunal fédéral ne peut entrer en matière sur la violation d'un droit constitutionnel ou sur une question relevant du droit cantonal ou intercantonal que si le grief a été invoqué et motivé de manière précise par la partie recourante (<ref-law>).
1.3. Le Tribunal fédéral conduit son raisonnement juridique sur la base des faits établis par l'autorité précédente (<ref-law>). Il ne peut s'en écarter que si les faits ont été établis de façon manifestement inexacte - ce qui correspond à la notion d'arbitraire (<ref-ruling> consid. 4.1.2 p. 62; <ref-ruling> consid. 5.1 p. 356) - ou en violation du droit au sens de l'<ref-law> (<ref-law>).
La partie recourante qui entend s'écarter des constatations de l'autorité précédente doit expliquer de manière circonstanciée en quoi les conditions d'une exception prévue par l'<ref-law> seraient réalisées, faute de quoi il n'est pas possible de tenir compte d'un état de fait qui diverge de celui contenu dans la décision attaquée (ATF <ref-ruling> consid. 5.1 p. 356; <ref-ruling> consid. 1.2 p. 187). La partie recourante qui invoque l'arbitraire dans l'appréciation des preuves et l'établissement des faits doit motiver son grief d'une manière qui réponde aux exigences de l'<ref-law> (<ref-ruling> consid. 4.1.2 p. 62). Une rectification de l'état de fait ne peut être demandée que si elle est de nature à influer sur le sort de la cause (<ref-law>). Aucun fait nouveau ni preuve nouvelle ne peut être présenté à moins de résulter de la décision de l'autorité précédente (<ref-law>).
En l'espèce, il n'y a pas lieu de tenir compte de l'état de fait présenté par la recourante, dès lors que celle-ci n'invoque avec précision aucune des exceptions prévues par l'<ref-law>. Dans la mesure où l'argumentation de la recourante s'écarte des constatations cantonales, il n'est possible d'entrer en matière que si, ayant soulevé le grief, elle a soutenu de manière précise que la cour cantonale aurait retenu ou omis un fait de manière arbitraire (<ref-law>; <ref-ruling> consid. 4.1.2 p. 62).
1.4. Le Tribunal fédéral ne peut aller au-delà des conclusions des parties (<ref-law>). Toute conclusion nouvelle est irrecevable (<ref-law>).
S'il admet le recours, le Tribunal fédéral peut statuer lui-même sur le fond comme la cour cantonale aurait pu le faire ou lui renvoyer la cause pour nouvelle décision (<ref-law>).
2.
2.1. Invoquant un déni de justice et une violation du droit d'être entendu (art. 29 al. 1 et 2 Cst.), ainsi qu'une transgression de l'<ref-law>, la recourante reproche à la cour cantonale de ne pas avoir, en tant que juridiction d'appel, revu librement la cause en fait et en droit. Elle se réfère au considérant 2 de l'arrêt attaqué (p. 73), où la cour cantonale a considéré qu'elle ne pouvait revoir les questions de fait qui ont été examinées et tranchées définitivement par la Chambre des recours.
La Cour civile a rendu un premier jugement le 2 octobre 2009 qui a fait l'objet, selon le droit de procédure en vigueur à l'époque, d'un recours auprès de la Chambre des recours du Tribunal cantonal vaudois. Celle-ci a annulé le jugement attaqué et renvoyé la cause à la Cour civile. Dans une telle situation, on admet que l'autorité inférieure à laquelle la cause est renvoyée se trouve liée par les considérants émis par l'autorité supérieure, ce qui découle logiquement de la hiérarchie des juridictions. Ce principe s'applique d'ailleurs également aujourd'hui en cas de renvoi prononcé sur appel ou sur recours (FF 2006 p. 6983; Nicolas Jeandin, Code de procédure civile commenté, 2011, n° 4 ad <ref-law> et n° 5 ad <ref-law>; Karl Spühler, Basler Kommentar, ZPO, n° 3 ad <ref-law>) et il n'y a aucune raison de penser qu'il ne s'appliquait pas également en procédure vaudoise. La Cour civile a rendu un nouveau jugement le 30 septembre 2011. Les voies de recours contre cette décision étaient alors régies par le nouveau droit (<ref-law>). C'est donc à juste titre qu'un appel a été interjeté (<ref-law>).
On admet généralement que lorsqu'un recours est interjeté contre une décision rendue à la suite d'un arrêt de renvoi, l'autorité de recours ne revoit pas les questions qu'elle a elle-même définitivement tranchées dans l'arrêt de renvoi. Ce principe découle de la constatation que la juridiction supérieure n'est pas autorité de recours contre ses propres décisions. Ainsi, dans le nouveau droit, on admet que la juridiction d'appel saisie à nouveau n'a pas à revenir sur les questions qu'elle a déjà tranchées dans l'arrêt de renvoi (Spühler, op. cit., n° 3 ad <ref-law>). Le Tribunal fédéral applique le même principe lorsqu'une cause lui revient alors qu'il a rendu précédemment un arrêt de renvoi (<ref-ruling> consid. 2a p. 423; 443 consid. 3a p. 446).
Certes, en raison de l'entrée en vigueur du CPC, la dénomination de l'autorité supérieure a changé, en ce sens que la Chambre des recours est devenue Cour d'appel. Il n'empêche qu'il s'agit toujours de l'autorité supérieure à la Cour civile. Il est vrai que le pouvoir d'examen a changé, mais la cour cantonale, dans le considérant critiqué, a précisé qu'elle était prête à entrer en matière sur toutes les questions que la Chambre des recours ne pouvait pas examiner. La recourante n'a pu citer aucun cas où une contestation de fait aurait été tranchée par la Chambre des recours en considérant simplement que l'arbitraire n'était pas démontré, avec cette conséquence qu'un libre examen aurait pu peut-être conduire à un résultat différent. On ne voit donc pas, concrètement, que la cour cantonale ait limité son pouvoir d'examen d'une manière contraire à l'<ref-law>. En constatant simplement qu'elle n'est pas une autorité de recours contre les décisions de la Chambre des recours, la Cour d'appel n'a violé aucun principe juridique. On ne saurait dire que la cour cantonale, telle qu'elle s'est exprimée, a perdu de vue que son pouvoir d'examen était plus étendu que celui de la Chambre des recours et qu'elle ait refusé de l'exercer dans la mesure de cette différence.
Si l'on examine les passages de l'arrêt attaqué dont la recourante se plaint, on constate, à la page 74, que la cour cantonale examine en définitive librement le grief par la conjonction " par ailleurs ". Elle procède de la même façon au bas de la page 87, adoptant le raisonnement de la Chambre des recours. L'affirmation de la page 78 in fine est suivie à la page 79 d'une discussion telle que l'on ne voit pas quel point n'aurait pas été réexaminé. Enfin, à la page 81, la cour cantonale a reproché à la recourante d'avoir présenté tardivement une contestation de fait, ce qui est un autre problème.
Ainsi, hormis l'affirmation un peu trop générale figurant au considérant 2 de la page 73, on ne voit pas, concrètement, que la cour cantonale n'ait pas exercé pleinement son pouvoir d'examen, de sorte qu'il n'y a pas eu de déni de justice, de violation du droit d'être entendu ou de transgression de l'<ref-law>.
Il faut au demeurant observer que l'arrêt de renvoi est une décision incidente, de sorte que la recourante conserve la possibilité, si elle y a intérêt, de l'attaquer devant le Tribunal fédéral à l'occasion de son recours dirigé contre la décision finale (<ref-law>).
Les intimés soutiennent que la recourante est forclose à se plaindre d'une violation du droit fédéral pour le motif qu'elle n'a pas recouru au Tribunal fédéral contre le jugement de la Cour civile du 2 octobre 2009. Cette argumentation ne peut pas être suivie. En effet, selon l'<ref-law> en vigueur à l'époque, le délai pour recourir contre cette décision ne courait qu'à partir de la décision de la Chambre des recours. On ne peut donc pas reprocher à la recourante d'avoir attendu la décision de la Chambre des recours. Comme cette dernière a annulé le jugement de la Cour civile, il n'y avait plus d'objet pour un recours au Tribunal fédéral. En conséquence, la recourante n'est nullement forclose et le Tribunal fédéral peut examiner tous les griefs de fait et de droit dans les limites tracées aux considérants 1.2 et 1.3 ci-dessus.
2.2. En invoquant une violation de son droit à la preuve déduit de l'<ref-law>, la recourante reproche à la cour cantonale de ne pas avoir ordonné une contre-expertise.
Il résulte de l'<ref-law> que la partie demanderesse doit prouver les faits qui fondent sa prétention, tandis que sa partie adverse doit prouver les faits qui entraînent l'extinction ou la perte du droit (<ref-ruling> consid. 3.1 p. 323). En l'absence d'une règle spéciale instituant une présomption, l'<ref-law> répartit ainsi le fardeau de la preuve pour tous les litiges fondés sur le droit privé fédéral et détermine, sur cette base, laquelle des parties doit assumer les conséquences de l'échec de la preuve (<ref-ruling> consid. 2.6 p. 24; <ref-ruling> consid. 2a p. 522). Il a été déduit de l'<ref-law> un droit à la preuve et à la contre-preuve, à la condition qu'il s'agisse d'établir un fait pertinent, non encore prouvé, par une mesure probatoire adéquate, laquelle doit avoir été régulièrement offerte selon les règles de la loi de procédure applicable (<ref-ruling> consid. 2.6 p. 24). L'<ref-law> ne prescrit pas quelles sont les mesures probatoires qui doivent être ordonnées, comment le juge doit apprécier les preuves et sur quelles bases il peut parvenir à une conviction (ATF <ref-ruling> consid. 2a p. 522).
En l'espèce, l'autorité cantonale a ordonné une expertise et elle a recueilli un rapport de l'expert et un rapport complémentaire. La recourante aurait souhaité une contre-expertise, qui lui a été refusée pour le motif que l'autorité cantonale s'estimait suffisamment renseignée. Comme on vient de le voir, l'<ref-law> ne prescrit pas quelles sont les mesures probatoires qui doivent être ordonnées et comment le juge peut parvenir à une conviction. Dès lors que l'autorité cantonale s'estimait convaincue par les constatations de l'expert, le refus d'ordonner une contre-expertise ne saurait violer l'<ref-law>.
Savoir si l'expertise est convaincante ou non est une pure question d'appréciation des preuves, que le Tribunal fédéral ne peut revoir que sous l'angle de l'arbitraire. S'agissant d'apprécier des preuves, la décision attaquée n'est arbitraire que si le juge n'a manifestement pas compris le sens et la portée d'un moyen de preuve, s'il a omis, sans raison sérieuse, de tenir compte d'un moyen important propre à modifier la décision attaquée ou encore si, sur la base des éléments recueillis, il a fait une déduction insoutenable (<ref-ruling> consid. 4.2 p. 560; <ref-ruling> consid. 2.1 p. 9).
Comme le relève la recourante, il n'est nullement exclu d'administrer des preuves en appel (<ref-law>). Cependant, une contre-expertise est soumise à des conditions fixées à l'<ref-law>. Le juge peut faire appel à un autre expert si le rapport est lacunaire, peu clair ou insuffisamment motivé. La recourante ne prétend pas que l'expert n'a pas répondu à une question pertinente qui lui était posée. Il n'est donc pas question d'un rapport lacunaire. Savoir si le rapport est peu clair ou insuffisamment motivé est essentiellement une question d'appréciation des preuves que le Tribunal fédéral ne peut revoir que sous l'angle de l'arbitraire.
S'agissant de la dalle, l'expert a constaté que le devis établi par la recourante ne mentionnait qu'une seule dalle et qu'il a été réalisé une dalle de structure identique à l'arrière de la boutique " M._ " et du commerce " N._ ". L'expert en déduit qu'il s'agit de la dalle qui a été devisée. On ne voit pas en quoi il serait arbitraire de suivre cette déduction de l'expert. La recourante le conteste en faisant observer que la dalle figurant dans le devis R._ coûtait beaucoup plus cher. Il ressort cependant des constatations cantonales que la recourante, pour enlever le marché, devait proposer des solutions moins coûteuses que celles du devis R._. Dans ces circonstances, on ne voit pas qu'il soit arbitraire de renoncer à élucider les raisons de cette différence de prix et de se déclarer convaincu par l'analyse de l'expert.
S'agissant des dégâts d'eau, l'expert a constaté qu'il n'avait pas pu déterminer si le dommage avait été couvert par l'assurance. Savoir si un dommage imputable à la recourante a été couvert par un tiers est une question qui touche l'extinction de la dette incombant à la recourante. Or, comme on l'a vu, c'était à elle qu'il incombait de prouver les faits permettant de constater que sa dette était éteinte. La recourante ne prétend pas avoir apporté à l'expert ou au juge la moindre preuve (lettre de l'assurance ou témoignages) pour élucider la question. En l'absence de toute preuve, il n'y a rien d'arbitraire à conclure que la recourante n'a pas prouvé que sa dette était éteinte. Il n'y a pas à ordonner une contre-expertise pour rechercher un fait non technique qu'il incombait à la recourante de prouver.
S'agissant de la marquise, l'expert a constaté que l'entrepreneur avait choisi une formule légère et il est apparu que celle-ci ne permettait pas un usage normal des balcons du 1er étage. L'entrepreneur a affirmé qu'il n'avait reçu aucun plan de la part de la recourante et celle-ci n'est pas parvenue à prouver le contraire. L'expert en a déduit que la recourante avait violé son obligation de contrôler la solution proposée par l'entrepreneur en fonction de ses plans. Même si la recourante tente de faire d'autres hypothèses, on ne voit pas ce qu'il y a d'arbitraire à croire l'expert dans sa déduction sur ce point.
Ainsi, on ne voit pas que le refus de la contre-expertise ait violé l'<ref-law> ou l'<ref-law>.
2.3. Invoquant une méconnaissance de la notion juridique de dommage (art. 42 et 99 al. 3 CO) et subsidiairement l'arbitraire dans l'établissement des faits (art. 9 Cst.), la recourante critique la manière dont les honoraires d'architecte ont été pris en compte.
La cour cantonale a estimé que cette critique, intervenant pour la première fois après trois décisions cantonales, était tardive. Dans leur réponse, les intimés observent que les deux parties avaient jusqu'alors toujours sorti les honoraires d'architecte dans leur calcul du dommage. La recourante ne le conteste pas dans sa réplique. On peut se demander si ce revirement, par rapport au calcul que la recourante avait elle-même proposé, qui tend à faire rebondir le litige, ne peut pas être considéré comme contraire aux règles de la bonne foi (venire contra factum proprium).
Quoi qu'il en soit, l'argumentation présentée ne convainc pas. Elle est d'abord plutôt obscure en ce sens que la recourante s'en prend aux honoraires de S._ (p. 22), puis évoque conjointement les honoraires de ce dernier et les siens propres (p. 23), pour parler ensuite exclusivement des siens (p. 24), puis exclusivement de ceux de S._ (p. 25). D'après ce que l'on comprend, la recourante ne conteste pas que les honoraires d'architecte ont été traités séparément par la cour cantonale. Elle estime cependant que cette méthode est fausse sur la base d'un exemple chiffré qui figure au deuxième alinéa de la page 24 du recours. Cette démonstration n'emporte pas la conviction. Si l'on reprend les chiffres proposés, le coût des travaux, sans les honoraires d'architecte, est devisé à 900'000 fr. Le coût final, toujours sans les honoraires d'architecte, s'élève à 1'160'000 fr. Il en résulte bien que le surcoût assumé par le maître de l'ouvrage est de 260'000 fr. (1'160'000 fr. - 900'000 fr.). Si les honoraires d'architecte sont ensuite réduits, c'est parce que l'architecte n'a pas fourni entièrement ou correctement les prestations auxquelles il s'était engagé, raison pour laquelle il ne peut prétendre au montant qui était prévu. Les prestations fournies n'étant pas celles qui étaient convenues, cette réduction ne constitue en aucune façon un bénéfice pour le maître de l'ouvrage, qui devrait venir en déduction de son dommage par la compensatio damno cum lucri. Ainsi, on ne discerne ni violation du droit fédéral, ni arbitraire dans l'établissement des faits.
2.4. Invoquant les mêmes principes juridiques, la recourante reproche à la cour cantonale de ne pas avoir tenu compte d'une marge de tolérance au moment de déterminer le dépassement du devis.
La recourante s'appuie sur l'arrêt 4A_187/2009 du 14 juillet 2009 (consid. 4.1) pour affirmer que la jurisprudence met l'architecte au bénéfice d'une marge de tolérance de 10%, à défaut d'une convention expresse excluant tout dépassement. Elle souligne qu'un tel accord n'existe pas en l'espèce.
La recourante tire argument de ce précédent en ignorant les principes qui y sont sous-entendus. L'arrêt 4A_187/2009 se réfère expressément à l'arrêt 4C.424/2004 du 15 mars 2005 (consid. 3.2.2 et consid. 3.3) et ne manifeste aucune volonté de changer la jurisprudence qui y est exposée. Dans ce dernier arrêt, la Cour de céans a rappelé que sauf accord expresse des parties, même lorsque le dépassement de devis est inférieur à 10%, l'architecte ne peut, sur la base de la norme SIA 102, se prévaloir de cette marge d'erreur de manière absolue que s'il a correctement renseigné le maître sur celle-ci et sur ses conséquences. Quand bien même les parties sont convenues d'appliquer la norme SIA 102, l'architecte ne doit pas s'attendre à ce que le maître lise son contenu et en comprenne la portée. Si l'architecte s'est abstenu de donner un tel renseignement, il faut déterminer dans le cas d'espèce quelle confiance concrète le maître pouvait accorder à l'estimation des coûts, selon le principe de la confiance. Ainsi, le devoir d'information de l'architecte porte aussi sur le degré de son estimation. S'il estime qu'il aura à compter avec des surcoûts, il doit alors le communiquer au mandant (arrêt 4C.424/2004 déjà cité consid. 3.2.2.2).
La cour cantonale a constaté que la norme SIA 102, à laquelle se réfère le contrat des parties, prévoit certes une marge d'erreur de 10% pour un devis général (art. 4.2.5), mais prescrit aussi que cette marge doit être indiquée dans le devis (art. 4.2.5). En l'espèce, la cour cantonale a retenu, s'agissant de l'obligation de renseigner sur le degré d'imprécision du devis, que la marge n'a pas été indiquée sur ce dernier document et que la recourante n'avait pas attiré l'attention des intimés sur cette marge; il a également été établi que les intimés ne se trouvaient pas dans une situation où ils pouvaient - comme mandants - déterminer par eux-mêmes le degré d'imprécision du pronostic. La recourante ne prétend pas que ces constatations de fait soient arbitraires (cf. <ref-law>).
Cela étant, les intimés pouvaient se fier de bonne foi aux indications données dans le devis et on ne saurait reprocher à la cour cantonale d'avoir nié que la marge de tolérance évoquée découlait de l'application de la norme SIA 102.
L'usage - et non la norme - permet sans doute de dire qu'une certaine marge d'erreur est tolérée en ce sens qu'un léger dépassement ne constitue pas encore de la part de l'architecte une violation de son devoir de diligence. En revanche, lorsque le dépassement est massif et qu'il est dû à un manque de diligence de l'architecte - comme c'est le cas en l'espèce -, la violation du contrat est manifeste. L'architecte qui a violé son devoir de diligence doit alors réparer tout le dommage qu'il a causé, conformément aux principes généraux et sans qu'il y ait lieu de faire une déduction qui n'a pas été convenue.
Ainsi, le raisonnement suivi par la cour cantonale ne viole pas le droit fédéral, ni ne donne lieu à une constatation arbitraire des faits.
2.5. Invoquant l'arbitraire dans l'établissement des faits (art. 9 Cst.), la recourante se plaint de ce que certains postes n'ont pas été retranchés du dommage.
Dire si la notion de dommage a été méconnue est une question de droit, mais savoir s'il y a eu un dommage et quelle en est la quotité est une question de fait (<ref-ruling> consid. 6.2 p. 576; <ref-ruling> consid. 2.4 p. 23).
Sous ce grief, la recourante reprend son argumentation selon laquelle les dalles fournies ne correspondent pas à la dalle devisée. Il a déjà été constaté ci-dessus (cf. consid. 2.2) que la cour cantonale n'est pas tombée dans l'arbitraire en croyant sur ce point l'opinion de l'expert, qui a constaté qu'il y avait une seule dalle devisée et que la dalle fournie était de même nature devant les deux commerces, de sorte qu'il s'agissait pour lui d'une seule et même dalle. Il n'y a pas à y revenir.
La recourante reprend la question des dégâts d'eau qui a déjà été examinée ci-dessus. Elle ne prétend pas avoir prouvé que ce dommage avait été couvert par l'assurance, de sorte que c'est sans arbitraire qu'il a été conclu qu'elle n'avait pas établi avoir éteint sa dette. Dans la mesure où la recourante discute les causes de ces dégâts d'eau, elle ne parvient pas à démontrer, par une argumentation précise, que la cour cantonale aurait retenu ou omis un fait de manière arbitraire (<ref-law>).
En ce qui concerne la marquise, il a déjà été jugé ci-dessus que le problème était né d'une absence de contrôle suffisant de la part de la recourante, qui n'a d'ailleurs pas remis de plans à l'entrepreneur. Dans la mesure où la recourante voudrait introduire d'autres faits, il faut constater qu'elle n'est pas parvenue à établir que la cour cantonale aurait retenu ou écarté un fait de manière arbitraire (<ref-law>).
En ce qui concerne les carrelages, la cour cantonale a constaté que les propriétaires ont commandé un carrelage d'une qualité supérieure à ce qui était prévu, ce qui a été mis à leur charge. En revanche, il a été constaté que les quantités étaient trop importantes et qu'il incombait à la recourante, en vertu du contrat, de donner les indications nécessaires sur les quantités. On ne voit pas en quoi ce raisonnement pourrait être qualifié d'arbitraire. L'idée que les intimés auraient délibérément commandé une quantité trop importante est insoutenable. L'interprétation de la tâche confiée à la recourante ne prête pas le flanc à la critique.
2.6. La responsabilité de l'architecte en cas de mauvaise évaluation du coût des travaux relève en principe des règles du mandat (<ref-ruling> consid. 6.2.2 p. 364 s.). Si, l'architecte ayant violé son devoir de diligence, le maître doit payer une somme plus élevée que celle qui avait été convenue, l'architecte est en principe responsable du dommage causé. Il se peut cependant que la valeur du travail livré corresponde au prix, plus élevé que ce qui avait été convenu, que le maître de l'ouvrage doit en définitif payer. Dans ce cas, la jurisprudence a estimé que la réparation due par l'architecte correspond à la différence entre la valeur objective de la construction et son utilité subjective pour le maître de l'ouvrage (<ref-ruling> consid. 2 p. 62 ss). Suivant cette jurisprudence, la cour cantonale a estimé que l'architecte devait prendre à sa charge les deux tiers du dépassement. On observera que cette clé de répartition est l'inverse de celle retenue dans l'arrêt cité, où les deux tiers avaient été mis à la charge du maître de l'ouvrage (<ref-ruling> consid. 2c p. 63 et 2c/cc p. 65 s.). Comme il s'agit cependant d'une estimation du dommage en vertu de l'<ref-law> (<ref-ruling> consid. 2c/bb p. 65), c'est-à-dire d'une question de fait (<ref-ruling> consid. 5.1 p. 364), le Tribunal fédéral ne pourrait l'examiner que sous l'angle de l'arbitraire (cf. supra consid. 1.3). Comme la recourante n'a pas invoqué l'arbitraire et ne l'a pas démontré au sujet de cette quote-part, le Tribunal fédéral ne peut revoir la question (<ref-law>; <ref-ruling> consid. 4.1.2 p. 62).
Dans ce contexte, la recourante critique l'admission du rapport de causalité, en considérant que les propriétaires, s'ils avaient été correctement informés des coûts réels, auraient de toute manière commandé les travaux.
Il ressort cependant de faits constatés - au sujet desquels l'arbitraire n'est pas invoqué - que les propriétaires, dès l'origine de leur projet, s'inquiétaient de connaître le coût effectif des travaux. Comme ils n'avaient pas de fonds propres, on comprend aisément qu'ils ne souhaitaient pas trop s'endetter par des emprunts bancaires, lesquels entraînaient pour eux une charge d'intérêts, alors qu'ils couraient le risque, en tant que propriétaires, que des locaux demeurent vacants ou qu'il y ait un fléchissement du marché immobilier. Ils ont d'ailleurs retenu l'offre de la recourante plutôt que celle du bureau R._ en raison du coût inférieur des travaux. En admettant dans ces circonstances que les propriétaires n'auraient pas conclu le contrat ou ne l'aurait pas conclu pour le même ouvrage s'ils avaient connu le coût effectif de la construction, on ne saurait dire que la cour cantonale a apprécié les preuves de manière arbitraire quant à la causalité naturelle ou qu'elle a violé le droit s'agissant de la causalité adéquate.
La recourante nie également l'existence d'un dommage, en faisant valoir que le surcoût a été couvert par des emprunts bancaires et que les intérêts supplémentaires qui en découlent ont pu être répercutés sur les locataires. Cette argumentation est impropre à démontrer que la cour cantonale aurait arbitrairement déterminé l'utilité subjective du surcoût. Certes, la valeur supérieure des travaux a eu pour effet d'augmenter la valeur vénale de l'immeuble, ce dont les propriétaires pourraient bénéficier en cas de vente. Cependant, comme le surcoût a été entièrement financé par des emprunts, l'augmentation de valeur en cas de vente instantanée devrait être entièrement consacrée à rembourser le prêt supplémentaire accordé par la banque. Quant au fait que les intérêts supplémentaires ont été répercutés sur les locataires par des hausses de loyers, il faut relever que les bailleurs - qui n'ont ajouté aucun fonds propres - n'ont aucun avantage à une hausse de loyer qui est entièrement destinée à payer des intérêts bancaires. L'argumentation présentée est donc impropre à démontrer que la cour cantonale aurait arbitrairement apprécié l'intérêt subjectif au surcoût.
2.7. La recourante reproche à la cour cantonale d'avoir mis à sa charge des indemnités pour perte locative.
Il a cependant été constaté que les défaillances de la recourante dans la direction des travaux ont causé des retards importants et il a été admis qu'il en était résulté des pertes locatives, dont la recourante devait répondre.
A ces constatations, la recourante oppose des objections de nature appellatoire, sans démontrer qu'un fait aurait été retenu ou omis de manière arbitraire. Invoquant l'<ref-law>, elle voudrait que l'architecte S._, en tant qu'auxiliaire des intimés, soit tenu pour partiellement responsable. Elle ne démontre cependant nullement qu'il était arbitraire de ne pas retenir une responsabilité de S._ dans ces retards.
2.8. Des frais d'avocat hors procès ont été mis à la charge de la demanderesse en considérant que ses manquements avaient provoqué des litiges avec des entrepreneurs et des locataires. Sur ce point également, la critique de l'appelante est purement appellatoire et il n'y a pas lieu d'entrer en matière. Elle ne démontre nullement qu'un fait aurait été retenu ou omis de manière arbitraire. Elle se borne à soutenir, en substance, que les preuves sont insuffisantes.
2.9. Invoquant une violation de l'<ref-law> ou une violation arbitraire (art. 9 Cst.) de l'<ref-law>/VD, la recourante reproche à la cour cantonale de ne pas avoir réexaminé les dépens pour la procédure de première instance, alors même qu'elle lui donnait gain de cause pour environ 50'000 fr.
Devant la Cour d'appel, la valeur litigieuse s'élevait à 325'491 fr.90 (la recourante demandait 19'841 fr.70 et les intimés, en concluant à la confirmation du jugement attaqué, lui réclamaient 305'650 fr.20). En condamnant la recourante à payer 255'525 fr.90 au lieu de 305'650 fr.20, la cour cantonale lui a donné gain de cause pour 50'124 fr.30, ce qui n'est pas négligeable, puisque cela représente 15.4% de la valeur litigieuse.
Dans une pareille situation, la Cour d'appel devait, en vertu de l'<ref-law>, revoir le montant des dépens alloués pour la première instance - comme la recourante le demande devant le Tribunal fédéral -, cette conclusion étant incluse, a maiore minus, dans celle tendant à ce que les dépens soient mis à la charge des parties adverses. En conséquence, la cause doit être renvoyée à la cour cantonale pour statuer à nouveau sur ce point.
3.
La recourante n'obtient gain de cause, sur une question touchant les frais accessoires, que pour un montant minime par rapport à la valeur litigieuse dans son ensemble. Il n'y a donc pas lieu d'en tenir compte au moment de statuer sur les frais et dépens pour la procédure fédérale et il faut considérer que la recourante a succombé.
Il faut ainsi mettre les frais judiciaires et les dépens de la procédure fédérale à la charge de la recourante (art. 66 al. 1 et 68 al. 1 et 2 LTF).

Par ces motifs, le Tribunal fédéral prononce:
1.
Le recours est partiellement admis et l'arrêt attaqué est annulé dans la mesure où il confirme la décision sur les dépens pour la procédure de première instance.
La cause est renvoyée à la cour cantonale pour statuer à nouveau sur cette question.
Le recours est rejeté pour le surplus.
2.
Les frais judiciaires, arrêtés à 6'500 fr., sont mis à la charge de la recourante.
3.
La recourante versera aux intimés, créanciers solidaires, une indemnité de 7'500 fr. à titre de dépens.
4.
Le présent arrêt est communiqué aux parties et au Tribunal cantonal du canton de Vaud, Cour d'appel civile.
Lausanne, le 31 juillet 2013
Au nom de la Ire Cour de droit civil
du Tribunal fédéral suisse
La Présidente: Klett
Le Greffier: Piaget