로컬 하드웨어에서 고품질 비디오 제작하기: Elsewhere Unfolds 워크플로우
요약
본 가이드는 로컬 모델만을 사용하여 고품질의 비디오 콘텐츠를 제작하는 워크플로우를 설명합니다. 단순히 샷을 넘어, 카메라 움직임과 환경적 움직임을 분리하고 짧은 모션 클립을 테스트하여 일관성을 확보하는 것이 핵심입니다. 이 재사용 가능한 파이프라인은 하나의 샷에서 시작해 전체 영화까지 확장되는 제작 루프를 제시합니다.
핵심 포인트
- 로컬 모델만으로도 고품질 비디오 제작 가능
- 카메라 움직임과 환경적 움직임을 분리하여 일관성 확보
- 하나의 샷 → 짧은 시퀀스 → 완전한 영화 순서로 확장하는 제작 루프 활용
- 직접 촬영/그림 등 로컬 리소스를 사용하여 하이브리드 성격 유지
로컬 모델만으로도 아름다운 장면을 만들 수 있습니다. 하지만 완성된 영화에는 더 많은 것이 필요합니다. 일관성을 유지하는 세계, 의도적인 움직임, 조화로운 음악, 그리고 감상할 만한 편집이 필요합니다. 이것이 저희가 Elsewhere Unfolds를 통해 개발해 온 제작 방식입니다.
초기 Elsewhere Unfolds의 컷은 매력적인 세계와 완성된 타임라인, 성공적인 렌더링을 보여주었습니다. 하지만 물은 거의 움직이지 않았고 구름들은 카메라가 지나갈 때도 제자리에 고정되어 있었습니다.
샷(shot)만으로는 만족할 수 없었습니다. 장면이 살아있다고 느껴지지 않았습니다.
그 수정 작업은 다음 패시지(passages)를 제작하는 방식 자체를 변화시켰습니다. 저희는 카메라 움직임과 환경적 움직임을 분리하고, 짧은 모션 클립을 정상 속도로 테스트했으며, 나머지 영화에 적용하기 전에 이를 확인했습니다. 이러한 개선은 더 명확한 창의적 요구사항과 더 작은 검토 루프(review loop) 덕분에 가능했습니다.
Elsewhere Unfolds는 기악 음악을 사용하여 판타지적이고 우주적인 비주얼 여정을 만듭니다. 이 가이드는 첫 번째 시각적 약속부터 완성된 마스터 및 세로 추출본에 이르기까지, 그 작업 뒤에 숨겨진 재사용 가능한 제작 방식을 설명합니다.
경계가 중요합니다: 저희가 확립한 모션, 음악, 편집, 그리고 마무리(finishing) 파이프라인은 로컬 리소스를 사용합니다. 일부 시작 이미지는 호스팅된 이미지 도구로 만들어졌습니다. 이 때문에 해당 제작물들은 하이브리드 성격을 띱니다. 완전히 로컬 버전으로 만들려면, 직접 촬영한 사진, 그림, 로컬 3D 렌더링 또는 본인의 장치에서 실행되는 모델의 이미지를 공급하세요. 아래 워크플로우는 이러한 로컬 이미지 파일로 시작합니다. 호스팅된 비디오 생성기는 필요하지 않습니다.
예시들은 저희 제작 레시피에 사용된 Wan 2.2 TI2V-5B와 ACE-Step v1 스택을 사용했습니다. 이는 구체적인 기준점일 뿐, 모든 최신 모델이 평가되었거나 이 설정들이 모든 GPU에 적합하다는 의미는 아닙니다.
제작 루프 (The production loop)
세 가지 크기로 작업합니다: 하나의 샷(one shot), 하나의 짧은 시퀀스(one short sequence), 그리고 완전한 영화입니다. 각 단계는 서로 다른 질문에 답합니다.
| 크기 | 학습할 내용 | 검토할 내용 |
|---|---|---|
| 하나의 네이티브 모션 테이크 | 의도한 동작이 작동하는가? | 기하학, 발, 움직임 방향, 원치 않는 물체 |
| ... | ||
![]() |
저희의 긴 에피소드는 8:01 형식을 사용했습니다. 이것은 편집상의 선택일 뿐, 권장되는 시작 과제는 아닙니다. 완성하고, 검사하고, 수정할 수 있는 30초짜리 영화부터 시작하세요. 약한 1분을 8분으로 늘리는 것은 단지 고칠 더 많은 약한 자료를 제공할 뿐입니다.
로컬에서 실행해야 하는 것들
클러스터가 필요하지 않습니다. 선택한 모델을 실행할 수 있는 장치, 가중치와 중간 파일을 저장할 공간, 그리고 결과를 편집하고 검토할 방법이 필요합니다.
| 작업 | 확립된 도구 또는 방법 | 보존할 출력 |
|---|---|---|
| 세계 및 샷 계획 | 작성된 브리프, 스토리보드, 참고 이미지 | 선택된 브리프 및 샷 목록 |
| ... | ||
| Wan이 문서화한 단일 GPU TI2V-5B 예시는 모델 오프로딩과 CPU의 텍스트 인코더를 사용하여 최소 24 GB의 VRAM을 목표로 합니다. 이것을 보편적인 최소값이나 성공의 보장으로 간주하지 말고, 해당 명령어에 대한 참고 자료로 취급하세요. CPU RAM, 여유 VRAM, 소프트웨어 버전 및 선택된 설정도 중요합니다. 대용량 체크포인트를 다운로드하기 전에 공식 Wan 설정 지침을 사용자의 하드웨어와 비교해 보세요. |
첫 프로젝트의 경우, 모션 생성과 음악 생성을 순차적으로 진행하세요. 배경 모델은 비디오 작업이 필요로 하는 메모리를 소모할 수 있습니다. GPU를 공유하는 경우, 이용 가능한 시간대를 협의하고; 공간을 만들기 위해 다른 사람의 작업을 중단시키지 마세요. 기다리는 작업은 받아들여진 테이크를 잃거나 다른 워크로드를 방해하는 것보다 저렴합니다.
초기 설치 및 모델 다운로드는 네트워크 접속이 필요합니다. 로컬 추론(Local inference)이란 생성 작업이 사용자의 장비에서 실행된다는 의미입니다. 이것이 전기, 저장 공간, 설정 시간 또는 재촬영을 무료로 만들어주지는 않습니다.
각 실행에 대해 모델 개정 버전(model revision), 소스 개정 버전(source revision), 환경, 설정 및 입력 이미지를 기록하세요. 시드(seed) 값은 실험을 반복하는 데 도움이 되지만, 서로 다른 소프트웨어와 하드웨어에서 동일한 출력을 보장하지는 않습니다.
1. 프롬프트를 작성하기 전에 경험을 글로 쓰기
유용한 간략 설명(brief)은 시청자가 무엇을 경험할지, 그리고 무엇이 변할지를 설명합니다. “아름다운 영화적 판타지, 초고화질”만으로는 그러한 작업을 수행할 수 없습니다.
다음은 단편 영화를 위한 예시적인 간략 설명입니다:
우리는 조용한 부두를 떠나는 떠다니는 정원에 탑승합니다. 한 정원사가 테라스를 가로지릅니다. 우리 뒤의 간격이 넓어지고, 목적지에 옅은 아치가 나타납니다. 구리색, 에메랄드색, 진주색이 시각적 팔레트를 유지합니다. 분위기는 차분한 기대감입니다. 마지막 이미지는 다른 장소를 소개하기보다는 여정을 해결합니다.
이를 몇 가지 고정된 결정으로 바꿉니다:
- 전제(The promise): 정원이 실제로 한 장소에서 다른 장소로 떠난다.
- 경로(The route): 탑승 테라스, 출발 전경, 기내 통로, 목적지.
- 연속성 앵커(The continuity anchors): 동일한 달의 위치, 건축 양식, 의상 및 이동 방향.
- 움직임(The movement): 나뭇잎과 물이 움직이고; 부두가 멀어지고; 한 사람이 읽을 수 있는 행동을 수행한다.
- 제외 사항(The exclusions): 군중, 복잡한 손 교환 또는 설명되지 않은 새로운 랜드마크는 없다.
썸네일과 첫 장면이 영화의 전제에 대해 일치하도록 만드세요. 포장이 움직이는 섬을 약속한다면, 그 섬과 그것의 출발을 초기에 확립하세요. 긴 로고 소개는 시청자가 선택한 것을 전달하기 전에 주의를 분산시킵니다.
Elsewhere의 경우, 무관한 아름다운 장소들의 모음보다 인식 가능한 경로가 더 중요합니다. 각 장면은 우리가 어디에 있는지, 무엇이 변했는지, 또는 어디로 가고 있는지를 알려주어야 합니다.
2. 다음 카메라 각도에서도 살아남을 수 있는 세계를 구축하기
샷의 승인된 시작 이미지를 **플레이트(plate)**라고 부릅니다. 재질, 빛, 랜드마크, 그리고 반복되는 인물들을 확립하는 소수의 레퍼런스 플레이트를 유지하세요.
애니메이션을 하기 전에 이 플레이트들을 함께 검토하세요. 컨택 시트(contact sheet)를 사용하면 불일치한 점들이 더 쉽게 보입니다: 두 번째 달이 나타나거나, 목적지가 여행자 뒤로 이동하거나, 다리가 같은 테라스와 연결되지 않는 경우 등이 있습니다.
저희는 제작 과정에서 이러한 종류의 문제들을 모두 발견했습니다. 한 역방향 뷰(reverse view)가 카메라가 이미 그 달 안에 있었음에도 불구하고 문 밖에 또 다른 완전한 달을 배치했습니다. 또 다른 레퍼런스 조합이 태양을 중복으로 만들었습니다. 매력적인 개별 이미지들만으로는 여전히 불가능한 경로를 설명할 수 있습니다.
간결한 샷 테이블(shot table)을 사용하세요:
| 샷 | 목적 | 액션 | 안정적으로 유지되어야 할 것 |
| :--- | :--- | :--- |
| 테라스 와이드 | 세계 확립 | 물이 잔물결치고 나뭇잎이 움직임 | 섬 실루엣, 달 위치 |
| ... |
간혹 모션 생성(motion generation)에 너무 많은 것을 요구하는 플레이트가 있다면 단순화하세요. 걷는 사람에게 보이는 발, 명확한 바닥, 그리고 앞에 빈 공간을 주세요. 그렇지 않으면 서로 경쟁할 액션들을 분리하세요. 가까운 손 교환, 회전하는 군중, 그리고 같은 5초 동안 움직이는 카메라를 사용하는 것은 실패의 여러 기회를 만듭니다.
이 전체 과정을 로컬로 유지하고 싶다면, 여기서 이미지 소스를 선택합니다. 로컬 3D 애플리케이션에서 렌더링한 장면이나 직접 그린 그림은 유효한 플레이트입니다. 로컬 이미지 모델도 또 다른 옵션이지만, 이는 별도의 도구로 자격을 갖춰야 합니다. 저희는 하나를 대체하는 것이 자동으로 저희가 호스팅하는 아트를 재현한다고 주장하지 않습니다.
3. 명확한 작업을 가진 하나의 모션 테이크 생성하기
이미지-투-비디오(image-to-video) 작업의 경우, 플레이트가 외관을 설명하게 하세요. 모션 프롬프트(motion prompt)를 사용하여 액션, 카메라, 그리고 안정적으로 유지되어야 할 것들을 설명하세요.
예시 프롬프트:
⚠️ [IMG:N] 형식 토큰은 이미지 placeholder 입니다. 번역하지 말고 원래 위치에 그대로 유지하세요.
[이번 청크 (이 부분만 번역하세요)]:
중앙에서 약간 넓은 측면 뷰로 고정합니다. 정원사 한 명이 평평한 돌길을 따라 왼쪽에서 오른쪽으로 자연스럽게 걸어갑니다. 양발 모두 보이도록 하고 땅에 닿아 있도록 합니다. 배경의 나뭇잎들이 부드럽게 움직입니다. 구리 난간, 건축물, 의상, 조명은 그대로 유지합니다. 추가 인물 없음, 카메라 오빗(orbit) 없음, 컷(cut) 없음.
업스트림 설치 지침을 따르고 TI2V-5B 체크포인트를 다운로드한 후, Wan 소스 디렉토리에서 실행된 결과물의 형태는 다음과 같습니다. 예시 입력 및 체크포인트 경로는 로컬 파일로 대체하십시오. 시도할 때마다 새로운 출력 파일 이름을 사용하세요.
python generate.py \
--task ti2v-5B \
--size '1280*704' \
...
이러한 제어는 업스트림 커맨드라인 인터페이스와 저희가 확립한 레시피를 따릅니다. 이는 최신 성능 벤치마크가 아닌 각색된 예시입니다. 호스팅되는 프롬프트 확장 서비스는 활성화되지 않습니다.
24 fps 기준으로, 121개의 인코딩된 프레임은 약 5.04초를 차지합니다. 정확히 5초 분량의 편집에는 120프레임이 사용됩니다. 생성된 파일의 실제 치수와 타이밍을 확인하세요: 저희 이미지 조건부(image-conditioned) 제작 출력물은 1280*704 크기 설정에도 불구하고 1248 × 704를 포함했습니다. 명령어만으로 출력 래스터를 추론하지 마십시오.
느리게 하거나, 확대하거나, 스티칭(stitching)하기 전에 원본 테이크를 시청하세요. 시작점, 중간 지점, 끝점을 확인한 다음 전체 클립을 재생하십시오. 발이 미끄러지는 현상, 변하는 얼굴, 휘어지는 난간, 갑작스러운 전경 인물, 그리고 잘못된 방향으로 움직이는 것을 찾아보세요. 액션에 문제가 있다면, 대규모 배치(batch)를 실행하기 전에 액션을 단순화하거나 플레이트(plate)를 수리하십시오.
4. 세 가지 종류의 움직임을 분리하여 처리하기
**카메라 움직임(Camera motion)**은 시점을 변경합니다. **환경적 움직임(Environmental motion)**은 물, 안개, 나뭇잎, 빛 및 기타 장면 요소를 변화시킵니다. **수행된 액션(Performed action)**은 사람이 걷거나, 돌리거나, 무언가를 하는 것입니다.
이미지는 폭포가 정지된 상태에서도 설득력 있는 카메라 움직임을 가질 수 있습니다. 장면은 여행자가 한 발짝도 떼지 않고 이동하는 동안 안개가 움직일 수도 있습니다. 각 종류를 개별적으로 검토해 보세요.
차분한 환경 샷의 경우, 여전히 자연스러워 보이는지 확인하면서 전진 슬로우 모션이 유용할 수 있습니다. 걷기나 다른 식별 가능한 인간 행동의 경우, 네이티브 속도(native speed)로 시작하세요. 인터폴레이션(interpolation)을 사용할 때 팔다리가 두 개가 되거나, 가장자리가 번지거나, 가려짐(occlusion)이 불안정해지는 현상이 없는지 확인하세요.
5초 분량의 생성된 움직임이 편집자가 반복하거나 슬로우 모션을 적용한다고 해서 20초 분량의 새로운 액션이 되는 것은 아닙니다. 리버스 루프(reverse loop)는 사람이 뒤로 걷는 모습을 만들 수 있고, 반복되는 파도나 새는 루프를 드러낼 수 있습니다. 만약 특정 구간에 더 많은 시간이 필요하다면, 별도의 테이크를 생성하거나 다른 각도로 자르거나, 해당 구간을 단축하세요.
이전 테이크의 마지막 프레임부터 이어지는 것은 움직임을 연결하는 데 도움이 될 수 있지만, 결함(defects)도 함께 전달할 수 있습니다. 다음 입력으로 사용하기 전에 그 프레임을 검사하세요. 기하학적 구조가 드리프트(drift)를 시작하기 시작하면 연속성을 멈추고 오류를 필름 전체에 걸쳐 확장하지 마세요.
5. 영화를 확장하기 전에 짧은 오프닝을 완성하라
실제 움직임, 대표적인 음악, 의도된 편집 리듬이 담긴 30초에서 60초 분량의 시범(proof)을 만드세요. 선택된 플레이트들의 슬라이드쇼로는 완성된 움직임이 작동하는지 알 수 없습니다.
시범에는 가장 어려운 부분이 포함되어야 합니다. 출발이 핵심 약속이라면, 출발 장면을 포함하세요. 반복적으로 등장하는 여행자가 세상에 거주감을 느끼게 한다면, 실제 걷는 장면을 포함하세요. 쉬운 풍경만으로는 나중에 더 까다로운 액션을 보장할 수 없습니다.
먼저 일시 정지하지 않고 시퀀스를 검토하세요. 말이 되나요? 첫 번째 샷이 약속을 전달하나요? 계속 보고 싶은 이유가 있나요? 그런 다음 기술적 결함과 개별적인 전환(transitions)을 살펴보세요.
시퀀스가 승인되면, 해당 파일과 설정을 그대로 유지하세요. 주변을 확장해 나가세요. 나중에 패시지를 생성할 때도 이미 작동했던 부분을 새로운 렌더가 조용히 대체하지 않도록, 승인된 오프닝은 보존됩니다.
간단한 프로젝트 레이아웃을 유지하세요:
film/
brief.md
shots.csv
...
AI 자동 생성 콘텐츠
본 콘텐츠는 Dev.to AI tag의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기
