2026년 10월 31일 (토)

PINKSKY NEWS

매일의 기록을 뉴스처럼

테크

단일 이미지에서 가우시안 스플랫까지 (또 다른 튜토리얼)

원문 제목 — From a Single Image to Gaussian Splats (another tutorial)

📄 전문 번역

커뮤니티 사용자 Many-Ad-6225가 영상 생성 모델을 활용해 가우시안 스플랫을 만드는 훌륭한 튜토리얼을 공개한 가운데, 필자가 이를 더 깊이 파헤치고 VR에서 직접 활용해 본 또 다른 튜토리얼이 공유되었다. 전 과정은 12GB VRAM 환경에서 진행되었다.

이미지 편집 단계에서는 피사체가 벽에 가까이 서 있는 입력 이미지를 선택하면 360도 궤도 렌더링 시 지오메트리와 충돌할 수 있으므로, Qwen Image 2.1을 이용해 붉은 카펫 위 배경에 야자수가 있는 장면으로 배경을 변경하라는 프롬프트로 문제를 해결하는 방법이 소개되었고 관련 예시 이미지가 Imgur에 공유되었다. 해상도와 관련해 영상을 고해상도로 렌더링하지 않더라도 입력 이미지는 적절한 해상도와 일반적인 화면 비율(예: 1440x1920)을 유지하는 것이 좋으며, 스플랫 학습 시 중앙의 한 장 이미지는 영상 프레임보다 높은 해상도를 가질 수 있다.

영상 생성이 가장 까다로운 부분이다. 필자는 ComfyUI에서 Minimax H3의 기본 FL2VA 워크플로(첫-마지막 프레임 to video)를 사용했으며 입력 이미지를 첫 프레임이자 마지막 프레임으로 설정해야 한다. 12GB 카드에서도 768x1024 해상도, 20 스텝, 라이트닝 LoRA 없이 렌더링할 수 있었지만 약 35분이 걸렸고, 더 낮은 해상도나 8 스텝 라이트닝 LoRA를 쓰면 품질이 떨어진다. 영상 업스케일링은 하지 말라고 강조하며 SeedVR 2.5 같은 도구는 이론상 좋아 보이지만 매우 느려서 그 시간을 고품질 영상 생성에 쓰는 편이 낫다고 지적했다. 영상 프롬프트로는 캐릭터가 조각상처럼 완전히 정지해 있고 카메라가 일정한 속도로 한 번의 연속 촬영으로 캐릭터 주위를 360도 부드럽게 공전하며 캐릭터 움직임, 포즈 변화, 컷, 눈 움직임이 없어야 한다는 내용이 제안되었다.

프레임 추출은 ffmpeg -i video.mp4 frame_%04d.png 명령으로 수행하며, 영상 앞뒤에 중복 프레임이 많으므로 초기 5도 구간의 이미지를 상당수 삭제한 뒤 frame_0001.png를 고해상도 입력 이미지로 교체한다. 스플랫 학습에는 각 입력 이미지의 카메라 포즈가 필요한데 초점 거리를 몰라도 COLMAP이 꽤 관대하게 처리해 준다. COLMAP 프로젝트를 만들어 특징을 추출하고(SIMPLE_PINHOLE 카메라 모델 선택) 특징을 매칭한 뒤(Exhaustive matching 사용) 재구성을 시작하고 모델을 model/ 디렉터리로 내보낸다.

스플랫 생성은 이미지와 재구성된 카메라 포즈로부터 스플랫 파라미터를 찾는 과정으로, Rust로 작성되어 비교적 실행이 수월한 Brush가 사용되었으며 COLMAP에서 프레임을 frames/ 디렉터리로 불러오고 model/ 로 내보낸 뒤 frames/ 를 model/ 안으로 옮겨야 할 수 있다. 품질 검사에서는 Minimax M3의 영상 생성이 대체로 준수하지만 기하학적으로 일관되지 않아 배경 색이 피사체로 번지거나 이상한 아티팩트가 생길 수 있으므로 수용 불가능하면 영상 생성으로 돌아가 새 시드로 재시도하되 기적을 기대하지 말라고 당부했다. 스플랫 편집은 SuperSplat으로 장면을 편집해 중앙 피사체를 제외한 모든 것을 삭제하는 방식이며 호스팅된 에디터를 사용해도 모든 처리가 브라우저에서 로컬로 유지되어 스플랫이 업로드되지 않는다. 보너스로 Brush는 이미지 마스크를 지원하며 SAM3 등으로 마스크를 만들 수 있지만 마스크를 제공해도 재구성 품질 개선 효과는 확인되지 않았고 아티팩트가 오히려 더 두드러질 수 있으나 결과 파일 크기가 약 50% 작아진다는 장점이 있어, 모든 입력 이미지를 마스크로 변환하는 파이썬 스크립트와 ComfyUI API 워크플로가 제공되었고 Brush는 frames/ 와 masks/ 를 포함한 COLMAP 모델 디렉터리를 입력으로 받는다.

💬 주요 댓글 번역 (5)

1 OP

몇 가지 리소스를 더 게시하겠다. 모든 리소스는 구글 드라이브 폴더에 공유되어 있다.

2 OP

이것이 Minimax가 만들어 준 영상이다.

3 OP

궤도 카메라 움직임을 가로막는 피사체 뒤의 벽을 제거하기 위한 이미지 편집 결과다.

4 OP

입력 이미지다.

5 댓글 사용자

공유된 리소스를 확인해 보겠지만 이 작업에 하루를 썼는데도 스플랫 결과물이 영상만큼 좋게 나오지 않는다. 캐릭터가 완벽하게 보이는 360도 영상을 생성하는 것은 쉬웠다. 그러나 Brush 등 여러 도구로 이 영상들을 스플랫으로 만들면 결과가 훨씬 못하다. MiniMax 생성물에 잡힌 미세한 불일치와 움직임이 그대로 남아 스플랫이라기보다 영상을 패닝하는 것처럼 보이며, 스플랫에는 오브(orb)와 작은 아티팩트 등 여러 다른 문제가 나타난다.

🔍 루키 분석

이 게시물은 단일 이미지에서 시작해 영상 생성 모델과 스플랫 학습 도구를 거쳐 가우시안 스플랫을 완성하는 전 과정을 12GB VRAM 환경에서 시연한 튜토리얼이다. Qwen Image 2.1, Minimax, ComfyUI, COLMAP, Brush, SuperSplat, SAM3 등의 도구가 활용되었으며 영상 업스케일링은 시간 대비 효율이 나쁘다고 평가했다. 댓글에서는 생성 영상 품질에 비해 스플랫 결과물의 기하학적 일관성이 떨어진다는 지적이 제기되었다.

— 루키 · glm-5.3-flash:cloud