Verrouillage de style FilmForge
Un film composé de générations séparées ne ressemble à un seul film que si chaque image est réalisée de la même manière : un modèle, un paramètre, une phrase de look recopiée textuellement, la fiche de chaque personnage attachée à chaque prompt, et un ordre fixe pour tout le reste. Cette compétence écrit style-lock.yaml, les fiches personnages et la section personnage de continuity.yaml, puis prouve le verrouillage avec 2 à 4 épreuves avant que la phase de peinture ne puisse dépenser.
Chemins : scripts/, templates/ et config/ ci-dessous sont des dossiers situés dans cette compétence (le répertoire de base affiché lors de son chargement), placés par ./install.sh. En travaillant depuis un clone du dépôt, il s'agit de tools/, templates/ et config/ à sa racine.
Étape 1. Un modèle, un paramètre
Choisissez une fois et ne mélangez jamais à l'intérieur d'un film. Le réglage par défaut pour les films peints : GPT Image 2.5, haute qualité, 2K, 16:9 (2,75 crédits par peinture), suréchantillonné en 4K dans le code. Un livre illustré peut utiliser une qualité moyenne (environ 1 crédit) car les pages sont vues plus petites et fixes. Enregistrez-le sous model: avec le model_id de la table des prix.
Si le look n'est pas décidé, peignez la même épreuve avec deux ou trois looks candidats (peu coûteux) et choisissez à l'œil à 100 %. Ne verrouillez pas sur une vignette.
Étape 2. La phrase de look
Une phrase, ouvrant chaque prompt textuellement. Elle nomme le médium, le trait, la couleur, la texture et la lumière, et pointe vers les références : "exactement dans le style des fiches jointes". Looks travaillés issus de films réels (plus dans references/looks.md) :
Une image d'un film d'animation 2D dessiné à la main, exactement dans le style propre des images jointes : traits d'encre assurés, hachures uniquement dans les ombres, couleurs plates en cel, visages expressifs d'anime. Pas de texture picturale, pas de bruit.
C'est le verrou de Simorgh. Le livre illustré de Buried Soul en utilisait deux, car son dessin portait l'histoire : un look VIVANT (contours à l'encre et au pinceau comme Cartoon Saloon avec des traits de crayon visibles, formes graphiques plates, aquarelle et gouache en couches, entrelacs celtiques, lignes de chant dorées lumineuses) et un look GELÉ (le même style réglé avec une règle : traits droits de gravure sur bois, hachures grises, perspective médiévale plate, ardoise, cendre et os ; seules les filles gardent leurs couleurs). Utilisez un second look uniquement lorsque le changement de dessin fait partie de l'histoire.
Étape 3. La queue d'évitement
Une ligne, fermant chaque prompt textuellement : ce vers quoi le modèle dérive. La queue standard : Avoid: 3D render, photorealism, text, watermark, extra fingers, distorted faces. Ajoutez uniquement ce vers quoi ce look dérive (anime, plastique, CGI, un mauvais médium). Les négations qui appartiennent à un plan spécifique vont dans l'emplacement LOCKS de ce plan.
Étape 4. Palette et règles de couleur
Nommez les nuances dans palette: et le script de couleurs par scène dans continuity.yaml (colour.script). Transformez chaque règle de couleur de l'histoire en une règle forbid avec une clause de prompt : la clause va dans chaque prompt couvert par la règle, et ledger.py palette mesure chaque peinture par rapport à celle-ci. Exemple : le ciel brûlant de Simorgh n'autorisait aucun bleu jusqu'au plan 41 ; chaque prompt avant portait "Absolument pas de bleu".
Étape 5. Langage d'objectif et de composition
Pour un film peint : les peintures tiennent comme des images de film, donc la composition fait le travail de la caméra. Écrivez la sensation d'objectif (focale, hauteur), ce qui n'arrive jamais (pas de fisheye, pas de tilt), et les règles de composition (sujets sur les tiers, une zone calme pour le texte quand un plan en comporte).
Étape 6. Fiches personnages (templates/character-sheet.md)
Une fiche par personnage, attachée à chaque prompt où ce personnage apparaît.
- Panneaux de face (devant, dos, visage), lumière plate sans ombre sur un fond gris moyen uni, pour qu'aucun éclairage ne s'incruste. Études du visage et des mains pour les personnages stylisés ; expressions : neutre, l'émotion clé, son opposé.
- Une barre d'échelle : le personnage dessiné à côté de chaque autre personnage ou accessoire avec lequel il partage des plans, à la taille relative réelle. C'est la leçon d'une huppe dessinée trop petite dans cinq plans de Simorgh : l'échelle doit vivre sur la fiche et dans le registre, jamais dans l'espoir.
- Les personnages non humains reçoivent une fiche de matière : ce dont ils sont faits, une liste de mauvaises matières ("braises, pas fourrure, pas verre"), comment ils se déplacent.
- Chaque prompt de plan porte une clause de rééclairage : "rééclairer pour cette scène ; ne pas copier la lumière plate de la fiche".
Étape 7. Poignées, ancres, verrous d'échelle
Pour chaque personnage, écrivez dans continuity.yaml : une poignée (le nom visuel utilisé par chaque prompt : "la fille au capuchon rouge tricoté"), une ancre (le look complet en une phrase, recopiée textuellement), un verrou d'échelle (un rapport à quelque chose toujours proche), et ajoutez le nom du personnage à names:. Les noms ne vont jamais dans les prompts : un modèle peut peindre un nom comme texte, et un nom ne porte aucune information visuelle.
Étape 8. La grammaire de prompt (chaque peinture, cet ordre)
| # | Emplacement | Ce qui va dedans |
|---|---|---|
| 1 | LOOK | la phrase de look, textuellement |
| 2 | REFERENCES | ce que chaque pièce jointe gouverne, dans l'ordre d'attachement ; la clause de rééclairage |
| 3 | SHOT | cadrage, hauteur de caméra, sensation d'objectif, qui se trouve sur quel tiers |
| 4 | SUBJECT AND SCALE | la poignée, l'ancre et le verrou d'échelle de chaque personnage ; tailles en rapports ; nombres ("exactement un hibou") |
| 5 | MOMENT | l'instant unique du temps ; émotion montrée dans le visage et le corps |
| 6 | SETTING | lieu, météo, heure de la journée, ce qui est en arrière-plan |
| 7 | LIGHT | direction, qualité, température, et sa source dans le monde |
| 8 | COLOUR | les mots du script de couleurs de la scène |
| 9 | TEXT AREA | "garder le tiers supérieur calme : ciel pâle pour le texte" (seulement quand des mots y vont) |
| 10 | CONTINUITY | accessoires et états, textuellement depuis le registre |
| 11 | LOCKS | clauses de couleurs interdites, textuellement ; négations spécifiques au plan |
| 12 | AVOID | la queue d'évitement, textuellement |
ledger.py prompts vérifie mécaniquement les emplacements 1, 4, 10, 11 et 12 avant que tout crédit ne soit dépensé. Détails et un exemple complet : references/prompt-grammar.md.
Étape 9. Prouver le verrouillage
Peignez les fiches, les plaques de décor vides, et 2 à 4 épreuves (les plans qui doivent faire ressentir quelque chose aux gens). Exécutez forge-frame-qa dessus à 100 %. Repeignez une fiche maintenant plutôt que plus tard : chaque peinture hérite de ses défauts. Ensuite production.py signoff style --by <vous> --note "<ce que vous avez lu>".
Format de sortie
style-lock.yaml(modèle) : model, looks, default_look, avoid, grammar, references, lens, palette, max_chars.- Un prompt par fiche et plaque dans
prompts/, les fiches elles-mêmes dansart/sheets/. continuity.yaml: characters (handle, anchor, scale), names, colour script et forbid rules.- Les épreuves avec leurs verdicts QA.
Liste de vérification
- Un modèle et un paramètre, enregistrés avec son identifiant de table de prix
- Phrase(s) de look et queue d'évitement écrites ; aucun nom dans l'une ou l'autre
- Chaque personnage : fiche avec barre d'échelle, poignée, ancre, verrou d'échelle ; nom dans
names: - Script de couleurs et chaque règle de couleur comme un
forbidavec une clause de prompt - Fiches, plaques et épreuves lues à 100 % et acceptées
- Validé
Table de réparation
| Symptôme | Correction |
|---|---|
| Les peintures s'éloignent en style | La phrase de look n'est pas textuelle dans chaque prompt, ou deux modèles ont été mélangés |
| Les visages changent entre les plans | La fiche n'a pas été jointe, ou l'ancre a été paraphrasée ; attachez et collez |
| Un personnage sort à la mauvaise taille | Pas de verrou d'échelle dans le prompt, ou pas de barre d'échelle sur la fiche |
| Des noms ou mots apparaissent peints dans l'image | Un nom ou un texte cité dans le prompt ; utilisez des poignées ; le texte appartient au code |
| Scènes plates, éclairées comme en studio | La lumière plate de la fiche a été copiée : ajoutez la clause de rééclairage |
| Une couleur interdite s'infiltre | La clause manque dans LOCKS, ou les seuils de la règle sont trop lâches ; mesurez avec ledger.py palette |
Références
references/prompt-grammar.md: règles de chaque emplacement avec un prompt annoté completreferences/looks.md: looks travaillés et prompts de fiches issus de productions réelles, et comment en écrire un nouveau