Speridlabs Idol: 단일 이미지로 3D 가우시안 스플랫 생성
Speridlabs Idol은 0.66B 파라미터 모델로 단일 이미지에서 3D 가우시안 스플랫을 생성합니다. 7.2GB VRAM에서 실행되며, 오픈 SDK와 커뮤니티 ComfyUI 노드를 제공합니다.
.ply 형식의 3D 가우시안 스플랫이 출력되며, 입력에서 보이지 않았던 측면까지 포함합니다.
Idol이 겨냥하는 영역은 보통 다시점 재구성이 필요한 부분입니다. 오브젝트 사진 한 장만 있는데 회전시킬 수 있는 결과물을 원하는 경우입니다. Idol은 배경을 제거하고, 오브젝트를 프레이밍하고, 이미지를 인코딩한 뒤 가우시안 집합을 직접 샘플링합니다. 출력은 어떤 가우시안 스플랫 뷰어에서든 열 수 있으며, 그 옆에 모델이 실제로 본 크롭 입력과 예측된 카메라가 JSON으로 기록됩니다.
갤러리 오브젝트 중 하나. 프로젝트 페이지의 모든 예시는 단일 이미지에서 시작합니다.
두 개의 디코더를 갖춘 작은 diffusion 스택
Idol의 생성 핵심은 370.6M 파라미터 diffusion transformer, 가우시안이 어디에 위치할지 결정하는 50.8M 파라미터 옥트리 디코더, 그리고 가우시안의 속성을 예측하는 237.3M 파라미터 가우시안 디코더로, 총 0.66B 파라미터입니다. 그 주변에는 세 가지 보조 모델이 있습니다: 배경 제거용 BiRefNet, 이미지 인코더인 DINOv3 ViT-H+/16, 그리고 FLUX.2 VAE이며, 전체 요청은 약 1.80B 파라미터가 됩니다.
| 구성 요소 | 파라미터 | VRAM 내 가중치 |
|---|---|---|
| DiT 디노이저 | 370.6M | 약 0.8~1.0GB |
| 옥트리 디코더 | 50.8M | 약 0.1~0.2GB |
| 가우시안 디코더 | 237.3M | 약 0.5~0.9GB |
| BiRefNet 배경 제거 | 220.7M | 약 0.44GB |
| DINOv3 ViT-H+/16 | 840.6M | 약 1.68GB |
| FLUX.2 VAE | 84.1M | 약 0.17GB |
카드는 총 가중치를 약 3.7~4.4GB, 피크를 7.2GB로 제시하며, 이 덕분에 데이터센터 GPU 대신 10GB 그래픽카드에서도 모델을 실행할 수 있습니다.
음식과 작은 오브젝트는 가구, 캐릭터와 함께 갤러리가 다루는 카테고리 중 하나입니다.
디테일은 고정된 용량이 아니라 조절 값
가우시안 개수는 32,768에서 1,048,576까지 32의 배수로 지정하는 런타임 인자이며, 기본값은 262,144입니다. 프로젝트 페이지에서 동일한 램프가 32,768 설정에서는 0.4MB, 1,048,576에서는 12.2MB로 나오므로, 같은 오브젝트를 블록아웃으로도 최종 에셋으로도 만들 수 있습니다. 결과를 좌우하는 다른 설정은 두 가지입니다: 기본 50 샘플링 스텝, 그리고 크롭이 오브젝트 주변에 얼마나 여유를 둘지 바꾸는 모드로, 렌더와 생성된 이미지에는 synthetic, 사진에는 real을 사용합니다.
더 빠른 샘플링은 GPU에서 기본으로 활성화되어 있으며 동일 품질 기준 약 1.7배 효과가 있습니다: 디노이저는 torch.compile로 컴파일되고, guided 패스와 unguided 패스는 하나의 배치로 실행되며, 어텐션은 TF32 matmul과 함께 cuDNN을 사용합니다. 프로세스의 첫 이미지는 컴파일 비용을 지불합니다.
캐릭터와 생물도 별도의 모델 경로 없이 같은 레시피로 만들어집니다.
벤치마크와 소요 시간
카드는 H100 한 대에서 262,144 가우시안 기준으로 Idol을 TripoSplat, TRELLIS, LGM과 비교하며, 입력 뷰는 PSNR, SSIM, LPIPS, IoU로, 7개의 새로운 뷰는 DINOv2, CLIP, 선명도 거리로 평가합니다.
| 모델 | PSNR | SSIM | LPIPS | IoU | DINOv2 | CLIP | 선명도 거리 | 요청 시간 |
|---|---|---|---|---|---|---|---|---|
| Idol | 12.25 | 0.726 | 0.213 | 0.862 | 0.781 | 0.885 | 0.81 | 6.8초 |
| TripoSplat | 11.76 | 0.712 | 0.225 | 0.860 | 0.743 | 0.868 | 1.03 | 9.9초 |
| TRELLIS | 11.89 | 0.716 | 0.235 | 0.845 | 0.754 | 0.868 | 0.97 | 7.1초 |
| LGM | 12.46 | 0.722 | 0.237 | 0.834 | 0.575 | 0.784 | 1.22 | 1.1초 |
LGM이 가장 높은 PSNR을 유지하지만 결과는 눈에 띄게 흐릿하며, 카드는 이를 PSNR이 제곱 픽셀 오차를 평균하기 때문이라고 설명합니다.
소비자용 그래픽카드에서 동일한 요청은 RTX 5090에서 14.1초, RTX 4090에서 19.1초, RTX 3080에서 46.2초가 걸립니다. 카드의 "2초 미만" 문구는 자체 표에 해당 행이 없으며, 가장 빠른 항목은 262,144 가우시안 기준 B300의 3.4초입니다. 따라서 표를 기준으로 삼고, 2초 미만이라는 주장은 공개된 수치로 재현되지 않는 최상의 경우로 보는 것이 좋습니다.
| GPU | VRAM | 요청 시간 |
|---|---|---|
| B300 | 269GB | 3.4초 |
| H100 | 80GB | 6.7초 |
| RTX 5090 | 32GB | 14.1초 |
| RTX 4090 | 24GB | 19.1초 |
| RTX 3080 | 10GB | 46.2초 |
| L4 | 22GB | 54.6초 |
얇은 구조와 반투명함은 스플랫 디코더에게 어려운 케이스이며, 갤러리에서 가구와 함께 등장합니다.
사용 가능성
Idol은 ComfyUI 노드가 아닌 Python 코드로 배포됩니다. idol-sdk 패키지는 Python 3.10+, PyTorch 2.5+, CUDA를 지원하는 NVIDIA GPU가 필요하며 pip install -e .로 설치합니다. 약 3GB의 가중치와 두 인코더는 첫 실행 시 Hub에서 다운로드됩니다. 두 인코더 모두 게이트가 적용됩니다: facebook/dinov3-vith16plus-pretrain-lvd1689m는 Hub에서 승인이 필요하고, black-forest-labs/FLUX.2-dev는 VAE 용도로만 사용되므로 첫 생성 전에 hf auth login 또는 HF_TOKEN이 필요합니다.
단일 이미지는 명령줄에서 실행하며, 사진에는 --mode real을 사용합니다:
python -m idol.sample --image photo.jpg --mode real
python -m idol.sample --image renders/ --mode synthetic --out outputs아직 1차(공식) ComfyUI 통합은 없습니다. 커뮤니티 노드 Nynxz/ComfyUI-Idol이 동일한 가중치를 ComfyUI용으로 감싸고 있으며, HF Space 데모는 브라우저에서 모델을 실행합니다.
댓글
GitHub로 로그인하고 토론에 참여하세요.