ローカル ComfyUI 画像生成(中国語プロンプト)
本スキルファイル一覧(最初にここを読み、どのファイルを読むか判断してください)
| ファイル | いつ読むか |
|---|---|
SKILL.md | 本ファイル:前提条件/ローカル優先/仙宮雲の起動・停止/3 つの呼び出し方法/パラメータ/長期约定/結果待ち |
image_gen.py | generate_image() の実装;SKILL.md に従って呼び出す。動作を変更する場合のみ該当関数を読む |
feed_screen.py | 動画情報フィード(UI テンプレート):spec → 6 つの骨格プロンプト → 送信 |
references/01-環境とルーティング.md | 作業開始前に前提条件、ローカル優先ルーティング、仙宮雲の自動起動・停止を確認する |
references/02-呼び出しとパラメータ.md | generate_image の呼び出し方、パラメータのデフォルト値、生成物の保存先を確認する |
references/03-服装チェック詳細.md | 人物画像が ValueError でブロックされた場合、チェック文言と通過条件を確認する |
references/04-バッチ結果待ち詳細.md | 一度に複数枚の画像を生成する場合、2 種類の待ち方と「画面が動かない」判定基準を確認する |
references/05-長期约定.md | プロンプト作成前、参照画像送信前、服装チェックエラーや <imageN> エラー発生時に赤線判定基準を確認する |
references/06-動画情報フィード.md | 動画情報フィードなどの UI テンプレート(再生ページ/ライブ配信ページ/ノート詳細/商品詳細、ステータスバー/ナビゲーションバー/インタラクション数/ボトムナビゲーション含む)を作成する場合、セクション順序、UI 5 エリアの記述方法、サイズ表、確認項目を確認する |
"中国語プロンプト" をローカルにデプロイされた ComfyUI(Qwen2.1 画像処理ワークフロー)に送信し、PNG を生成してローカルパスを返します。
コアロジックは image_gen.py にあります:generate_image はパラメータマッピングのみを行い、実際の「プレースホルダーワークフロー送信 → ポーリング → HTTP ダウンロード」は共有クライアント fxai-workflow/comfy_client.py によって一貫して実行されます(fxai-scene-gen / fxai-fourview-gen / fxai-mv-pipeline と同一のものを使用)。プレースホルダーパターン(fxai_xxx プレースホルダーは comfy_client が注入)を統一して使用します。
🚨 作業開始前の前提条件(最初に読んでから作業を始めてください)
- 🔴 作業開始の第一歩:
fxai-workflow/SKILL.mdの「🚨 ComfyUI サーバーモode 鉄則」を読む——鉄則は依存先の SKILL.md に書かれており、comfy_client.pyにはありません(関数だけを参照すると必ず漏れます)。 核心:ComfyUI は「鳳希ローカルAIコンソール」/ランチャーで起動・停止され、本スキルはアドレスに HTTP リクエストを送信するだけです。ローカル 8188 に接続できない場合 → クラウドを使用するか、ユーザーに起動を促します。リソースの有無はサーバーインターフェースのみで判断します。
🔴 フォントライセンスの制限(文字を出力する前に必読)
🔴 本スキルの生成物(カバー/挿絵)に文字を表示する場合、文字を出力する前に必ず fxai-standard/references/06-フォントと素材ライセンス.md を読んでください:フォントは 06 のホワイトリストからのみ選択します(ローカルでは Noto Sans SC / OFL を優先、Microsoft YaHei は Windows プリインストールのため使用可能)。華文などの商用フォントは禁止。納品時にフォント名とライセンスを記録します。
前提条件
残り 4 つの前提条件は references/01-環境とルーティング.md を参照してください。
🔴 ローカル優先、次に仙宮雲
ルーティングの詳細とクラウドの起動・停止については references/01-環境とルーティング.md を参照してください。
仙宮雲:自動起動 + 終了時の自動シャットダウン
3 つの呼び出し方法
方法 A:直接 import(会話内スクリプトに最適)
02 を参照。
方法 B:CLI(Bash で直接実行。ComfyUI に接続するにはサンドボックスネットワークの許可が必要)
02 を参照。
方法 C:動画情報フィード(UI テンプレート)
python feed_screen.py <spec.json> --tag <プロジェクト>_<画面> --save-dir <プロジェクトディレクトリ>
python feed_screen.py <spec.json> --print-only # 組み立てたプロンプトのみ表示
セクション順序、UI 5 エリアの記述方法、サイズ表、確認項目については references/06-動画情報フィード.md を参照してください。
パラメータ説明(generate_image)
長期约定(必ず遵守。詳細は references/05-長期约定.md を参照)
- 🔴 参照画像:人物は常に自キャラクター 000/001 を使用(
role=woman/man/bothまたはカスタム相対パス)。カバー/ポスター類はその作品のキャラクター画像を使用し、グローバルアバターライブラリavatar/000、001は使用しない。 - 🔴 プロンプト:中国語で直接画像を指示。英語は不要。画面に人物がいる場合は必ず【服装・コーディネート】+【頭部形状・髪型】を記述し、
check_outfit()で厳格にチェックする。 - 🔴 複数参照画像:N 枚送信する場合は、必ず各画像に
<imageN>を記述。1 つでも欠けると ValueError(check_image_refs())。番号=参照画像の順序、男性キャラクターが先。 - 服装の赤線:胸部/プライベート部位は隠蔽を維持。「透けているが露出はしない」程度。
- 生成物チェック:HTTP ダウンロード後、
png_okで IEND の有無をチェック。不完全な場合はリトライ。本スキルは画像生成のみを担当。公開はfxai-weixin-gzh-publisherに委ねる。
出力ディレクトリ
生成物の保存先は references/02-呼び出しとパラメータ.md を参照してください。
結果待ち:グローバルブロードキャストリスニングを使用(組み込み済み)
generate_image 内部で comfy_client.submit_workflow を呼び出し、送信後はブロードキャストリスニングで結果を待ちます。
ログで queued <pid> の後、リアルタイムで進捗が表示され、完了後に自動的に URL を取得してダウンロードし、ローカルパスを返します——
結果待ちにはこのブロードキャスト経路を使用してください(自分で /history や /fxai/tasks/result を sleep ポーリングすると重複したステータスを取得します)。
GPU 待ち行列にいる場合、リスナーは /queue を確認して「まだキューにいる」ことを確認し、待機を続けます。手動確認:
comfy_watch.py status <pidプレフィックス> / comfy_watch.py top(スキル fxai-comfyui-watcher)。
🔴 バッチ画像生成時の待ち方
「まだ実行中 / 自動的に通知される」を受信したら、すぐにクエリを停止します。block=true は残り時間が 60 秒以下の場合のみ使用します。task_id の 3 状態と「画面が動かない≠停止している」判定基準は references/04-バッチ結果待ち詳細.md を参照してください。
検証
image_gen.py を変更した後、以下を実行します:python image_gen.py "テスト、純シーン風景" --role "" --tag smoke_test。
有効な PNG パスが返され、ファイルが完全であること(100 バイト以上、IEND を含む)を確認します。
今回何をするかを決定したら、該当する 1~2 冊のみを読み、それ以外は一切読まないでください。
プロジェクト一覧(ページに進捗を表示)
生成物ディレクトリが作成されたらすぐにプロジェクトファイルを作成し、各セクション完了ごとに更新します。構造は fxai-standard 01 を参照してください。
P=~/.workbuddy/skills/fxai-standard/scripts/fxai_project.py
python "$P" init "<プロジェクト>" --title <名称> --category image --skill fxai-comfyui-image-gen
python "$P" stage "<プロジェクト>" --script 2 --image 1 --audio 0 --video 0