Hunyuan 비디오는 놀라움 품질의 비디오를 생성할 수 있는, 자신의 PC에서 돌릴 수 있는 새로운 오픈소스 비디오 모델입니다. 텍스트 프롬프트를 입력하면 몇 분만에 짧은 비디오 클립을 생성할 수 있습니다. 비디오에 B-roll(보조 영상)을 삽입하고자 하는 유튜버와 같은 크리에이터에게 필수라고 할 수 있을 것 같습니다.
아래는 Hunyuan Video의 예입니다.
이 글에서는 Hunyuan Video를 사용하여, Text-to-Video 및 Image-to-Video 모드로 비디오를 생성하는 방법을 설명합니다.
소프트웨어
이 글에서는 스테이블 디퓨전용 GUI중에서도 제가 제일 좋아하는 ComfyUI를 사용합니다. ComfyUI가 처음이시라면, 설치 및 기본 사용방법 및 초보가이드를 확인하시기 바랍니다.
Hunyuan Video의 원리
Tencent의 Hunyuan Video는 text-to-video 생성을 위한 오픈소프 AI 모델로서, 다음과 같은 특징이 있습니다.
- 대형 모델 : Mochi(100억), CogVideoX(50억), LTX(20억)에 비해 매개변수의 수가 130억에 달하는 대형 모델입니다.
- 이미지/비디오 생성 통합 : Hunyuan은 "듀얼 스트림 - 싱글 스트림" 하이브리드 방식의 트랜스포머 모델 디자인을 채택하였습니다. 듀얼 스트림 단계에서는 비디오와 텍스트 토큰을 독립적으로 처리하여, 서로 간섭 없이 변조 메카니즘을 학습할 수 있습니다. 단일 스트림 단계에서는 비디오와 텍스트 토큰을 결합하여 정보를 융합함으로써, 이미지와 비디오 생성 모두를 향상시킵니다.
- 멀티모달 LLM 텍스트 인코더: 다른 비디오 모델과는 달리, Hunyuan은 이미지-텍스트 정렬 품질을 높이기 위해 비주얼 LLM을 텍스트 인코더로 사용합니다.
- 3D VAE: Hunyuan은 CausalConv3D를 사용하여 비디오와 이미지를 잠상 공간으로 압축합니다 이러한 압축으로 자원 요구사항을 상당히 줄이면서도 비디오의 인과관계를 유지합니다.
- 프롬프트 재작성 메커니즘 : 사용자가 제공한 프롬프트는 매우 다양하기 마련인데, 이러한 가변성을 처리하기 위해 Hunyuan Video에서는 Hunyuan Large 모델에서 프롬프트를 미세조정하여 재작성하는 모델을 포함하고 있습니다. 여기에는 일반(Normal) 모드 및 전문가(Master) 모드가 있습니다.
- 카메라 움직임 : Hunyuan 모델은 다양한 카메라 움직음을 사용하여 학습되었습니다. zoom in(확대)/ zoom out(축소)/ pan up(위로 이동)/ pan down(아래로 이동)/ pan left(좌로 이동)/ pan right(우로 이동)/ tilt up(위로 기울이기)/ tilt down(아래로 기울이기)/ tilt left(좌로 기울이기)/ tilt right(우로 기울이기)/ around left(왼쪽으로 돌리기)/ around right(오른쪽으로 돌리기)/ static shot(고정 촬영)/ handheld shot(핸드헬드 촬영) 등을 사용할 수 있습니다.
생성 시간
Hunyuan Video를 사용하여 848x480(480p) 73 프레임을 생성하는데 걸리는 시간은 아래와 같습니다.
- RTX3070에서 13.8
- RTX4090에서 4.5 분
- Google Colab(L4 런타임)에서 11분
하드웨어 요구사항
이 워크플로를 돌리려면 NVidia GPU카드가 필요합니다. 최소 8GB VRAM에서도 Hunyuan Video를 돌릴 수 있다고 합니다.
Hunyuan Text-to-Video 워크플로
아래의 워크플로는 Hunyuan 비디오 모델을 사용해 480p (848x480 픽셀) 비디오를 생성하여 MP4 파일로 저장합니다.
0 단계: ComfyUI 업데이트
이 워크플로를 사용하려면 최신 버전의 ComfyUI가 설치되어 있어야 합니다. 이 글에 있는 내용에 따라 업데이트 하시면 됩니다.
1 단계: 비디오 모델 다운로드
Hunyuan video text-to-video 모델을 다운로드 받아 ComfyUI\models\diffusion_models 폴더에 넣어줍니다.
2 단계: 텍스트 인코더 다운로드
clip_l.safetensors 와 llava_llama3_fp8_scaled.safetensors 를 다운로드 받아, ComfyUI\models\text_encoders 폴더에 넣어 줍니다.
3 단계: VAE 다운로드
hunyuan_video_vae_bf16.safetensors 파일을 다운로드 받아 ComfyUI\models\vae에 넣어줍니다.
4 단계: 워크플로 불러오기
좌측 상단의 Workflow->Open 메뉴를 선택해 아래의 JSON 파일을 ComfyUI에 불러옵니다.
이 워크플로는 대부분 그냥 그대로 사용할 수 있지만, 때때로 오류가 발생할 수 있습니다. 그러한 경우, 다음과 같은 작업이 필요할 수 있습니다.
- 처음 사용할 때 - ComfyUI Manager 를 설치해야 합니다.
- ComfyUI를 오랜만에 사용할 때 - ComfyUI를 최신버전으로 업데이트해야 합니다.
- 노드가 없다고 (빨간색) 경고가 뜰 때 - 빠진 커스톰 노드를 가져오기해야 합니다.
- 불러오기 혹은 수행중 에러 발생시 - 커스톰 노드를 업데이트해야 합니다.
5 단계: 프롬프트 검토
원하는 비디오를 설명하는 프롬프트를 입력합니다.
6 단계: 비디오 생성
이제 [Queue] 버튼을 누르면 비디오가 생성됩니다.
문제 해결
RuntimeError: “replication_pad3d_cuda” not implemented for ‘BFloat16’
위와 같은 오류가 발생하는 이유는 PyTorch 버전이 오래되었기 때문입니다. 즉, 예전 ComfyUI 버전으로 실행될 때 이와 같은 오류가 발생합니다.
PyTorch 버전은 처음 실행될 때 콘솔에서 확인할 수 있는데, PyTorch 버전이 최소 2.4 이상이어야 합니다.
ComfyUI_windows_portable\update\update_comfyui_and_python_dependencies.bat 를 실행시키면 문제가 해결될 겁니다. 그래도 안될 경우에는 ComfyUI를 새로 설치하세요.
torch.OutOfMemoryError: Allocation on device
샘플링까지는 잘 되는데, [VAE Decode (Tiled)] 노드에서 위와 같은 오류가 발생할 수 있습니다(제가 이 문제때문에 한참 고생했습니다) 아래에 제가 수정한 워크플로와 비교해보시면 아시겠지만, [VAE Decode (Tiled)] 노드에서 tile_size, overlap, temporal_size를 반으로 줄이니 잘 실행되었습니다.
짧은 느낌
요즘에 올리는 글은 대부분 비디오 생성에 관한 글입니다. 이중에는 PC에서 직접 돌릴 수 있는 종류(AnimateDiff (예시), SVD, LTX 비디오, Flux on Forge) 등이 있습니다. (제 3070에서 돌릴 수 없는) 좀 더 큰 모델로는 Mochi, CogVideoX 등이 있습니다. 그외 서비스로만 제공하는 걸로는 Hailuo AI 나 Kling AI 등이 있죠.
이중에서 제일 비디오 품질이 좋은 것은 단연코 Hailuo나 Kling 과 같은 서비스입니다. 유료서비스인 만큼 품질은 뛰어나죠.
그런데 로컬에서 돌릴 수 있는 비디오 생성기로는 (좀 더 테스트해봐야겠지만)이 글에서 소개한 Hunyuan Video가 가장 품질이 좋지 않나 싶습니다. 아무래도 매개변수의 크기가 크기 때문이겠죠. 다만, Hunyuan Video는 아직 Image-to-Video 를 제공하지 않는 단점이 있습니다만, 이것도 금방 대안이 나올걸로 생각합니다.
아무튼... 이제 이미지 생성은 기본 기능이고 이제는 비디오 생성쪽으로 경쟁이 불붙고 있군요. 좀 더 공부를 해봐야겠습니다.
======
아래는 제가 약간 수정한 워크플로입니다. 3070에서 돌리다보니 메모리 에러가 발생해서 [VAE Decode (Tiled)] 노드를 손봤고, [SDXL Prompt Styler] 노드를 추가했습니다.
아래는 프롬프트 스타일러를 사용하지 않고 생성한 비디오입니다.
프롬프트 a girl riding a motorcycle, 1girl, pink long upper shan, ground vehicle, solo, gloves, motor vehicle, helmet, black eyes, boots, goggles, white gloves, blonde hair, scarf, short hair, 3D, running on the road, tree, camera pan left
아래는 SDXL용 스타일러에서 3D 모델을 선택하고 생성한 이미지입니다.
이상입니다.
이 글은 stable-diffusion-art.com의 글을 번역하면서 제 테스트 결과로 대체하여 작성한 글입니다.
- ComfyUI로 설치 및 사용법 기초
- ComfyUI 투토리얼
- ComfyUI를 위한 유용한 정보
- ComfyUI와 SDXL 사용법(1) - 기초
- ComfyUI에서 ControlNet 사용법
- 편리한 ComfyUI 워크플로 모음
- LCM-LoRA - 초고속 스테이블 디퓨전
- Stable Video Diffusion(비디오 스테이블 디퓨전)
- Stable Diffusion 인공지능 이미지 생초보 가이드
- Stable Diffusion 대표 UI - AUTOMATIC1111 설치방법
- Automatic1111 GUI: 초보자 가이드(메뉴 해설)
- Stable Diffusion에 대한 기본적인 이론
- ChatGPT로 스테이블 디퓨전 프롬프트 만들기