CommunityImagegithub.com

fxai666/fxai-poster

Conception d'images (tous types : couvertures vidéo, affiches, illustrations d'articles, réseaux sociaux, e-commerce, infographies, incrustations vidéo). Basée sur une génération d'images IA avec superposition de texte.

Qu'est-ce que fxai-poster ?

Ce skill est spécialisé dans la conception de tous types d'images graphiques : couvertures vidéo, affiches, illustrations d'articles, visuels pour réseaux sociaux, e-commerce, infographies et incrustations vidéo. Il propose trois modes de fonctionnement : hybride (par défaut, génération d'image puis superposition de texte), image (génération pure) et web (idéal pour le texte chinois précis ou long). Le skill suit strictement un référentiel de conception unique (fichiers `08` pour les types et éléments obligatoires, `09` pour les trois étapes de contrôle qualité). Il supporte 8 styles de couverture, avec une sélection automatique ou manuelle via `cover_styles.py`. Les images produites peuvent être directement plaquées sur la première image d'une vidéo. Ce skill ne génère pas de vidéo (confié à `fxai-audio-video` / `fxai-mv-pipeline` / `fxai-short-drama`).

Compatible avec~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/fxai666/fxai-fully-automated-creation-skills/tree/HEAD/skills/fxai-poster

Installed? Explore more Image skills: steipete/songsee, affaan-m/frontend-design, mattpocock/improve-codebase-architecture · View all 6 →

Demander à votre IA préférée

Ouvre une nouvelle conversation avec cette compétence d'agent déjà préchargée.

Documentation

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)

FichierQuand 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.mdMise 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.mdPlacer 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.mdInfographie (≥3 blocs d'information) : choix de structure, cartes numérotées, icônes et couleurs
references/07-narratif-hierarchie-information.mdDé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.mdCouvertures multi-plateformes : clés de dimensions, zone de marge, priorité de génération, validation
references/svg-icons.md, references/infographic-template.html23 fragments d'icônes SVG intégrées ; exemple de mise en page d'infographie (pour référence uniquement)
poster.py, cover_batch.pyPoint d'entrée de génération d'image ; --gen-cover avec texte / --gen-base sans texte
cover_styles.py, cover_side.py8 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.pyMise 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.jsonSource unique et vraie des dimensions et spécifications des plateformes
qc.pyTrois 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)
  1. Pré-contrôle : dimensions / mode / éléments obligatoires / texte trop large / attractivité insuffisante
  2. Porte prompt : squelette en six sections + quatre éléments de la zone de texte (guillemets · position · taille · couleur) + tenue vestimentaire
  3. Porte image finale : dimensions / résolution / luminosité / profondeur / PSNR sont des critères stricts ; netteté classée en trois niveaux (SHARP_TIER) ; ajouter --no-text pour une image pure

Critères et procédures de correction : voir references/09-controles-qualite.md.

Règles strictes

  1. 🔴 Dimensions selon l'usage, toujours avec la clé de cover_sizes.json : couverture vidéo portrait vert_9x16 (1080×1920), paysage horiz_16x9 (1920×1080) ; pour les autres usages, spécifier la clé selon le besoin, ce fichier n'écrit pas les pixels.
  2. 🔴 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'analyseur file:// et les filtres ffmpeg.
  3. 🔴 La modification des couleurs se fait uniquement via les variables CSS dans themes/*.css, pas de couleurs en dur dans le HTML.
  4. 🔴 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.
  5. 🔴 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 / --site uniquement pour les affiches de site web officiel ou les supports externes.
  6. 🔴 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).
  7. 🔴 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).
  8. 🔴 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.
  9. 🔴 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 fichier 04.
  10. 🔴 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.
  11. 🔴 Blocs d'information ≥3 → utiliser la mise en page infographie (fichier 06) ; une seule couverture porte une seule proposition.
  12. 🔴 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.
  13. 🔴 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.
  14. 🔴 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 que vert_9x16 / horiz_16x9, le fichier couverture.json du projet ne liste que ces deux clés dans sizes ; 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 fichier references/11.
  15. 🔴 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 fichier 11.
  16. 🔴 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 utilise gpu.chrome_exe() de fxai-slide-video, ffmpeg utilise av.ffmpeg_libass() de fxai-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

Individual skills in this repo

This repo contains 1 individual skill — each has its own dedicated page.

Skills associés