SAM 3D ComfyUI 객체 및 신체 움직임 제어
이 워크플로우는 Segment Anything 기반의 마스킹과 깊이 추론을 사용하여 단일 이미지에서 3D 인식 구조 유도 생성을 제공합니다. 두 가지 실행 가능한 모드를 포함합니다: 객체 모드는 마스킹된 주제를 텍스처가 있는 3D 메쉬 또는 3D Gaussian으로 추출 및 재구성하며, 신체 모드는 신체 부위 인식 인간 메쉬를 만듭니다. SAM 3D ComfyUI 디자인은 공간 일관성을 강조하여 객체 움직임 제어, 신체 움직임 안내 및 다운스트림 비디오 또는 3D 파이프라인을 위한 제어 가능한 자산 생성에 이상적입니다.
오픈 소스 SAM3D 프로젝트를 기반으로 구축된 이 SAM 3D ComfyUI 워크플로우는 간단한 이미지와 마스크를 내보낼 수 있는 GLB, STL 및 PLY 자산으로 변환하며 포즈 정렬과 텍스처 베이킹을 제공합니다. 빠르고 제어 가능한 결과를 원하는 창작자에게 적합합니다.
참고:
이 3D "Object" 워크플로우는 Medium, Large 또는 XLarge 머신에서 실행하는 것이 권장됩니다. 더 큰 머신 유형은 런타임 오류 또는 불안정한 결과를 초래할 수 있습니다. "Body" 워크플로우는 모든 머신 유형에 대해 잘 작동합니다.
3D 재구성과 최적화의 복잡성으로 인해 "3D Object" 워크플로우는 ~40분 이상 소요될 수 있습니다.
Comfyui SAM 3D ComfyUI 워크플로우의 주요 모델
- Segment Anything Model (SAM). 고품질의 프롬프트 가능한 분할을 위해 사용되며 공간 제약을 앵커링합니다. 자세한 내용은 원본 논문을 참조하세요: Segment Anything.
- SAM3D Objects 사전 학습된 구성 요소. 깊이, 희소 구조, SLAT 생성, 메쉬 및 Gaussian 디코더, 텍스처 임베더를 제공하여 객체 재구성을 지원합니다. 출처: PozzettiAndrea/ComfyUI-SAM3DObjects.
- SAM3D Body 사전 학습된 구성 요소. 신체 부위 인식 처리를 제공하여 인간 메쉬와 디버그 뷰를 생성합니다. 출처: PozzettiAndrea/ComfyUI-SAM3DBody.
- SAM3D 저장소에 포함된 단안 깊이 추정기. 카메라 내재성, 포인트 맵 및 깊이 정보 마스크를 제공하여 재구성과 포즈 정렬을 개선합니다. 위의 두 SAM3D 저장소를 참조하세요.
- 3D Gaussian Splatting 공식. 빠르고 실사적인 포인트 기반 장면 표현을 가능하게 하며, 빠른 미리보기 및 특정 렌더러에 유용합니다: 3D Gaussian Splatting for Real-Time Rendering.
Comfyui SAM 3D ComfyUI 워크플로우 사용 방법
높은 수준에서 단일 이미지와 마스크를 로드한 후 객체 그룹 또는 신체 그룹 중 하나를 선택합니다. 객체 모드는 텍스처가 있는 메쉬와 3D Gaussian 표현을 재구성하며 선택적 포즈 정제를 제공합니다. 신체 모드는 신체 부위 인식 메쉬를 구성하고 빠른 검사 또는 다운스트림 사용을 위해 내보냅니다.
SAM3DObjects 그룹
이 그룹은 마스킹된 주제를 3D 자산으로 변환합니다. 제어하고자 하는 객체를 격리하는 마스크가 있는 이미지를 제공하면 워크플로우가 자동으로 반전을 처리하여 주제를 전경으로 취급합니다. 깊이와 카메라 내재성이 추정되어 포인트 맵을 생성한 다음 희소 구조와 초기 포즈가 생성됩니다. 여기서 SLAT 표현이 생성되고 메쉬와 3D Gaussian으로 디코딩됩니다; 텍스처 베이크는 소스 이미지의 외관을 메쉬로 전송합니다. 마지막으로 포즈 최적화가 정렬을 정제한 후 미리보기 및 내보내기를 수행합니다; SAM3D_DepthEstimate (#59), SAM3DSparseGen (#52), SAM3DSLATGen (#35), SAM3DMeshDecode (#45), SAM3DGaussianDecode (#37), SAM3DTextureBake (#47), 및 SAM3D_PoseOptimization (#57)을 참조하세요.
SAM3DBody 그룹
이 그룹은 인간 주제에 중점을 둡니다. 사람을 덮는 이미지와 마스크를 제공합니다. 신체 프로세서는 신체 부위 인식 메쉬와 디버그 이미지를 생성하여 분할 품질을 확인할 수 있게 합니다. 결과를 검사 또는 리깅을 위해 메쉬로 내보낸 후 대화식으로 미리볼 수 있습니다. 필수 단계는 LoadSAM3DBodyModel (#62), SAM3DBodyProcess (#61), SAM3DBodyExportMesh (#64), 및 Preview3D (#65)를 통해 실행됩니다.
Comfyui SAM 3D ComfyUI 워크플로우의 주요 노드
LoadSAM3DModel (#44) 깊이, 희소 구조 생성기, SLAT 생성기 및 디코더, 텍스처 임베더를 포함한 모든 객체 모드 가중치를 한 곳에서 로드합니다. 가중치가 Hugging Face에 호스팅된 경우 토큰을 입력하고 제공자를 적절히 유지합니다. 자동 정밀도를 사용하되 특정 dtype을 강제할 이유가 있는 경우를 제외하고 사용하세요. 로드되면 동일한 핸들이 전체 객체 파이프라인에 피드를 제공합니다.
SAM3D_DepthEstimate (#59) 입력 이미지에서 단안 깊이, 카메라 내재성, 포인트 맵 및 깊이 정보 마스크를 추정합니다. 좋은 프레이밍이 중요합니다: 더 안정적인 내재성을 위해 주제를 적당히 중심에 두고 극단적인 크롭을 피하세요. 내장된 포인트 클라우드 미리보기를 사용하여 긴 베이크를 시작하기 전에 기하학을 확인하세요. 여기서 생성된 내재성과 포인트 맵은 나중에 포즈 최적화에 재사용됩니다.
SAM3DSparseGen (#52) 이미지, 전경 마스크 및 깊이 출력을 결합하여 희소 구조와 초기 포즈를 빌드합니다. 마스크가 너무 느슨하면 부유물과 약한 구조를 예상하세요; 더 선명한 결과를 위해 가장자리를 조입니다. 이 노드는 방향이 올바르게 보이는지 확인하기 위해 미리볼 수 있는 포즈 객체도 방출합니다. 이 희소 구조는 SLAT 생성기를 직접 조건합니다.
SAM3DSLATGen (#35) 희소 구조를 기하학적 인식을 갖춘 SLAT 표현으로 변환합니다. 더 깨끗한 SLAT는 일반적으로 정밀한 마스크와 좋은 깊이에서 따릅니다. Gaussian보다 메쉬 출력을 선호할 경우 세부 사항을 보존하는 설정을 선호하세요. 방출된 SLAT 경로는 두 디코더에 피드를 제공합니다.
SAM3DMeshDecode (#45) SLAT를 텍스처링 및 내보내기에 적합한 수밀 3D 메쉬로 디코딩합니다. DCC 도구 및 게임 엔진에서 작동하는 토폴로지가 필요할 때 메쉬를 선택하세요. 과도한 부드러움이나 구멍이 보일 경우 마스크 및 위쪽 희소 구조 밀도를 다시 확인하세요. 이 경로는 나중에 베이크되고 선택적으로 포즈 정렬될 GLB를 생성합니다.
SAM3DGaussianDecode (#37) 빠른 미리보기 및 특정 렌더러에 유용한 3D Gaussian 표현을 동일한 SLAT에서 생성합니다. 기하학 및 시점 커버리지를 빠르게 확인하고자 할 때 유용합니다. Gaussian이 시끄러워 보이면 마스크를 개선하거나 구조 품질을 높이세요. 이로 인해 생성된 PLY는 텍스처 베이킹도 지원합니다.
SAM3DTextureBake (#47) 소스 이미지의 외관을 디코딩된 메쉬에 투영합니다. 근접 촬영이 필요할 때는 더 높은 텍스처 해상도를 사용하고, 빠른 반복을 위해 더 빠른 프리셋을 사용하세요. 렌더러 선택은 선명도와 속도에 영향을 줄 수 있습니다; 미리보기를 위해 더 빠른 옵션을 선택하고 최종본을 위해 더 높은 품질의 옵션을 선택하세요. 이 노드는 미리보기 및 포즈 정제를 위한 텍스처링된 GLB를 출력합니다.
SAM3D_PoseOptimization (#57) 카메라 내재성, 포인트 맵, 원본 마스크 및 초기 포즈를 사용하여 GLB의 정렬을 정제합니다. 얇은 구조(예: 팔다리 또는 핸들) 주변의 정렬 불일치를 관찰하면 최적화 예산을 늘리세요. 전경 마스크를 깨끗하게 유지하여 최적화기가 배경 기하학으로 이동하지 않도록 하세요. 최적화된 GLB는 3D 미리보기에서 검사를 위해 준비됩니다.
SAM3DBodyProcess (#61) 신체 부위 인식 처리를 수행하여 인간 메쉬와 디버그 오버레이를 생성합니다. 전체 신체 대 특정 영역과 같은 사용 사례에 맞는 모드를 선택하여 메쉬 커버리지를 안내하세요. 손이나 머리카락이 클립되는 경우 해당 영역 주위의 마스크를 정제하여 더 나은 충실도를 얻으세요. 빠른 검사용으로 STL로 내보내거나 필요한 경우 나중에 변환하세요.
선택적 추가 기능
- 깨끗하고 고대비의 마스크를 사용하세요. 약간만 깃털 처리하세요; 단단한 가장자리가 SAM 3D ComfyUI 객체 모드에서 보통 더 잘 재구성됩니다.
- 빠른 반복을 위해 Gaussian 경로를 먼저 사용하고, 그 다음 메쉬 디코드 및 고해상도 텍스처 베이크로 전환하세요.
- 가중치가 인증을 요구하는 경우, 그래프를 대기열에 넣기 전에 로더 노드에 유효한 Hugging Face 토큰을 붙여넣으세요.
- 긴 베이크를 시작하기 전에 포인트 클라우드 및 포즈 미리보기를 검사하여 프레이밍 또는 마스크 문제를 조기에 발견하세요.
- 내보내기 형식: GLB는 DCC 및 엔진에 이상적이며, PLY Gaussian은 호환 가능한 렌더러용이며, STL은 신체 모드에서 빠른 인쇄 규모 검사용입니다.
- SAM 3D ComfyUI 출력을 다운스트림 움직임 또는 다중 뷰 시퀀스를 구동하기 위해 사용할 계획이라면 촬영 간의 주제 규모를 일관되게 유지하세요.
감사의 말
이 워크플로우는 다음 작업 및 리소스를 구현하고 확장합니다. SAM 3D Objects 및 SAM 3D Body에 대한 기여 및 유지 관리에 대해 PozzettiAndrea에게 깊은 감사를 드립니다. 권위 있는 자세한 내용은 아래에 링크된 원본 문서 및 저장소를 참조하세요.
리소스
- PozzettiAndrea/SAM 3D Objects
- GitHub: PozzettiAndrea/ComfyUI-SAM3DObjects
- PozzettiAndrea/SAM 3D Body
- GitHub: PozzettiAndrea/ComfyUI-SAM3DBody
참고: 참조된 모델, 데이터 세트 및 코드의 사용은 저자 및 유지 관리자가 제공한 해당 라이선스 및 조건의 적용을 받습니다.
