Was macht fxai-poster · 海报与图片设计?
Ein gestaltetes Bild: Videocover / Poster / Artikelillustration / Social-Media-Grafik / E-Commerce-Bild / Infografik / Video-Overlay – alles läuft hierüber. Dieses Skill ist die alleinige Quelle für die KI-Bilddesign-Spezifikationen: Jedes Skill, das Bilder ausgibt, folgt diesen Vorgaben und dieser Qualitätskontrolle, es werden keine eigenen Regeln aufgestellt.
Dateiliste für dieses Skill (zuerst hier lesen, dann entscheiden, welche Referenz gelesen wird)
| Datei | Wann lesen |
|---|---|
references/01-模式选择.md | Pflichtlektüre vor Arbeitsbeginn: Soll heute web / image / hybrid verwendet werden? |
references/02-网页模式版式.md | Layout für web/hybrid, Thema, Cover-Textstruktur, Kriterien für Blickfang |
references/03-生图与混合模式.md | Schreiben von Prompts für die Bildgenerierung, Einstellen von Masken |
references/04-接入视频首帧.md | Das Poster als erstes Frame in ein MP4 einfügen (Methode, zwei kritische Punkte, Validierung) |
references/05-封面模板库.md | Pflichtlektüre für Videocover: 8 Stile, Länge des Cover-Abschnitts und Audiospur |
references/06-图文信息图版式.md | Infoblöcke ≥3: Struktur-Auswahl, nummerierte Karten, Icons und Farben |
references/07-叙事与信息层级.md | These festlegen, Emotionsintensität, Bildformat und Lesbarkeitsprüfung (modusübergreifend) |
references/08-图片类型矩阵.md | Pflichtlektüre zur Typbestimmung: 15 Anwendungsfälle mit Abmessungen, Pflichtelementen und Qualitätsschwerpunkten |
references/09-质检门禁.md | Pflichtlektüre vor Auslieferung: Kriterien für drei Prüftore und Nachbesserungspfad |
references/10-千问2.1提示词规范.md | Pflichtlektüre zum Schreiben von Prompts: Sechs-Abschnitts-Gerüst, Regeln für Anführungszeichen, Personenbindung, Abmessungen, modusübergreifender Aufruf |
references/11-封面多尺寸与平台规格.md | Plattformübergreifende Cover: Abmessungs-Key / Randseite / Bildpriorität / Abnahme |
references/svg-icons.md, references/infographic-template.html | 23 Gruppen von Inline-SVG-Icon-Fragmenten; Infografik-Layout-Beispiel (nur als Referenz) |
poster.py, cover_batch.py | Bildeingang; --gen-cover mit Text / --gen-base ohne Text (reines Hintergrundbild) |
cover_styles.py, cover_side.py | 8 Stile (render / render_matrix); Textseite basierend auf Hintergrundbild-Leerraum bestimmen |
cover_prompt.py | Layout → Bild-Prompt, dritter Abschnitt des Sechs-Abschnitts-Gerüsts enthält vollständige Layout-Anweisungen |
cover_sizes.json | Einzige autoritative Quelle für Abmessungen und Plattformspezifikationen |
qc.py | Drei Prüfungen: pre / prompt / post / types |
Alles andere wird nicht gelesen.
Modi und Stile
hybrid (KI-Bild als Basis + Textüberlagerung) / image (KI-Bild, Text wird in den Prompt geschrieben und erscheint im Bild) / web (reines Text-Layout); für Cover bevorzugt image mit Text verwenden.
Die Kriterien und Entscheidungsreihenfolge finden sich in Referenz 01, die Standardmodi für 15 Anwendungsfälle in Referenz 08. Die 8 Stil-Keys stehen in Referenz 05, das Ausgeben mehrerer Abmessungen in Referenz 11; pro Video mindestens 2 Versionen ausgeben (eine mit Person / eine ohne).
Qualitätskontrolle (muss vor Auslieferung bestanden werden, drei Tore)
Wenn eines der Tore FAIL meldet, darf nicht fortgefahren werden. Entsprechend dem Bericht korrigieren und erneut ausführen.
python qc.py pre --kind record_cover --w 1680 --h 1054 --mode hybrid --title "…" --hooks "数字前置,反差反转"
python qc.py post --img 封面.png --kind record_cover # Die anderen beiden Tore: prompt (Prompt) / types (alle Typ-Spezifikationen)
- Pre-Check: Bildformat / Modus / Pflichtelemente / Text überbreit / nicht blickfanggenug
- Prompt-Check: Sechs-Abschnitts-Gerüst + vier Elemente des Textbereichs (Anführungszeichen · Position · Schriftgröße · Schriftfarbe) + Kleidung
- Post-Check: Bildformat / Auflösung / Helligkeit / Ebenen / PSNR als harte Kriterien; Schärfe in drei Stufen (
SHARP_TIER), bei reinen Bild-Elementen--no-texthinzufügen
Kriterien und Nachbesserungspfad siehe references/09-质检门禁.md.
Harte Regeln
-
🔴 Abmessungen richten sich nach dem Verwendungszweck, ausschließlich nach dem Key in
cover_sizes.json: Vertikales Videocoververt_9x16(1080×1920), horizontaleshoriz_16x9(1920×1080); andere Verwendungen nach Bedarf Key angeben, in dieser Datei werden keine Pixel geschrieben. -
🔴 Screenshots und ffmpeg-Tempdateien landen im systemweiten Temp-Verzeichnis unter
fxai_burn/poster/(Skript erstellt es automatisch, verwendet ASCII-Pfade); das Ergebnis wird zurück ins Projekt kopiert – chinesische Pfade führen zu Fehlern beifile://und ffmpeg-Filter-Parsing. -
🔴 Farben nur über CSS-Variablen in
themes/*.cssändern, keine harten Farben im HTML. -
🔴 Schriftarten aus der Whitelist von
fxai-standard/references/06-字体与素材授权.md; falls lokal nicht vorhanden, auf systeminstallierte chinesische Schriftarten zurückfallen und im Auslieferungsinventar vermerken. -
🔴 Medienplattform-Materialien standardmäßig ohne Werbung ausliefern: Keine URLs, Kontaktdaten, QR-Codes, Aufrufe zum Folgen, Marken-Logos oder Branding (Kriterium: Bilder für Medienplattformen enthalten keine Traffic-Lenkung). Nur bei Brand-Website-Postern oder externen Materialien explizit
--brand/--sitesetzen. -
🔴 Blickfang ist die oberste Priorität für Cover: Kriterium: ob jemand beim Darüberstreichen kurz innehalten würde; jedes Bild muss mindestens 2 Blickfang-Elemente enthalten (Trend-Schlagwort / Ziffer vorne / Kontrast-Wendung / Identitäts-Label / Ergebnis-Versprechen / Dringlichkeit).
-
🔴 Cover-Haupttitel muss 'positiv → Wendung' in zwei Zeilen haben: Erste Zeile nennt das Erreichte, zweite Zeile (Akzentfarbe) nennt den Preis/die Wahrheit; Kapsel-Schlagwort nennt Trend-Technologie; jede Zeile max. 7 Zeichen (inkl. Satzzeichen).
-
🔴 Reine Text-Poster haben die stärkste Wirkung: Keine dekorativen Bilder, keine Personen-Nahaufnahmen, Titel nicht länger als zwei Zeilen.
-
🔴 Die Länge des Cover-Abschnitts (Frames) und die Audiospur-Belegung werden ausschließlich in
references/05-封面模板库.mdunter „Länge des Cover-Abschnitts“ festgelegt, in dieser Datei werden keine Zahlen geschrieben. 🔴 Cover-Einbettung muss vor dem BGM-Mixing erfolgen: Der Cover-Abschnitt hat eigene Hintergrundmusik, keine Begleitmusik. BGM wird als letzter Schritt auf das gesamte Video mit Cover angewendet. Spezifikation siehe Referenz04, Abschnitt 1d. -
🔴 Dieses Skill erzeugt keine Videos: Videos werden von
fxai-audio-video/fxai-mv-pipeline/fxai-short-dramaausgegeben, dieses Skill liefert nur Bilder oder bettet sie als erstes Frame ein. -
🔴 Infoblöcke ≥3 verwenden Infografik-Layout (Referenz
06); ein einzelnes Cover trägt nur eine Aussage. -
🔴 Lesbarkeitsprüfung (Referenz
07): Gemessener Kontrast für Fließtext ≥4.5:1, für große Schrift ≥3:1, Haupttitel bei 200px Thumbnail lesbar, bei Seitenverhältniswechsel neu komponieren, nicht zuschneiden; Icons als Inline-SVG, kein Emoji, Farbwerte als harte Hexadezimalwerte. -
🔴 Vor Auslieferung müssen alle drei Qualitätstore bestanden werden (Referenz
09): Bei einem FAIL keine Auslieferung; bei unzureichendem Hintergrundbild neu generieren, nicht durch Nachbearbeitung retten. -
🔴 Cover-Abmessungen nur über Key, standardmäßig nur zwei Ausgaben: Pixel und Plattformspezifikationen nur in
cover_sizes.json; Im Projektjournal werden nurvert_9x16/horiz_16x9referenziert, im Projekt封面.jsoninsizesnur diese zwei Keys; andere Keys werden nur bei Benutzervorgabe generiert. 🔴 Plattform-Hochladebox-Verhältnisse (Douyin vertikal 3:4 / horizontal 4:3) sind eigene Zuschneideboxen der Plattform, kein Grund für eine dritte Ausgabe; vertikaler Text muss im 3:4-Sicherheitsbereich liegen. Details siehe Referenz11. -
🔴 Cover-Text standardmäßig direkt durch Bildgenerierung gerendert: Layoutbeschreibung wird über
cover_prompt.pyin den dritten Abschnitt des Prompts geschrieben (--gen-cover); „Bild ohne Text“ ist nur für den Overlay-Weg erlaubt (--gen-base). Siehe Referenz11. -
🔴 Single Responsibility: Bildgenerierung wird an
fxai-scene-gendelegiert, Service-Adressierung anfxai-workflow; Browser läuft überfxai-slide-video'sgpu.chrome_exe(), ffmpeg überfxai-audio-video'sav.ffmpeg_libass(). Dieses Skill nimmt Service-Adressen nicht wahr, konfiguriert keine und schreibt keine ausführbaren Dateipfade fest.
Die Formulierungen und Kriterien für die Punkte 5–8 finden sich in references/02-网页模式版式.md.
Direkt loslegen
# hybrid (Standard: KI-Bild + Textüberlagerung)
python poster.py --mode hybrid --out-dir <Projekt> --name cover --size 1680x1054 \
--prompt "…" --title "Sie ist zurück|Diesmal gibt es kein Zurück" --tag "Historisches Kurzdrama · Episode 3" --overlay 0.5
# image (Cover: Text in den Prompt schreiben, KI-Bild rendert direkt)
python poster.py --mode image --out-dir <Projekt> --name mv_cover \
--prompt "…(Sechs-Abschnitts-Gerüst, dritter Abschnitt mit vollständiger Layout-Beschreibung)…" --size 1080x1920
# Als erstes Frame in Video einbetten
python poster.py --mode web --out-dir <Projekt> --name cover --title "…" \
--attach-video <Projekt>/成品.mp4 --cover-frames 10
Layout-Parameter für den web-Modus (--theme / --kicker / --sub / --keys) siehe 02-网页模式版式.md.
Intro-Informations-Overlay
Beim Einbetten des ersten Frames müssen „Produktion / Serienname / Episodenname / Verkaufsargument / Autorenangabe“ überlagert werden – mit intro_card.py; Befehle, Masken und Zuschnitt siehe
references/04-接入视频首帧.md unter „Intro-Informations-Overlay“.
Projektjournal (Seite zeigt Fortschritt daran)
Sobald das Ausgabeverzeichnis erstellt ist, Journal anlegen, nach jedem abgeschlossenen Abschnitt aktualisieren; Struktur siehe fxai-standard, Band 01.
P=~/.workbuddy/skills/fxai-standard/scripts/fxai_project.py
python "$P" init "<Projekt>" --title <Name> --category image --skill fxai-poster
python "$P" stage "<Projekt>" --script 2 --image 1 --audio 0 --video 0