Stable Video Diffusion (SVD) 설치 및 실행 코드입니다.

2025. 12. 17. 16:05AI 이미지 만들기/AI 프로그램 관련정보

Stable Video Diffusion (SVD) 설치 및 실행 코드입니다.

이전의 오류들을 최대한 방지하기 위해 설치 순서를 세심하게 조절하고, 메모리 최적화까지 반영했습니다.


🚨 시작 전 가장 중요한 단계 (필수!)

Fooocus를 끄고 이 코드를 실행해야 합니다. Fooocus는 GPU 메모리를 많이 사용하기 때문에, 동영상 생성기와 동시에 켜면 '메모리 부족'으로 에러가 납니다.

  1. 코랩 상단 메뉴 [런타임] 클릭
  2. [런타임 연결 해제 및 삭제] (또는 '런타임 초기화') 클릭
  3. [네] 클릭
  4. 오른쪽 상단에 'T4 GPU' 또는 **'RAM/디스크'**가 다시 뜨면, 아래 코드를 실행하세요.

🎬 Fooocus 이미지 → 동영상 변환기 (SVD) 설치 & 실행 코드

이 코드는 SVD를 설치하고 실행하며, 외부 접속 비밀번호(IP)까지 자동으로 확인해줍니다.

Python
 
# @title 🚀 Fooocus 이미지 동영상 변환기 (SVD-XT) 설치 및 실행
import os
import urllib.request
import subprocess
import sys
from IPython.display import clear_output

# ==========================================================
# 1. 설치 도구 (Pip) 및 환경 최적화
# ==========================================================
print("🔧 1/4. 환경 정리 및 필수 도구 설치 중... (약 2분 소요)")

# 기존 충돌 가능성 있는 패키지 제거
subprocess.run([sys.executable, "-m", "pip", "uninstall", "-y", "numpy", "torch", "gradio"], capture_output=True)

# 최신 PyTorch (GPU용) 재설치 (최신 Colab 환경과 SVD 호환성 보장)
subprocess.run([sys.executable, "-m", "pip", "install", "torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu118"], capture_output=True)

# 필수 SVD 의존성 설치
subprocess.run([sys.executable, "-m", "pip", "install", "einops accelerate transformers omegaconf streamlit pyngrok"], capture_output=True)

# SVD 코드 저장소 클론 (이미 있으면 건너뛰기)
if not os.path.exists('/content/generative-models'):
    !git clone https://github.com/Stability-AI/generative-models.git
    %cd /content/generative-models
    # SVD 전용 요구사항 설치 (verbose 출력 억제)
    !pip install -r requirements/pt2.txt > /dev/null 2>&1
    !pip install . > /dev/null 2>&1
else:
    %cd /content/generative-models
    print("    (generative-models 폴더가 이미 존재합니다. 업데이트 시도...)")
    !git pull origin main > /dev/null 2>&1 # 최신 버전으로 업데이트
    !pip install -r requirements/pt2.txt > /dev/null 2>&1
    !pip install . > /dev/null 2>&1

clear_output()
print("✅ 1/4. 설치 환경 준비 완료!")

# ==========================================================
# 2. SVD 모델 다운로드
# ==========================================================
print("📥 2/4. Stable Video Diffusion 모델 다운로드 중... (약 3분 소요)")
model_path = 'checkpoints/svd_xt.safetensors'
if not os.path.exists('checkpoints'):
    os.makedirs('checkpoints')

if not os.path.exists(model_path):
    # SVD-XT 모델 (더 좋은 품질과 긴 영상)
    model_url = "https://huggingface.co/stabilityai/stable-video-diffusion-img2vid-xt/resolve/main/svd_xt.safetensors"
    subprocess.run(["wget", "-q", "-O", model_path, model_url], capture_output=True)
print("✅ 2/4. SVD 모델 다운로드 완료!")


# ==========================================================
# 3. 외부 접속 IP (비밀번호) 확인
# ==========================================================
print("\n🔑 3/4. 외부 접속 비밀번호(IP 주소)를 확인합니다.")
try:
    external_ip = urllib.request.urlopen('https://ipv4.icanhazip.com').read().decode('utf8').strip()
    print(f"👇 아래 숫자를 복사해두세요! (나중에 링크 클릭 후 입력할 비밀번호입니다)")
    print(f"   비밀번호(IP): \033[1;31m{external_ip}\033[0m") # 빨간색 굵은 글씨로 강조
    print(f"👆 위 숫자를 복사하세요!\n")
except Exception as e:
    external_ip = "확인 불가"
    print(f"⚠️ IP 확인 실패: {e}. 나중에 링크 접속 시 비밀번호 칸이 나오면 빈칸으로 시도해보세요.")


# ==========================================================
# 4. SVD WebUI 실행
# ==========================================================
print("🚀 4/4. SVD 동영상 변환 앱을 실행합니다! 잠시 후 아래 링크가 나옵니다.")
print(f"   ⚠️ 링크 클릭 후, \033[1;31m비밀번호({external_ip})\033[0m를 입력해주세요.\n")
# Streamlit 앱을 백그라운드에서 실행하고 localtunnel을 통해 외부 접속 링크 생성
!nohup streamlit run scripts/demo/video_sampling.py --server.port 8501 --server.enableCORS false & npx localtunnel --port 8501

🕹️ 사용 방법 (이것만 기억하세요!)

  1. 코드 실행: 위 코드를 실행합니다.
  2. 비밀번호(IP) 복사: 실행 결과에 빨간색 굵은 글씨로 표시되는 비밀번호(IP): 34.xxx.xxx.xxx 숫자를 미리 복사해 둡니다.
  3. 링크 클릭: 잠시 후 코드 맨 아래에 your url is: https://...gradio.live 또는 your url is: https://...loca.lt 같은 파란색 링크가 나옵니다. 이 링크를 클릭하세요.
  4. 비밀번호 입력: 새 창이 열리면 'Tunnel Password' 또는 'Endpoint IP' 칸에 아까 복사한 IP 주소(숫자)를 붙여넣고 [Click to Submit] 버튼을 누릅니다.
  5. 이미지 업로드: 화면이 열리면 'Upload Image' 칸에 Fooocus로 만들었던 한소희님 이미지를 드래그하여 올립니다.
  6. 영상 생성: 'Generate' 버튼을 클릭하면 약 1~2분 후 4초짜리 영상이 생성됩니다.

이제 한소희님의 아름다운 이미지가 움직이는 영상으로 탄생할 거예요! 궁금한 점이나 문제가 발생하면 언제든지 다시 질문해주세요.