Direction par IA et qualité

De la source à la scène : pourquoi une visual novel générée a besoin d’une direction

Générer deux belles images est facile. La difficulté commence au-delà de dix, lorsqu’elles doivent conserver le même personnage, le même lieu, le même objet et la continuité du récit. Envoyer des paragraphes isolés à un générateur produit une galerie, pas une visual novel cohérente.

Lors d’une adaptation littéraire, j’ai vu des personnages changer d’échelle, flotter, modifier un lieu entre deux plans, relancer la musique et déplacer un anneau important d’une main ou d’un doigt à l’autre. J’ai donc transformé la génération en pipeline avec analyste du texte, artiste, compositeur, agent MCP, validation technique et direction par IA.

![Pipeline Romergo de la source à la structure, aux bibles de continuité, aux assets, à l’assemblage MCP et au contrôle de direction](direction-flow)

1. La source reste l’autorité

L’entrée peut être du texte, du HTML, du Markdown ou un PDF textuel. Je fixe d’abord langue, édition, ordre des chapitres et droits du texte, de la traduction et des images. romergo_inspect_story_source et romergo_plan_story_source préparent l’inventaire sans écrire le projet. Une source linéaire ne doit pas recevoir de branches inventées.

Le texte est découpé lors d’un changement réel de lieu, de temps, de participants ou d’action. Chaque scène conserve son sourceExcerpt et un contrat visuel : présence, parole, écoute, action, regard, support physique, visages à garder dans le cadrage mobile et repères de continuité.

2. Les personnages, lieux et objets ont une mémoire

Un auditeur indépendant relit chaque extrait et extrait les objets manipulés. Chaque accessoire reçoit une description canonique, des traits invariants, un détenteur, un état, une visibilité et un nombre d’exemplaires. Un anneau en or doit rester exactement le même avant, pendant et après sa transmission.

Des documents temporaires reliés par ID et hash forment le graphe de production : carte des scènes, bibles des personnages et lieux, registre des accessoires, manifeste des assets, tâches de génération et rapports d’audit. Ils ne remplacent pas l’œuvre ; ils empêchent les décisions de disparaître entre agents.

3. Deux modes de composition

baked_narrative intègre les personnages au décor pour une scène narrative sans dialogue. Sol, lit, pierre ou chaise appartiennent alors à une image cohérente. layered_dialogue garde décor et sprites séparés afin d’alterner les poses de parole et d’écoute avec le bon nom et le bon portrait. Un hybride est possible, mais doit être explicite.

La génération part de l’extrait exact, de la bible du lieu et de l’état actuel des accessoires. Le contrôle des fichiers cherche anatomie cassée, halo de transparence, silhouette coupée, texte accidentel et végétation répétitive. Un PNG isolé ne suffit pourtant pas à juger la mise en scène finale.

4. MCP assemble un projet éditable

Les assets approuvés entrent dans un brouillon. Les outils MCP créent chapitres, scènes, texte, transitions, timeline, musique et placement. L’agent relit ensuite l’état avec romergo_get_chapter, lance romergo_validate_project et termine par romergo_verify_quest_change. Le succès d’un appel ne remplace pas la vérification de l’état persisté et du runtime.

5. Le directeur lit le texte et regarde le Player

La revue finale joue tout le chapitre sur desktop et en 390 × 844. Des captures à 0, 100 et 500 ms révèlent écran noir, fond blanc ou ancien sprite pendant une transition. Chaque capture arrive avec l’extrait exact, le contrat visuel, les scènes voisines et l’historique des accessoires.

Si le décor est juste mais qu’un sprite flotte, il faut recompose via MCP : position, échelle, couche ou recadrage. Si la mauvaise pose est déjà fusionnée dans le décor, il faut regenerate. Le nouveau rendu repasse ensuite le contrôle.

Erreur 1. Le héros s’est assis sur l’héroïne

Sur mobile, la couche de Gray a recouvert Assol endormie. « Les deux personnages sont visibles » était vrai mais inutile. Chaque viewport doit vérifier support, profondeur et intersection des corps.

![Capture mobile où Gray recouvre Assol endormie](direction-failure-overlap)

Erreur 2. Un anneau est devenu plusieurs

Chercher seulement un objet doré a permis à l’anneau de changer de main ou de doigt et de se multiplier. Le contrat exige désormais exactement un exemplaire, une main et un doigt précis, avec les états avant, pendant et après le transfert.

![Neuf recadrages où l’anneau manque le doigt, flotte à côté ou se retrouve sur le mauvais doigt](direction-failure-ring)

Erreur 3. Ils regardaient la fenêtre malgré le texte

Le plan de la taverne était séduisant, mais le texte disait que les hommes tournaient le dos à la fenêtre. Cette orientation était intégrée à l’image : ce n’était pas un problème de placement, elle devait être régénérée.

![Scène de taverne où les personnages regardent la fenêtre contre l’instruction du texte](direction-failure-window)

D’images séparées à une direction reproductible

Les premiers tests ne vérifiaient que fichier, alpha, limites et graphe. La fiabilité est apparue lorsque les exigences ont été extraites du texte exact, que Player est devenu la surface de contrôle, que l’audit a reçu les scènes voisines et l’histoire des objets, et que chaque échec a dû choisir une réparation puis repasser un contrôle indépendant.

Tout cela reste loin d’une génération entièrement automatique. La culture visuelle, l’expérience et la sensibilité humaines demeurent le principal critère de réussite ; je ne pense pas pouvoir affirmer bientôt que la génération est autonome.

Le pipeline actuel me fait déjà gagner de nombreuses heures et j’espère qu’il en fera gagner à d’autres créateurs. Gardons notre temps pour créer et confions la routine technique complexe aux scripts et à l’IA. Texte, HTML ou PDF devient ainsi une œuvre cohérente, pas seulement une collection d’images.

Retour au blog technique