fxai-poster · Conception d'affiches et d'images
Une image bien conçue : couverture vidéo, affiche, illustration d'article, visuel réseau social, e-commerce, infographie, incrustation vidéo — tout passe ici. Ce skill est la seule source de vérité pour la conception d'images générées par IA : toute image produite par un autre skill suit les normes et les contrôles qualité définis ici, pas ailleurs.
Liste des fichiers (lire d'abord, puis décider quel fichier consulter)
| Fichier | Quand le lire |
|---|---|
references/01-choix-mode.md | À lire avant de commencer : quel mode utiliser : web, image ou hybrid |
references/02-mise-en-page-mode-web.md | Mise en page du mode web/hybrid, thème, structure du texte de couverture, critères d'attractivité |
references/03-generation-image-mode-hybride.md | Écrire les prompts de génération d'image, régler le masque de l'image de fond |
references/04-incrustation-premiere-image-video.md | Placer l'affiche sur la première image d'une vidéo (méthode, deux points critiques, validation) |
references/05-bibliotheque-styles-couverture.md | À lire pour les couvertures vidéo : 8 styles, longueur du segment de couverture et piste audio |
references/06-mise-en-page-infographie-texte.md | Infographie (≥3 blocs d'information) : choix de structure, cartes numérotées, icônes et couleurs |
references/07-narratif-hierarchie-information.md | Définir la proposition, l'intensité émotionnelle, le format et les critères de lisibilité (transversaux) |
references/08-matrice-types-images.md | À lire pour déterminer le type : dimensions, éléments obligatoires et points de contrôle qualité pour 15 catégories d'usage |
references/09-controles-qualite.md | À lire avant la livraison : critères des trois portes et procédures de correction |
references/10-normes-prompt-qianwen21.md | À lire pour écrire les prompts : squelette en six sections, règles de guillemets pour le texte, association personnage, dimensions, appels inter-skills |
references/11-dimensions-couverture-multi-plateformes.md | Couvertures multi-plateformes : clés de dimensions, zone de marge, priorité de génération, validation |
references/svg-icons.md, references/infographic-template.html | 23 fragments d'icônes SVG intégrées ; exemple de mise en page d'infographie (pour référence uniquement) |
poster.py, cover_batch.py | Point d'entrée de génération d'image ; --gen-cover avec texte / --gen-base sans texte |
cover_styles.py, cover_side.py | 8 styles (render / render_matrix) ; détermine le côté du texte en fonction de la zone de marge de l'image de fond |
cover_prompt.py | Mise en page → prompt de génération d'image, la troisième section du squelette en six sections décrit la mise en page |
cover_sizes.json | Source unique et vraie des dimensions et spécifications des plateformes |
qc.py | Trois contrôles : pre / prompt / post / types |
Ne pas lire les autres fichiers.
Modes et styles
hybrid (génération d'image de fond + superposition de texte) / image (génération d'image, le texte écrit dans le prompt apparaît sur l'image) / web (mise en page texte uniquement) ; pour les couvertures, privilégier le mode image avec texte intégré.
Critères et ordre de décision : voir le fichier 01, mode par défaut pour 15 catégories d'usage : voir le fichier 08. Les 8 clés de style : voir le fichier 05, génération multi-dimensions : voir le fichier 11 ; au moins 2 versions par vidéo (avec / sans personnage).
Contrôles qualité (obligatoires avant livraison, trois portes)
Si une porte est FAIL, ne pas poursuivre. Suivre les corrections indiquées dans le rapport et relancer.
python qc.py pre --kind record_cover --w 1680 --h 1054 --mode hybrid --title "…" --hooks "chiffre en tête, contraste et inversion"
python qc.py post --img couverture.png --kind record_cover # Les deux autres portes : prompt (prompt) / types (spécifications par type)
- Pré-contrôle : dimensions / mode / éléments obligatoires / texte trop large / attractivité insuffisante
- Porte prompt : squelette en six sections + quatre éléments de la zone de texte (guillemets · position · taille · couleur) + tenue vestimentaire
- Porte image finale : dimensions / résolution / luminosité / profondeur / PSNR sont des critères stricts ; netteté classée en trois niveaux (
SHARP_TIER) ; ajouter--no-textpour une image pure
Critères et procédures de correction : voir references/09-controles-qualite.md.
Règles strictes
- 🔴 Dimensions selon l'usage, toujours avec la clé de
cover_sizes.json: couverture vidéo portraitvert_9x16(1080×1920), paysagehoriz_16x9(1920×1080) ; pour les autres usages, spécifier la clé selon le besoin, ce fichier n'écrit pas les pixels. - 🔴 Les captures d'écran et fichiers temporaires ffmpeg sont placés dans le répertoire temporaire système sous
fxai_burn/poster/(créé automatiquement par le script, chemin ASCII), le résultat est copié dans le projet — les chemins chinois font échouer l'analyseurfile://et les filtres ffmpeg. - 🔴 La modification des couleurs se fait uniquement via les variables CSS dans
themes/*.css, pas de couleurs en dur dans le HTML. - 🔴 Les polices utilisent la liste blanche de
fxai-standard/references/06-polices-licences.md; si une police est manquante localement, utiliser une police chinoise installée sur le système et l'enregistrer dans la liste de livraison. - 🔴 Les visuels pour plateformes médias sont livrés nus par défaut : pas d'URL, coordonnées, QR code, incitation à suivre, marque ou logo (critère : une image publiée sur une plateforme média ne contient aucune information de redirection). Utiliser explicitement
--brand/--siteuniquement pour les affiches de site web officiel ou les supports externes. - 🔴 L'attractivité est la première exigence d'une couverture : le critère est de savoir si on s'arrête en la parcourant ; chaque couverture doit comporter au moins 2 éléments d'attractivité (mot tendance / chiffre en tête / contraste et inversion / étiquette d'identité / promesse de résultat / urgence).
- 🔴 Le titre principal d'une couverture doit avoir deux couches « positif → renversement » : première ligne : ce qui est accompli, deuxième ligne (couleur d'accent) : le coût/la vérité ; capsule de mot-clé technologique tendance ; chaque ligne du titre ≤ 7 caractères (ponctuation comprise).
- 🔴 Les affiches purement textuelles ont l'impact le plus fort : pas d'image décorative, pas de portrait, pas plus de deux lignes de titre.
- 🔴 La durée du segment de couverture (en images) et la méthode de remplissage de la piste audio ne sont définies que dans
references/05-bibliotheque-styles-couverture.md« Durée du segment de couverture », pas de valeurs dans ce fichier. 🔴 Le placement de la couverture doit être fait avant le mixage BGM : le segment de couverture a son propre son de remplissage, pas une musique ; le BGM agit sur l'ensemble du film déjà couvert en dernière étape. Voir la section 1d du fichier04. - 🔴 Ce skill ne génère pas de vidéo : la vidéo est produite par
fxai-audio-video/fxai-mv-pipeline/fxai-short-drama, ce skill ne livre que l'image ou la première image plaquée. - 🔴 Blocs d'information ≥3 → utiliser la mise en page infographie (fichier
06) ; une seule couverture porte une seule proposition. - 🔴 Contrôle de lisibilité (fichier
07) : contraste réel du corps de texte ≥4.5:1, gros caractères ≥3:1, miniature à 200px lisible pour le titre principal, recadrage en cas de changement de format (pas de découpage) ; icônes SVG intégrées interdites en emoji, couleur en hexadécimal. - 🔴 Passer obligatoirement les trois portes de contrôle qualité avant livraison (fichier
09) : tout FAIL interdit la livraison ; si l'image de fond est non conforme, régénérer, ne pas essayer de la sauver par retouche. - 🔴 Les dimensions de couverture ne sont reconnues que par clé, par défaut seulement deux tailles : les pixels et spécifications par plateforme sont uniquement dans
cover_sizes.json; le projet ne référence quevert_9x16/horiz_16x9, le fichiercouverture.jsondu projet ne liste que ces deux clés danssizes; les autres clés ne sont générées que sur demande explicite. 🔴 Les proportions de la zone de téléchargement de la plateforme (Douyin portrait 3:4 / paysage 4:3) sont le cadre de recadrage propre à la plateforme, pas un prétexte pour générer une troisième taille ; le texte vertical doit se trouver dans la zone de sécurité 3:4. Détails dans le fichierreferences/11. - 🔴 Le texte de couverture est rendu par défaut directement par l'image générée : les instructions de mise en page sont écrites dans la troisième section du prompt via
cover_prompt.py(--gen-cover) ; « L'image ne contient aucun texte » n'est autorisé que pour la voie de superposition (--gen-base). Voir le fichier11. - 🔴 Responsabilité unique : la génération d'image est toujours déléguée à
fxai-scene-gen, la localisation du service revient àfxai-workflow; le navigateur utilisegpu.chrome_exe()defxai-slide-video, ffmpeg utiliseav.ffmpeg_libass()defxai-audio-video. Ce skill ne connaît pas, ne configure pas, et ne contient pas de chemin d'exécutable.
Les règles 5 à 8 ci-dessus ainsi que leurs critères sont détaillés dans references/02-mise-en-page-mode-web.md.
Lancement direct
# hybride (par défaut : génération d'image de fond + superposition de texte)
python poster.py --mode hybrid --out-dir <projet> --name cover --size 1680x1054 \
--prompt "…" --title "Elle est revenue|Cette fois, elle ne reculera pas" --tag "Drame ancien · Épisode 3" --overlay 0.5
# image (couverture : texte écrit dans le prompt, rendu directement sur l'image)
python poster.py --mode image --out-dir <projet> --name mv_cover \
--prompt "… (squelette en six sections, troisième section décrit la mise en page)…" --size 1080x1920
# Placer sur la première image de la vidéo
python poster.py --mode web --out-dir <projet> --name cover --title "…" \
--attach-video <projet>/video_finale.mp4 --cover-frames 10
Paramètres de mise en page du mode web (--theme / --kicker / --sub / --keys) : voir 02-mise-en-page-mode-web.md.
Incrustation d'informations d'en-tête
Lors du placement sur la première image, ajouter « Production / Titre de l'épisode / Nom de l'épisode / Point fort / Crédit » via intro_card.py ; commande, masque et dimensions du recadrage : voir references/04-incrustation-premiere-image-video.md « Incrustation d'informations d'en-tête ».
Liste de projet (la page affiche la progression selon cette liste)
Créer le dossier de production lors de l'initialisation, mettre à jour à chaque étape terminée ; structure selon le fichier 01 de fxai-standard.
P=~/.workbuddy/skills/fxai-standard/scripts/fxai_project.py
python "$P" init "<projet>" --title <nom> --category image --skill fxai-poster
python "$P" stage "<projet>" --script 2 --image 1 --audio 0 --video 0