[{"data":1,"prerenderedAt":997},["ShallowReactive",2],{"blog-\u002Fblog\u002Fpourquoi-un-prompt-ne-suffit-pas-identite-visuelle-coherente":3,"blog-translation-\u002Fblog\u002Fpourquoi-un-prompt-ne-suffit-pas-identite-visuelle-coherente":977},{"id":4,"title":5,"author":6,"body":7,"category":976,"cover":977,"date":978,"description":979,"extension":980,"featured":981,"kind":982,"language":983,"meta":984,"navigation":405,"path":985,"published":405,"readingTime":986,"seo":987,"sitemap":988,"stem":989,"tags":990,"translationKey":977,"__hash__":996},"blog\u002Fblog\u002Fpourquoi-un-prompt-ne-suffit-pas-identite-visuelle-coherente.md","Pourquoi un prompt ne suffit pas à créer une identité visuelle cohérente","Lucas Jahier",{"type":8,"value":9,"toc":950},"minimark",[10,15,24,31,40,44,47,50,53,58,69,72,76,79,82,85,89,94,97,113,116,119,123,126,146,149,152,156,160,219,222,225,229,235,238,242,245,249,253,262,265,268,272,275,278,282,285,288,297,300,304,307,310,313,320,324,330,334,341,459,462,466,476,745,748,752,757,930,933,937,940,943,946],[11,12,14],"h2",{"id":13},"résumé","Résumé",[16,17,18,19,23],"p",{},"Les modèles de diffusion répondent efficacement à de nombreuses instructions\ntextuelles, mais cette capacité ne garantit pas la persistance d'une identité\nvisuelle entre plusieurs générations. Nous étudions ici la différence entre\ndécrire un personnage et l'identifier. Une première expérience compare deux\nprompts, l'un sommaire et l'autre détaillé, sur douze seeds et à paramètres de\ngénération constants. Le prompt détaillé stabilise plusieurs attributs\nsaillants — couleur des cheveux, maquillage, teint et esthétique générale —\nsans stabiliser avec la même efficacité la géométrie du visage. Dans une\npremière lecture exploratoire, aucune des onze variantes de chaque série n'a pu\nêtre classée sans hésitation comme la même personne que l'image prise pour\nancre. Ces résultats suggèrent qu'un prompt peut définir un type visuel\ncohérent sans constituer une mémoire d'identité. Nous présentons le protocole\npermettant de reproduire cette expérience avec ",[20,21,22],"code",{},"mlx-diffusion-lab",", puis les\ncomparaisons encore nécessaires pour évaluer l'apport d'un LoRA et d'une\nréférence visuelle.",[16,25,26,30],{},[27,28,29],"strong",{},"Mots-clés :"," diffusion, identité visuelle, prompting, LoRA,\nreproductibilité, évaluation humaine.",[32,33,34],"blockquote",{},[16,35,36,39],{},[27,37,38],{},"Statut du papier."," L'expérience initiale a été exécutée. Sa lecture\nvisuelle doit encore être confirmée humainement. Les résultats relatifs au\nLoRA, aux références visuelles et à la longueur du prompt ne sont pas encore\nvalidés.",[11,41,43],{"id":42},"_1-introduction","1. Introduction",[16,45,46],{},"Créer une image convaincante est relativement facile. Produire une série\nd'images représentant la même personne, dans des vêtements, des décors, des\nposes et des cadrages différents, est un problème distinct.",[16,48,49],{},"Le premier réflexe consiste souvent à enrichir le prompt. On précise l'âge, la\nforme du visage, la couleur des yeux, la coiffure, le teint, le maquillage et la\nsilhouette. La description finit par ressembler à une fiche d'identité.\nPourtant, lorsque la seed change, le modèle ne restitue pas nécessairement la\nmême personne : il produit une autre personne compatible avec cette fiche.",[16,51,52],{},"Ce décalage motive notre question de recherche :",[32,54,55],{},[16,56,57],{},"Dans quelle mesure l'ajout de caractéristiques physiques à un prompt\nstabilise-t-il l'identité d'un personnage entre plusieurs générations ?",[16,59,60,61,64,65,68],{},"Deux notions doivent être séparées. La ",[27,62,63],{},"cohérence des attributs"," désigne la\nrépétition de propriétés explicitement formulées, comme une couleur de cheveux\nou un maquillage. La ",[27,66,67],{},"cohérence de l'identité"," désigne la conservation des\nrelations propres à un même visage : proportions, mâchoire, menton, nez, yeux\net âge apparent.",[16,70,71],{},"Notre hypothèse est qu'une description détaillée améliore la première sans\nnécessairement garantir la seconde. Autrement dit, le prompt se comporte comme\nune instruction, pas comme une clé d'identité.",[11,73,75],{"id":74},"_2-du-texte-à-lidentité","2. Du texte à l'identité",[16,77,78],{},"Une description comme « femme adulte aux cheveux auburn, au visage ovale et\naux yeux clairs » définit une région dans l'espace des images possibles.\nBeaucoup de visages différents peuvent satisfaire ces critères. Ajouter des\ndétails réduit cette région : le modèle peut devenir plus constant sur les\ncheveux, le maquillage ou la forme générale du visage. Ces attributs ne forment\ncependant pas une représentation biométrique complète.",[16,80,81],{},"La seed ne résout pas ce problème. Elle initialise l'aléa de la génération et\npermet de rejouer une sortie lorsque toutes les autres entrées restent fixes.\nElle ne constitue pas une mémoire du personnage indépendante de la pose, du\ndécor ou du cadrage. Reproductibilité de l'image et stabilité de l'identité\nsont donc deux propriétés différentes.",[16,83,84],{},"Un LoRA propose un autre mécanisme. Au lieu d'énumérer les caractéristiques\ndans le texte, il adapte les poids du modèle à partir d'un ensemble d'exemples.\nIl peut ainsi apprendre des relations entre les traits qui sont difficiles à\nformuler. Cette mémoire apprise peut néanmoins absorber des éléments\nindésirables du dataset, comme une tenue ou un fond récurrent. Son intérêt doit\ndonc être mesuré comme un compromis entre fidélité identitaire et liberté du\nprompt.",[11,86,88],{"id":87},"_3-méthode","3. Méthode",[90,91,93],"h3",{"id":92},"_31-dispositif-expérimental","3.1. Dispositif expérimental",[16,95,96],{},"Notre première expérience comporte deux conditions :",[98,99,100,107],"ul",{},[101,102,103,106],"li",{},[20,104,105],{},"a1",", une description courte précisant le sujet, les cheveux, le cadrage, le\nfond et la lumière ;",[101,108,109,112],{},[20,110,111],{},"a2",", une description détaillée ajoutant la géométrie du visage, les yeux,\nles sourcils, le nez, les lèvres, le teint, le maquillage, les cheveux et la\nsilhouette.",[16,114,115],{},"Chaque condition est générée avec les douze seeds 8001 à 8012, soit 24 images\nau total. Le modèle, l'encodeur, la résolution, le nombre de steps et les autres\nparamètres restent constants. La variable indépendante est le niveau de détail\ndu prompt ; la sortie observée est la variation des attributs et de l'identité\nentre les seeds.",[16,117,118],{},"Le choix de douze seeds vise à exposer la distribution des réponses du modèle.\nUne image isolée permettrait seulement de montrer qu'un résultat satisfaisant\nest possible, pas qu'il est stable.",[90,120,122],{"id":121},"_32-protocole-dévaluation","3.2. Protocole d'évaluation",[16,124,125],{},"Pour chaque condition, l'image produite avec la seed 8001 sert d'ancre. Les onze\nautres images sont classées dans trois catégories :",[98,127,128,134,140],{},[101,129,130,133],{},[27,131,132],{},"même identité"," : les différences restent compatibles avec une autre\nphotographie de la même personne ;",[101,135,136,139],{},[27,137,138],{},"doute"," : plusieurs traits concordent, mais une décision ferme n'est pas\npossible ;",[101,141,142,145],{},[27,143,144],{},"identité différente"," : la géométrie du visage paraît incompatible avec\ncelle de l'ancre.",[16,147,148],{},"L'évaluation porte sur la forme du visage, la mâchoire, le menton, le nez, les\nyeux, les lèvres et l'âge apparent. Les cheveux, le maquillage, le teint, le\ncadrage et le fond sont relevés séparément comme attributs demandés. Cette\nséparation limite le risque de confondre une direction artistique stable avec\nune identité stable.",[16,150,151],{},"La lecture présentée ici est exploratoire, non aveugle et sans mesure d'accord\nentre évaluateurs. Elle doit être considérée comme une étape de formulation des\nhypothèses, non comme une validation humaine définitive.",[11,153,155],{"id":154},"_4-résultats-préliminaires","4. Résultats préliminaires",[90,157,159],{"id":158},"_41-classement-identitaire","4.1. Classement identitaire",[161,162,163,183],"table",{},[164,165,166],"thead",{},[167,168,169,173,177,180],"tr",{},[170,171,172],"th",{},"Description",[170,174,176],{"align":175},"right","Même identité",[170,178,179],{"align":175},"Doute",[170,181,182],{"align":175},"Identité différente",[184,185,186,204],"tbody",{},[167,187,188,195,198,201],{},[189,190,191,192,194],"td",{},"Courte (",[20,193,105],{},")",[189,196,197],{"align":175},"0\u002F11",[189,199,200],{"align":175},"3\u002F11",[189,202,203],{"align":175},"8\u002F11",[167,205,206,211,213,216],{},[189,207,208,209,194],{},"Détaillée (",[20,210,111],{},[189,212,197],{"align":175},[189,214,215],{"align":175},"5\u002F11",[189,217,218],{"align":175},"6\u002F11",[16,220,221],{},"La description détaillée déplace deux résultats de la catégorie « identité\ndifférente » vers la catégorie « doute ». Elle ne produit toutefois aucun cas\nsupplémentaire pouvant être classé sans hésitation comme la même personne que\nl'ancre.",[16,223,224],{},"Compte tenu de la taille de l'échantillon et du caractère exploratoire de la\nnotation, ce tableau décrit la planche observée. Il ne constitue pas une\nestimation généralisable à tous les modèles ou à toutes les formulations.",[90,226,228],{"id":227},"_42-stabilité-des-attributs","4.2. Stabilité des attributs",[16,230,231,232,234],{},"La condition ",[20,233,111],{}," présente une cohérence visuelle nettement plus forte. La\nplupart des images conservent des cheveux bordeaux ondulés, une peau claire, un\nrouge à lèvres sombre, un eye-liner marqué et une esthétique de portrait\nstudio. Le prompt détaillé réduit donc visiblement la dispersion des attributs\nqu'il nomme.",[16,236,237],{},"Cette stabilité crée cependant une illusion possible. Les portraits semblent\nappartenir au même univers et au même casting, alors que la largeur de la\nmâchoire, la forme du menton, le nez, l'espacement des yeux, les lèvres et l'âge\napparent continuent de varier. Les images convergent vers un type visuel, pas\nnécessairement vers une personne unique.",[90,239,241],{"id":240},"_43-effet-possible-sur-le-cadrage","4.3. Effet possible sur le cadrage",[16,243,244],{},"La condition détaillée demande un portrait serré tout en décrivant la\nsilhouette. Ses résultats sont globalement cadrés plus largement que ceux de la\ncondition courte. Cette observation est compatible avec une concurrence entre\ninstructions, mais l'expérience actuelle ne permet pas d'en établir la cause.\nUne comparaison dédiée au cadrage est nécessaire avant d'en faire une\nconclusion.",[11,246,248],{"id":247},"_5-discussion","5. Discussion",[90,250,252],{"id":251},"_51-un-type-cohérent-nest-pas-une-identité-cohérente","5.1. Un type cohérent n'est pas une identité cohérente",[16,254,255,256,258,259,261],{},"Le résultat principal ne réside pas seulement dans la persistance de la dérive.\nIl tient au contraste entre deux niveaux de cohérence. Visuellement, les images\nde ",[20,257,111],{}," paraissent beaucoup plus proches les unes des autres que celles de\n",[20,260,105],{},". Cette proximité provient surtout de signes faciles à reconnaître : même\npalette, même coiffure, même maquillage et même traitement photographique.",[16,263,264],{},"Lorsque l'examen se déplace vers la géométrie du visage, cette impression\ns'affaiblit. Le modèle satisfait les propriétés descriptives tout en\néchantillonnant plusieurs solutions compatibles. Ajouter des adjectifs réduit\nla diversité sans préserver nécessairement les relations précises entre les\ntraits.",[16,266,267],{},"Cette distinction explique pourquoi une série peut sembler cohérente dans une\nplanche d'ambiance tout en échouant lorsqu'un personnage doit être reconnu d'un\nplan à l'autre.",[90,269,271],{"id":270},"_52-ce-que-lexpérience-permet-daffirmer","5.2. Ce que l'expérience permet d'affirmer",[16,273,274],{},"Dans la configuration testée, enrichir la description améliore la stabilité\ndes attributs explicitement nommés. En revanche, cette amélioration ne suffit\npas à obtenir une identité jugée identique à travers les onze changements de\nseed.",[16,276,277],{},"La formulation reste volontairement circonscrite au protocole. L'expérience ne\nprouve pas qu'aucun prompt ne puisse jamais maintenir une identité, ni que tous\nles modèles se comportent de la même manière. Elle montre que, dans ce cas, un\nprompt canonique détaillé n'a pas transformé une description en mémoire stable.",[90,279,281],{"id":280},"_53-conséquence-pour-le-lora","5.3. Conséquence pour le LoRA",[16,283,284],{},"L'étape suivante consiste à exécuter le même sweep avec un profil LoRA. Le\ntémoin et l'expérience doivent partager le même checkpoint, le même encodeur,\nla même quantification, les mêmes prompts et les mêmes seeds. Seule la pile\nd'adaptateurs doit changer.",[16,286,287],{},"Cette comparaison devra répondre à deux questions distinctes :",[289,290,291,294],"ol",{},[101,292,293],{},"davantage de générations représentent-elles clairement la même personne ?",[101,295,296],{},"le modèle conserve-t-il sa capacité à suivre les nouveaux vêtements, poses\net décors ?",[16,298,299],{},"Une meilleure ressemblance accompagnée d'un retour systématique du fond ou de\nla tenue du dataset ne constituerait pas une amélioration sans réserve. Elle\nindiquerait que le LoRA mémorise bien une identité, mais aussi des corrélations\nqui auraient dû rester variables.",[11,301,303],{"id":302},"_6-limites-et-travaux-complémentaires","6. Limites et travaux complémentaires",[16,305,306],{},"La première limite concerne l'évaluation. La catégorie « même personne » reste\nune appréciation perceptuelle. Une revue humaine en aveugle doit confirmer les\nclassements. Une métrique faciale peut compléter cette lecture, mais une\nsimilarité d'embeddings ne constitue pas à elle seule une preuve d'identité.",[16,308,309],{},"La deuxième limite concerne la longueur du prompt. Deux formulations ne\npermettent pas de conclure qu'un prompt toujours plus long se dégrade. Les\nexpériences suivantes ajouteront les mêmes informations par paliers et\nplaceront le bloc identitaire soit au début, soit à la fin. Elles devront\ndistinguer dilution, sensibilité à la position et concurrence entre\ninstructions.",[16,311,312],{},"La troisième limite concerne les autres catégories de contrôle. Vêtements,\nmatières, objets et décors seront évalués séparément, sans exclure les capacités\nconnues pour être plus fragiles : comptage, relations gauche-droite et texte\ndans l'image. Sans ces contrôles négatifs, conclure que « le prompt contrôle\nbien les objets » reviendrait à sélectionner uniquement les exemples faciles.",[16,314,315,316,319],{},"Enfin, une référence visuelle nécessite une expérience distincte. Elle\nn'apporte pas seulement un visage, mais aussi une pose, une lumière, une tenue\net un arrière-plan. Son influence sera étudiée en faisant varier\n",[20,317,318],{},"image_strength"," à référence, prompts et seeds fixes. Cette section ne sera\nprésentée comme un résultat qu'après exécution du protocole.",[11,321,323],{"id":322},"_7-reproduire-lexpérience","7. Reproduire l'expérience",[16,325,326,327,329],{},"Le code d'exécution est fourni par ",[20,328,22],{},". Notre sujet, nos prompts\ncomplets, notre dataset, notre LoRA et nos résultats bruts restent privés. Le\nprotocole suivant permet de reproduire la méthode avec un autre sujet et un\nLoRA compatible.",[90,331,333],{"id":332},"_71-définir-les-deux-profils","7.1. Définir les deux profils",[16,335,336,337,340],{},"Créez ",[20,338,339],{},"my-profiles.toml"," :",[342,343,348],"pre",{"className":344,"code":345,"language":346,"meta":347,"style":347},"language-toml shiki shiki-themes github-dark","[engine.identity-test]\ncheckpoint = \"mlx-community\u002Fflux2-klein-4b-4bit\"\nconfig = \"flux2_klein_4b\"\nguidance = 1.0\nguidance_locked = true\nsteps = { generate = 4, edit = 8, mask = 8 }\nwidth = 768\nheight = 1024\n\n[profile.control-4b]\nengine = \"identity-test\"\nadapters = []\n\n[profile.identity-4b]\nengine = \"identity-test\"\nadapters = [\n  { path = \"my-subject.safetensors\", scale = 1.0 },\n]\n","toml","",[20,349,350,358,364,370,376,382,388,394,400,407,413,419,425,430,436,441,447,453],{"__ignoreMap":347},[351,352,355],"span",{"class":353,"line":354},"line",1,[351,356,357],{},"[engine.identity-test]\n",[351,359,361],{"class":353,"line":360},2,[351,362,363],{},"checkpoint = \"mlx-community\u002Fflux2-klein-4b-4bit\"\n",[351,365,367],{"class":353,"line":366},3,[351,368,369],{},"config = \"flux2_klein_4b\"\n",[351,371,373],{"class":353,"line":372},4,[351,374,375],{},"guidance = 1.0\n",[351,377,379],{"class":353,"line":378},5,[351,380,381],{},"guidance_locked = true\n",[351,383,385],{"class":353,"line":384},6,[351,386,387],{},"steps = { generate = 4, edit = 8, mask = 8 }\n",[351,389,391],{"class":353,"line":390},7,[351,392,393],{},"width = 768\n",[351,395,397],{"class":353,"line":396},8,[351,398,399],{},"height = 1024\n",[351,401,403],{"class":353,"line":402},9,[351,404,406],{"emptyLinePlaceholder":405},true,"\n",[351,408,410],{"class":353,"line":409},10,[351,411,412],{},"[profile.control-4b]\n",[351,414,416],{"class":353,"line":415},11,[351,417,418],{},"engine = \"identity-test\"\n",[351,420,422],{"class":353,"line":421},12,[351,423,424],{},"adapters = []\n",[351,426,428],{"class":353,"line":427},13,[351,429,406],{"emptyLinePlaceholder":405},[351,431,433],{"class":353,"line":432},14,[351,434,435],{},"[profile.identity-4b]\n",[351,437,439],{"class":353,"line":438},15,[351,440,418],{},[351,442,444],{"class":353,"line":443},16,[351,445,446],{},"adapters = [\n",[351,448,450],{"class":353,"line":449},17,[351,451,452],{},"  { path = \"my-subject.safetensors\", scale = 1.0 },\n",[351,454,456],{"class":353,"line":455},18,[351,457,458],{},"]\n",[16,460,461],{},"Si le LoRA exige un encodeur particulier, celui-ci doit être déclaré sur le\nmoteur commun afin que les deux profils l'utilisent. Si un token déclencheur est\nnécessaire, il doit rester présent dans les prompts des deux campagnes.",[90,463,465],{"id":464},"_72-construire-le-sweep","7.2. Construire le sweep",[16,467,336,468,471,472,475],{},[20,469,470],{},"my-identity-sweep.json"," en remplaçant ",[20,473,474],{},"SUBJECT_TOKEN"," et la description\nphysique :",[342,477,481],{"className":478,"code":479,"language":480,"meta":347,"style":347},"language-json shiki shiki-themes github-dark","{\n  \"profile\": \"control-4b\",\n  \"width\": 768,\n  \"height\": 1024,\n  \"steps\": 4,\n  \"guidance\": 1.0,\n  \"seeds\": [42, 137, 777],\n  \"common_prompt\": \"Editorial photograph of SUBJECT_TOKEN, a fictional adult woman aged 35 with a long oval face, high cheekbones, grey-green eyes, straight dark eyebrows, a narrow straight nose, shoulder-length dark auburn hair and natural skin texture.\",\n  \"prompts\": [\n    { \"id\": \"portrait-front\", \"prompt\": \"Head-and-shoulders portrait facing the camera, neutral expression, plain warm-grey background, soft frontal light.\" },\n    { \"id\": \"portrait-three-quarter\", \"prompt\": \"Head-and-shoulders three-quarter portrait, composed expression, plain blue-grey background, soft window light.\" },\n    { \"id\": \"office-full-body\", \"prompt\": \"Full-length view standing in a modern office, navy suit and white shirt, holding a closed document folder.\" },\n    { \"id\": \"street-walking\", \"prompt\": \"Full-length view walking through a city street at blue hour, beige trench coat, natural stride.\" },\n    { \"id\": \"cafe-seated\", \"prompt\": \"Waist-up view seated in a quiet cafe, burgundy sweater, hands resting around a white ceramic cup.\" },\n    { \"id\": \"rooftop-sunset\", \"prompt\": \"Three-quarter view on a rooftop at sunset, white blazer, light wind moving the hair, city skyline behind her.\" }\n  ]\n}\n","json",[20,482,483,489,505,517,529,541,553,578,590,598,624,646,668,690,712,735,740],{"__ignoreMap":347},[351,484,485],{"class":353,"line":354},[351,486,488],{"class":487},"s95oV","{\n",[351,490,491,495,498,502],{"class":353,"line":360},[351,492,494],{"class":493},"sDLfK","  \"profile\"",[351,496,497],{"class":487},": ",[351,499,501],{"class":500},"sU2Wk","\"control-4b\"",[351,503,504],{"class":487},",\n",[351,506,507,510,512,515],{"class":353,"line":366},[351,508,509],{"class":493},"  \"width\"",[351,511,497],{"class":487},[351,513,514],{"class":493},"768",[351,516,504],{"class":487},[351,518,519,522,524,527],{"class":353,"line":372},[351,520,521],{"class":493},"  \"height\"",[351,523,497],{"class":487},[351,525,526],{"class":493},"1024",[351,528,504],{"class":487},[351,530,531,534,536,539],{"class":353,"line":378},[351,532,533],{"class":493},"  \"steps\"",[351,535,497],{"class":487},[351,537,538],{"class":493},"4",[351,540,504],{"class":487},[351,542,543,546,548,551],{"class":353,"line":384},[351,544,545],{"class":493},"  \"guidance\"",[351,547,497],{"class":487},[351,549,550],{"class":493},"1.0",[351,552,504],{"class":487},[351,554,555,558,561,564,567,570,572,575],{"class":353,"line":390},[351,556,557],{"class":493},"  \"seeds\"",[351,559,560],{"class":487},": [",[351,562,563],{"class":493},"42",[351,565,566],{"class":487},", ",[351,568,569],{"class":493},"137",[351,571,566],{"class":487},[351,573,574],{"class":493},"777",[351,576,577],{"class":487},"],\n",[351,579,580,583,585,588],{"class":353,"line":396},[351,581,582],{"class":493},"  \"common_prompt\"",[351,584,497],{"class":487},[351,586,587],{"class":500},"\"Editorial photograph of SUBJECT_TOKEN, a fictional adult woman aged 35 with a long oval face, high cheekbones, grey-green eyes, straight dark eyebrows, a narrow straight nose, shoulder-length dark auburn hair and natural skin texture.\"",[351,589,504],{"class":487},[351,591,592,595],{"class":353,"line":402},[351,593,594],{"class":493},"  \"prompts\"",[351,596,597],{"class":487},": [\n",[351,599,600,603,606,608,611,613,616,618,621],{"class":353,"line":409},[351,601,602],{"class":487},"    { ",[351,604,605],{"class":493},"\"id\"",[351,607,497],{"class":487},[351,609,610],{"class":500},"\"portrait-front\"",[351,612,566],{"class":487},[351,614,615],{"class":493},"\"prompt\"",[351,617,497],{"class":487},[351,619,620],{"class":500},"\"Head-and-shoulders portrait facing the camera, neutral expression, plain warm-grey background, soft frontal light.\"",[351,622,623],{"class":487}," },\n",[351,625,626,628,630,632,635,637,639,641,644],{"class":353,"line":415},[351,627,602],{"class":487},[351,629,605],{"class":493},[351,631,497],{"class":487},[351,633,634],{"class":500},"\"portrait-three-quarter\"",[351,636,566],{"class":487},[351,638,615],{"class":493},[351,640,497],{"class":487},[351,642,643],{"class":500},"\"Head-and-shoulders three-quarter portrait, composed expression, plain blue-grey background, soft window light.\"",[351,645,623],{"class":487},[351,647,648,650,652,654,657,659,661,663,666],{"class":353,"line":421},[351,649,602],{"class":487},[351,651,605],{"class":493},[351,653,497],{"class":487},[351,655,656],{"class":500},"\"office-full-body\"",[351,658,566],{"class":487},[351,660,615],{"class":493},[351,662,497],{"class":487},[351,664,665],{"class":500},"\"Full-length view standing in a modern office, navy suit and white shirt, holding a closed document folder.\"",[351,667,623],{"class":487},[351,669,670,672,674,676,679,681,683,685,688],{"class":353,"line":427},[351,671,602],{"class":487},[351,673,605],{"class":493},[351,675,497],{"class":487},[351,677,678],{"class":500},"\"street-walking\"",[351,680,566],{"class":487},[351,682,615],{"class":493},[351,684,497],{"class":487},[351,686,687],{"class":500},"\"Full-length view walking through a city street at blue hour, beige trench coat, natural stride.\"",[351,689,623],{"class":487},[351,691,692,694,696,698,701,703,705,707,710],{"class":353,"line":432},[351,693,602],{"class":487},[351,695,605],{"class":493},[351,697,497],{"class":487},[351,699,700],{"class":500},"\"cafe-seated\"",[351,702,566],{"class":487},[351,704,615],{"class":493},[351,706,497],{"class":487},[351,708,709],{"class":500},"\"Waist-up view seated in a quiet cafe, burgundy sweater, hands resting around a white ceramic cup.\"",[351,711,623],{"class":487},[351,713,714,716,718,720,723,725,727,729,732],{"class":353,"line":438},[351,715,602],{"class":487},[351,717,605],{"class":493},[351,719,497],{"class":487},[351,721,722],{"class":500},"\"rooftop-sunset\"",[351,724,566],{"class":487},[351,726,615],{"class":493},[351,728,497],{"class":487},[351,730,731],{"class":500},"\"Three-quarter view on a rooftop at sunset, white blazer, light wind moving the hair, city skyline behind her.\"",[351,733,734],{"class":487}," }\n",[351,736,737],{"class":353,"line":443},[351,738,739],{"class":487},"  ]\n",[351,741,742],{"class":353,"line":449},[351,743,744],{"class":487},"}\n",[16,746,747],{},"Trois seeds et six situations produisent dix-huit images par profil. Les scènes\nfont varier cadrage, vêtements, décor et action sans modifier la description\ncommune de l'identité.",[90,749,751],{"id":750},"_73-exécuter-et-examiner","7.3. Exécuter et examiner",[16,753,754,755,340],{},"Depuis le dépôt ",[20,756,22],{},[342,758,762],{"className":759,"code":760,"language":761,"meta":347,"style":347},"language-bash shiki shiki-themes github-dark","uv sync --extra dev --extra mflux\nexport IMAGEGEN_WEIGHTS=\u002Fpath\u002Fto\u002Fweights\n\nuv run imagegen-sweep my-identity-sweep.json \\\n  --catalogue my-profiles.toml \\\n  --profile control-4b \\\n  --runner mflux \\\n  --out runs\u002Fidentity-control\n\nuv run imagegen-sweep my-identity-sweep.json \\\n  --catalogue my-profiles.toml \\\n  --profile identity-4b \\\n  --runner mflux \\\n  --out runs\u002Fidentity-lora\n\nuv run imagegen-sheet runs\u002Fidentity-control\nuv run imagegen-sheet runs\u002Fidentity-lora\n","bash",[20,763,764,784,799,803,819,829,839,849,857,861,873,881,890,898,905,909,920],{"__ignoreMap":347},[351,765,766,770,773,776,779,781],{"class":353,"line":354},[351,767,769],{"class":768},"svObZ","uv",[351,771,772],{"class":500}," sync",[351,774,775],{"class":493}," --extra",[351,777,778],{"class":500}," dev",[351,780,775],{"class":493},[351,782,783],{"class":500}," mflux\n",[351,785,786,790,793,796],{"class":353,"line":360},[351,787,789],{"class":788},"snl16","export",[351,791,792],{"class":487}," IMAGEGEN_WEIGHTS",[351,794,795],{"class":788},"=",[351,797,798],{"class":487},"\u002Fpath\u002Fto\u002Fweights\n",[351,800,801],{"class":353,"line":366},[351,802,406],{"emptyLinePlaceholder":405},[351,804,805,807,810,813,816],{"class":353,"line":372},[351,806,769],{"class":768},[351,808,809],{"class":500}," run",[351,811,812],{"class":500}," imagegen-sweep",[351,814,815],{"class":500}," my-identity-sweep.json",[351,817,818],{"class":493}," \\\n",[351,820,821,824,827],{"class":353,"line":378},[351,822,823],{"class":493},"  --catalogue",[351,825,826],{"class":500}," my-profiles.toml",[351,828,818],{"class":493},[351,830,831,834,837],{"class":353,"line":384},[351,832,833],{"class":493},"  --profile",[351,835,836],{"class":500}," control-4b",[351,838,818],{"class":493},[351,840,841,844,847],{"class":353,"line":390},[351,842,843],{"class":493},"  --runner",[351,845,846],{"class":500}," mflux",[351,848,818],{"class":493},[351,850,851,854],{"class":353,"line":396},[351,852,853],{"class":493},"  --out",[351,855,856],{"class":500}," runs\u002Fidentity-control\n",[351,858,859],{"class":353,"line":402},[351,860,406],{"emptyLinePlaceholder":405},[351,862,863,865,867,869,871],{"class":353,"line":409},[351,864,769],{"class":768},[351,866,809],{"class":500},[351,868,812],{"class":500},[351,870,815],{"class":500},[351,872,818],{"class":493},[351,874,875,877,879],{"class":353,"line":415},[351,876,823],{"class":493},[351,878,826],{"class":500},[351,880,818],{"class":493},[351,882,883,885,888],{"class":353,"line":421},[351,884,833],{"class":493},[351,886,887],{"class":500}," identity-4b",[351,889,818],{"class":493},[351,891,892,894,896],{"class":353,"line":427},[351,893,843],{"class":493},[351,895,846],{"class":500},[351,897,818],{"class":493},[351,899,900,902],{"class":353,"line":432},[351,901,853],{"class":493},[351,903,904],{"class":500}," runs\u002Fidentity-lora\n",[351,906,907],{"class":353,"line":438},[351,908,406],{"emptyLinePlaceholder":405},[351,910,911,913,915,918],{"class":353,"line":443},[351,912,769],{"class":768},[351,914,809],{"class":500},[351,916,917],{"class":500}," imagegen-sheet",[351,919,856],{"class":500},[351,921,922,924,926,928],{"class":353,"line":449},[351,923,769],{"class":768},[351,925,809],{"class":500},[351,927,917],{"class":500},[351,929,904],{"class":500},[16,931,932],{},"Les manifestes et sidecars permettent de contrôler le profil, le modèle, la\nseed, les paramètres et la pile d'adaptateurs de chaque sortie. Les planches\ndoivent être examinées dans leur intégralité et, si possible, sans révéler le\nprofil. Compter les réussites et les échecs est plus informatif que sélectionner\nquelques images convaincantes.",[11,934,936],{"id":935},"_8-conclusion","8. Conclusion",[16,938,939],{},"Notre première expérience met en évidence une frontière simple. Un prompt\ndétaillé peut stabiliser ce qu'il nomme : couleur, coiffure, maquillage, lumière\nou style. Il ne fournit pas nécessairement une représentation suffisamment\nprécise pour préserver la même géométrie faciale lorsque la seed change.",[16,941,942],{},"Le résultat n'est pas que le prompt serait inutile. Il reste l'outil principal\npour piloter les attributs variables d'une image. Mais demander au texte de\nporter seul une identité revient à confondre description et mémoire.",[16,944,945],{},"Le LoRA peut devenir cette mémoire, à condition que son apport soit démontré et\nque son dataset ne l'enferme pas dans un fond, une tenue ou une expression. La\nquestion de l'identité mène ainsi directement à une question de data\nengineering : si les poids doivent apprendre ce qui reste stable, encore faut-il\nleur fournir des données cohérentes, traçables et correctement séparées de ce\nqui doit continuer à varier.",[947,948,949],"style",{},"html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html pre.shiki code .s95oV, html code.shiki .s95oV{--shiki-default:#E1E4E8}html pre.shiki code .sDLfK, html code.shiki .sDLfK{--shiki-default:#79B8FF}html pre.shiki code .sU2Wk, html code.shiki .sU2Wk{--shiki-default:#9ECBFF}html pre.shiki code .svObZ, html code.shiki .svObZ{--shiki-default:#B392F0}html pre.shiki code .snl16, html code.shiki .snl16{--shiki-default:#F97583}",{"title":347,"searchDepth":360,"depth":360,"links":951},[952,953,954,955,959,964,969,970,975],{"id":13,"depth":360,"text":14},{"id":42,"depth":360,"text":43},{"id":74,"depth":360,"text":75},{"id":87,"depth":360,"text":88,"children":956},[957,958],{"id":92,"depth":366,"text":93},{"id":121,"depth":366,"text":122},{"id":154,"depth":360,"text":155,"children":960},[961,962,963],{"id":158,"depth":366,"text":159},{"id":227,"depth":366,"text":228},{"id":240,"depth":366,"text":241},{"id":247,"depth":360,"text":248,"children":965},[966,967,968],{"id":251,"depth":366,"text":252},{"id":270,"depth":366,"text":271},{"id":280,"depth":366,"text":281},{"id":302,"depth":360,"text":303},{"id":322,"depth":360,"text":323,"children":971},[972,973,974],{"id":332,"depth":366,"text":333},{"id":464,"depth":366,"text":465},{"id":750,"depth":366,"text":751},{"id":935,"depth":360,"text":936},"Reliable AI Systems",null,"2026-09-14","Une étude expérimentale des limites du prompting pour maintenir l’identité d’un personnage entre plusieurs générations.","md",false,"research-note","fr",{},"\u002Fblog\u002Fpourquoi-un-prompt-ne-suffit-pas-identite-visuelle-coherente","11 min read",{"title":5,"description":979},{"loc":985},"blog\u002Fpourquoi-un-prompt-ne-suffit-pas-identite-visuelle-coherente",[991,992,993,994,995],"prompt engineering","identity consistency","image generation","LoRA","reproducibility","8cEGXOt3tceE2s3s1jCbEGNfdlalkk1Z-mT8I2lqC4Q",1789345114947]