← 글 목록

notes

로컬 생성형 이미지 AI

로컬 생성형 이미지 AI의 실행 환경·모델·워크플로 구성과 활용 메모.

✅ Stable Diffusion / ComfyUI / Pony Diffusion 전체 시스템에 대한 상세 설명


1. Stable Diffusion이란 무엇인가?

Stable Diffusion은 텍스트를 입력받아 이미지를 생성하는 **잠재 확산 모델(Latent Diffusion Model)**입니다.

기존의 이미지 생성 모델과 달리, 고해상도 이미지를 직접 생성하지 않고, 먼저 저해상도의 **잠재 공간(Latent Space)**에서 연산을 수행한 뒤, 마지막에 실제 이미지로 복원하는 방식을 사용합니다.

이 구조 덕분에 연산량을 크게 줄이면서도 고품질 이미지를 생성할 수 있게 되었습니다.

주요 구성 요소는 다음과 같습니다:

  • UNet: 노이즈를 제거하는 핵심 신경망
  • CLIP Text Encoder: 텍스트를 숫자 벡터로 변환
  • VAE: 이미지를 압축하고 복원하는 오토인코더

2. ComfyUI란 무엇인가?

ComfyUI는 Stable Diffusion을 **노드 기반(Node-based)**으로 실행할 수 있게 해주는 그래프 기반 인터페이스입니다.

일반적인 Stable Diffusion 웹UI와 달리, 사용자가 직접 데이터 흐름을 시각적으로 구성할 수 있습니다. 각 노드는 특정 기능을 담당하며, 사용자가 이 노드들을 연결하여 원하는 워크플로우를 만들 수 있습니다.

ComfyUI의 장점은 다음과 같습니다:

  • 복잡한 워크플로우를 자유롭게 구성 가능
  • LoRA, ControlNet, IP-Adapter 등 다양한 확장 기능을 쉽게 결합
  • 실제 생성 과정을 시각적으로 확인할 수 있음
  • API 호출이 가능하여 외부 프로그램과 연동하기 용이함

3. Pony Diffusion V6 XL이란 무엇인가?

Pony Diffusion V6 XL은 Stable Diffusion XL(SDXL) 기반으로 학습된 특화된 체크포인트 모델입니다.

일반 SDXL 모델과 비교했을 때 다음과 같은 특징이 있습니다:

  • 특정 태그(score_9, score_8_up 등)를 사용하면 이미지 품질이 크게 향상됨
  • 복잡한 디테일(문신, 의상, 배경 등)을 잘 표현함
  • 동양인 얼굴 표현력이 비교적 우수함

이 모델은 학습 데이터의 구성과 프롬프트 해석 방식이 일반 SDXL과 다르기 때문에, 전용 프롬프트 규칙을 따르는 것이 좋습니다.


4. Checkpoint (.safetensors) 파일의 역할

Checkpoint 파일은 훈련이 완료된 신경망의 가중치를 저장한 파일입니다.

내부에는 다음과 같은 구성 요소가 포함되어 있습니다:

  • UNet 가중치: 노이즈 제거를 담당하는 핵심 모델
  • CLIP Text Encoder 가중치: 텍스트를 이해하는 모델
  • VAE 가중치 (일부 모델의 경우): 이미지 압축/복원 모델

이 파일 하나만으로도 이미지 생성이 가능하지만, 실제로는 VAE를 별도로 사용하는 경우가 많습니다.


5. VAE(Variational AutoEncoder)의 역할

VAE는 이미지를 저차원 잠재 공간으로 압축하고, 다시 복원하는 역할을 합니다.

고해상도 이미지를 그대로 처리하면 연산량이 너무 크기 때문에, VAE를 통해 다음과 같은 과정을 거칩니다:

  • Encoder: 1024×1024 이미지를 128×128 크기의 잠재 벡터로 압축
  • Latent Space에서 연산: UNet이 이 압축된 공간에서 노이즈 제거 수행
  • Decoder: 최종적으로 잠재 벡터를 다시 고해상도 이미지로 복원

이 압축 과정 덕분에 메모리 사용량과 연산 시간을 크게 줄일 수 있습니다.


6. CLIP Text Encoder의 역할

CLIP Text Encoder는 사용자가 입력한 텍스트를 숫자 벡터(embedding)로 변환합니다.

예를 들어 "beautiful Japanese woman, detailed background"라는 문장을 입력하면, CLIP은 이 문장을 768차원 또는 1280차원의 숫자 배열로 바꿉니다.

이 숫자 배열이 UNet에게 **"이런 특징을 가진 이미지를 생성해 달라"**는 지시를 전달하는 역할을 합니다.


7. Diffusion 과정 (이미지가 생성되는 원리)

Stable Diffusion의 핵심은 점진적인 노이즈 제거입니다.

생성 과정은 다음과 같습니다:

  • 처음에 완전한 랜덤 노이즈 이미지를 생성
  • UNet이 이 노이즈를 한 단계씩 제거
  • 수십 번의 반복 후, 점차 형체가 잡히고 원하는 이미지가 완성

이 과정을 Denoising Diffusion이라고 부릅니다.

각 단계에서 UNet은 현재 상태와 텍스트 조건을 함께 고려하여, 다음 단계에서 제거해야 할 노이즈를 예측합니다.


8. Sampler와 Scheduler의 차이

Sampler와 Scheduler는 노이즈 제거 과정을 어떻게 진행할지 결정하는 중요한 요소입니다.

  • Sampler: 노이즈를 제거하는 수학적 방법을 의미합니다.

    예: Euler, DPM++ 2M SDE, UniPC 등

  • Scheduler: 각 단계에서 **노이즈의 강도(스케줄)**를 어떻게 조절할지 결정합니다.

    예: Karras, Linear, Exponential 등

일반적으로 Sampler는 "어떤 방식으로 제거할지", Scheduler는 "얼마나 빠르게/천천히 제거할지"를 담당한다고 이해하면 됩니다.

Pony Diffusion에서는 DPM++ 2M SDE + Karras 조합이 비교적 안정적인 결과를 내는 것으로 알려져 있습니다.


9. CFG Scale이 실제로 하는 일

  • *CFG Scale (Classifier-Free Guidance Scale)**은 텍스트 조건을 얼마나 강하게 반영할지 결정하는 값입니다.
  • CFG Scale이 낮을 때 (1~4):

    텍스트를 약하게 반영 → 더 창의적이지만, 프롬프트와 벗어날 가능성이 있음

  • CFG Scale이 높을 때 (7~15):

    텍스트를 강하게 반영 → 프롬프트에 충실하지만, 과도하게 높이면 이미지 품질이 저하될 수 있음

Pony Diffusion V6 XL의 경우, CFG Scale을 5~7 정도로 설정하는 것이 일반적으로 권장됩니다. 너무 높이면 오히려 품질이 떨어지는 경향이 있습니다.


10. LoRA가 어떻게 동작하는가

  • *LoRA (Low-Rank Adaptation)**는 기존의 큰 모델을 추가 학습하지 않고도, 특정 스타일이나 개념을 추가할 수 있게 해주는 경량화된 학습 기법입니다.

작동 원리는 다음과 같습니다:

  • 기존 Checkpoint 모델의 가중치를 고정시킨 상태로 유지
  • 별도의 작은 행렬(Low-Rank Matrix)을 학습하여, 특정 개념을 표현
  • 추론 시 이 작은 행렬을 기존 모델에 더하기 방식으로 적용

이 방식의 장점은:

  • 학습에 필요한 GPU 메모리와 시간이 크게 줄어듦
  • 여러 LoRA를 동시에 적용할 수 있음
  • 원본 모델을 손상시키지 않음

예를 들어 특정 문체, 특정 의상 스타일, 특정 배경 등을 LoRA로 학습시켜 추가할 수 있습니다.


11. Flux와 Pony Diffusion의 근본적인 차이

Pony는 태그 기반 프롬프트와 복잡한 디테일에 강하고, Flux는 자연어 이해도와 전반적인 이미지 품질에서 앞선다는 평가를 받고 있습니다.


12. 로컬 실행 vs 클라우드 API의 비용 차이

  • 클라우드 API (DALL·E, Midjourney, Stable Diffusion API 등):

    사용자가 프롬프트를 보내면 서버에서 이미지를 생성 → 결과만 전달

    → 서버 운영 비용, GPU 비용을 사용자가 지불 (토큰/크레딧 소모)

  • 로컬 ComfyUI:

    사용자의 GPU가 직접 모든 연산을 수행

    → 추가적인 API 비용이 발생하지 않음 (전기세 + GPU 감가상각비만 발생)

이 때문에 로컬에서 ComfyUI로 실행하면 토큰 비용이 거의 들지 않는 것입니다.