본문으로 건너뛰기

© 2026 Molayo

Reddit요약2026. 05. 15. 08:03

단일 GPU에서 작동하는 오픈 소스 one-prompt-to-cinematic-reel 파이프라인 구축 — 캐릭터 키프레임을 위한 FLUX.2

요약

본 프로젝트는 단일 GPU 환경에서 영어 문장 하나만으로 캐릭터, 스토리, 음악, 보이스오버가 포함된 완성도 높은 영화적 릴(reel)을 생성하는 오픈 소스 파이프라인을 구축했습니다. 이 8단계의 엔드 투 엔드 시스템은 Qwen3.5-35B를 이용한 기획부터 FLUX.2 기반 키프레임 및 애니메이션, 그리고 전문적인 오디오/비전 크리틱 단계를 거칩니다. 성능 최적화 덕분에 AMD Instinct MI300X에서 720p 클립당 소요 시간이 크게 단축되었습니다.

핵심 포인트

  • 단일 프롬프트로 스토리텔링이 가능한 엔드-투-엔드 비디오 생성 파이프라인을 구현했습니다.
  • Qwen3.5-35B (Director Agent)가 샷 계획, 캐릭터 바이블 등 구조화된 JSON 출력을 담당합니다.
  • FLUX.2를 활용하여 참조 편집(reference editing) 기반의 일관성 있는 캐릭터 초상화와 키프레임을 생성하며 LoRA 학습이 필요 없습니다.
  • Wan2.2-I2V-A14B 및 FLF2V를 사용하여 컷 없는 연속적인 애니메이션 아크를 구현하고, 비전 크리틱으로 품질을 검증합니다.
  • AMD Instinct MI300X의 대용량 HBM3 메모리를 활용하여 여러 거대 모델(35B MoE, 14B I2V MoE 등)을 단일 장비에서 순차적으로 구동할 수 있습니다.

AMD x lablab 해커톤을 위해 이 프로젝트를 출시했습니다. 첨부된 영상은 이 파이프라인이 실제로 제작한 릴(reel) 중 하나입니다. 영어 문장 하나를 입력하면 캐릭터, 스토리, 음악, 보이스오버(voice-over)가 포함된 완성된 mp4 파일이 출력됩니다 (빠른 데모 영상이며, 최상의 품질은 아닙니다). 단일 AMD Instinct MI300X에서 엔드 투 엔드(end-to-end)로 약 45분이 소요됩니다. 모든 모델은 Apache 2.0 또는 MIT 라이선스입니다.

파이프라인 (8단계, 모두 동일 GPU에서 순차적으로 실행):

  1. 디렉터 에이전트 (Director Agent) - Qwen3.5-35B-A3B (vLLM + AITER MoE)가 한 문장으로부터 6개의 샷(shot)을 계획하며, 캐릭터 바이블(character bibles), 샷 프롬프트(shot prompts), 음악 브리프(music brief), 샷별 보이스오버 스크립트, 나레이션 언어가 포함된 구조화된 JSON을 반환합니다.
  2. 캐릭터 마스터 (Character masters) - FLUX.2 [klein]이 캐릭터당 하나의 정전(canonical) 초상화를 그립니다. LoRA 학습 단계는 없습니다 - 참조 편집(reference editing)을 통해 샷 전반에 걸쳐 정체성을 유지합니다.
  3. 샷별 키프레임 (Per-shot keyframes) - 참조 이미지를 사용하여 FLUX.2를 다시 사용합니다. 워밍업(warmup) 이후 키프레임당 1초 미만이 소요됩니다.
  4. 애니메이션 (Animation) - Wan2.2-I2V-A14B, 16 fps 기준 81프레임 네이티브. 컷이 없는(cut:false) 연속적인 아크(arcs)를 위해 FLF2V를 사용합니다 (N번째 샷의 마지막 프레임이 N+1번째 샷의 첫 번째 프레임을 고정함).
  5. 비전 크리틱 (Vision critic) - 10가지 구조화된 실패 레이블(캐릭터 드리프트, 엑스트라의 프레임 침범, 카메라 무시, 뒤로 걷기, 사물 모핑, 손/손가락 아티팩트, 의상 드리프트, 네온 글로우 누출, 스타일화된 AI 느낌, 무작위 친밀도)과 함께 Qwen3.5-35B를 다시 로드합니다. 품질이 낮은 클립은 타겟팅된 재시도 전략(다른 시드, FLF2V 앵커, 프롬프트 단순화)을 통해 다시 렌더링됩니다.
  6. 음악 (Music) - ACE-Step v1이 디렉터의 브리프로부터 30초 분량의 연주곡을 생성합니다.
  7. 나레이션 (Narration) - Kokoro-82M, 9개 언어 지원. 디렉터가 설정에 맞는 언어를 선택합니다 (도쿄→일본어, 파리→프랑스어, 뭄바이→힌디어).
  8. 믹스 (Mix) - adelay를 통해 샷별 보이스오버(vo)를 정렬하는 ffmpeg를 사용합니다.

Wan 2.2 세부 사항 (이 서브 섹션에서 중요하게 다룰 내용):

  • 1280×720 해상도 사용, 기본값인 640×640이 아님. 비용은 더 들지만 제작자들이 원하는 사양에 부합함
  • 24 fps에서 121 프레임으로 시도했을 때는 시간적 물결 현상(temporal rippling)이 발생함. Wan이 학습된 배포 데이터와 동일한 네이티브 설정인 16 fps에서 81 프레임으로 전환하여 문제를 해결함
  • flow_shift 값: 히어로 샷(hero shots)은 5, B-roll은 8로 설정 (상위 단계인 wan_i2v_A14B.py의 기본값)
  • 부정 프롬프트 (Negative prompt): shared_config.py에 있는 중국어로 학습된 부정 프롬프트 그대로 사용. umT5는 정확히 해당 토큰들에 대해 다국어 사전 학습(multilingual-pretrained)되었음. 영어 번역본은 눈에 띄게 성능이 떨어짐
  • 카메라 언어: 샷당 하나의 카메라 동사만 사용, 문장 첫 글자만 대문자로 작성, 문장 맨 앞에 배치 (예: "Tracking shot following from behind"). 한 프롬프트에 여러 동사를 넣으면 서로 상쇄됨
  • "cinematic"이라는 단어는 피할 것 - Wan의 스타일화 분기(stylization branch)를 트리거하여 AI 느낌을 줌. 대신 렌즈/필름 태그를 사용 (예: "Arri Alexa, anamorphic, 35mm film grain")

성능 최적화 작업:

  • ParaAttention FBCache (Wan2.2에서 손실 없이 2배 성능 향상)
  • transformer_2에 torch.compile 적용 (선택적 적용, 듀얼 전문가 MoE(dual-expert MoE) 구조로 인해 전체 컴파일은 불안정함) - 추가로 1.2배 향상
  • Qwen 디렉터(director)에 AITER MoE 가속 적용 (vLLM)
  • 엔드 투 엔드(End-to-end): MI300X에서 720p 클립당 25.9분 → 10.4분으로 단축

왜 단일 MI300X인가: 192 GB HBM3 덕분에 35B MoE, 4B diffusion, 14B I2V MoE, 3.5B music, 그리고 TTS가 동일한 카드를 순차적으로 공유할 수 있음. 24 GB 소비자용 GPU에서 동일한 스택을 구동하려면 4~5대의 장비를 서로 연결해야 함.

코드 (공개, Apache 2.0): https://github.com/bladedevoff/studiomi300

Hugging Face (문서화, 이 Space와 같은 형태 🙏): https://huggingface.co/spaces/lablab-ai-amd-developer-hackathon/studiomi300

HF Space의 라이브 데모는 인프라 복구 작업으로 인해 일시적으로 오프라인 상태입니다. 몇 시간 내에 복구될 예정입니다. 그동안 리포지토리(repo)에 있는 쇼케이스 릴(showcase reels)은 실제 파이프라인의 출력물이며, 사람이 재편집한 샷이 아닙니다.

댓글을 통해 AITER MoE 설정, FBCache 튜닝, FLF2V 앵커링(anchoring), 또는 비전 크리틱(vision critic)의 실패 분류학(failure taxonomy)에 대해 깊이 있게 논의할 준비가 되어 있습니다.

AI 자동 생성 콘텐츠

본 콘텐츠는 Reddit AI Engineering의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.

원문 바로가기
2

댓글

0