본문 바로가기

공부/ComfyUI

[ComfyUI] Stable Diffusion AI 스터디 - Stable Diffusion과 친해지기

728x90
반응형

 

  • AI 이미지 생성툴로 완벽한 이미지 생성을 목표로 하지 않는다.
  • AI 이미지 툴은 조수이고 그림은 본인이 그린다.

 

  • 다른 이미지 생성툴과의 다른점은 다양한 체크포인트 모델을 통해 자신의 용도에 맞는 이미지 퀄리티를 생성할 수 있음.
  • 다른 이미지 생성툴에 비해 Negative prompt의 유무에 따라 이미지 퀄리티가 많이 좌우됨

 

 

 

 

 

Web UI

  • Slide, Button 등 웹 형태의 UI로 많은 사람들이 사용하고 있음

Comfy UI

 

GitHub - comfyanonymous/ComfyUI: The most powerful and modular stable diffusion GUI, api and backend with a graph/nodes interfac

The most powerful and modular stable diffusion GUI, api and backend with a graph/nodes interface. - comfyanonymous/ComfyUI

github.com

  • 최근들어 사용자가 늘어나고 있는 Stable Diffusion UI
  • 노드 형태로 기능들이 모듈화되어 있는 것이 특징
  • 사용자가 원하는 대로 커스텀이 쉽게 가능
    • 노드에 익숙한 사용자라면 친숙
  • Web UI보다 비교적 빠르다는 장점도 있음

 

 

 

 

 

  • Process
    1. Prompt 작성으로 이미지 생성기 제작
    2. ControlNet과 사진 이미지로 원하는 구도대로 이미지 생성
    3. 포토샵에서 합성 및 보완
    4. 업스케일링
    5. (필요한 경우) 포토샵에서 추가 작업

 

 

 

 

  • ControlNet
    • 소스로 쓰일 이미지를 생성한 이미지와 합성하는 기능
    • Preprocessor와 model을 통해
      • 이미지 합성을 컨트롤 할 수 있음
      • depth
    • Control Weight
      • 컨트롤넷의 제어를 얼마나 따를 지에 대한 수치
      • 기본은 1. 보통 0.75~0.85도 많이 사용함

 

 

 

  • Sampler
    • Input
      • model
      • positive
      • negative
      • latent_image
        • Empty Latent Image 노드를 통해 width, height, batch_size를 설정해준다.
        • 보통은 512 기준으로 비율을 맞추는 걸 추천. 이후 Upscaling을 통해 다시 샘플링 해주면 된다.
    • steps
      • 그림을 얼마나 오래 그릴 지를 결정하는 곳
        • 그림에서 너무 일찍 손을 떼면 미완성 그림이 되고 너무 오래 잡고 있으면 별 차이가 없거나 오히려 망치는 경우도 있다.
      • Sampler와 비슷. 높을수록 속도 up, 퀄리티 up
      • 주로 20-30사이
    • cfg
      • 작성된 Prompt에 얼마나 충실하게 생성할것인지 설정
      • 높을수록 속도 up, 밀도/퀄리티 up
      • 주로 7.5~8
    • sampler_name
    • scheduler
      • 각 단계별로 노이즈를 얼마나 제거할지 결정
      • 매 단계별로 일정한 분량 만큼 제거하는 알고리즘, 처음엔 많이 제거하고 뒤로 갈수록 제거하는 양이 줄어드는 알고리즘등이 있다.
      • denoise
        • 최초의 noise를 얼마나 제거할지를 결정
        • 1 = 전체 제거

 

 

 

 

 

 

 

  • Model
    • 학습 모델이며, 크게 3가지가 있음.
      • Base Model
        • 프롬프트 해석 방식 및 고해상도 처리 방식 등 이미지 샘플링에 대한 기능적인 부분이 학습된 데이터
          • SD v1.4 / SD v1.5 / SDXL … 등이 해당된다.
      • Checkpoint
        • Save Path
          • ~ComfyUI\models\checkpoints
        • 베이스 모델이나 다른 체크포인트를 기반으로 이미지 데이터를 추가 학습하여 용도에 맞게 커스터마이징한 것
        • 파인 튜닝(Fine Tuning)된 모델
        • 보통 3~6GB 사이의 용량, ‘ckpt’ 혹은 ‘safetensors’ 확장자를 가짐
          • safetensors는 기존 ckpt형식에서 배포용으로 개선된 확장자이며, 모델을 불러오는 속도가 더 빠르고 악성 코드로부터 좀 더 안전. 가급적 safetensors 확장자 사용을 권장
      • Extra Networks
        • 체크포인트에 추가로 다른 학습 모델을 붙이는 개념
        • 체크포인트에 예를 들어 헬멧이라는 개념이 없다면 헬멧이 학습된 확장 모델을 붙여 인물에 헬멧을 씌울 수 있게 된다.
          • LoRa, Textual Inversion(임베딩; Embedding), Hyper Networks … 등이 해당된다.
        • 체크포인트 모델Base Model 버전이 일치해야한다.
          Civitai>Bubble Drip
          • LoRa (Low-Rank Adaption)
            • Save Path
              • ~ComfyUI\models\loras
            • USB로 비유하기도 한다.
            • 체크포인트에 자동차가 학습된 Lora를 넣는다면 자동차 이미지를 생성할 수 있다.
            • 체크포인트 모델의 Base Model 버전이 일치해야한다.
            • <lora:모델명:가중치>를 통해 가중치 입력 가능. 한번에 여러 확장 모델 중복 사용 가능
          • Textual Inversion (임베딩; Embedding)
            • Save Path
              • ~ComfyUI\embeddings (폴더가 없으면 새로 만들고 저장하기)
            • 보통 임베딩이라고 부름
            • 새로운 데이터를 추가하는 Lora와 다르게 기존 체크포인트 모델에 학습된 데이터의 단어를 새롭게 정의하는 방식이라고 생각하면 된다.
              임베딩 설명
            • 일반적으로 ‘EasyNegative’와 같이 낮은 품질에 대한 단어가 학습된 Embeddings을 주로 기본으로 사용한다.
            • 프롬프트란에 추가해서 사용 (easynegative의 경우 negative 프롬프트란에)
              • ex) easynegative
  • VAE (Variational Auto Encoder)
    • Save Path
      • ~\models\Vae
    • 간단히 용도로 설명하면 이미지의 색감과 선명도를 개선해 주는 후보정용 모델
    • VAE 또한 Civitai이나 HuggingFace에서 다운 가능
    • 대표적으로 사용 하는 VAE 모델
      • vae-ft-mse-84000
      • kl-f8-anime2(베리믹스)
      • Anything-V3.0
    • VAE는 다른 모델과 다르게 이미지 구조에 영향을 주지 않기 때문에 이미지 스타일에 알맞은 모델을 사용하면 된다.

 

 

 

 

 

 

 

 

 

개인적으로 스터디한 내용을 정리하기에 내용이 정확하지 않을수도 있습니다 !!

 

728x90