使用 ComfyUI 將圖片轉為 3D 模型
ComfyUI 透過本地模型(Trellis.2、Pixal3D、Hunyuan3D…)從圖片重建網格。你不需要自行建模:只需選擇工作流程、執行它並交付檔案。它在使用者的 GPU 上執行,無需任何費用,耗時從幾分鐘到一刻鐘不等。
運作機制已包含在你的工具中:comfy_workflows 會列出使用者儲存的工作流程,為附加的圖片準備一個工作流程並收集結果,同時告訴你每個下一步;ComfyUI 連線會驗證、執行並等待。請遵照這些工具回傳的資訊。本技能的目標是處理那些工具留給你的選擇。
如果你既沒有 comfy_workflows 也沒有 ComfyUI 連線的工具,請停止並說明:使用者需要安裝 ComfyUI 連線(工具 → 連線),授予此代理 comfy_workflows、comfyui_validate_workflow、comfyui_run_workflow 和 comfyui_job 的權限,並保持 ComfyUI 開啟。
選擇哪個工作流程
使用參數 action: "list" 呼叫 comfy_workflows 會顯示使用者儲存的內容。根據圖片類型選擇:
| 圖片類型 | 使用的工作流程類型 |
|---|---|
| 單一物件的一張照片(照片、渲染圖、概念圖) | 單一圖片轉 3D 模型(使用者命名的多視角工作流程也能處理單張圖片) |
| 同一物件的多個視角圖(正面、側面、背面;角色轉圈圖) | 多視角轉 3D 模型 |
| 同一物件的數張分開附加圖片 | 如果工作流程能讀取多個檔案,則使用多視角;否則詢問使用哪張圖片 |
- 使用者命名的工作流程優先於你的選擇。
- 如果兩個已儲存的工作流程都符合條件且無法區分,請詢問,不要同時執行。
- 如果都沒有符合的,請說明並列出使用者已有的工作流程。只有在這種情況下,才從 ComfyUI 的線上範本庫提供範本(如果你有
comfyui_search_templates),並事先告訴使用者範本庫內容來自網際網路,因此應用程式會要求使用者在你讀取後批准每個步驟。
準備工作
- 將附加的圖片放在
files參數中,使用對話中顯示的名稱。 - 每次執行一個物件。如果圖片顯示多個物件,請詢問要重建哪一個,或者說明模型會將整個場景視為單一部件。
- 具有單純背景且完整物件在畫面內的圖片能產出最佳模型。如果物件被邊緣裁切或被其他東西遮擋,請在執行前說明:生成器會自行補足無法看到的部分。
工作流程中的選擇
comfy_workflows 會引用工作流程作者留下的註解。請仔細閱讀:它們說明了工作流程中開關的功能。
- 開關後的兩個生成器(可使用兩種模型之一的工作流程):保持使用者儲存的設定。只有在使用者指定想要哪個生成器時才進行更改,使用
comfyui_list_workflow_slots找到開關,然後用comfyui_set_workflow_slot設定,並在報告中說明運行了哪個生成器。 - 保留使用者的數值。 使用使用者儲存的數值執行工作流程。不要自行更改
target_face_count、解析度、取樣器或其他任何設定,即使圖片看起來很簡單或上次執行產出重型模型也是如此:已儲存的工作流程是使用者的決定,而你為了「幫忙」降低的數值會產出使用者不想要的模型(將重建結果過度減面會得到一個皺巴巴的形狀,而不是輕量化的副本)。如果你認為輕量化模型對他們更有利,請在報告中說明並提供選項;不要直接執行。 - 僅在使用者要求時,才產生輕量化模型。 當使用者明確要求輕量化模型、指定面數,或表示用於遊戲、網頁或手機時,請在執行前降低面數,對已準備好的檔案進行兩次呼叫:
- 使用
comfyui_list_workflow_slots,在其回應中找到名稱為target_face_count的插槽(屬於DecimateMesh節點);複製其address。 - 使用
comfyui_set_workflow_slot,設定stdout: false和[{"address": "<該 address>", "value": 50000}](遊戲道具用 50000;攝影機可近距離觀察的主角物件用 150000)。除非使用者指定更低的數字,否則絕不低於 50000。 然後照常驗證並執行,並在報告中說明你設定了什麼值。如果工作流程沒有此類插槽,或者你缺少這兩個工具,請照原樣執行,並直接說明模型對遊戲來說太重以及超重多少。
- 使用
- 多視角工作流程只需一張圖片。 能夠從輸入中裁切出多個視角的工作流程也能處理單張照片:裁切超出圖片範圍的部分會是空的,模型則從實際存在的視角建立。不要尋找視角圖表或嘗試製作一張;直接使用使用者提供的圖片執行。
執行失敗時
- 缺少模型或節點:說明驗證報告中提到的檔案名稱並停止。使用者需從 ComfyUI 安裝它們(在那裡開啟工作流程會提供下載)。不要切換到其他工作流程來規避此問題。
- 任務失敗:使用
action: "collect"呼叫comfy_workflows會報告失敗的節點和原因。常見原因是記憶體不足:請說明情況,並提議使用較低解析度或工作流程中的另一個生成器重新嘗試。最多自行重試一次。 - 等待超時:任務仍在執行中。再次等待;切勿啟動兩次。
報告
collect回傳的檔案、其大小和三角面數,完全按照給定的資料報告。- 執行了哪個工作流程,以及你在其中更改的任何內容。
- 你沒有看過模型本身:說明它已生成,而非外觀如何。
- 一行說明預期結果:圖片未顯示的側面由生成器自行補齊,結果是具有烘焙紋理的單一網格,而非分離的部件。
- 如果使用者想要清理、進一步減面或匯出以用於遊戲引擎,那是 Blender 的工作(請參考
blender-game-export技能)。