系統定位
ai-pose-gallery-zh(版本 2.0.0)整合原作者ギア(@giaaibusi)的三大日文 AI 繪圖參考網站,並納入たき AI(@taki_auto)的 CharaDB 二次元服裝與 wquguru/shisei 的中國歷代服裝資料。儲存庫內含 React 前端合成工作臺、ComfyUI 自訂節點外掛、Cloudflare 同源代理,以及 9 個 Claude Code/Agent 參考檢索技能。
| 資料集 | 涵蓋分類與視角 | 索引紀錄數 | 圖檔儲存方式 |
|---|---|---|---|
姿勢白模(/poses) | 全身單人標準系 365、性感系 399、上半身 400、雙人 275;26 個分類、5 種視角 | 1,439 | 本機 2,878 張(縮圖 .jpg 與原圖 .png) |
姿勢深度圖(POSE-DB-02) | 與 1,439 筆姿勢 ID 一對一對應 | 1,439(共用索引) | 本機 2,878 張(縮圖與原圖皆為 .webp) |
| 寫實服裝(ギア) | 春、夏、秋、冬、內衣睡衣、性感、泳裝、禮服共 8 類與 86 個中文標籤 | 1,407 | 本機 2,814 張(縮圖與原圖皆為 .webp) |
| 中國歷代服裝(Shisei) | 商至清代 HC 類服裝,支援正面、斜側、側面、背面共 227 個有效視角 | 57 | 本機 454 張(w300/w900 .webp,約 5.77 MiB) |
| 動漫服裝(ギア動漫) | 對應寫實服裝的 8 個中文分類,ID 前綴為 gia-anime- | 1,320 | 僅存中繼資料快照;圖片直接請求原始網站 |
| 二次元服裝(CharaDB) | 15 個分類、中文名稱與英文 Danbooru 標籤 | 440 | 僅存中繼資料;圖片直接請求原始網站 |
人像參考(/portraits) | 正臉參考 893、造型氛圍 606;4 種髮長與 51 種細分髮型 | 1,499 | 本機 2,998 張(縮圖與 1600×2000 .webp 原圖) |
參考資料層
- 本機 12,022 張 WebP/PNG/JPG
- 遠端 1,760 張二次元服裝圖
- data/*-zh.json 中文索引
操作與組裝層
- Web Studio 3+N 配方與拼圖
- ComfyUI 4 個自訂節點
- skills/ 9 個 Agent 技能
生圖執行層
- Gemini / GPT Image / Qwen / Doubao API
- 本機 ComfyUI 佇列與 WebSocket
- IndexedDB 任務與歷史紀錄
Web 端與 ComfyUI 外掛共用 data/ 與 img/ 目錄;遠端二次元服裝僅在白名單與格式檢查通過時載入。
README 內文第 37 行保留舊版「11,568 張圖」敘述(未計入 Shisei 新增的 454 張圖檔),第 139 行目錄註解則保留舊版「4,785 張」字樣;實際版本 2.0.0 資料表合計為 6,162 筆索引與 12,022 張本機圖片。此外,README 資料表將 Shisei 原圖列為 .png,但 docs/SHISEI-COSTUMES.md 與 data/shisei/images-manifest.json 實際收錄的 w300 與 w900 檔案皆為 .webp。
安裝與驗證
- 未完成:
前端開發環境需安裝 Node.js 20 以上版本與
pnpm(package.json使用 Vite^8.3.5、React^19.3.1、TypeScript~7.0.2)。 - 未完成:
資料維護與 ComfyUI 自訂節點需具備 Python 3 環境;ComfyUI 外掛直接復用 ComfyUI 內建的
torch、numpy、Pillow與aiohttp。 - 未完成:
本機三圖合成工作流需 ComfyUI
0.3.60以上版本(官方文件實測0.43.0)及對應的 Qwen Image Edit 2509 模型檔。 - 未完成:
安裝 Agent 技能時需保留完整儲存庫結構,讓
references/catalog.csv的相對路徑../../img/能解析到本機圖檔。
本報告僅查閱原始碼與文件,未在本機啟動 Vite、ComfyUI 或執行任何影像生成請求。
路徑一:啟動本機 Web 合成工作臺
git clone https://github.com/anhao/ai-pose-gallery-zh.git
cd ai-pose-gallery-zh
pnpm install
pnpm dev需要連接本機 ComfyUI 時,預設 /comfy 路徑會由 Vite 同源代理轉發至 http://127.0.0.1:8000。若 ComfyUI 執行於 8188 連接埠,可在啟動時指定環境變數:
COMFYUI_URL=http://127.0.0.1:8188 corepack pnpm dev瀏覽器不經代理直接連線本機 ComfyUI 時,啟動 ComfyUI 須加上 --enable-cors-header 參數。
路徑二:安裝為 ComfyUI 原生自訂節點
cd /path/to/ComfyUI/custom_nodes
git clone --depth 1 https://github.com/anhao/ai-pose-gallery-zh.git重新啟動 ComfyUI 後,於畫布空白處按右鍵,在「AI 角色三合一參考圖集」分類下可新增 4 個自訂節點。
路徑三:掛載 Claude Code/Agent 參考技能
git clone --depth 1 https://github.com/anhao/ai-pose-gallery-zh.git ~/ai-pose-gallery-zh
mkdir -p ~/.claude/skills
for d in ~/ai-pose-gallery-zh/skills/*-reference*; do ln -s "$d" ~/.claude/skills/; done核心能力
網頁合成工作臺
/studio
組裝 3+N 角色參考配方與提示詞
組合人像、服裝、姿勢(白模或深度圖)與附加參考圖,支援 12 種畫風預設與 1800×1200 Canvas 三合一拼圖匯出。
ComfyUI 配方節點
CharacterRecipeNode
單節點輸出四張張量與雙語提示詞
同時輸出人像圖、服裝圖、姿勢圖、三合一橫向拼圖(間隔 12 px)及中英文合成 Prompt,內建 4 種畫風預設。
ComfyUI 單庫節點
PoseGalleryNode / CostumeGalleryNode / PortraitGalleryNode
按 ID 讀取單一類別參考圖與描述
支援原圖尺寸、置中裁切與留白填充(64 至 4096 px,步進 8);姿勢節點支援 use_depth,服裝節點支援 costume_view。
Agent 姿勢與人像技能
pose-reference-* / portrait-reference
依動作、視角或 51 種髮型檢索參考圖
包含標準系 365、上半身 400、性感系 399、雙人 275、全量 1,439 及人像 1,499;透過 catalog.csv 取得相對圖檔路徑。
Agent 服裝檢索技能
costume-reference / -anime / -sexy
依季節、單品、顏色與 Danbooru 標籤檢索
分別涵蓋一般寫實服裝 1,068 套、CharaDB 二次元服裝 440 套(使用遠端網址)與內衣/性感穿搭 339 套。
同源跨域代理
POST /api/proxy
轉發雲端生圖 API 請求
由 x-target-url 指定目標,預設僅放行百煉、火山方舟、Gemini 與 OpenAI 官方 HTTPS 網域,單次請求上限 10 MiB。
Web 工作臺在 src/services/aiGenerator.ts 與 README 中支援 5 種生圖後端協定:
| 協定類型 | 支援模型或端點 | 關鍵參數與傳遞方式 |
|---|---|---|
| Google Gemini | gemini-3.1-flash-image-preview、gemini-3-pro-image-preview、gemini-2.5-flash-image | 支援 aspectRatio 與 1K/2K/4K 解析度 |
| OpenAI GPT Image | gpt-image-2.5、gpt-image-2、gpt-image-1.5、gpt-image-1 | 呼叫 /v1/images/edits,支援 JSON URL 直傳或 Multipart 上傳、尺寸、品質與背景透明度 |
| 阿里雲百煉 Qwen | qwen-image-3.0-pro、qwen-image-2.1-pro、qwen-image-2.0-pro、qwen-image-edit-plus | 使用 multimodal-generation 多圖輸入、prompt_extend 與浮水印開關 |
| 字節火山方舟 Doubao | doubao-seedream-5-0、doubao-seedream-4-5-251128、doubao-seedream-4-0-250828、doubao-seededit-3-0-i2i-250628 | 支援多圖融合 image: [...] 與 2K/4K 解析度 |
| 本機 ComfyUI | /upload/image、POST /prompt、/ws、/history | 支援匯入 .api.json 工作流、替換雙大括號變數或自動配對 CLIPTextEncode/KSampler/LoadImage 節點 |
操作原則
姿勢白模僅作語義或深度控制
在 Qwen Image Edit 2509 工作流中,僅將人像與服裝連入 ReferenceLatent;若把 3D 人偶白模也作為像素級參考,生成圖會複製人偶關節球與分塊線條。需要精確骨架時應改開 use_depth 輸出深度圖接 ControlNet。
以軟連結安裝 Agent 技能
原有技能的 references/catalog.csv 使用 ../../img/ 相對路徑讀取圖片。安裝至 ~/.claude/skills/ 時必須使用 ln -s 軟連結並保留儲存庫目錄,直接複製技能資料夾會導致路徑失效。
區分 _meta.studio 擴充欄位與標準 API
工作流 JSON 內的 _meta.studio.controls、hiddenInputs、imageRole 與 referenceCombinations 為此專案的前端擴充約定。部分 ComfyUI 畫布轉 API 工具會丟棄自訂 _meta 欄位,匯出時應保留含該宣告的 API 檔案。
8 GB 顯示卡先調降 megapixels
Qwen Image Edit 2509 的 fp8 擴散模型約 20.4 GB,文本視覺編碼器約 9.4 GB。在 8 GB 顯示卡環境下,應將工作流節點 10 的 megapixels 降至 0.6;顯示卡記憶體不足時工作臺會呼叫 /free 釋放資源。
匯入自訂 ComfyUI API 工作流時,工作臺支援將雙大括號格式的變數名稱(包含 prompt、seed、width、height、composite_image、portrait_image、costume_image、pose_image)替換為當次配方的實際數值與上傳檔名。當 cfg=1(如搭配 4 步 Lightning LoRA)時,反向提示詞不會生效,應將「不要文字或浮水印」等限制直接寫入正向提示詞。
操作範例
以下依 docs/comfyui-local.md 與 src/workflows/qwen_image_edit_2509_3img.api.json,在本機以 Qwen Image Edit 2509 執行「人像+服裝+姿勢」三圖合成。
1. 準備 ComfyUI 模型檔案
將官方 Comfy-Org/Qwen-Image_ComfyUI 模型放入 ComfyUI 對應目錄:
| 元件用途 | 檔案名稱 | 放置目錄 | 檔案大小 |
|---|---|---|---|
| 擴散模型 | qwen_image_edit_2509_fp8_e4m3fn.safetensors | models/diffusion_models 或 models/unet | 20.4 GB |
| 文本與視覺編碼器 | qwen_2.5_vl_7b_fp8_scaled.safetensors | models/text_encoders | 9.4 GB |
| VAE | qwen_image_vae.safetensors | models/vae | 254 MB |
| 4 步加速 LoRA | Qwen-Image-Edit-2509-Lightning-4steps-V1.0-bf16.safetensors | models/loras | 850 MB |
2. 啟動服務並執行三圖合成
在第一個終端機啟動本機 ComfyUI(監聽 8188 連接埠),並在第二個終端機啟動 Web 合成工作臺:
python main.py --listen 127.0.0.1 --port 8188
cd /path/to/ai-pose-gallery-zh
COMFYUI_URL=http://127.0.0.1:8188 corepack pnpm dev開啟 http://localhost:5173/studio 後依序操作:
從
/portraits、/costumes與/poses各選取 1 張參考圖加入配方(例如預設人像f71f980dde3、服裝SPR-0001、姿勢full_single_P001_front)。在介面配置選擇「本地 ComfyUI」,位址維持預設
/comfy(由 Vite 同源轉發至COMFYUI_URL)。載入內建的
qwen_image_edit_2509_3img.api.json工作流,確認管線為UNETLoader → LoraLoaderModelOnly → ModelSamplingAuraFlow(shift=3) → CFGNorm → KSampler(4 步、cfg=1、euler/simple)。送出生成請求;工作臺會先建立相同
clientId的 WebSocket 連線,上傳圖片至/upload/image,再將工作流送至POST /prompt並把prompt_id寫入瀏覽器 IndexedDB。
3. 部署至 Cloudflare Workers(選用)
若需建置靜態目錄並連同 /api/proxy 部署至 Cloudflare Workers:
bash scripts/build.sh
npx wrangler versions upload
npx wrangler deployscripts/build.sh 會在 pnpm build 後將 _headers、robots.txt、sitemap.xml、og-cover.jpg、data、thumbs 與 img 一併複製至 dist/。
限制與注意事項
| 限制項目 | 技術邊界與處理方式 |
|---|---|
| 各來源素材授權不同 | ギア的姿勢、寫實/動漫服裝與人像(CC0 1.0)歸 @giaaibusi 所有;CharaDB 440 套標籤為 CC0,但圖片僅供參考、禁止再分發且不可用於真人或未成年人;Shisei 57 套為 CC0 1.0 AI 生成創作參考,不作為歷史服飾復原依據 |
| NSFW 內容預設隱藏 | 全身單人性感系(399)、雙人纏綿(275)與內衣/性感穿搭(339)含 18+ 成人向參考;系統預設開啟「安全模式(SFW)」屏蔽,未成年人不得解鎖 |
| 遠端服裝圖依賴原站與安全檢查 | ギア動漫(1,320)與 CharaDB(440)不隨庫存圖;open_reference_image 僅允許目錄已收錄的精確 HTTPS 網址,禁止重新導向(_NoRedirect),並限制 20 秒逾時、10 MiB 大小與 20,000,000 像素上限 |
| 外部來源與視角錯誤行為 | find_item 對未知的 charadb-、gia-anime-、shisei- 前綴 ID 會拋出 ValueError;但對其他未知 ID 會回退至該庫第一筆紀錄。select_costume_view 對不存在的非 front 視角也會明確拋出錯誤 |
| 停止追蹤不會取消後端佇列 | 在 Web 工作臺點擊「停止追蹤(不取消後端)」僅清除瀏覽器 IndexedDB 的未決紀錄,ComfyUI 後端任務仍會繼續執行;重新提交前應先核對佇列 |
| 遠端鑑權閘道非原生功能 | WebSocket 子協定 comfyui 與 comfyui-auth.<token> 為選用的反向代理閘道約定,非 ComfyUI 原生能力;HTTP 連線測試成功不代表 WebSocket 交握已通過驗證 |
後續操作
先以
pnpm dev啟動本機工作臺,確認/poses、/costumes與/portraits的中文篩選、深度圖切換與1800×1200拼圖下載正常。在 ComfyUI 畫布測試
CharacterRecipeNode,驗證use_depth與costume_view(front、diag、side、back)輸出張量。需要更新外部資料快照時,分別使用
python3 scripts/import_charadb.py、python3 scripts/import_gia_anime.py或python3 scripts/import_shisei_costumes.py,並在更新前核對固定修訂雜湊與來源授權。
來源固定於 488939139c69acfe078372b39d4bd0c457dc060e。官方參考文件:
README:三庫資料規模、雙模式 ComfyUI 整合與 Cloudflare 部署說明。
本機 ComfyUI 三圖合成指南:Qwen Image Edit 2509 模型清單、工作流結構與顯示卡記憶體調校。
ComfyUI 任務連線與恢復:WebSocket 事件、HTTP
/history保底對帳與 IndexedDB 狀態恢復機制。
參考資料
- Verified source revision and README
- Code license and asset scope
- Package configuration and scripts
- ComfyUI custom nodes implementation
- ComfyUI PromptServer routes and remote image guard
- Local ComfyUI Qwen Image Edit 2509 guide
- ComfyUI workflow advanced parameters
- ComfyUI task tracking and recovery
- Gia anime costume snapshot documentation
- Shisei historical costume import documentation
- Cloudflare CORS proxy implementation
- Agent pose reference skill specification