Wan 2.1 비디오는 자신의 PC에서 사용할 수 있는 최신 비디오 생성형 AI 모델입니다. 하지만, 좋은 품질의 비디오를 생성하려면 상당한 시간이 소요됩니다(제 RTX 3070을 사용할 경우, 720p 비디오는 2시간, 480p 비디오는 20분 정도 소요됐습니다). 특히 여러 비디오를 생성해서 좋은 것을 선택해야 하므로, 생성에 필요한 시간은 막대한 수준입니다.
이 글에서 소개하는 Wan 2.1 워크필로는 Teacache와 Sage Attention을 사용하여 생성시간을 약 30%가량 줄여줍니다. 머... 한 70% 정도 줄여주면 좋겠지만, 이정도로도 감지덕지 해야죠.
소프트웨어
이 글에서는 스테이블 디퓨전용 GUI중에서도 제일 강력하며, 현재 거의 대세로 자리잡고 있는 ComfyUI를 사용합니다. ComfyUI가 처음이시라면, 설치 및 기본 사용방법 및 초보가이드를 확인하시기 바랍니다.
속도가 빨라지는 원리
이 워크플로는 Teacache와 Sage 어텐션을 사용해 생성속도를 올립니다.
Teacache
Teacache는 샘플링을 하는 도중 모든 신경망이 동일하게 작용하는 것이 아니라, 일부 신경망 블록은 거의 변화가 없다는 것을 관찰하여 이를 활용하여 속도를 올립니다. 연구자들은 디퓨전 모델이 최초의 샘플링 단계에서 대략적인 이미지를 생성한 후, 이어지는 단계에서 디테일을 채워간다는 것을 파악했습니다.
Teacache 는 샘플링을 하는 동안 일부 단계에서 실제 샘플링을 하는 대신 지능적으로 캐시로 대체합니다. 즉, 현재의 입력이 캐시와 비슷할 경우, 캐시로 저장된 출력을 사용하고, 입력이 상당히 다를 때만 캐시를 재 계산하는 방식을 취합니다. 사용자가 임계값을 지정하여 얼마나 캐시를 재계산할지 결정할 수 있습니다. TeaCache: 생성속도를 두배로 글도 읽어보시기 바랍니다.
Sage 어텐션
Sage 어텐션은 트랜스포머 어텐션 연산의 계산을 양자화함으로써 속도를 올립니다. 어텐션 연산의 핵심 부분에서 전체 정밀도를 다 사용하는 대신 낮은 정밀도(8비트 혹은 4비트)를 사용하며, 이를 통해 대부분의 AI 모델에서 정확도에는 거의 손실 없이 속도를 올려줄 수 있습니다.
Fast Wan 2.1 Teacache/Sage 어텐션 워크플로
이 워크플로는 KJNodes의 Sage Attention과 Teacache 노드를 사용합니다. 이를 통해 원래의 Wan 2.1 워크플로보다 약 30% 정도 빠르게 수행됩니다.
사용 방법은 간단합니다. 아래 그림과 같이 이 두개의 노드를 [Load Diffusion Model]과 [KSampler] 노드 사이에 끼워주기만 하면됩니다.
이미지-비디오(Image-to-Video) 따라하기
이 워크플로는 2.3초 길이의 480p (480*720) webp 비디오를 생성하는 워크플로입니다.
1 단계: 모델 다운로드
아래의 모델을 다운로드 받아 ComfyUI > models > diffusion_models 폴더에 넣어줍니다.
아래의 텍스트 인코더 모델을 다운로드 받아 ComfyUI > models > text_encoders 폴더에 넣어줍니다.
아래의 CLIP vision 모델을 다운로드 받아 ComfyUI > models > clip_vision 폴더에 넣어줍니다.
아래의 Wan VAE 모델을 다운로드 받아 ComfyUI > models > vae 폴더에 넣어줍니다.
2 단계: 워크플로 불러오기
아래의 Json 파일을 다운로드 받아 ComfyUI로 불러옵니다.
이 워크플로를 불러오면 대부분 오류가 발생하게 됩니다. 그러한 경우, 다음과 같은 작업이 필요합니다.
- 처음 사용할 때 - ComfyUI Manager 를 설치해야 합니다.
- ComfyUI를 오랜만에 사용할 때 - ComfyUI를 최신버전으로 업데이트해야 합니다.
- 노드가 없다고 (빨간색) 경고가 뜰 때 - 빠진 커스톰 노드를 가져오기해야 합니다.
- 불러오기 혹은 수행중 에러 발생시 - 커스톰 노드를 업데이트해야 합니다.
3 단계: trition과 sage 어텐션 설치
[Patch Sage Attention KJ]노드를 사용하려면 trition과 sage attention 패키지를 따로 설치해야 합니다. KJ 노드에서 자동으로 설치해주면 좋을텐데 아쉽네요.
먼저 ComfyUI의 Python 폴더로 들어갑니다(대부분 ComfyUI_windows_portable\python_embeded 일겁니다).
이제 주소줄에서 cmd라고 입력합니다.
그러면 명령창이 나오는데, 아래와 같이 입력하여 trition과 sage attention을 설치합니다.
python -m pip install triton-windows
python -m pip install sageattention
4 단계: 이미지 설정
아래와 같이 비디오 첫 프레임으로 사용할 이미지를 선택합니다.
아래의 이미지를 다운로드 받아서 사용하셔도 됩니다.
4 단계: 프롬프트 검토
프롬프트에는 입력한 이미지와 맞는 내용을 추가하여야 합니다. 다음 사항을 참고하세요.
- 그냥 입력 이미지 설명만 입력하면 안되고, 그다음에 어떤 행동을 할지를 입력하는 것이 좋습니다.
- 행동에 관한 단어를 추가하면 좋습니다. 예: 웃음(laugh), 달리기(run), 싸우기(fight) 등. 여기에서는 Running을 넣었습니다.
- 부정적 프롬프트는 그냥 두셔도 됩니다.
5 단계: 비디오 생성
이제 [Queue] 버튼을 누르면 비디오가 생성됩니다. 아래는 생성되는 비디오의 예입니다.
결론
저는 이 워크플로를 돌려보니, 아래와 같은 메시지가 나오고 [Patch Sage Attention KJ]노드가 작동되지 않았습니다.
ImportError: DLL load failed while importing libtriton: DLL 초기화 루틴을 실행할 수 없습니다.
그래서 아래와 같이 이 노드를 Bypass 시키고 돌렸습니다. (Cntl+B 를 누르면 됩니다)
이렇게 Sage Attention 노드를 빼고 돌려도 실행시간이 대략 7~8분 정도로 나오네요. Wan 2.1 자체가 비디오 품질이 괜찮은데 생성시간도 짧아지니... 정말 기분이 좋네요.
이상입니다.
이 글은 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로 스테이블 디퓨전 프롬프트 만들기