本地 ComfyUI 生圖(中文提示詞)
本技能文件清單(先讀這裡,再決定讀哪幾冊)
| 文件 | 什麼時候讀 |
|---|---|
SKILL.md | 本文件:前置條件/本機優先/仙宮雲開關機/三種呼叫方式/參數/長期約定/等結果 |
image_gen.py | generate_image() 實現;按 SKILL.md 調,改行為才讀對應函式 |
feed_screen.py | 影片資訊流(介面模板):spec → 六段骨架提示詞 → 提交 |
references/01-環境與路由.md | 開工前查前置條件、本機優先路由、仙宮雲自動開關機 |
references/02-呼叫與參數.md | 查怎麼調 generate_image、參數預設值、產物落哪 |
references/03-穿搭校驗細則.md | 人物圖被 ValueError 攔下時查校驗詞與放行條件 |
references/04-批量等結果細則.md | 一次出多張圖時查兩種等法與「介面沒動靜」判據 |
references/05-長期約定.md | 寫提示詞前、傳參考圖前、遇穿搭校驗或 <imageN> 報錯時查紅線判據 |
references/06-影片資訊流.md | 要做影片資訊流這類介面模板(播放頁 / 直播頁 / 筆記詳情 / 商品詳情,含狀態列 / 導航列 / 互動數 / 底部導航)時查段序、UI 五區寫法、尺寸表與驗收項 |
把「中文提示詞」提交到本機部署的 ComfyUI(千問2.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 服務端模式鐵律」——鐵律寫在被依賴件的 SKILL.md 裡,不在comfy_client.py(只取函式必漏)。 核心:ComfyUI 由「鳳希本地AI控制台」/啟動器啟停,本技能只按地址發 HTTP;本機 8188 探不通 → 走雲或提示人啟動;資源有無只認服務端介面。
🔴 字型授權門禁(出字前必讀)
🔴 凡在本技能產物(封面 / 配圖)上出現文字,出字前必須先讀 fxai-standard/references/06-字型與素材授權.md:字型只從 06 白名單選(本機首選 Noto Sans SC / OFL,微軟雅黑隨 Windows 預裝亦可用),禁用華文等商業字庫;交付記錄字型名與協議。
前置條件
其餘四條前置條件見 references/01-環境與路由.md。
🔴 本機優先,其次才是仙宮雲
路由細則與雲端開關機見 references/01-環境與路由.md。
仙宮雲:自動開機 + 收工關機
三種呼叫方式
方式 A:直接 import(對話內腳本首選)
見 02 冊。
方式 B:CLI(Bash 直接跑,連 ComfyUI 需放行沙箱網路)
見 02 冊。
方式 C:影片資訊流(介面模板)
python feed_screen.py <spec.json> --tag <項目>_<介面> --save-dir <項目目錄>
python feed_screen.py <spec.json> --print-only # 只看拼出的提示詞
段序、UI 五區寫法、尺寸表與驗收項見 references/06-影片資訊流.md。
參數說明(generate_image)
長期約定(務必遵守,細則見 references/05-長期約定.md)
- 🔴 參考圖:人物一律用自有角色 000/001(
role=woman/man/both或自訂相對路徑);封面/海報類用該作品自己的角色形象圖,不用全域頭像庫avatar/000、001。 - 🔴 提示詞:中文直達圖像,無需英文;畫面裡有人就必須寫【穿搭/服裝】+【頭型/髮型】,
check_outfit()硬校驗。 - 🔴 多參考圖:傳 N 張就必須逐個寫
<imageN>,缺一個即 ValueError(check_image_refs());編號 = 參考圖順序,男主在前。 - 著裝紅線:胸部 / 私密部位保持遮擋,力度取「透而不露」。
- 產物校驗:HTTP 下載後
png_ok校驗含 IEND,不完整即重試。本技能只管生圖,發布交fxai-weixin-gzh-publisher。
輸出目錄
產物落點見 references/02-呼叫與參數.md。
等結果:走全域廣播監聽(已內建)
generate_image 內部走 comfy_client.submit_workflow,提交後由廣播監聽等結果:
日誌裡 queued <pid> 之後是逐條即時進度,完成後自動取 url 並下載回傳本地路徑——
等結果就用這條廣播鏈路(自己 sleep 輪詢 /history 或 /fxai/tasks/result 會拿到重複狀態)。
排隊等 GPU 時監聽會查 /queue 確認「還在佇列裡」並繼續等。手動查:
comfy_watch.py status <pid前綴> / comfy_watch.py top(技能 fxai-comfyui-watcher)。
🔴 批量生圖怎麼等
收到「仍在運行 / 會被自動通知」後立刻停止查詢;block=true 只在剩餘 ≤60 秒時用。task_id 三態與「介面沒動靜≠卡住」判據見 references/04-批量等結果細則.md。
驗證
改完 image_gen.py 後跑:python image_gen.py "測試,純場景山水" --role "" --tag smoke_test,
確認返回有效 PNG 路徑且檔案完整(>100 位元組、含 IEND)。
確定本次要做什麼之後,只讀對應的那一兩冊,其餘一律不讀。
專案清單(頁面按它顯示進度)
產物目錄建好即建檔、每完成一段更新;結構見 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