다짜고짜 따라 해보는 스테이블 디퓨전 ComfyUI HSAD 공식 블로그 HSADzine

HSAD 공식 블로그 HSADzine

 

생성형 AI의 시대에 살고 계신 여러분 안녕하신가요?

 

요즘 뉴스를 보든, 팀 회의에 들어가든, 친구들과 카톡에서 잡담을 하더라도 생성형 AI가 빠지는 곳이 없습니다. Chat GPT 텍스트 생성을 시작으로 스테이블 디퓨전과 미드저니를 중심으로 한 이미지 생성, 그리고 최근에는 SORA가 발표되며 동영상까지 AI가 생성하는 시대가 찾아왔습니다.

 

그러다 보니 'AI의 미래가 어떻다~', '기술이 얼마나 대단하다~'. '업무 효율성을 얼마나 늘릴 수 있다' 등 다양한 분석 글이 쏟아지고 있습니다. 하지만 정작 사용방법에 대한 글은 찾기 어려운 것 같습니다. 그래서 오늘은 누구나 저를 따라오면 스테이블 디퓨전을 사용할 수 있는 방법을 글로 작성해보려 합니다. 정말 정말 쉽고 남녀노소, 컴맹 누구든 괜찮습니다. 컴퓨터 사양이 좋지 않아도 괜찮습니다! 인터넷만 연결되어 있다면, 저를 따라서 스테이블 디퓨전을 체험할 수 있게 해 드리겠습니다!

 

이번 글에서는 구글에서 제공하는 클라우드 컴퓨터 Colab Pro를 이용해 스테이블 디퓨전(ComfyUI)을 설치하고 기초적인 사용법에 대해서 알아보는 시간을 가지겠습니다. 어려운 내용은 전부 빼고 최대한 쉽게 스테이블 디퓨전을 맛볼 수 있게 글을 작성하였으니 마음 편하게 따라와 주시면 좋겠습니다!

 

그럼 새로운 시대를 향한 첫걸음을 위한 준비물은 아래와 같습니다.

 

1. 우리 모두 하나쯤은 가지고 있는 Google 계정

 

2. 10$ (Google Colab Pro 월 이용료)

AI 신세계를 향한 티켓값이 10$? 싸다 싸 결제 방법까지 친절하게 정리할 테니 걱정 마세요!

 

3. Google Drive 약 10GB의 여유공간 무료 제공 공간이 15GB입니다! 문제없으시죠?

 

 

자! 마음의 준비가 되셨나요?  그럼 시작해 보겠습니다! (Colab Pro 계정이 있으신 분은 건너뛰어도 됩니다.)

 

가장 먼저 Google에 로그인을 하시고 "Colab"을 검색해 주세요.

 

 

Colab.google 두 번째 페이지로 접속해 주세요!

 

 

Open Colab 클릭!

 

 

이렇게 “노트 열기” 창이 열리는데요. 우선 Pro 버전으로 업그레이드를 해야 하기 때문에 취소 버튼을 눌러주세요.

 

 

우측 상단에 톱니바퀴 클릭! 톱니바퀴를 클릭하게 되면, 설정창이 나타납니다. 여기서 왼쪽 메뉴의 “Colab Pro”를 누르시고 가운데 “자세히 알아보기” 버튼을 눌러주세요.

 

 

Colab Pro 월 $9.99을 눌러주세요. 과거에는 Colab 무료 버전에서도 스테이블 디퓨전(ComfyUI)을 사용할 수 있었는데, 23년 10월 16일 기준, 스테이블 디퓨전(Stable Diffusion)을 사용하면 제재를 가한다는 정책이 변경되었습니다. Colab으로 스테이블 디퓨전을 사용하려면 Colab Pro 구독이 필요합니다. 아마도 스테이블 디퓨전의 GPU 사용량이 높아서 계속해서 무료로 제공하긴 어려웠던 모양입니다.

 

 

자! 이제 왼쪽 상단의 로고가 PRO로 변경된 걸 확인할 수 있으실 겁니다. 이제 바로 스테이블 디퓨전(ComfyUI) 설치까지 가보도록 할게요! 준비한 아래 링크로 접속해 주세요.

 

https://colab.research.google.com/drive/1cBB2HPmOuTk8HM7GMADAdRA1uEfpc_wM?usp=sharing

 

 

미리 작성된 스테이블 디퓨전(ComfyUI) 설치, 실행 코드가 있습니다. (공유된 코드는 ComfyUI git에서 제공하는 설치 코드에서 dependencies 이슈를 수정하고 Manager를 추가한 버전입니다.)

 

보이는 화면은 저의 구글 드라이브에 위치한 파일이기 때문에 Drive로 복사를 클릭하셔서 본인의 구글 드라이브로 가져가시면 됩니다. 클릭하면 바로 개인 Colab으로 연결됩니다.

 

 

왼쪽 상단에 “colab_comfyui_240303.ipynb의 사본”이라 뜬다면, 제대로 가져오신 겁니다. 본격적인 설치에 앞서서 Colab Pro버전에 맞게 GPU를 선택할 수 있습니다. RAM, 디스크 우측의 ▼를 클릭하면, 런타임 유형 변경을 선택할 수 있습니다. Pro에 맞게 조금 더 좋은 GPU를 일정 리소스만큼 사용할 수 있습니다. (리소스 다 쓸 경우 추가 구매 필요)

 

 

이제 설정도 끝났겠다! 우측 옵션을 모두 클릭하고 코드를 실행해 보겠습니다. 코드 실행은 왼쪽 상단의 ▶ 단추를 클릭하시면 됩니다. 구글 드라이브를 사용하게 설정하였기 때문에 액세스 권한을 요청하는 팝업창이 나타납니다. 연결, 승인을 눌러주세요.

 

 

Colab이 열심히 환경설치를 하고 있는 동안 우리는 스테이블 디퓨전 모델을 다운로드하러 가겠습니다.

 

 

보통 최근에 스테이블 디퓨전을 처음 접하시는 분들은 SD XL 1.0 모델을 다운로드합니다. 하지만 오늘은 “맛보기”를 위한 날이기에 6.94GB의 SD XL 1.0 아닌 “Real Dream”이라는 2GB짜리 인물 중심으로 학습된 모델을 사용하겠습니다. 단순히 구글 클라우드 업로드 시간을 줄이기 위해 SD 1.5 기반의 저용량 모델을 선택한 것이기 때문에 “나는 XL 기반의 모델을 선택하고 싶다.” 하시면 아래 Civitai.com에 접속하셔서 마음에 드는 Checkpoint 모델을 다운로드하시면 됩니다.

Civitai.com: 세계 최대 이미지 AI생성 커뮤니티 https://civitai.com/models

 

출처: https://civitai.com/models/153568?modelVersionId=275455

 

모델을 다운로드할 때, 주의하실 점이 하나 있습니다. 오픈소스로 자유롭게 공유되고 있으나 작은 규모의 Checkpoint 모델도 2GB가 넘기 때문에 안에 어떤 악성코드, 바이러스를 포함하고 있을지 알 수 없습니다.

 

그래서 이러한 위험을 방지하고 AI모델 데이터의 빠른 저장과 배포를 목적으로 개발된 형식이 Safetensor입니다. 안전과 속도를 위해서라도 Safetensor 형식을 확인하고 다운로드하여 주세요. Cvitai에서 다운로드하는 대부분의 모델은 Safetensor 형식입니다.

 

 

Checkpoint 모델을 다운로드하셨다면, 구글 드라이브에 올려줘야 합니다. Colab에서 환경설정이 끝났다면, Google Drive 접속하면 ComfyUI 폴더가 기다리고 있을 겁니다.

 

 

Models 하위 폴더인 Checkpoints 폴더에 다운로드한 Checkpoint 모델을 업로드해 주세요. 그럼 이제 실행작업만 남기고 모든 준비가 끝났습니다!

 

 

다시 Colab으로 돌아와서 실행을 위해 “Run ComfyUI with localtunnel” 실행 단추를 클릭해 줍니다.

 

 

결과창에 위와 같은 URL링크가 나타납니다. 클릭해 주세요!

 

 

두둥! Tunnel Password 입력 창이 나타납니다.

 

 

Password는 바로바로! Colab 실행창에 있던 ip주소입니다.

 

 

짠! 드디어 스테이블 디퓨전을 사용할 수 있는 ComfyUI에 접속했습니다. 박수 👏👏👏👏👏

 

이곳에서 새로운 시대를 향한 첫걸음 내딛을 수 있습니다. 그러면 하나하나 설명하기 전에 다짜고짜 생성을 한번 해볼까요? 예제로 작성되어 있는 프롬프트가 있습니다.

 

그러니 우리는 왼쪽 Load Checkpoint에서 구글 드라이브에 업로드했던 Checkpoint 모델을 선택해 줍니다. 그리고 우측 Quene Prompt를 클릭하면 예제로 작성된 프롬프트대로 이미지가 생성됩니다. 참고로 Save/Load는 생성물에 대한 버튼이 아니라 작성되어 있는 워크프로세스(아래 설명)를 저장하고 불러오는 버튼입니다.

 

 

어떠신가요? 프롬프트대로 이미지가 잘 생성되었나요? 지금 보이는 화면이 가장 기본 중에 기본인 스테이블 디퓨전의 작업 프로세스입니다. 오늘은 딱! 눈에 보이는 프로세스만 이해하고 마치도록 하겠습니다. 전~~혀 어렵지 않습니다. 단순히 역할이 나눠진 플로우 차트로 이해하시면 됩니다.

 

우선 용어를 정리하면 Load Checkpoint, ClLP Text Encode, Ksampler 등 하나의 작업 창을 노드(Node)라고 부릅니다. 그리고 이러한 노드들의 집합을 워크프로세스라고 부릅니다. 우리는 다양한 노드를 조합하여 복잡한 워크프로세스를 제작할 수 있고 이를 통해 원하는 결과물을 생성 및 수정을 할 수 있습니다.

 

 

기본 워크프로세스에 존재하는 노드에 대해서 살펴보면, Load Checkpoint 노드는 말 그대로 Checkpoint 모델을 불러오는 노드입니다. 모델을 불러오기 위해서는 정확한 위치에 Checkpoint 모델이 존재해야 하고 ComfyUI 실행 중에 구글 드라이브 상에 모델을 추가한 경우에는 Colab에서 “Run ComfyUI with localtunnel”을 중단하고 재실행해야 적용됩니다.

 

 

다음은 ClLP Text Encode 노드입니다. 두 개의 노드가 있는데, Output이 Ksampler의 어떤 Input에 연결되어 있는지로 역할이 나뉩니다. 위에 있는 ClLP Text Encode는 생성하고자 하는 대상을 텍스트로 입력하는 긍정 프롬프트입니다. Ksampler의 positive input과 연결되어 있습니다.

 

반면에 아래에 위치한 ClLP Text Encode는 생성 대상에 없었으면 하는 내용을 텍스트로 입력하는 부정 프롬프트입니다. Ksampler의 negative input과 연결되어 있습니다. Output을 끌어서 바꾸게 된다면, 역할 역시 바꿀 수 있습니다.

 

 

Empty Latent Image 노드에서는 생성 이미지의 크기, 한 번의 작업에서 생성할 이미지의 개수를 정할 수 있습니다.

 

 

KSampler 노드는 스테이블 디퓨전 모델의 이미지 생성 메커니즘을 수행하는 노드입니다. 스테이블 디퓨전의 기본 원리를 상세히 다루진 않겠습니다만, Sampler는 노이즈가 가득한 임의의 이미지에서 프롬프트에 맞게 스탭 별로 노이즈를 제거해 가며 이미지를 생성하는 기능을 합니다. 그리고 seed, control_after_generate, step 등은 Sampler의 구동을 위한 설정 값(파라미터)입니다.

 

 

Seed는 생성할 때, 임의로 주어지는 시작점으로 값을 고정하게 되면 거의 동일한 이미지가 여러 번 생성됩니다.

 

Control_after_generate는 seed 값을 +-1씩 변경, 무작위, 고정을 설정할 수 있는 파라미터입니다. Steps은 몇 번의 샘플링을 할지 정할 수 있습니다. 높다고 하여 반드시 좋은 품질의 이미지가 나오는 것은 아닙니다. 일반적으로 20~30의 값을 사용합니다. sampler name은 샘플러 알고리즘 선택하는 것으로 모델 별로 권장하는 샘플러 알고리즘이 있습니다.

 

 

VAE Decode는 AI의 작업공간인 잠재공간에서 우리가 눈을 볼 수 있는 픽셀 공간으로 변환을 담당합니다.

 

 

마지막으로 이미지의 저장을 담당하는 노드입니다. 우리는 Colab과 구글 드라이브를 연동해서 사용했기에 자연스럽게 구글 드라이브 > ComfyUI > output에서 생성한 이미지를 확인할 수 있습니다.

 

오늘 처음으로 스테이블 디퓨전을 함께 설치하고 사용해 보았는데요... 어떠셨나요? 생각보다 기술적으로 어려운 부분은 없지 않았나요? 물론 스테이블 디퓨전의 기반이 되는 latent diffusion model에 대한 설명이나 이해는 과감히 생략하였고 실제 전문가들이 사용하는 다양한 노드, 익스텐션 모델 등은 언급하지 않았습니다. 하지만 이러한 부분은 관심을 가지고 한 걸음 씩 나아가면서 학습을 하면 해결될 부분이라 생각합니다.

 

오늘은 단지 이미지 생성형 AI에 대한 막연함을 깨고 한번 사용해 보면서 "아! 스테이블 디퓨전이 이런 거구나!" 정도의 흥미를 느끼셨다면 충분하다고 생각합니다. 다음 이 시간에는 스테이블 디퓨전에 대한 정말 정말 쉬운 이론과 몇 가지 노드를 섞어서 조금 더 복잡한 워크플로우를 만들어보겠습니다.

 

사실 Civitai, tensorart 같은 사이트에서 찾아볼 수 있는 멋진 이미지들은 한 가지 체크포인트 모델로만 생성한 이미지가 아닙니다. LoRA, 하이퍼네트워크, VAE, Embedding, textual inversion 등을 활용하여 프롬프트를 작성합니다. 그래서 이게 대체 뭔지?! 어떤 역할을 하는지를 알아보는 시간을 가져보겠습니다.

 

물론 스테이블 디퓨전에 흥미가 생기셨다면, 유튜브나 블로그에 "ComfyUI"를 검색하시면 다양한 무료 강의가 있으니 찾아서 공부해 보시면 좋을 것 같습니다. (이미 결제한 $10이 아깝잖아요~!) 마지막으로 몇 가지 예상되는 Q&A 를 작성해 보며 글을 마치겠습니다.

 

Q1. 매번 Colab에서 설치해야 하나요?

A1. 네, Colab의 특성상 구글 클라우드 상의 가상 환경에 ComfyUI를 설치한 것이기 때문에 매번 Environment Setup을 해주셔야 합니다.

 

Q2. 모델도 매번 다시 다운로드해야 하나요?

Q2. 아니요! 한번 다운로드해서 구글 드라이브에 넣은 경우, USE_GOOGLE_DRIVE를 체크하신다면 그 이후에 계속해서 사용할 수 있습니다.

 

Q3. 너무 불편한데, 개인 PC에서 ComfyUI를 실행하려면 어느 정도 스펙이 필요한가요?

A3. 음... 목적에 따라 다를 수 있겠습니다만, 아래 사양 정도는 되어야 학습하시는데 지장이 없을 것이라 생각합니다.

 

24년 3월 조립 PC 기준 100만 원+a 정도 예산이면 맞출 수 있는 사양입니다.

RAM : 32GB

GPU : Nvidia 계열 8GB 이상 (RTX 3060 8GB ~ )

SSD : 500GB 이상

 

가장 중요한 것은 그래픽카드(GPU) 메모리입니다. 저는 2년 전에 비디오게임을 하기 위해 구매한 Nvidia RTX 3060 12GB를 사용하고 있습니다. 아직 학습단계이기 때문에 사용에 큰 어려움을 느끼지 않고 있습니다. 전문가 분들은 아무래도 한 장의 완성도 높은 결과물을 만들기 위해 수백수천 장을 생성하다 보니 고성능의 RTX 4090 24GB을 추천하셨습니다.

 

그럼 ~ 다음 이 시간에 만나요~! 안녕!

 

천승원 2024.03

 

 

 

Posted by 레인디어팀