CommunityImagegithub.com

fxai-poster · Poster & Image Design

Design all types of images: video covers, posters, article illustrations, social graphics, e-commerce images, infographics, and video embedded graphics. The main workflow is AI-generated images as a base with overlaid text layers.

What is fxai-poster · Poster & Image Design?

The fxai-poster skill is the single source of truth for AI image design within an agent ecosystem. It handles the complete creation of any static visual asset—video covers, posters, social graphics, infographics, e-commerce images, and more—using a primary pipeline of AI image generation supplemented by text overlay. The skill supports three core modes: **hybrid** (default, generates an image then overlays precise text), **image** (prompt-embedded text rendered directly in the AI output), and **web** (for complex Chinese or long-form text requiring exact layout). It provides 8 distinct cover styles (including vertical left-aligned text), automatic or manual style selection, and can directly burn the finished PNG onto the first frame of a video. A rigorous three-stage quality gate (pre-check, prompt check, output check) ensures compliance with all specifications before delivery. This skill explicitly does **not** generate video or pure voiceover—those are handled by fxai-audio-video, fxai-mv-pipeline, and fxai-voiceover.

Works with~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 →

Ask in your favorite AI

Open a new chat with this agent skill pre-loaded.

Documentation

What does fxai-poster · Poster & Image Design do?

A well-designed image: video cover / poster / article illustration / social graphic / e-commerce image / infographic / video embedded graphic all go here.
This skill is the single source of truth for AI image design specifications: any skill that outputs images follows the specifications and quality gates defined here—no separate rules are written elsewhere.

Skill File Index (Read this first, then decide which files to read)

FileWhen to Read
references/01-mode-selection.mdMust read before starting: Should this be web / image / hybrid?
references/02-web-mode-layout.mdweb / hybrid layout, theme, cover copy structure, attention-grabbing criteria
references/03-image-generation-and-hybrid-mode.mdWriting image generation prompts, adjusting base image masks
references/04-attaching-to-video-first-frame.mdPlacing a poster onto an MP4 (method, two critical pitfalls, validation)
references/05-cover-template-library.mdMust read for video covers: 8 styles, cover segment length and audio track
references/06-text-and-infographic-layout.md3+ info blocks: structure selection, numbered cards, icon color schemes
references/07-narrative-and-information-hierarchy.mdDefining the thesis, emotional intensity, aspect ratio & readability gates (cross-mode universal)
references/08-image-type-matrix.mdMust read when defining type: 15 use-case dimensions, required elements, inspection focus
references/09-quality-gate.mdMust read before delivery: Three gates with criteria and rework paths
references/10-qianwen2.1-prompt-specification.mdMust read for writing prompts: Six-section skeleton, quotation rules, character binding, dimensions, cross-skill calls
references/11-cover-multi-size-and-platform-specifications.mdCross-platform covers: dimension keys, margin sides, image generation priority, acceptance
references/svg-icons.md, references/infographic-template.html23 inline SVG icon snippets; infographic layout example (reference only)
poster.py, cover_batch.pyImage output entry point; --gen-cover with text / --gen-base textless base image
cover_styles.py, cover_side.py8 styles (render / render_matrix); determines text side based on base image whitespace
cover_prompt.pyLayout → image generation prompt; the third paragraph of the six-section skeleton fully describes the layout
cover_sizes.jsonSingle source of truth for dimensions and site specifications
qc.pyThree checks: pre / prompt / post / types

Do not read anything else.

Modes & Styles

hybrid (AI image base + text overlay) / image (AI generated image, text written into the prompt appears in the image) / web (pure typographic layout); for covers, prefer image with text.
Criteria and decision logic are in 01 file; default modes for 15 use cases are in 08 file. 8 style keys are in 05 file; multi-size output is in 11 file; each video must produce at least 2 versions (with/without a person).

Quality Gates (Must pass before delivery, three gates)

If any gate returns FAIL, do not proceed. Follow the rework instructions in the report and rerun.

python qc.py pre  --kind record_cover --w 1680 --h 1054 --mode hybrid --title "…" --hooks "数字前置,反差反转"
python qc.py post --img cover.png --kind record_cover      # Other two gates: prompt / types
  1. Pre-check: Aspect ratio / mode / required elements / text overflow / insufficient attention-grabbing
  2. Prompt Gate: Six-section skeleton + text area four elements (quotes·position·font size·font color) + clothing
  3. Output Gate: Aspect ratio / resolution / brightness / layering / PSNR are hard gates; sharpness is divided into three tiers (SHARP_TIER); add --no-text for pure image output

Criteria and rework paths are in references/09-quality-gate.md.

Hard Rules

  1. 🔴 Dimensions follow use case, always use the key from cover_sizes.json: Vertical video cover vert_9x16 (1080×1920), horizontal horiz_16x9 (1920×1080); for other use cases, specify the key as needed—this file does not list pixel values.

  2. 🔴 Screenshots and ffmpeg temporary files are placed under the system temporary directory fxai_burn/poster/ (script creates it automatically, use ASCII paths); the final product is copied back to the project—Chinese paths will cause file:// and ffmpeg filter parsing to fail.

  3. 🔴 Color scheme changes only modify CSS variables in themes/*.css; do not hardcode colors in HTML.

  4. 🔴 Fonts follow the whitelist in fxai-standard/references/06-font-and-asset-licensing.md; if a font is missing locally, fall back to an installed Chinese font and record it in the delivery manifest.

  5. 🔴 Media platform assets default to bare output: No URLs, contact info, QR codes, follow prompts, brand signatures, or logo slots (criterion: images for media platforms carry no traffic-steering information). Only for brand website posters / external materials, explicitly use --brand / --site.

  6. 🔴 Attention-grabbing is the number one requirement for covers: The criterion is whether scrolling past makes someone pause; each image must hit at least 2 attention-grabbing elements (trending keywords / number-first / contrast-reversal / identity tags / result promises / urgency).

  7. 🔴 Cover main title must follow a "positive → twist" two-layer structure: First line states the achievement, second line (accent color) states the cost/truth; capsule mentions trending tech keywords; each line ≤ 7 characters (including punctuation).

  8. 🔴 Pure text posters have the strongest impact: no decorative images, no close-up faces, title no more than two lines.

  9. 🔴 Cover segment length (frames) and audio track padding are only defined in references/05-cover-template-library.md under "Cover Segment Duration"; this file does not specify values.
    🔴 The cover must be applied before mixing the BGM: The cover segment carries a pad sound, not a soundtrack; BGM is the final step applied to the entire video after the cover is in place. See section 1d in 04 file.

  10. 🔴 This skill does not generate video: Video is output by fxai-audio-video / fxai-mv-pipeline / fxai-short-drama; this skill only delivers images or applies to the first frame.

  11. 🔴 3+ info blocks use infographic layout (06 file); a single cover carries only one thesis.

  12. 🔴 Readability gate (07 file): Measured contrast for body text ≥4.5:1, large text ≥3:1; thumbnail at 200px the main title is readable; recompose when changing aspect ratio, do not crop; icons inline SVG, no emoji, color values hardcoded in hex.

  13. 🔴 Must pass all three quality gates before delivery (09 file): Any FAIL means no delivery; if the base image is unqualified, regenerate it—do not try to fix it with post-processing.

  14. 🔴 Cover dimensions only recognize keys, default output is only two sizes: Pixel values and per-site specs are only in cover_sizes.json; logs/projects only reference vert_9x16 / horiz_16x9, and the project cover.json sizes field only lists these two keys; other keys are generated only when explicitly specified by the user. 🔴 Platform upload frame ratios (Douyin vertical 3:4 / horizontal 4:3) are the platform's own cropping frames, not a reason to output a third size; vertical text must fall within the 3:4 safe area. See references/11 for details.

  15. 🔴 Cover text is rendered by default directly in the image: Layout specifications are written via cover_prompt.py into the third paragraph of the prompt (--gen-cover); "no text in the image" is only allowed for the overlay layer path (--gen-base). See 11 file.

  16. 🔴 Single Responsibility: Image generation is always delegated to fxai-scene-gen; service discovery belongs to fxai-workflow; browser operations use gpu.chrome_exe() from fxai-slide-video; ffmpeg uses av.ffmpeg_libass() from fxai-audio-video. This skill does not know or configure service addresses, and does not hardcode executable file paths.

For the writing and criteria of rules 5–8 above, see references/02-web-mode-layout.md.

Quick Start

# hybrid (default: AI image base + text overlay)
python poster.py --mode hybrid --out-dir <project> --name cover --size 1680x1054 \
  --prompt "…" --title "She's back|This time she won't back down" --tag "Ancient Costume Short Drama · Episode 3" --overlay 0.5

# image (cover: text written into the prompt, text appears directly in the image)
python poster.py --mode image --out-dir <project> --name mv_cover \
  --prompt "…(six-section skeleton, third paragraph fully describes layout)…" --size 1080x1920

# Attach to first video frame
python poster.py --mode web --out-dir <project> --name cover --title "…" \
  --attach-video <project>/final.mp4 --cover-frames 10

For web mode layout parameters (--theme / --kicker / --sub / --keys), see 02-web-mode-layout.md.

Intro Information Overlay

When attaching to the first frame, overlay "Production / Drama Name / Episode Name / Selling Points / Credit" using intro_card.py; commands, masks, and crop specifications are in references/04-attaching-to-video-first-frame.md under "Intro Information Overlay".

Project Checklist (Page displays progress based on it)

Create a record when the output directory is built, update on each completed section; see fxai-standard 01 file for structure.

P=~/.workbuddy/skills/fxai-standard/scripts/fxai_project.py
python "$P" init  "<project>" --title <name> --category image --skill fxai-poster
python "$P" stage "<project>" --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.

Related Skills