ComfyUI + Wan 2.2 로컬 AI 영상 생성 — RTX PRO 6000 96GB 구축기
AI 영상 생성 API는 편리하지만 두 가지 벽이 있습니다. 초 단위로 쌓이는 비용과 상업적 이용 조건입니다. 홍보 클립, 제품 영상, SNS 콘텐츠를 계속 만들어야 한다면 얘기가 달라집니다. 그래서 워크스테이션 한 대(RTX PRO 6000 96GB)에 상업적 무제한 사용이 가능한 오픈소스 영상 모델 3종을 올려 로컬 영상 생성 파이프라인을 구축했습니다. 모델 선정부터 스토리지 설계, ComfyUI 구성, 셸 한 줄 자동화까지 — 구축 과정 전체를 정리합니다.
96GB
GPU VRAM (RTX PRO 6000)
3종
영상 모델 (총 347GB)
~195초
480p 초안 1편 생성
0원
생성 1편당 API 비용
왜 로컬 영상 생성인가
목표는 단순했습니다. 대화형 AI(Claude Code)에게 “이런 영상 만들어줘”라고 요청하면, 로컬 GPU가 오픈소스 모델로 영상을 뽑아내는 것. 클라우드 API 대비 로컬 구축의 장점은 세 가지입니다.
비용 상한이 있다
전기요금 외에는 한계 비용이 0원. 초안을 100번 다시 뽑아도 부담이 없어, 시행착오가 많은 영상 작업에 특히 유리합니다.
상업적 이용이 자유롭다
Apache 2.0 모델이면 생성물을 제품·광고·클라이언트 납품에 제한 없이 사용할 수 있습니다. API 서비스는 약관 변경 리스크가 항상 따라다닙니다.
파이프라인에 통합된다
HTTP API로 서빙하니 스크립트·에이전트·배치 작업 어디에나 끼워 넣을 수 있습니다. 프롬프트 목록 파일 하나로 야간 배치 생성도 가능합니다.
전체 아키텍처는 간단합니다. ComfyUI를 API 서버로 상시 구동하고, 그 위에 용도별 모델 3종을 올렸습니다.
사용자/Claude ──HTTP API──▶ ComfyUI 서버 (localhost:8188)
│
┌───────────┼───────────┐
▼ ▼ ▼
Wan 2.2 LTX 2.3 MOVA
(포토리얼) (4K/오디오) (립싱크)
│ │ │
└───────────┼───────────┘
▼
후처리 (FFmpeg)
▼
출력 디렉토리모델 선정 — 라이선스가 절반이다
영상 모델 선정에서 품질만큼 중요한 것이 라이선스였습니다. 벤치마크 점수가 좋아도 상업적 이용에 제한이 걸리면 탈락입니다. 실제로 유력 후보 몇 개가 라이선스에서 걸러졌습니다.
라이선스로 탈락한 모델들
- ✗HunyuanVideo 1.5 — 품질은 우수하지만 라이선스에 지역 제한이 있어 한국에서 상업적 사용 불가. 의외로 많이 놓치는 부분입니다.
- ✗CogVideoX 5B — 월 100만 방문자 제한 조항.
- ✗CogVideoX 2B — 라이선스는 자유롭지만 품질 부족 (VBench 79.6).
최종 선정은 용도가 겹치지 않는 3종입니다. Wan 2.2가 범용 주력, LTX 2.3이 4K·오디오 담당, MOVA가 립싱크 담당입니다.
| 항목 | Wan 2.2 (14B) | LTX 2.3 (19B) | MOVA (32B MoE) |
|---|---|---|---|
| 포토리얼리즘 | ★★★★★ | ★★★★ | ★★★★ |
| 모션 자연스러움 | ★★★★½ | ★★★★ | ★★★★ |
| 최대 해상도 | 1080p | 4K | 720p |
| 오디오 생성 | ✗ | ✓ | ✓ |
| 립싱크 | ✗ | ✗ | ✓ |
| 라이선스 | Apache 2.0 | Open Weights | Apache 2.0 |
| 생태계/커뮤니티 | 가장 큼 | 보통 | 신생 |
Wan 2.2 — 범용 주력 (Alibaba, Apache 2.0)
오픈소스 중 포토리얼리즘 최상급. 인물 표현(얼굴·피부·머리카락)이 특히 강하고, VBench 82.8. 전작 대비 학습 데이터를 영상 +83%, 이미지 +65% 확대했고 기존 Wan 2.1 LoRA와 100% 호환됩니다. 제품 홍보, 캐릭터 장면, SNS 콘텐츠 등 대부분의 작업이 여기서 끝납니다.
LTX 2.3 — 4K와 네이티브 오디오 (Lightricks)
오픈소스 중 유일한 4K/50FPS 지원. 영상과 오디오를 한 번의 추론으로 동시 생성하는 듀얼 스트림 아키텍처가 특징입니다. 라이선스는 연매출 1,000만 달러 미만 무료인 Open Weights — 중소 규모에선 사실상 자유입니다.
MOVA — 립싱크 특화 (OpenMOSS, Apache 2.0)
영상+음성을 단일 추론 패스로 동시 생성하며 한국어 포함 다국어 립싱크를 지원합니다. 나레이션, 대화 장면용. 32B MoE라 VRAM을 40~50GB 요구하지만 SageAttention으로 절반가량 절약할 수 있습니다.
하드웨어와 스토리지 전략
구축에 사용한 하드웨어는 RTX PRO 6000 Blackwell(96GB VRAM), Ryzen 9 9950X3D(16코어), DDR5 96GB 구성의 워크스테이션 한 대입니다. 핵심은 GPU보다 스토리지 설계였습니다. 영상 모델은 LLM보다 훨씬 큽니다. 3종 합계가 347GB에 달합니다.
| 모델 파일 | 실측 크기 |
|---|---|
| Wan 2.2 14B (T2V+I2V+VAE+TextEnc) | 125GB |
| LTX 2.3 19B (bf16+VAE+Audio+TextEnc) | 141GB |
| MOVA 720p (32B MoE) | 73GB |
| ComfyUI + 커스텀 노드 + venv | ~8GB |
| 합계 | ~347GB |
디스크는 역할별로 분리했습니다. 모델 가중치·엔진·캐시는 Intel Optane NVMe에, 생성된 영상과 프로젝트 파일은 일반 NVMe(Samsung 980 PRO)에 둡니다. 이유는 I/O 특성입니다. 순차 읽기는 두 디스크가 비슷하지만(2,568 vs 2,613 MB/s), 랜덤 읽기 IOPS는 Optane이 약 4배(81,954 vs 19,687), 지연은 4분의 1 수준(390µs vs 1,624µs)입니다. 모델 스왑과 추론 중 임시 파일 처리는 랜덤 I/O가 지배하므로 Optane이 제 몫을 합니다.
💡 모델별 디렉토리를 완전히 격리(wan22/, ltx23/, mova/ 각각 output·input· workflows·scripts·prompts)해 두면, 나중에 모델을 추가하거나 제거할 때 다른 모델 환경을 건드리지 않아도 됩니다. 사소해 보이지만 운영 반년 뒤에 효과를 발휘하는 설계입니다.
ComfyUI 구성 — 커스텀 노드 4종
엔진은 ComfyUI를 선택했습니다. 노드 그래프 방식이라 처음엔 낯설지만, API 서버 모드가 있어 자동화에 가장 유리하고, 영상 생성 생태계(커스텀 노드)가 압도적으로 큽니다. 서버 실행은 한 줄입니다.
python main.py --listen 0.0.0.0 --port 8188
모델 가중치는 ComfyUI 설치 폴더 밖(전용 모델 디스크)에 두고 extra_model_paths.yaml로 연결했습니다. ComfyUI를 재설치해도 160GB 모델을 다시 받을 일이 없습니다. 설치한 커스텀 노드는 4종입니다.
| 플러그인 | 용도 |
|---|---|
| ComfyUI-WanVideoWrapper | Wan 2.2 고급 노드 130+ (Animate/Control/Inpaint) |
| ComfyUI-VideoHelperSuite | 영상 입출력, 프레임 변환, 미리보기 (필수) |
| ComfyUI-SeedVR2_VideoUpscaler | AI 영상 업스케일 (2x, 시간적 일관성 유지) |
| ComfyUI-Frame-Interpolation | RIFE 프레임 보간 (16fps → 32/48fps) |
LTX 2.3은 ComfyUI가 네이티브 지원해서 커스텀 노드가 필요 없고, MOVA는 전용 노드 (comfyui-mova)를 별도로 설치합니다. 환경은 Python 3.12 + PyTorch 2.10(cu128) + CUDA 13.1 조합으로 맞췄습니다.
Wan 2.2의 MoE 구조 이해하기
Wan 2.2 14B는 특이한 MoE(Mixture of Experts) 구조입니다. 전체 27B 파라미터 중 추론 시 14B만 활성화되는데, LLM의 토큰 단위 라우팅과 달리 디노이징 단계에 따라 모델 자체가 교체됩니다.
High Noise 모델 — 생성 초반
노이즈가 많은 초기 단계에서 전체 구도, 움직임의 큰 흐름을 잡습니다.
Low Noise 모델 — 생성 후반
후반부에 디테일(질감, 얼굴, 경계선)을 정제합니다. ComfyUI에서는 KSamplerAdvanced 2개를 직렬 연결해 스텝의 절반 지점에서 모델을 교체합니다. 20스텝이면 0~10은 high, 10~20은 low.
그래서 T2V·I2V 각각 high/low 쌍이 필요해 diffusion 모델만 27GB × 4개 = 108GB를 차지합니다. 구축하며 걸렸던 함정 두 가지도 기록해 둡니다.
- ⚠VAE 혼동 주의 — T2V 워크플로우는 반드시
wan_2.1_vae를 써야 합니다. 이름만 보고wan2.2_vae를 연결하면 안 됩니다(그건 48채널 I2V 전용). 같은 실수를 하는 사례가 커뮤니티에도 많습니다. - ⚠텍스트 인코더는 fp8이면 충분 — UMT5-XXL fp16(10.6GB) 대신 fp8(6.3GB)을 써도 품질 차이가 체감되지 않습니다. VRAM 4GB 절약.
프리셋 설계와 생성 성능
매번 해상도·프레임·스텝을 조합하는 대신 용도별 프리셋을 만들어 뒀습니다. 영상 생성은 이미지보다 파라미터 공간이 넓어서, 프리셋이 없으면 매번 같은 고민을 반복하게 됩니다.
| 프리셋 | 해상도 | 프레임 | 스텝 | 길이 | 용도 |
|---|---|---|---|---|---|
| fast | 854x480 | 57 | 12 | ~3.5초 | 빠른 초안/미리보기 |
| default | 1280x720 | 81 | 20 | ~5초 | 범용 |
| hq | 1280x720 | 81 | 30 | ~5초 | 고품질 최종본 |
| short | 1280x720 | 41 | 20 | ~2.5초 | 짧은 클립 |
| long | 1280x720 | 121 | 25 | ~7.5초 | 긴 영상 |
| portrait | 720x1280 | 81 | 20 | ~5초 | 세로 (SNS) |
실측 성능은 fast 프리셋(854x480, 57프레임, 12스텝) 기준 약 195초입니다. 720p 기본 프리셋은 5~8분대. 생성 중 VRAM 사용량은 약 67GB(96GB 중 70%)로, 24GB급 GPU에서는 양자화·오프로딩 없이는 돌리기 어려운 모델을 여유 있게 굴릴 수 있다는 것이 96GB의 실질적 가치였습니다.
더 빠른 초안이 필요하면 LightX2V 4스텝 LoRA가 있습니다. 일반 20스텝 대비 약 5배 빠르게 생성되고 품질은 조금 낮아집니다. 단, high_noise·low_noise 두 LoRA를 반드시 쌍으로 적용해야 합니다 — 하나만 걸면 결과가 무너집니다.
💡 최종본 파이프라인: 생성(720p/16fps) → SeedVR2 업스케일(2x) → RIFE 프레임 보간(32~48fps) → FFmpeg 인코딩(H.264, crf 18). 순서가 중요합니다 — 프레임 수가 적을 때 업스케일하고, 그 다음 보간하는 쪽이 연산량이 훨씬 적습니다.
셸 한 줄로 영상 생성 — API 자동화
ComfyUI의 진짜 강점은 웹 UI가 아니라 API입니다. 워크플로우를 “Save (API Format)”으로 JSON 저장해 두면, /prompt 엔드포인트에 POST하는 것만으로 생성이 큐에 들어갑니다. 이를 감싼 Python 스크립트를 만들어 셸 한 줄로 쓰고 있습니다.
# 텍스트 → 영상 (서버 자동 시작 포함) python wan22_generate.py "A cat sleeping on a sunny windowsill, warm light" # 고품질 모드 / 빠른 초안 / 세로(SNS) python wan22_generate.py "..." --preset hq python wan22_generate.py "..." --fast python wan22_generate.py "..." --preset portrait # 이미지 → 영상 python generate_video.py --model wan22 --mode i2v \ --image reference.png --prompt "The character starts walking forward" # 프롬프트 목록 파일로 배치 생성 python generate_video.py --model wan22 --batch prompts.txt
진행 상황은 WebSocket(/ws)으로 받아 스텝 단위 진행률을 표시합니다. 이 구조의 최종 효과는 대화형 AI 에이전트가 영상 생성을 도구처럼 호출할 수 있다는 것입니다. “제품 소개 영상 초안 3개 뽑아줘”라고 하면 에이전트가 프롬프트를 다듬어 배치를 돌리는 흐름이 실제로 동작합니다.
프롬프트 작성 노하우
영상 프롬프트는 이미지 프롬프트와 문법이 다릅니다. 커뮤니티 베스트 프랙티스와 시행착오를 종합하면 구조는 이렇습니다.
[주체 + 외형] + [행동/동작] + [장소/배경] + [조명] + [카메라 워크] + [스타일] 예: A young woman in a flowing white dress walks along a sandy beach, golden hour sunset lighting, gentle ocean waves in background, slow dolly forward, cinematic composition, shot on 35mm film, shallow depth of field, warm color grading
카메라 워크를 명시한다
slow dolly in/out, pan left, gentle orbit, tracking shot, static camera, handheld — 카메라 지시어가 있고 없고의 결과물 차이가 큽니다.
한 씬에 동작은 하나만
여러 동작을 욕심내면 왜곡이 생깁니다. 모션은 미묘하게 유지하는 쪽이 안정적입니다.
품질 키워드는 마지막에
cinematic, film grain, shallow depth of field, professional lighting 등을 뒤에 붙입니다.
부정 프롬프트는 기본 세트를 고정
blurry, distorted, watermark, bad anatomy, extra fingers, JPEG artifacts 등은 스크립트에 기본값으로 박아 두고 매번 신경 쓰지 않습니다.
결론 — 로컬 영상 생성, 지금 할만한가
결론부터 말하면, 96GB급 GPU가 있다면 지금이 적기입니다. 1년 전만 해도 오픈소스 영상 모델은 “신기한 데모” 수준이었지만, Wan 2.2 세대부터는 상업 콘텐츠에 쓸 수 있는 품질이 나옵니다. 구축하며 얻은 교훈을 정리합니다.
- ✓라이선스 검토를 벤치마크보다 먼저 하라 — 품질 1위 후보가 한국 상업 사용 불가로 탈락했다
- ✓영상 모델은 LLM보다 디스크를 훨씬 많이 먹는다 — 3종 347GB, 스토리지 설계가 먼저다
- ✓모델별 디렉토리 격리와 프리셋 정의가 반년 뒤의 운영 비용을 줄인다
- ✓ComfyUI는 UI가 아니라 API 서버로 쓸 때 진가가 나온다 — 에이전트의 도구가 된다
- ✓VAE 버전, LoRA 쌍 적용 같은 함정은 문서화해 두지 않으면 반드시 다시 밟는다
다음 단계는 LTX 2.3의 4K+오디오 파이프라인과 MOVA 립싱크 실전 투입입니다. 운영하며 쌓이는 실측 데이터는 후속 글로 공유하겠습니다.
함께 읽으면 좋은 글
본 구축기는 2026년 3월 설치 기준이며 모델 크기·성능 수치는 당시 실측치입니다. RTX PRO 6000 Blackwell(96GB), Python 3.12, PyTorch 2.10(cu128), CUDA 13.1 환경 기준으로, 모델 버전과 하드웨어에 따라 결과가 달라질 수 있습니다. 라이선스 조건은 게시 시점 기준이므로 상업적 이용 전 반드시 원문 라이선스를 재확인하세요. 본 콘텐츠의 비상업적 공유는 자유이나, 상업적 이용 시 문의 페이지를 통해 연락 바랍니다.
관련 글
© 2026 TreeRU. All rights reserved.
본 콘텐츠의 저작권은 TreeRU에 있으며, 출처를 밝히지 않은 무단 전재 및 재배포를 금합니다. 인용 시 출처(treeru.com)를 반드시 명시해 주세요.