StereoCrafter
Input으로 '영상'을 넣고 Depth이미지를 추출한다.
그리고 Input 으로 넣은 '영상'을 VR(Side-by-Side) 영상 기준으로 '좌안 이미지'로 설정하고
추출한 Depth이미지를 기반으로 '우안 이미지'를 만들어 낸다.
이 과정에서 Depth추출, Inpainting을 사용한다.
Tencent AI Lab에서 작년말에 개발된 프레임워크이며
기존 개발했던 Depth추출 프레임워크인 DepthCrafter를 같이 사용한다.
DepthCrafter를 사용해서 Depth를 추출하고
StereoCrafter를 사용해서 (Side-by-Side) 영상으로 만들어주는 방식.
https://github.com/TencentARC/StereoCrafter
GitHub - TencentARC/StereoCrafter: A framework to convert any 2D videos to immersive stereoscopic 3D
A framework to convert any 2D videos to immersive stereoscopic 3D - TencentARC/StereoCrafter
github.com
https://huggingface.co/TencentARC/StereoCrafter
TencentARC/StereoCrafter · Hugging Face
StereoCrafter: Diffusion-based Generation of Long and High-fidelity Stereoscopic 3D from Monocular Videos Sijie Zhao* Wenbo Hu* Xiaodong Cun* Yong Zhang† Xiaoyu Li† Zhe Kong Xiangjun Gao Muyao Niu Ying Shan * equal contributi
huggingface.co
https://github.com/stereocrafter/stereocrafter.github.io/releases
Releases · stereocrafter/stereocrafter.github.io
Contribute to stereocrafter/stereocrafter.github.io development by creating an account on GitHub.
github.com
github, huggingface가 있고 공식 홈페이지에 샘플 영상이 있다.
Colab에서 구동하기
Github에서 소개된 설치 방법대로 Colab에서 구동
그러나 Forward warp CUDA 모듈이 제대로 설치 안되는 문제가 발생.
ModuleNotFoundError: No module named 'forward_warp_cuda'
Colab에서 CUDA로 문제없이 구동할 수 있게 수정된 코드 공유.
무료버전으로 T4 GPU를 사용할 경우 메모리 부족 문제가 발생할 수 있어서
배치 사이즈를 줄이거나 영상 크기를 줄이거나 연산량을 줄여야할 수도 있음.
Colab 구동 코드
!git clone --recursive https://github.com/TencentARC/StereoCrafter
StereoCrafter 깃 복제
%cd /content/StereoCrafter
!pip install -r requirements.txt
#한 번 설치 후 세션 재시작
requirements.txt에서 필요한 패키지 버전 확인 후 설치
설치하다가 한번 세션 재시작하고 한번 더 실행
%cd /content/StereoCrafter/dependency/Forward-Warp
!chmod a+x install.sh
!./install.sh
Forward-warp 설치
%cd /content/StereoCrafter
!mkdir -p weights
!mkdir -p outputs
!apt-get install git-lfs -y
!git lfs install
/content/StereoCrafter 경로에 폴더 'weights'와 'outputs' 생성
git LFS 설치
!pip install -q huggingface_hub
from huggingface_hub import login, snapshot_download
login("허깅페이스 토큰키 여기에 입력") # 본인의 토큰
%cd /content/StereoCrafter/weights
# 모델 다운로드 (SVD)
print("SVD 모델 다운로드 중...")
snapshot_download(
repo_id="stabilityai/stable-video-diffusion-img2vid-xt-1-1",
local_dir="./stable-video-diffusion-img2vid-xt-1-1",
use_auth_token=True
)
# DepthCrafter 모델 다운로드
print("DepthCrafter 모델 다운로드 중...")
snapshot_download(
repo_id="tencent/DepthCrafter",
local_dir="./DepthCrafter",
use_auth_token=True
)
# StereoCrafter 모델 다운로드
print("StereoCrafter 모델 다운로드 중...")
snapshot_download(
repo_id="TencentARC/StereoCrafter",
local_dir="./StereoCrafter",
use_auth_token=True
)
여기서 사용할 Stable Video Diffusion 1.1 모델은 공개 모델이 아니라서 허깅 페이스에서 사용 요청을 신청해야 함.
https://huggingface.co/stabilityai/stable-video-diffusion-img2vid-xt-1-1
stabilityai/stable-video-diffusion-img2vid-xt-1-1 · Hugging Face
STABILITY AI COMMUNITY LICENSE AGREEMENT Last Updated: July 5, 2024 1. INTRODUCTION This Agreement applies to any individual person or entity (“You”, “Your” or “Licensee”) that uses or distributes any portion or element of the Stability AI Mate
huggingface.co
여기서 신청하고 요청 승락이 되어야함(몇분만이 승인 되긴 했지만 경우에 따라 시간이 걸릴 수 있다고 함)
승인 되고 나면 허깅 페이스 계정 'Access Tokens'로 가서
'Create new token'을 누르고 'Token Type'을 'Read'로 생성
그리고 나온 Token Key값을 복사해서 이 토큰키가 입력되어야지 '스테이블 비디오 디퓨전' 모델 다운로드 가능.
그리고 이어서 DepthCrafter와 StereoCrafter 다운로드
# 호환되는 transformers와 peft 버전 설치
!pip install transformers==4.31.0 peft==0.9.0
# Forward-Warp CUDA 확장 설치를 위한 수정된 setup.py 생성
modified_setup = """
from setuptools import setup
from torch.utils.cpp_extension import BuildExtension, CUDAExtension, CppExtension
import os
import torch
import torch.utils.cpp_extension
# CUDA 버전 불일치 확인을 비활성화
torch.utils.cpp_extension._check_cuda_version = lambda *args, **kwargs: None
# 실제 CUDA 경로 사용
cuda_path = "/usr/local/cuda"
setup(
name='forward_warp_cuda',
ext_modules=[
CUDAExtension('forward_warp_cuda', [
'forward_warp_cuda.cpp',
'forward_warp_cuda_kernel.cu',
], include_dirs=[cuda_path + '/include']),
],
cmdclass={
'build_ext': BuildExtension
}
)
"""
# 파일로 저장
%cd /content/StereoCrafter/dependency/Forward-Warp/Forward_Warp/cuda
with open('setup_modified.py', 'w') as f:
f.write(modified_setup)
# 수정된 setup으로 CUDA 확장 설치
!python setup_modified.py install
# 상위 디렉토리로 이동하여 Forward-Warp 패키지 설치
%cd /content/StereoCrafter/dependency/Forward-Warp
!python setup.py install
패키지와 CUDA 버전문제? 충돌 등으로 Forward Warp Module을 인식 못하는 문제가 있어서 위와 같이 코드를 실행해서 해결.
%cd /content/StereoCrafter
!python depth_splatting_inference.py \
--pre_trained_path ./weights/stable-video-diffusion-img2vid-xt-1-1 \
--unet_path ./weights/DepthCrafter \
--input_video_path ./source_video/InputVideo.mp4 \ #인풋 비디오 경로와 파일명 지정
--output_video_path ./outputs/DepthResultVideo.mp4 #뎁스 추출된 비디오 저장 경로와 파일명 지정
Depth 추출하는 모델 실행.
인풋 비디오 경로와 파일명을 지정하고
아웃풋 비디오 경로와 파일명 지정해야한다.
%cd /content/StereoCrafter
!python inpainting_inference.py \
--pre_trained_path ./weights/stable-video-diffusion-img2vid-xt-1-1 \
--unet_path ./weights/StereoCrafter \
--input_video_path ./outputs/DepthResultVideo.mp4 \ ##인풋 비디오 경로 및 파일명 지정
--save_dir ./outputs
인페인팅 및 Stereo형태로 비디오 변환 모델 실행
앞서 뎁스 추출이 된 비디오를 이 과정에서 인풋 비디오로 지정해야함
연산이 다 되면 저장 경로에 최종 비디오 저장 완료.
파라미터 변경
뎁스를 추론할때 사용하는 'depth_splatting_inference.py' 변경할 수 있는 매개변수 목록

인페인팅 추론할때 사용하는 'inpainting_inference.py' 변경할 수 있는 매개변수 목록


위 사진 처럼 이전 줄에 '\' 기호를 붙여주고 별도로 값을 지정할 매개변수와 값을 기입.
위 코드에서는 'max_disp' 최대 깊이값을 20으로 설정한 코드 예시
위에 처럼 colab에서 한줄 추가해서 파라미터를 수정할 수도 있지만,
만약 colab에서 코드 추가해서 파라미터 수정이 안되고 오류날 경우
직접 py파일의 값을 수정해서 저장소에 덮어씌워도 가능.
(inpainting_inference.py의 파라미터는 .py파일내부 교체로 작동 확인)
'작업 기록' 카테고리의 다른 글
| StreamDiffusion Conda 설치 과정 기록 (0) | 2025.10.26 |
|---|---|
| Google Magenta 로컬 설치 및 실행 방법 (5) | 2025.07.31 |
| 유니티 OpenCV에셋, Face Expression 작업 기록 (0) | 2023.05.24 |
| NDI,OSC 네트워크 이슈 (0) | 2022.07.14 |
| rsvfx에서 빌드 오류 (0) | 2022.03.14 |