Community图像github.com

fxai666/fxai-poster

图片设计(全类型:视频封面 / 海报 / 文章配图 / 社交图 / 电商图 / 信息图 / 视频内嵌图)。主线是 AI 生图打底再叠加文案层:模式分 hybrid(默认,生图+叠字)/ image(纯画面)/ web(中文必须精确或大段文字时);类型与必备要素见 `08` 册,三道质检门(规格预检 / 提示词要素 / 成图指标)见 `09` 册。封面另有 8 种样式(含竖排贴左),可自动选也可指定(`cover_styles.py`),产物 PNG 可直接铺到视频首帧。不做:视频本体生成(→fxai-audio-video / fxai-mv-pipeline / fxai-short-drama)、纯配音(→fxai-voiceover)。

fxai-poster 是什么?

fxai-poster is a Claude Code agent skill that 图片设计(全类型:视频封面 / 海报 / 文章配图 / 社交图 / 电商图 / 信息图 / 视频内嵌图)。主线是 AI 生图打底再叠加文案层:模式分 hybrid(默认,生图+叠字)/ image(纯画面)/ web(中文必须精确或大段文字时);类型与必备要素见 `08` 册,三道质检门(规格预检 / 提示词要素 / 成图指标)见 `09` 册。封面另有 8 种样式(含竖排贴左),可自动选也可指定(`cover_styles.py`),产物 PNG 可直接铺到视频首帧。不做:视频本体生成(→fxai-audio-video / fxai-mv-pipeline / fxai-short-drama)、纯配音(→fxai-voiceover)。.

兼容平台~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 图像 skills: steipete/songsee, affaan-m/frontend-design, mattpocock/improve-codebase-architecture · View all 6 →

在你喜欢的 AI 中提问

打开一个已预加载此 Agent Skill 的新对话。

文档

fxai-poster · Poster & Image Design

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.

相关技能