ComfyUI + Z-Image + WAN 2.2 動漫角色動畫生成一條龍流程(含 RunPod Secure、朋友 GPU 分享、遊戲 icon 自訓 LoRA 工作流 v2)¶
文檔資訊
- 分類: tools
- 難度: intermediate
- 預估閱讀時間: 45 分鐘
- 標籤:
ComfyUI,Z-Image,WAN 2.2,動漫動畫,圖生視頻,AI 動畫,GPU 選型,RunPod Secure,SSH Tunnel,runpod-tunnel,RTX 5090,RTX 4090,RTX 5070 Ti,遊戲 icon,glossy_gem,casual_match3,Tailscale,朋友 GPU 分享,setup_friend_win.ps1,WSL,dpkg,PowerShell,PowerShell 編碼,UTF-8 BOM,TerminatorExpectedAtEndOfString,LoRA 訓練,SDXL,Flux,game_icon_v1,IPAdapter,Redux,XLabs,Shakker-Labs,Icon Kit LoRA,create_workflow,model_name 覆蓋,硬體適配,Real-ESRGAN,超解析,雙 LoRA 堆疊
摘要¶
從動漫角色立繪出發,使用 Z-Image + WAN 2.2 在 ComfyUI 內完成 10~15 秒動畫的一條龍工作流;並延伸至商業品質遊戲 icon 生成的完整迭代記錄。融合版 v2 新增:(1) 各 icon 生成方案系統性測試結果與品質評比;(2) Redux 確認不適合風格轉移(只生成圖像變體);(3) XLabs IPAdapter 與 ComfyUI 0.18.2 不相容確認;(4) Shakker-Labs/ComfyUI-IPAdapter-Flux 作為替代方案;(5) 雙 LoRA 堆疊(game_icon 0.7 + custom 0.4)目前非寶石類圖示最佳結果;(6) Real-ESRGAN 超解析作為訓練資料前處理的正確方案;(7) Flux + Icon Kit LoRA 作為最新測試方向。
關鍵學習¶
-
Z-Image + WAN 2.2 一條龍:同一 prompt 同時驅動圖像生成與視頻生成,全程在 ComfyUI 內完成
-
SSH Tunnel 優先策略:先建立 tunnel 再透過 UI 遠端操作,runpod-tunnel 指令只需做一次
-
RTX 5070 Ti 實際 VRAM 為 16GB(16303 MiB),非舊版記載的 12GB,可運行 NVFloat4 量化版
-
setup_friend_win.ps1 有兩層錯誤:MissingEndCurlyBrace(語法)→ TerminatorExpectedAtEndOfString(UTF-8 BOM 編碼問題),最終解決方案是全部改為英文字元
-
create_workflow 新增 model_name/clip_name 參數覆蓋,解決同一 workflow 在不同硬體上的模型不一致問題
-
Redux ≠ 風格轉移:Redux 生成的是圖像變體(image variants),即使 strength=0.15 輸出也全是參考圖風格,不適合 icon style transfer
-
XLabs IPAdapter 與 ComfyUI 0.18.2 不相容:DoubleStreamBlock.forward() got an unexpected keyword argument 'attn_mask'
-
雙 LoRA 堆疊(game_icon_v1.0 強度 0.7 + 自訓 m3game_icon 強度 0.4)對非寶石類 icon 效果最好
-
低解析度訓練資料(110px)必須用 Real-ESRGAN anime 模型放大至 512px,不可用 Pillow LANCZOS 插值
-
ComfyUI 節點名稱在不同版本間不一致:ZImageTextEncoder → TextEncodeZImageOmni,需動態偵測
-
Tailscale SSH tunnel 延遲過高時,直接用 Tailscale IP(不透過 SSH tunnel)連接 ComfyUI API 可解決
技術細節¶
工具鏈架構¶
- Z-Image:專為動漫/二次元風格優化的 S3-DiT 架構圖像生成模型(提供 bf16 和 NVFloat4 量化版)
- WAN 2.2:圖生視頻(Image-to-Video)模型,目標輸出 10~15 秒動畫
- ComfyUI:統一工作流執行環境,社群已有現成的 Z-Image + WAN 2.2 整合 workflow
- SDXL + game_icon LoRA:較舊但 LoRA 生態最豐富,適合 casual game icon 風格
- Flux.1-dev FP8:最新架構,最高品質,支援 IPAdapter(需正確的 extension)
GPU 選型表(修正版)¶
| 選項 | 費用 | VRAM | 適用場景 |
|---|---|---|---|
| 本地量化版(GGUF Q4) | 免費 | 8-12GB | 驗證流程,無資安顧慮 |
| RTX 5070 Ti(朋友 GPU) | 免費 | 16GB(實測 16303 MiB) | NVFloat4 量化版,品質接近 RunPod 4090 |
| RunPod 標準(RTX 4090) | $0.34/hr | 24GB | 快速測試 |
| RunPod Secure(RTX 4090) | $0.59/hr | 24GB | 商業 IP,SOC 2 認證 |
| RunPod Secure(RTX 5090) | 更高 | 32GB | BF16 全精度或批次出圖 |
Icon 生成方案品質評比(系統性測試結果)¶
各方案測試結果(依品質由低到高排序):
- Z-Image 直接生成:品質不足,無法達到商業化水準(約 4/10)
- Disney LoRA(Disney_IZT_ATK_V1):風格過於迪士尼化,與目標遊戲風格差異大(5/10)
- SDXL + game_icon_v1.0 LoRA 單獨使用:細節問題(時鐘變形、寶石 pattern 問題)(6/10)
- SDXL + 精準 prompt:不使用 LoRA,效果有限(6/10)
- SDXL + 雙 LoRA 堆疊(game_icon 0.7 + m3game_icon 0.4):非寶石類圖示目前最佳(7/10)
- Flux + Redux:確認不適合,生成純圖像變體而非風格轉移(失敗)
- Flux + XLabs IPAdapter:與 ComfyUI 0.18.2 不相容(失敗)
- Flux + Icon Kit LoRA:最新測試方向,初步結果有改善(測試中)
create_workflow 模型適配機制¶
不同硬體上的可用模型名稱不同(例如 RunPod 上有 z_image_turbo_bf16,朋友機器上只有 z_image_turbo_nvfp4)。
create_workflow(
...
model_name="z_image_turbo_nvfp4", # 覆蓋預設的 bf16
clip_name="qwen_3_4b_fp8_mixed", # 覆蓋預設的 qwen_3_4b
vae_name="ae.safetensors" # 明確指定 VAE
)
ComfyUI 節點名稱版本差異¶
# ComfyUI 0.18.2 以後的正確名稱
"ZImageTextEncoder" → "TextEncodeZImageOmni"
"ZImageEmptyLatent" → "EmptyLatentImage" # 需加 batch_size 參數
"CLIPLoader type" → "lumina2" # 小寫無空格
setup_friend_win.ps1 三種執行結果¶
| 結果 | 現象 | 解決方案 |
|---|---|---|
| 正常 | 完全無輸出,游標回到下一行 | SSH Server 已在背景成功啟動 |
| 第一層錯誤 | MissingEndCurlyBrace |
第 102 行缺 },修復語法 |
| 第二層錯誤 | TerminatorExpectedAtEndOfString + 中文亂碼 |
根本解:改為全英文字元(非 UTF-8 BOM,因為不同環境行為不一致) |
Redis/IPAdapter 相容性矩陣¶
| Extension | ComfyUI 0.18.2 | 問題 |
|---|---|---|
| XLabs IPAdapter | ❌ 不相容 | DoubleStreamBlock.forward() got an unexpected keyword argument 'attn_mask' |
| Shakker-Labs IPAdapter | 🔄 測試中 | 需 InstantX FLUX.1-dev-IP-Adapter 模型 |
| Redux | ❌ 不適用 | 生成圖像變體,非風格轉移 |
朋友機器已安裝模型清單(RTX 5070 Ti, Tailscale: 100.66.164.95)¶
- Z-Image:
z_image_turbo_nvfp4.safetensors,qwen_3_4b_fp8_mixed.safetensors,ae.safetensors - SDXL:
sd_xl_base_1.0.safetensors - Flux:
flux1-dev-fp8.safetensors,clip_l.safetensors,t5xxl_fp8_e4m3fn.safetensors - Redux:
flux1-redux-dev.safetensors,sigclip_vision_patch14_384.safetensors - XLabs:
flux-ip-adapter.safetensors,clip-vit-large-patch14.safetensors - LoRAs:
game_icon_v1.0.safetensors,fantasy_game_assets.safetensors,disney_pixar_3d.safetensors,m3game_icon.safetensors - Upscale:
RealESRGAN_x4plus_anime_6B.pth
What Changed¶
最重要新增:icon 生成方案系統性評比
新 session 完整記錄了從 Z-Image → SDXL+LoRA → Flux+Redux → Flux+XLabs → Shakker-Labs 的完整迭代路徑。關鍵發現:Redux 確認不適合風格轉移(只生成圖像變體),XLabs IPAdapter 與 ComfyUI 0.18.2 不相容。目前 SDXL + 雙 LoRA 堆疊是非寶石類 icon 的最佳方案。
新增:Redux vs IPAdapter 關鍵區分
舊版文檔未區分 Redux 和 IPAdapter 的用途。新 session 確認:Redux(flux1-redux-dev)= 圖像變體生成,適合「給我類似這張圖的其他圖」;IPAdapter = 真正的風格轉移,適合「用這個風格生成新內容」。為了 icon 品質,需要的是 IPAdapter 而非 Redux。
新增:ComfyUI 0.18.2 相容性注意事項
多個 extension 在此版本出現問題。已確認不相容:XLabs IPAdapter(attn_mask 參數問題)。替代方案:Shakker-Labs/ComfyUI-IPAdapter-Flux(使用 InstantX FLUX.1-dev-IP-Adapter)。
So What¶
商業品質 icon 生成路徑尚未完全確立,這是最重要的未解決問題。迭代記錄顯示 SDXL 雖有最豐富的 LoRA 生態,但在寶石類圖示上有固有的 pattern 問題(橘色寶石出現重複圖案)。Flux.1-dev 理論上品質最高,但 IPAdapter 整合路徑受到 extension 相容性阻礙。
**整個流程的價值**在於:建立了一套完整的遠端 GPU 協作基礎設施(Tailscale + SSH key + ComfyUI API),以及系統性測試各種 icon 生成方案的方法論。即使 icon 品質問題尚未完全解決,這套基礎設施可重複使用於未來的 AI 生成任務。
Trade-offs¶
- Tailscale vs Cloudflare Tunnel:Tailscale 點對點加密、低延遲,支援浮動 IP;Cloudflare Tunnel 不需帳號配對但流量經中繼,不適合 AI 推理大量資料傳輸
- 朋友 GPU(RTX 5070 Ti 16GB)vs RunPod Secure(RTX 4090 24GB):前者免費,NVFloat4 品質接近 FP8;後者 $0.59/hr,SOC 2 認證,支援 BF16 全精度
- SDXL + LoRA vs Flux + IPAdapter:SDXL LoRA 生態豐富,但架構較舊,寶石圖示有 pattern 問題;Flux 品質最高,但 IPAdapter extension 相容性問題尚待解決
- Redux vs IPAdapter:Redux 生成圖像變體(用於多樣性),IPAdapter 做風格轉移(用於風格一致性)— 兩者目的不同,不可互換
- 社群 LoRA vs 自訓 LoRA vs IPAdapter:社群 LoRA 開箱即用但風格固定;自訓 LoRA 需高品質訓練資料(≥512px,需 Real-ESRGAN 預處理);IPAdapter 用參考圖直接轉換,無需訓練但需正確 extension
- 雙 LoRA 堆疊:game_icon 0.7 + custom 0.4 在非寶石類有改善,但增加 VRAM 使用和推理時間
Try It Fast¶
# === 情境一:朋友 GPU 分享(Tailscale + RTX 5070 Ti 16GB)===
# 確認 Tailscale 連線狀態
tailscale status
# 看到 "windows active" 後 SSH 進入
ssh -i ~/.ssh/id_friend info@100.66.164.95
# WSL 安裝 Tailscale(遇到 dpkg 中斷先修復)
sudo dpkg --configure -a
curl -fsSL https://tailscale.com/install.sh | sh
sudo tailscale up # 掃 QR code 登入同一帳號
# === 情境二:RunPod Secure 雲端 ===
# 建立 SSH Tunnel(只需做一次)
runpod-tunnel <pod-ip> <ssh-port>
# 下載 14B 模型
python scripts/comfyui/model_manager.py install --preset 14B_FP8
# === create_workflow 跨硬體模型適配 ===
python scripts/comfyui/create_workflow.py \
--model_name z_image_turbo_nvfp4 \
--clip_name qwen_3_4b_fp8_mixed
# === 遊戲 Icon 工作流(獨立分支)===
git checkout feat/game-icon-workflow
# 批次生成 icon(朋友機器,雙 LoRA 堆疊)
python scripts/gameicon/batch_generate.py \
--style casual_match3 \
--model-name z_image_turbo_nvfp4 \
--lora game_icon_v1.0:0.7,m3game_icon:0.4
# Flux + Icon Kit LoRA(最新方向)
python scripts/gameicon/batch_generate.py \
--style glossy_gem \
--base-model flux \
--lora icon_kit_flux:0.8
# 訓練資料前處理(110px → 512px,必須用 Real-ESRGAN 而非 Pillow)
python upscale.py \
--input training_data/图标/ \
--output training_data/图标_512/ \
--model RealESRGAN_x4plus_anime_6B \
--scale 4
# 檢查 ComfyUI 可用節點(用於除錯版本不相容問題)
curl http://100.66.164.95:8188/object_info | python -m json.tool | grep -i ipadapter
Recommendation¶
- 資安優先評估:角色立繪涉及商業 IP → 優先本地量化版(GGUF Q4),避免任何雲端上傳。
- icon 品質提升路徑(按優先順序):(a) Flux + Shakker-Labs IPAdapter(需先確認 InstantX FLUX.1-dev-IP-Adapter 模型已下載,並重啟 ComfyUI 確認節點載入);(b) Flux + Icon Kit LoRA(CivitAI #688058,trigger: game_icon);© SDXL + 雙 LoRA 堆疊(game_icon 0.7 + m3game_icon 0.4)作為備用。
- 不要再試 Redux:已確認 Redux 生成圖像變體而非風格轉移,浪費時間。
- IPAdapter extension 測試前先確認相容性:執行
curl http://<ip>:8188/object_info | grep -i ipadapter確認節點名稱,再建工作流。 - 跨硬體 workflow 部署:使用
create_workflow的model_name/clip_name/vae_name參數覆蓋,避免手動修改 workflow JSON。 - ComfyUI 卡住時:直接 SSH 重啟 ComfyUI 進程,不要嘗試修復卡住的佇列。
- 訓練資料標準:原始素材需 ≥512px;若原始為 110px,必須先用 Real-ESRGAN anime 模型放大,不可用 Pillow LANCZOS(模糊放大版訓練 LoRA 無效)。
- 含中文的 PowerShell 腳本:最終解決方案是全部改為英文字元(UTF-8 BOM 在不同 Windows 環境行為不一致,不可靠)。
- WSL 安裝 Tailscale 遇到 dpkg 中斷:先執行
sudo dpkg --configure -a修復,再重新安裝。 - 測試完畢立即清理:RunPod 測試後立即終止實例並清除 Persistent Storage。