ComfyUI로 이미지를 3D 모델로 변환하기
ComfyUI는 로컬 모델(Trellis.2, Pixal3D, Hunyuan3D…)을 사용하여 이미지에서 메시를 재구성합니다. 사용자가 직접 모델링하지 않고 워크플로를 선택하고 실행한 후 파일을 전달합니다. 사용자의 GPU에서 실행되며 비용이 들지 않고, 몇 분에서 15분 정도 소요됩니다.
이 메커니즘은 이미 도구에 내장되어 있습니다: comfy_workflows는 사용자가 저장한 워크플로를 나열하고, 첨부된 이미지로 워크플로를 준비한 후 결과를 수집하며, 각 다음 단계를 알려줍니다. ComfyUI 연결은 검증, 실행 및 대기를 처리합니다. 해당 도구가 반환하는 내용을 따르세요. 이 스킬은 그 도구들이 사용자에게 맡기는 선택에 관한 것입니다.
comfy_workflows 또는 ComfyUI 연결 도구가 모두 없다면 중단하고 그렇게 말하세요: 사용자가 ComfyUI 연결(도구 → 연결)을 설치하고, 이 에이전트에 comfy_workflows, comfyui_validate_workflow, comfyui_run_workflow 및 comfyui_job을 부여한 후 ComfyUI를 열어 두어야 합니다.
어떤 워크플로
comfy_workflows에서 action: "list"를 사용하면 사용자가 저장한 워크플로가 표시됩니다. 이미지의 종류에 따라 선택하세요:
| 이미지가 | 사용할 워크플로 |
|---|---|
| 하나의 객체 사진 한 장 (사진, 렌더링, 콘셉트) | 이미지를 3D 모델로, 단일 이미지 (사용자가 이름을 지정한 다중 뷰 워크플로도 한 장의 사진과 함께 작동합니다) |
| 동일 객체의 여러 뷰 시트 (앞, 옆, 뒤; 캐릭터 턴어라운드) | 다중 뷰를 3D 모델로 |
| 동일 객체의 여러 개별 첨부 이미지 | 다중 뷰 (워크플로가 여러 파일을 읽는 경우); 그렇지 않으면 어떤 이미지를 사용할지 질문 |
- 사용자가 이름을 지정한 워크플로가 사용자의 선택보다 우선합니다.
- 저장된 두 워크플로가 적합하고 구분할 수 없으면 질문하세요. 둘 다 실행하지 마십시오.
- 적합한 워크플로가 없으면 그렇게 말하고 사용자가 가진 워크플로를 나열하세요. 그런 후에만 Comfy의 온라인 갤러리에서 템플릿을 제공하고(
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": "<해당 주소>", "value": 50000}]을 전달하세요. 게임의 소품인 경우 50000, 카메라가 가까이 다가가는 주인공 객체인 경우 150000을 사용하세요. 사용자가 직접 낮은 숫자를 지정하지 않는 한 50000 미만으로 내려가지 마세요. 그런 다음 평소처럼 검증하고 실행하며, 보고서에 설정한 값을 말하세요. 워크플로에 해당 슬롯이 없거나 해당 두 도구가 없으면 그대로 실행하고 모델이 게임용으로 무겁고 그 정도를 분명히 말하세요.
- 단일 이미지로 다중 뷰 워크플로에 충분합니다. 입력에서 여러 뷰를 크롭하는 워크플로는 한 장의 사진으로도 작동합니다: 사진 밖으로 벗어나는 크롭은 비어 나오고 모델은 실제 뷰 하나로 구축됩니다. 뷰 시트를 찾거나 만들려고 하지 마세요. 사용자가 제공한 사진으로 실행하세요.
실행되지 않을 때
- 모델이나 노드가 누락됨: 검증이 보고한 파일의 이름을 말하고 중단하세요. 사용자는 ComfyUI에서 이를 설치합니다(워크플로를 열면 다운로드가 제공됩니다). 이를 우회하기 위해 다른 워크플로로 전환하지 마세요.
- 작업 실패:
comfy_workflows에서action: "collect"를 사용하면 노드와 이유를 보고합니다. 메모리 부족이 일반적입니다: 그렇게 말하고, 낮은 해상도로 다시 시도하거나 워크플로에 다른 생성기가 있는 경우 그 생성기로 시도할 것을 제안하세요. 스스로 한 번 이상 재시도하지 마세요. - 대기 시간 초과: 작업이 여전히 실행 중입니다. 다시 기다리세요. 절대 두 번 시작하지 마세요.
보고서
collect가 반환한 파일, 그 크기 및 삼각형 수를 정확히 그대로 기록하세요.- 어떤 워크플로가 실행되었는지, 그리고 변경한 사항을 기록하세요.
- 모델을 직접 보지 않았습니다: 생성되었다고 말하고, 어떻게 보이는지는 말하지 마세요.
- 예상할 사항에 대한 한 줄: 사진에 보이지 않는 면은 생성기가 상상하여 만들며, 결과는 베이크된 텍스처가 있는 단일 메시이며 별도의 부품이 아닙니다.
- 사용자가 모델을 정리하거나, 더 줄이거나, 엔진용으로 내보내고 싶다면 Blender 작업입니다(
blender-game-export스킬).