안녕하세요,
지난 포스팅에서 오픈 소스 애니메이션 툴인 ToonCrafter를 이용하여 영상을 만드는 방법을 소개한 바 있습니다. ToonCrafter는 강력한 기능을 갖춘 도구로, 누구나 쉽게 애니메이션을 제작할 수 있도록 도와주는 오픈 소스 프로젝트입니다. 이와 더불어, 이미지 생성의 가능성을 넓혀주는 ComfyUI에 대해서도 간단히 다룬 적이 있습니다. 이번 포스팅에서는 이러한 두 가지 도구를 결합하여 어떻게 창의적인 영상을 제작할 수 있는지에 대해 살펴보겠습니다.
1. 설치 계획
ToonCrafter는 깃허브에서 다운로드할 수 있지만, ComfyUI-Manager 기능을 이용하면 더욱 손쉽게 설치할 수 있습니다. 이번 포스팅에서는 ComfyUI-Manager를 설치하고, 이를 통해 ToonCrafter를 설치하는 방법을 알아보겠습니다. ComfyUI와 ComfyUI-Manager에 대한 설치 과정은 지난 포스팅에서 이미 다뤘기 때문에, 이번에는 간단히 넘어가겠습니다. 아직 ComfyUI와 ComfyUI-Manager를 설치하지 않으셨다면, 먼저 설치를 완료하신 후 이번 포스팅을 따라 진행해주시기 바랍니다.
- ComfyUI - [Marcus' Story] - [이미지 생성 AI] [로컬 환경] ComfyUI 이용하여 이미지 생성하기 1탄
- ComfyUI-Manager - [Marcus' Story] - [이미지 생성 AI] [로컬 환경] ComfyUI 이용하여 이미지 생성하기 2탄 : ComfyUI-Manager
이 글에서는 ComfyUI-Manager가 이미 설치되어 있다는 가정하에 진행하겠습니다.
2. 실행 환경
- 운영체제: Windows 11 (64-bit)
- Python: 3.10.14
- Conda: 24.5.0
- GPU: NVIDIA GeForce RTX 4060 Ti
3. ComfyUI & ToonCrafter 설치 및 실행
1) ComfyUI 실행
아래 명령어를 사용하여 Conda 가상환경을 활성화하고, ComfyUI를 실행합니다.
Conda 가상환경 활성화 명령어
# Windows PowerShell
conda activate comfyui
ComfyUI 실행 명령어
- 아래 명령어를 실행하기 전에, Windows PowerShell에서 작업 디렉토리를 ComfyUI가 설치된 위치로 이동시켜 주세요.
# Windows PowerShell
python main.py
위 순서대로 ComfyUI를 실행하면, 특정 서버 주소가 표시될 것입니다(아래 왼쪽 이미지 참조). 해당 주소로 접속해 주세요.
아래 이미지는 ComfyUI가 정상적으로 실행된 화면입니다.
2) ComfyUI Custom Node 설치
ComfyUI Manager를 통해 Custom Node(ToonCrafter)를 설치하도록 하겠습니다. Custom Nodes Manager로 이동합니다(아래 이미지 참조).
앞으로 설치할 커스텀 노드는 아래 같습니다.
- ComfyUI-ToonCrafter
- ComfyUI-DynamiCrafterWrapper
- KJNodes for ComfyUI
- ComfyUI-VideoHelperSuite
커스텀 노드 검색창에서 "toon"을 검색합니다. 검색된 노드 중 첫 번째 노드인 ComfyUI-ToonCrafter와 두 번째 노드인 ComfyUI-DynamiCrafterWrapper를 설치하세요. ComfyUI-DynamiCrafterWrapper 노드는 ToonCrafter의 기능을 더욱 원활하게 작동하도록 도와줍니다.
위와 같은 방법으로 모든 노드를 설치한 후, ComfyUI를 재시작합니다.
3) Node 구성
이제 필요한 노드를 구성해보겠습니다. 먼저 "Clear" 버튼을 클릭하여 모든 노드를 초기화합니다.
3-1) Load Image
노드 검색창(마우스 왼쪽 버튼 더블 클릭)에서 "load"를 검색한 후 "Load Image" 노드를 불러옵니다. 이 노드는 말 그대로 이미지를 입력하는 노드입니다. 생성한 노드는 Ctrl + C, Ctrl + V 단축키를 통해 복사/붙여넣기가 가능합니다. "Load Image" 노드를 2개 구성합니다.
"Load Image" 노드에서 "choose file to upload" 버튼을 클릭하여 이미지를 첨부할 수 있습니다. 여기서는 ToonCrafter에서 제공하는 이미지를 사용했습니다.
3-2) Resize Image
노드 검색창에서 "Resize Image" 노드를 불러옵니다. 이 노드는 입력받은 이미지의 크기를 원하는 대로 설정할 수 있도록 도와줍니다. "Resize Image" 노드를 불러온 후, "Load Image" 노드와 "Resize Image" 노드를 서로 연결합니다. 노드를 연결하는 방법은 "image" 부분을 마우스 왼쪽 버튼으로 클릭한 후, 드래그하여 연결하면 됩니다.
3-3) Image Batch Multi
노드 검색창을 통해 "Image Batch Multi" 노드를 불러옵니다. 해당 노드는 여러 장의 이미지를 하나의 묶음으로 만들어 주는 노드입니다. 이후 단계의 노드에서 이미지 묶음은 "images" 형태로 데이터를 주기 위함입니다. 이전 노드에서 나온 이미지를 각각 연결해줍니다.
3-4) Get Image Size & Count
노드 검색창을 통해 "Get Image Size & Count" 노드를 불러옵니다. 해당 노드는 제공받는 이미지의 사이즈와 숫자 정보를 포함하여 다음 노드로 데이터를 전달해줍니다. 이전 노드(Image Batch Multi)에서 나온 데이터(images)를 해당 노드로 연결시켜줍니다.
3-5) ToonCrafter Interpolation
노드 검색창에서 "ToonCrafter Interpolation" 노드를 불러옵니다. 이 노드는 이전 노드에서 받은 여러 이미지를 입력받아, AI 모델을 활용해 그 사이를 부드럽게 연결하여 새로운 이미지를 생성하는 역할을 합니다
3-6) (Down)Load DynamiCrafterModel
노드 검색창에서 "(Down)Load DynamiCrafterModel" 노드를 불러옵니다. 이 노드는 이미지 생성해주는 AI를 다운받고, 다운받은 AI를 불러옵니다. 저는 가장 기본 모델인 tooncrafter_512_interp-pruned-fp16 모델을 사용하겠습니다.
※ "(Down) OOOOOO" 노드를 사용하면, 해당 모델이 없을 경우 자동으로 다운로드하여 실행합니다. 즉, 이 노드를 실행할 때 "tooncrafter_512_interp-pruned-fp16 모델"이 없으면, 모델을 자동으로 다운로드하고 실행하게 됩니다.
3-7) (Down)Load CLIPVisionModel
노드 검색창에서 "(Down)Load CLIPVisionModel" 노드를 불러옵니다. 이 노드는 이미지의 중요한 시각적 특징을 추출하여, 텍스트와 이미지 간의 연관성을 이해하거나 이미지를 기반으로 다양한 생성 및 변형 작업에 활용됩니다.
"CLIP-ViT-H-fp16 모델"이 없는 경우, "(Down)Load CLIPVisionModel" 노드는 모델을 자동으로 다운로드하고 실행합니다. 모델을 직접 다운로드하고 싶으신 분들은 아래 허깅페이스 링크에서 다운받으실 수 있습니다.
- CLIP-ViT-H-fp16 모델 허깅페이스 : https://huggingface.co/Kijai/CLIPVisionModelWithProjection_fp16/tree/main
모델을 직접 다운로드하신 경우, 아래 경로에 있는 폴더에 저장해 주세요.
- 모델 저장 경로 : (ComfyUI) -> (models) -> (clip_vision)
3-8) CLIP Text Encode (Prompt)
노드 검색창에서 "CLIP Text Encode (Prompt)" 노드를 불러옵니다. 이 노드는 생성할 이미지의 긍정 프롬프트와 부정 프롬프트를 입력하는 노드입니다. 각 노드에 원하는 프롬프트 값을 입력해줍니다.
3-9) (Down)Load CLIPModel & Reroute
노드 검색창에서 "(Down)Load CLIPModel" 노드를 불러옵니다. 이 노드는 텍스트와 이미지 간의 관계를 학습하고 이해하여, 이를 바탕으로 다양한 작업을 수행할 수 있는 멀티모달 AI 모델입니다. 즉, 입력된 프롬프트를 해석하고, 이를 다음에 생성할 이미지에 반영합니다. 이때 다운받는 모델은 stable-diffusion-2-1-clip-fp16 모델입니다.
"Reroute" 노드는 긍정/부정 프롬프트 노드와 "CLIPModel" 노드를 연결해주는 역할을 합니다. "CLIPModel" 노드에서 "clip" 부분을 마우스 왼쪽 버튼으로 클릭한 후 빈 공간으로 드래그합니다. 마우스 버튼을 놓으면 여러 옵션 창이 나타나는데, 여기서 "Reroute"를 선택합니다.
3-10) ToonCrafter Decode
노드 검색창에서 "ToonCrafter Decode" 노드를 불러옵니다. 이 노드는 이전 단계에서 생성된 이미지를 사람이 볼 수 있는 형태로 변환해줍니다. 따라서 해당 노드는 "Load DynamiCrafterModel" 노드와 "ToonCrafter Interpolation" 노드와 연결을 해줍니다.
3-11) Preview Image & Video Combine
"Preview Image" 노드는 이전 과정을 통해 생성된 이미지를 출력해줍니다. AI를 통해 생성된 결과 이미지를 확인할 수 있는 노드입니다. "ToonCrafter Decode" 노드에서 "images" 부분을 마우스 왼쪽 버튼으로 클릭한 후 빈 공간으로 드래그합니다. 마우스 버튼을 놓으면 여러 옵션 창이 나타나는데, 여기서 "Preview Image"를 선택합니다.
노드 검색창에서 "Video Combine" 노드를 불러옵니다. 이 노드는 생성된 여러 장의 이미지를 영상으로 만들어주는 노드입니다. 해당 노드에서 format 부분을 video/h264-mp4로 설정해줍니다.
4. 영상 생성
위의 과정을 통해 노드 설정이 완료되면, Queue Prompt 버튼을 클릭하여 해당 노드들을 실행합니다. 처음 실행할 때는 AI 모델들을 다운로드하면서 진행되므로, 시간이 조금 걸릴 수 있습니다. 아래 오른쪽 이미지는 최종적으로 완성된 결과 이미지입니다.
- AI 생성 영상
- ComfyUI Node 구성파일
해당 노드들을 일일이 배치하기 어렵다면, 위 파일을 다운로드받아 사용하시길 바랍니다. ComfyUI-Manager에서 다운로드한 파일을 Load 하시면, 제가 설정한 노드 구성을 그대로 사용하실 수 있습니다. 단, 사용 전에 위에서 언급한 ComfyUI Custom Node를 반드시 설치해야만 모든 노드가 정상적으로 작동하니, 먼저 Custom Node를 설치해 주시기 바랍니다.
ComfyUI에서 ToonCrafter를 활용하여 원하는 스타일의 영상을 생성하는 과정은 비교적 간단하면서도 강력한 기능을 제공합니다. 위에서 설명한 노드 설정과 Custom Node 설치 과정을 따르면, 두 장의 이미지를 자연스럽게 연결하는 영상으로 만들어줍니다.
이 포스팅에서 소개한 방법을 통해, ToonCrafter의 강력한 기능을 활용하여 여러분만의 독창적인 영상을 만들어 보시기 바랍니다. 처음 설정 시 시간이 조금 걸릴 수 있지만, 설정이 완료되면 빠르고 효율적으로 작업을 진행할 수 있습니다. 앞으로 ComfyUI와 ToonCrafter를 활용한 다양한 시도를 통해 더욱 멋진 결과물을 만들어 내시길 기대합니다.
'ComfyUI > 영상 생성' 카테고리의 다른 글
[영상 생성 AI] [로컬 환경] ComfyUI 이용하여 영상 생성하기 6탄 : LTX-Video AI (1) | 2024.12.05 |
---|---|
[영상 생성 AI] [로컬 환경] ComfyUI 이용하여 영상 생성하기 5탄 : Mochi AI (2) | 2024.11.20 |
[영상 생성 AI] [로컬 환경] ComfyUI 이용하여 영상 생성하기 4탄 : PyramidFlowWrapper (1) | 2024.11.14 |
[영상 생성 AI] [로컬 환경] ComfyUI 이용하여 영상 생성하기 3탄 : Stable Video Diffusion 활용하기 (2) | 2024.09.26 |
[영상 생성 AI] [로컬 환경] ComfyUI 이용하여 영상 생성하기 2탄: ComfyUI-LivePortraitKJ (16) | 2024.08.31 |