Lokale ComfyUI-Bildgenerierung (Chinesische Prompts)
Checkliste dieser Skill-Dateien (erst hier lesen, dann entscheiden, welche Abschnitte nötig sind)
| Datei | Wann lesen |
|---|---|
SKILL.md | Diese Datei: Voraussetzungen/Lokaler Vorrang/Xiange-Cloud Ein-/Ausschalten/Drei Aufrufarten/Parameter/Langzeitkonventionen/Auf Ergebnisse warten |
image_gen.py | Implementierung von generate_image(); nur lesen, wenn das Verhalten geändert werden muss |
feed_screen.py | Video-Informationsseite (UI-Vorlage): spec → sechs Abschnitte Prompt → Absenden |
references/01-環境與路由.md | Vor Arbeitsbeginn: Voraussetzungen, lokaler Vorrang-Routing, automatisches Ein-/Ausschalten der Xiange-Cloud |
references/02-调用与参数.md | Aufruf von generate_image, Parameter-Standardwerte, Ausgabepfade |
references/03-穿搭校验细则.md | Wenn ValueError bei Personenbildern auftritt: Prüfregeln und Freigabebedingungen |
references/04-批量等结果细则.md | Mehrere Bilder gleichzeitig: zwei Wartemethoden und Kriterien für „UI scheint stillzustehen“ |
references/05-长期约定.md | Vor dem Schreiben von Prompts, vor dem Übergeben von Referenzbildern, bei Kleidungsprüfungsfehlern oder <imageN>-Fehlern: rote Linien |
references/06-视频信息流.md | Für UI-Vorlagen wie Video-Informationsseiten (Wiedergabeseite / Livestream-Seite / Notizdetail / Produktdetail inkl. Statusleiste / Navigationsleiste / Interaktionszahlen / untere Navigation): Abschnittsreihenfolge, UI-5-Bereichs-Schreibweise, Größentabelle und Abnahmepunkte |
Reicht die chinesischen Prompts an die lokal bereitgestellte ComfyUI (Qwen2.1-Bildverarbeitungs-Workflow), erzeugt PNGs und gibt den lokalen Pfad zurück.
Die Kernlogik liegt in image_gen.py: generate_image erledigt nur die Parameterzuordnung – die eigentliche „Platzhalter-Workflow-Einreichung → Polling → HTTP-Download“
wird vom gemeinsamen Client fxai-workflow/comfy_client.py einheitlich durchgeführt (wird gemeinsam mit fxai-scene-gen / fxai-fourview-gen / fxai-mv-pipeline verwendet). Einheitlich im Platzhalter-Modus: fxai_xxx-Platzhalter werden von comfy_client injiziert.
🚨 Vor Arbeitsbeginn (zuerst lesen, dann loslegen)
- 🔴 Erster Schritt: Lies „🚨 Eiserne Regeln für den ComfyUI-Servermodus“ in
fxai-workflow/SKILL.md– die eisernen Regeln stehen in der SKILL.md der abhängigen Komponente, nicht incomfy_client.py(das nur Funktionen bereitstellt, die man leicht übersieht). Kern: ComfyUI wird über die „Fengxi Lokale AI-Konsole“ / den Launcher gestartet und gestoppt; dieses Skill sendet nur HTTP-Anfragen an die angegebene Adresse. Port 8188 lokal nicht erreichbar → Cloud oder Benutzeraufforderung zum Starten; Ressourcenverfügbarkeit wird nur über die Serverschnittstelle geprüft.
🔴 Schriftlizenz-Prüfung (vor der Texteinbettung zwingend erforderlich)
🔴 Sobald Text in den generierten Bildern (Cover / Illustration) erscheint, muss vor der Erstellung fxai-standard/references/06-字体与素材授权.md gelesen werden: Schriftarten nur aus der weißen Liste der 06 wählen (lokal bevorzugt Noto Sans SC / OFL, Microsoft YaHei mit Windows vorinstalliert ebenfalls erlaubt), kommerzielle Schriftarten wie Huawen sind verboten; Schriftartname und Lizenz dokumentieren.
Voraussetzungen
Die übrigen vier Voraussetzungen finden sich in references/01-環境與路由.md.
🔴 Lokal zuerst, dann erst Xiange-Cloud
Routing-Details und Cloud-Ein-/Ausschalten siehe references/01-環境與路由.md.
Xiange-Cloud: Automatisch starten + nach Fertigstellung herunterfahren
Drei Aufrufarten
Methode A: Direkter Import (bevorzugt in Dialog-Skripten)
Siehe Heft 02.
Methode B: CLI (Bash-Direktausführung – für ComfyUI muss der Sandbox-Netzwerkzugriff erlaubt sein)
Siehe Heft 02.
Methode C: Video-Informationsseite (UI-Vorlage)
python feed_screen.py <spec.json> --tag <Projekt>_<Oberfläche> --save-dir <Projektverzeichnis>
python feed_screen.py <spec.json> --print-only # Nur den zusammengesetzten Prompt anzeigen
Abschnittsreihenfolge, UI-5-Bereichs-Schreibweise, Größentabelle und Abnahmepunkte siehe references/06-视频信息流.md.
Parameter (für generate_image)
Langzeitkonventionen (unbedingt einhalten – Details in references/05-长期约定.md)
- 🔴 Referenzbilder: Personen stets mit eigenen Charakteren 000/001 (
role=woman/man/bothoder benutzerdefinierter relativer Pfad); Cover/Poster verwenden das eigene Charakterbild des Werks, nicht den globalen Avatar-Ordneravatar/000,001. - 🔴 Prompts: Chinesisch direkt auf das Bild – kein Englisch nötig; wenn Personen im Bild sind, muss [Kleidung] + [Kopfform/Frisur] angegeben werden –
check_outfit()prüft hart. - 🔴 Mehrere Referenzbilder: Bei N Bildern muss jedes einzeln als
<imageN>referenziert werden – fehlt eines → ValueError (check_image_refs()); Nummerierung = Reihenfolge der Referenzbilder, männlicher Hauptcharakter zuerst. - Rote Linie Bekleidung: Brust-/Intimbereiche bedeckt halten – Grad „durchscheinend, aber nicht durchsichtig“.
- Ausgabeprüfung: Nach HTTP-Download prüft
png_okauf IEND-Marker; bei Unvollständigkeit Wiederholung. Dieses Skill erzeugt nur Bilder; die Veröffentlichung übernimmtfxai-weixin-gzh-publisher.
Ausgabeverzeichnis
Ausgabepfade siehe references/02-调用与参数.md.
Auf Ergebnisse warten: Globaler Broadcast-Empfang (bereits integriert)
generate_image verwendet intern comfy_client.submit_workflow. Nach dem Absenden wartet der Broadcast-Empfang auf Ergebnisse:
Im Log folgt auf queued <pid> eine schrittweise Echtzeit-Fortschrittsanzeige; nach Abschluss wird automatisch die URL abgerufen, das Bild heruntergeladen und der lokale Pfad zurückgegeben – warte also auf die Broadcast-Leitung (eigenes Polling von /history oder /fxai/tasks/result würde doppelte Stati liefern).
Während die GPU-Warteschlange läuft, prüft der Empfänger /queue ob der Job noch in der Warteschlange ist und wartet weiter. Manuelle Abfrage:
comfy_watch.py status <pid-Präfix> / comfy_watch.py top (Skill fxai-comfyui-watcher).
🔴 Wie warte ich bei mehreren Bildern?
Sobald „wird noch ausgeführt / wird automatisch benachrichtigt“ gemeldet wird, sofort die Abfrage beenden; block=true nur verwenden, wenn ≤60 Sekunden verbleiben. Drei Zustände der task_id und das Kriterium „UI scheint stillzustehen ≠ hängt“ siehe references/04-批量等结果细则.md.
Validierung
Nach Änderungen an image_gen.py ausführen: python image_gen.py "Test, reine Szenerie" --role "" --tag smoke_test,
sicherstellen, dass ein gültiger PNG-Pfad zurückgegeben wird und die Datei vollständig ist (>100 Bytes, IEND enthalten).
Nachdem festgelegt wurde, was genau zu tun ist, nur das entsprechende eine oder zwei Hefte lesen – alle anderen bleiben ungelesen.
Projektliste (Seite zeigt Fortschritt an)
Sobald das Ausgabeverzeichnis erstellt ist, wird ein Eintrag angelegt und nach jedem abgeschlossenen Abschnitt aktualisiert; Struktur siehe fxai-standard Heft 01.
P=~/.workbuddy/skills/fxai-standard/scripts/fxai_project.py
python "$P" init "<Projekt>" --title <Name> --category image --skill fxai-comfyui-image-gen
python "$P" stage "<Projekt>" --script 2 --image 1 --audio 0 --video 0