1. Comfy UI 컴퓨터 사양 살펴보기
comfy UI를 사용하기 위해서는 NVIDIA GPU가 반드시 필요합니다.
그래픽카드가 없으면 cpu로 실행해야하는데 생성 속도가 매우 느려 의미가 없습니다. 저는 생성형ai 를 배우기 위해 컴퓨터를 새로 맞췄습니다.
권장사양은 아래와 같습니다.
- CPU: AMD Ryzen 3700X / Intel i7 9800K (8코어 16스레드)
- RAM: 32GB
- GPU: NVIDIA RTX 3060 Ti 12GB
- 저장공간: NVMe 3.0 SSD 2TB
저는 150만원 정도로 맞췄고, 조금 더 좋은 그래픽카드를 선택했습니다.
자세한 사양이 궁금하시다면 이전글을 참고해주세요.
먼저 컴퓨터의 그래픽카드를 확인하는 방법을 알려드리겠습니다.
윈도우 설정 → 시스템 → 디스플레이 → 고급 디스플레이 로 들어가시면 그래픽카드를 확인 할 수 있습니다.
2. Comfy UI 설치하기
Comfy UI github에 들어가 스크롤을 쭉 내리면,
Direct link to download 를 클릭하면 바로 다운로드가 가능합니다.
한줄 위에 releases page 로 들어가시면 버전 기록들을 볼 수 있는데 제일 위에 있는 것이 최신 버전입니다.
현시점(24.9.21)으로 최신버전은 pytorch 2.4.1 cu124 인 것 같습니다.
참고로 저는 이런저런 강의를 들으며 배우는 중이라, 강의하는 버전에 똑같이 맞춰서 공부하려고
stable pytorch 2.2 cu121 버전을 다운 받았습니다.
2-1. 설치 경로 설정
다운로드 받은 파일을 압축을 풀고 실행하기 전에, 폴더 구조를 맞춰보겠습니다.
기본적인 Root Folder, 다시 말해 자신이 작업하고자 하는 드라이브에 새로 폴더를 만들겠습니다. 저는 그냥 C드라이브에 만들었습니다.
C드라이브 → SD (폴더) → fc_comfyui (폴더) 를 만들고 그 안에 다운받은 파일을 넣고 압축을 풀어주면 됩니다.
압축을 풀고 들어가보면 위와같은 파일들이 있는데,
run_nvidia_gpu.bat 파일을 실행하면, 오른쪽 사진과 같이
cmd 창, 그리고 그 뒤쪽에 보이는 뭔가 복잡해보이지만 있어보이는 창이 자동으로 뜹니다.
(혹시나 파란색의 윈도우 보호 창이 뜬다면, 추가정보 → 실행 버튼을 눌러 실행하시면 됩니다.)
여기까지가 comfy UI 포터블 설치의 끝입니다.
2-2. Comfy UI 폴더 살펴보기
Comfy UI 폴더에 들어가보시면 cusrom_nodes, input, output, 등 많은 폴더들이 있는데, 하나하나에 대한 설명은 추후에 해당 폴더를 다룰 때 더 자세히 설명해보도록 하겠습니다.
여기서 가장 중요한 models 폴더에 들어가보시면, 여기에도 폴더가 많이 보입니다.
해당하는 폴더에 맞는 모델들을 넣어 각각의 모델을 관리합니다.
저는 아직 초보자라 기본적으로 생성되어있는 기본모델폴더를 사용할거여서, 위 사진에 있는 16개의 모델 폴더에 대한 자세한 역할과 특징을 알아보도록 하겠습니다.
ComfyUI 모델 폴더별 상세 설명
1. checkpoints
- 역할: 이 폴더는 스테이블 디퓨전과 같은 모델의 기본 모델 파일을 저장합니다. 이미지 생성 과정에서 필요한 가장 중요한 모델이 이곳에 있습니다. 즉, 이미지 생성의 핵심 재료라고 생각하면 됩니다. 이 모델을 기반으로 다양한 스타일의 이미지를 생성할 수 있습니다.
- 특징: .ckpt 또는 .safetensors 형식의 파일로 저장되며, 각 모델은 이미지 생성의 기본 뼈대를 제공합니다.
2. clip
- 역할: CLIP 모델은 텍스트 프롬프트와 이미지를 연결하는 역할을 합니다. 사용자가 입력한 텍스트를 AI가 이해하고 그에 맞는 이미지를 생성할 수 있게 도와줍니다. 다시말해, 프롬프트를 해석하는 언어 능력이라고 할 수 있습니다. 사용자가 무엇을 입력하느냐에 따라 AI가 그 의미를 이해하게 만듭니다.
- 특징: CLIP 모델은 이미지와 텍스트 간의 관계를 분석하여 적절한 이미지를 생성하는 데 매우 중요한 역할을 합니다.
3. clip_vision
- 역할: CLIP의 시각적 확장으로, 이미지에서 더욱 정교한 정보 추출을 도와줍니다. 이미지와 텍스트의 상관관계를 더욱 강화하여 프롬프트와 이미지 간의 일치도를 높여줍니다.
- 특징: CLIP의 텍스트 해석 기능을 보강하여 이미지 생성에 더 높은 정확도를 제공합니다.
4. configs
- 역할: 모델들의 다양한 설정 파일을 보관하는 폴더입니다. 각 모델이 어떻게 작동할지에 대한 세부적인 설정 정보가 들어있습니다. 각 모델이 어떻게 동작할지에 대한 세부 지침서라고 할 수 있습니다.
- 특징: 설정 파일들은 JSON 또는 YAML 형식으로 저장되며, 모델이 작동하는 방법을 결정합니다.
5. controlnet
- 역할: ControlNet은 이미지 생성 과정에서 더 세밀한 제어를 가능하게 하는 보조 네트워크입니다. 특정한 이미지를 생성하고 싶을 때, 이미지의 포즈나 구조를 더욱 정밀하게 제어할 수 있게 해줍니다. 예를 들어, 특정 포즈의 사람을 그리거나, 복잡한 배경을 명확히 표현하고 싶을 때 사용됩니다.
- 특징: 이미지에 명확한 지시를 내려주는 모델로, 주로 특정 이미지에서 원하는 포즈를 구현하는 데 사용됩니다.
6. diffusers
- 역할: 디퓨저 모델은 이미지 생성의 과정을 돕는 역할을 합니다. 특히 이미지가 점차적으로 노이즈에서 깨끗한 이미지로 변해가는 과정에서 중요한 역할을 합니다. 이미지를 서서히 선명하게 만들어주는 역할을 하는 모델입니다.
- 특징: 디퓨전 프로세스에서 사용되며, 이미지의 디테일을 점진적으로 만들어내는 핵심 기술입니다.
7. embeddings
- 역할: 텍스트 임베딩은 텍스트 데이터를 숫자로 변환하여 AI가 더 쉽게 이해할 수 있도록 합니다. 텍스트 프롬프트에서 사용된 단어들이 AI에게 어떤 의미로 전달되는지를 결정하는 데 중요한 역할을 합니다. . 예를 들어, "고양이"라는 단어가 AI에게 "작고 귀여운 동물"로 이해될 수 있게 해줍니다.
- 특징: 텍스트와 이미지 간의 매핑을 위해 숫자 벡터로 변환해줍니다.
8. gligen
- 역할: GLIGEN 모델은 텍스트와 이미지를 결합하는 과정에서 지시된 위치에 물체를 배치하거나 특정 작업을 수행하는 기능을 지원합니다. 더 쉽게 표현하자면, 특정 이미지의 위치에 텍스트로 지시를 내릴 수 있게 도와주는 모델입니다. 예를 들어, "왼쪽에 나무를 추가"라는 식의 작업이 가능해집니다.
- 특징: 텍스트 기반으로 이미지의 특정 부분을 조정하거나 물체를 배치할 수 있게 해줍니다.
9. hypernetworks
- 역할: 하이퍼네트워크는 기존 모델에 더 다양한 특성을 추가할 수 있는 경량화된 모델입니다. 스타일이나 특정 효과를 추가할 때 유용합니다. 기본 모델을 확장해서 새로운 특성이나 스타일을 적용하는 데 사용됩니다.
- 특징: 체크포인트 모델 위에 덧붙여 더 독특한 스타일이나 디테일을 추가합니다.
10. LoRA
- 역할: LoRA 모델은 체크포인트 모델에 추가로 로우-랭크 적응을 적용하여 모델을 확장할 수 있게 해주는 기능입니다. 다시말해 LoRA는 기존 모델에 더 독특한 스타일을 추가하는 작은 확장 도구라고 볼 수 있습니다.
- 특징: 특정한 아티스트의 스타일을 적용하거나, 원하는 스타일로 이미지를 생성할 수 있게 도와줍니다.
11. photomaker
- 역할: 사진과 같은 사실적인 이미지를 생성하는 모델들을 저장하는 폴더입니다. 흔히 말하는 실사와 같은 현실적인 사진 스타일의 이미지를 생성하고 싶을 때 사용합니다.
- 특징: 사실적인 이미지를 만들기 위한 모델들이 들어있으며, 주로 포토리얼리즘 스타일의 이미지를 생성합니다.
12. style_models
- 역할: 스타일 모델은 생성되는 이미지의 특정 스타일을 결정하는 역할을 합니다. 만화 스타일, 유화 스타일 등 여러 시각적 스타일을 제공하는 모델입니다. 원하는 예술적 스타일을 이미지에 적용할 수 있게 해주는 모델입니다.
- 특징: 각기 다른 스타일을 적용해 이미지를 다르게 표현할 수 있습니다.
13. unet
- 역할: UNet 모델은 이미지 생성 과정에서 핵심적인 역할을 합니다. 특히, 이미지의 구조와 디테일을 관리하며, 노이즈 제거와 같은 역할을 수행합니다. 이 모델은 이미지의 해상도를 결정하고, 세부적인 디테일을 표현하는 데 중요한 역할을 합니다.
- 특징: 디퓨전 프로세스에서 이미지의 세부적인 요소를 결정하는 데 중요한 역할을 합니다.
14. upscale_models
- 역할: 저해상도의 이미지를 고해상도로 변환하는 업스케일링 모델입니다. 이미지의 크기를 키우면서 품질을 유지해줍니다. 말 그대로 업스케일링으로, 작은 이미지를 크게 확대할 때 화질 저하 없이 품질을 유지해주는 도구입니다.
- 특징: 이미지의 해상도를 높여 더 선명하고 큰 이미지로 만들어줍니다.
15. vae
- 역할: VAE는 이미지의 세부적인 부분을 처리하고, 색상과 디테일을 더 선명하게 만들어줍니다. 이미지의 품질을 향상시키고, 더 선명하고 사실적인 이미지를 만들어줍니다.
- 특징: 이미지 생성 과정에서 더 세밀한 색상 표현을 가능하게 해주는 모델입니다.
16. vae_approx
- 역할: VAE Approximation은 VAE의 경량화된 버전으로, 더 빠르게 작동하면서도 비슷한 결과를 제공합니다. 빠르지만 효율적인 방식으로 이미지를 세밀하게 조정해줍니다.
- 특징: VAE와 비슷한 기능을 수행하지만, 더 경량화되어 빠르게 처리됩니다.
2-3. 파이썬 임베디드의 구조
Python Embedded 에는 Lib -> site-packages 폴더가 있습니다.
이 site- packages 폴더에는, 앞으로 사용하게 될 Custom Node 에 관련된 부분들, 혹은 그 외의 여러 확장에 관련된 부분에 관련해서 사용되는 라이브러리들이 이곳에 설치 됩니다.
이 부분이 굉장히 중요한 부분인데,
ComfyUI 의 다양한 Custom Node 설치 과정에서 해당 부분의 패키지 버전의 일관성 유지가 어려울 수 있습니다.
이 문제에 대한 해결과 관리에 대한 것들은 추후 강의를 통해 배워서 추가로 정리해보도록 하겠습니다.
2-4. 업데이트
업데이트 폴더로 들어가보면 위에보이는 것처럼 파일이 3개 있습니다.
아래 두개의 bat 파일을 확인 할 수 있는데, 대충 이름 그대로 파악하시면 됩니다.
첫번째 파일은 comfy UI만 업데이트 하는 파일이고
두번째 파일은 comfy UI + 파이썬 종속성 관련된 파일을 업데이트 하는 것입니다.
이 업데이트에 관한 부분은 굉장히 어렵게 느껴지는데,
쉽게 할 수 있는 방법 즉,
comfy UI Manager라는 커스텀 노드가 등장을 하고 난 이후에 이 모든 것들을 관리하기가 굉장히 편해졌다고 합니다.
그래서 구체적으로 복잡하게 공부하고 설명하기 보다는 다음 포스팅에서 comfy UI 매니저에 대해 공부하고 기록해보도록 하겠습니다.
하나하나 구체적으로 파고들기보다는 전체적으로 따라하며 진도를 나가다보면
자연스럽게 이해되는 개념들도 많을 거라고 생각합니다.
아무쪼록 저처럼 요즘 핫한 생성형ai를 배우고 싶지만, 컴퓨터 1도 모르는 초보자분들에게 이 글이 조금이나마 도움이 되셨길 바랍니다.
```
'AI 배우기 > 생성형 AI' 카테고리의 다른 글
[패스트캠퍼스] 최돈현의 Comfy UI - 배움을 시작하며 (5) | 2024.11.14 |
---|---|
ComfyUI 튜토리얼 : A111과의 차이점 (1) | 2024.10.15 |
ComfyUI 튜토리얼 : 다운로드부터 설치까지(1) - 필수프로그램(git, 파이썬) (1) | 2024.09.21 |
comfy UI 배우기 시작 : 생성형 AI를 위한 컴퓨터 사양 (5) | 2024.09.09 |
댓글