상하이 자오퉁 대학의 등즈제(Deng Zhijie) 연구팀이 제안한 실시간 장편 영상 생성 방식으로, 생성·학습·실행 세 부분을 통합적으로 설계했습니다. 기존 블록 단위 자기회귀 방식은 하나의 블록을 완전히 디노이징(denoising)한 후 히스토리 캐시를 갱신해야 하므로, 단 한 단계의 디노이징에도 두 번의 순전파(forward pass)가 필요합니다. Wave Forcing은 블록 단위 인과적 주의(attention) 메커니즘을 활용하여, 앞선 블록이 완전히 디노이징되지 않은 상태에서도 뒤따르는 블록이 ‘더 깨끗한’ 이전 컨텍스트를 참조할 수 있게 합니다. 또한 디노이징 단계와 캐시 갱신 시점을 어긋나게 배치하여 여러 GPU에 복제된 전체 모델 인스턴스 간에 분산 처리함으로써, 파이프라인이 완전히 채워진 후에는 각 라운드마다 병렬 순전파로 하나의 블록을 출력합니다(저자들은 이를 1F1C라고 명명했습니다). 학습은 세 단계로 구성됩니다: 혼합 노이즈 디노이징, 운동(motion) 감독, 그리고 자체 생성된 히스토리를 이용한 인과적 적응. 런타임에서는 WaveRT가 Wave Parallelism을 통해 각 레이어의 K/V 값을 사전에 단방향으로 전송하여 통신 오버헤드를 주의 계산 뒤에 숨기고, VAE 디코딩을 파이프라인화합니다.
좋아요 106 · 코드 스타 수 96
이유
- 저자들은 Wan2.1-T2V-1.3B 모델에서, 4 단계 버전이 8개의 H200 GPU 위에서 DiT 기준 147.6 FPS, 엔드투엔드 기준 134.8 FPS를 달성했다고 보고하며, 이는 단일 GPU의 엔드투엔드 처리량 대비 7.07배에 해당합니다. README에는 1593 프레임(16 FPS에서 약 100초)을 디코딩하는 데 약 11.8초가 소요된다고 명시되어 있습니다.
- 품질 측면에서 저자들은 5 단계 버전이 Rolling Forcing과 전반적으로 동등한 수준이며, 짧은 영상과 긴 영상 모두에서 Dynamic Degree(운동 강도)가 더 높다고 주장합니다. 순수 DiT 비교 실험에서는 동일한 백엔드, 동일한 스텝 수, 동일한 GPU 수 조건에서 Wave Parallelism의 처리량이 Ulysses 또는 Ring 컨텍스트 병렬 방식 중 빠른 쪽 대비 최대 2.53배였습니다(1.3B–14B 크기의 6가지 모델 규모 대상).
- 이미 실행 가능: 추론 코드와 WaveRT 런타임은 Apache-2.0 라이선스이며, Hugging Face의 SJTU-DENG-Lab/WaveForcing-1.3B 저장소에는 4 단계 및 5 단계 BF16 체크포인트가 포함되어 있습니다(ModelScope에도 미러가 있음). 참고용 학습 코드도 공개되었습니다. Hugging Face 당일 좋아요 순위 2위(단순히 관심도를 나타냄).
사용법
- 다운로드:
hf download Wan-AI/Wan2.1-T2V-1.3B-Diffusers --local-dir ckpts/Wan2.1-T2V-1.3B-Diffusers를 실행한 후,hf download SJTU-DENG-Lab/WaveForcing-1.3B --local-dir ckpts/WaveForcing-1.3B를 실행합니다(텍스트 인코더와 VAE는 Wan2.1 기본 모델에서 로드됩니다). - 5 단계(5+2 레이아웃):
python -m wave\_rt --model-path ckpts/Wan2.1-T2V-1.3B-Diffusers --gen-ckpt ckpts/WaveForcing-1.3B/5step/model.safetensors --rf-step 5 --wp-size 6 --denoising-step-list 1000,800,600,400,200 --num-frames 24 --height 480 --width 832 --vae-stages 2 --cuda-visible-devices 0,1,2,3,4,5,6,7 --prompt "…"명령어를 사용하며, 출력물은outputs/quickstart/\<run-tag\>/video.mp4에 저장됩니다. - 4 단계(4+3 레이아웃, 즉 헤드라인 수치):
--gen-ckpt를4step/model.safetensors로 지정하고,--rf-step 4 --wp-size 5 --denoising-step-list 1000,750,500,250 --vae-stages 3으로 수정합니다. --num-frames는 잠재 공간(latent space)의 프레임 수이며, 반드시 3으로 나누어떨어져야 합니다. 399로 설정하면 장편 영상 벤치마크(디코딩 시 1593 프레임)에 해당합니다.
리스크
- 진입 장벽이 높음: README의 빠른 시작 가이드는 8개 GPU 파이프라인을 기준으로 작성되었으며, 환경은 Python 3.12, PyTorch 2.11.0+cu128, SGLang 확산 런타임 및 Hopper 아키텍처 GPU에서만 검증되었습니다. 단일 GPU나 소비자용 GPU에서의 실행 방법은 명시되어 있지 않습니다.
- 현재 1.3B 체크포인트만 제공되며, 해상도는 832×480입니다. README 표에 있는 14B 항목은 랜덤 초기화 가중치를 사용했으며, 시스템 확장성 테스트만을 위한 것이므로 생성 품질을 대표하지 않습니다.
- 참고용 학습 코드는 RollingForcing의 학술적 용도 라이선스를 따르며, 런타임의 Apache-2.0 라이선스와 다릅니다. FPS 및 품질 비교는 모두 저자들이 보고한 수치이며, 실제 생성된 영상을 직접 확인하지 않았으므로 화질에 대한 평가는 하지 않습니다.
편집: 여러 대의 H100 / H200 GPU를 보유하고 있으며, 실시간 장편 영상 스트리밍을 구현하거나 블록 단위 자기회귀 영상 병렬 처리를 연구하려는 팀에게 적합합니다. 단일 GPU 사용자는 프로젝트 페이지의 전체 구성 매트릭스를 먼저 확인한 후 결정하시기 바랍니다.
열기 · 코드 · Hugging Face 논문 페이지