LoRA(Low-Rank Adaptation)은 Flux나 Stable Diffusion과 같은 이미지 모델을 세부 조정(finetuning)하는 기술로서 탄생했습니다. 모델 매개변수 일부를 조정하는 것에 초점을 맞춤으로써, LoRA는 전체 모델을 다시 학습할 필요 없이 효과적으로 미세조정을 할 수 있습니다.
그런데, 대형 비디오 모델로서는 처음으로, Hunyuan Video 에서 LoRA를 사용할 수 있게 되었습니다.
이번 글에서는 Hunyuan Video에 LoRA를 사용하는 방법을 알려드립니다. 이 기법에는 여러개의 LoRA를 사용하여 아래와 같은 장면에서 일관성있는 캐릭터를 생성할 수 있습니다.
소프트웨어
이 글에서는 스테이블 디퓨전용 GUI중에서도 제가 제일 좋아하는 ComfyUI를 사용합니다. ComfyUI가 처음이시라면, 설치 및 기본 사용방법 및 초보가이드를 확인하시기 바랍니다.
Hunyuan LoRA의 작동 원리
Hunyuan LoRA는 기본적으로 스테이블 디퓨전의 LoRA와 비슷한 방법으로 동작합니다. LoRA는 Hunyuan 기본 모델의 일부에 대한 변화를 저장하는 작은 모델입니다. LoRA 파일은 기본적으로 기본 모델에 비해 1/100 정도로 매우 작습니다.
LoRA는 특정한 물체나 스타일, 캐릭터를 생성하는 등의 비디오 작업에 필수적이라고 할 수 있습니다.
사용 사례
스타일 전송
LoRA를 사용하면 새로운 스타일을 만들어낼 수 있습니다. 아래는 Hunyuan 기본 모델로 생성한 이미지입니다.
아래는 Makoto Shinkai Anime Style LoRA를 사용해 애니 스타일로 비디오를 생성한 결과입니다.
두 비디오 생성에 사용된 프롬프트는 아래와 같습니다.
프롬프트: A 25yo blonde beautiful woman smiling in red leather jacket on a motorcycle in a busy new york city street. anime style.
일관된 캐릭터
LoRA를 사용하면 Hunyuan Video에 새로운 얼굴을 넣을 수 있습니다. LoRA를 학습할 환경이 안된다면, Civitai에 있는 두가지 얼굴의 LoRA를 합쳐서 새로운 얼굴을 만들어낼 수도 있습니다.
예를 들면 아래는 Emma Watson LoRA를 사용해 생성한 결과입니다.
또 아래는 Emily Bloom LoRA를 적용한 결과입니다.
아래는 위의 두 사람을 혼합한 새로운 인물입니다.
하나의 LoRA 를 사용하는 워크플로
1 단계: 비디오 모델 다운로드
hunyuan_video_FastVideo_720_fp8_e4m3fn.safetensors 파일을 다운로드 받아, ComfyUI\models\diffusion_models 폴더에 넣어줍니다.
2 단계: VAE 다운로드
hunyuan_video_vae_bf16.safetensors 파일을 다운로드 받습니다(주의: 이 VAE 파일은 Hunyuan Video 사용법에서 사용한 VAE 파일과 다르므로 주의하셔야 합니다). 다운로드 받은 후, 이름을 hunyuan_video_vae_bf16-kj.safetensors 로 변경해주고, ComfyUI\models\vae 폴더에 넣어줍니다.
3 단계: LoRA 다운로드
Makoto Shinkai Anime Style LoRA 파일을 다운로드 받아, ComfyUI\models\loras\Hunyuan 폴더에 넣어줍니다.
4 단계: 워크플로 불러오기
아래의 JSON 파일을 ComfyUI에 불러옵니다. 좌측위의 Workflow->Open 메뉴를 사용하면 됩니다.
이 워크플로는 대부분 그냥 그대로 사용할 수 있지만, 때때로 오류가 발생할 수 있습니다. 그러한 경우, 다음과 같은 작업이 필요할 수 있습니다.
- 처음 사용할 때 - ComfyUI Manager 를 설치해야 합니다.
- ComfyUI를 오랜만에 사용할 때 - ComfyUI를 최신버전으로 업데이트해야 합니다.
- 노드가 없다고 (빨간색) 경고가 뜰 때 - 빠진 커스톰 노드를 가져오기해야 합니다.
- 불러오기 혹은 수행중 에러 발생시 - 커스톰 노드를 업데이트해야 합니다.
5 단계: 워크플로 실행
LoRA는 Hunyuan Video 기본 모델보다 먼저 불러와져서 메모리상의 기본 모델의 가중치를 수정해줍니다.
원하시면 프롬프트를 수정하시면 됩니다. 단, 이 LoRA는 "anime style"이라는 키워드가 있어야 발동됩니다.
이제 [Queue]버튼을 누르면 모델을 다운로드 받고 실행됩니다. 아래는 결과입니다.
두 개의 LoRA를 사용하는 워크플로
이 워크플로는 두개의 LoRA를 사용하여 Hunyuan 기본 모델을 수정합니다. 두 개의 얼굴을 조합하여 새로운 얼굴을 만들때 유용합니다.
1 단계: LoRA 모델 다운로드
Emma Watson Hunyuan video Lora 를 다운로드 받아 ComfyUI\models\loras\Hunyuan 에 넣어줍니다.
Emily Bloom Hunyuan video Lora 를 다운로드 받아 ComfyUI\models\loras\Hunyuan 에 넣어줍니다.
2 단계: 워크플로 다운로드
아래의 JSON 파일을 ComfyUI에 불러옵니다. 좌측위의 Workflow->Open 메뉴를 사용하면 됩니다.
이제 [Queue]버튼을 누르면 아래와 같은 비디오가 생성됩니다.
프롬프트:
프롬프트를 바꾸면 다른 장면을 연출할 수도 있습니다.
====
흠... 그런데, 그냥 Hunyuan text-to-video의 경우엔 상당히 큰 비디오를 생성해도 무리없이 돌아 갔는데, 이 워크플로는 비디오 크기를 줄여도 제 3070에서 계속 에러가 발생하네요. ㅠㅠ
아래와 같이 이미지 크기를 400x304로 줄이고, 프레임 수와 샘플링 단계도 줄이고, 디코드 타일링 매개변수를 수정해준 이후에야 겨우 돌릴 수 있었습니다. 실행시간은 1시간 40분 정도 걸렸고요.
LoRA 없이 txt-to-video를 생성했을 때는 848x480(480p) 으로 73 프레임을 생성하는데 RTX3070에서 13.8 분 정도 걸렸으니 차이가 나도 너무 많이 납니다. LoRA는 기본적으로 기본 체크포인트 모델을 일부 바꾸는 것에 불과할텐데 이렇게 실행시간 차이가 나는 건 말이 안되다고 보입니다. 좀더 조사해 봐야 할 듯 싶습니다.
이상입니다.
이 글은 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로 스테이블 디퓨전 프롬프트 만들기