생성 AI 이미지 모델 작동 원리: 확산, 잠재 공간, 텍스트 인코더 쉽게 설명
개요
현재 모든 이미지 모델은 노이즈 제거기야. 학습할 때 수백만 장의 이미지에 점점 더 많은 랜덤 노이즈를 섞고, 각 이미지의 캡션과 함께 보여줘서 어떤 노이즈가 섞였는지 예측하도록 배워. 생성할 때는 이 과정을 거꾸로 해: 순수 노이즈에서 시작해서 네가 준 프롬프트에 맞게 노이즈가 뭔지 모델에 물어보고, 조금씩 제거해. 이걸 20~30번 반복하면 캡션에 맞는 이미지가 나타나. 이게 핵심이고, "확산(diffusion)"은 노이즈를 점점 더 넣었다가 빼는 과정을 뜻해.
원본 픽셀로 작업하면 너무 느리니까, Stable Diffusion 1.x부터는 노이즈 제거를 잠재 공간(latent)이라는 압축된 공간에서 해. VAE라는 작은 네트워크가 1024x1024 이미지를 128x128 숫자 그리드로 압축하고 마지막에 다시 확장해. 노이즈 제거기(예: SD 1.5와 SDXL의 U-Net, Flux나 Qwen, Z-Image, 비디오 모델의 트랜스포머)는 픽셀을 직접 보지 않아. 그래서 이미지 크기가 8 또는 16의 배수여야 하고, VAE 디코드 단계가 메모리를 많이 쓸 수 있어.
프롬프트는 텍스트 인코더를 거쳐 단어를 노이즈 제거기가 조건으로 쓸 수 있는 숫자 리스트로 바꿔. SD 1.5는 77토큰 제한의 CLIP 인코더 하나, SDXL은 두 개, Flux는 큰 T5 언어 모델을 추가하고, 2025년과 2026년 모델(Qwen Image, FLUX.2, Z-Image, Wan 2.2)은 완전한 LLM을 인코더로 써. 이 변화가 프롬프트 작성 방식 차이의 대부분을 설명해: CLIP 기반 모델은 태그 리스트, LLM 기반 모델은 자연스러운 문장. 마지막으로 LoRA는 노이즈 제거기 가중치(가끔 인코더도) 조정하는 작은 수정 집합으로, 새 지식을 추가하는 게 아니라 기본 모델이 이미 배운 걸 재조정하는 거야.
참고 자료
이름 | 타입 | 의미 |
|---|---|---|
Denoiser (U-Net / DiT) | component | |
VAE | component | 이미지를 잠재 공간으로 압축하고 다시 복원해. 잘못된 VAE나 없으면 이미지가 흐릿하거나 보라색 빛이 돌 수 있어. Flux와 최신 모델들은 자체 16채널 VAE를 제공해. |
Text encoder | component | CLIP-L, CLIP-G, T5-XXL 또는 LLM(Qwen2.5-VL, Mistral, Gemma). 프롬프트를 어떻게 이해하고 얼마나 길게 쓸 수 있는지 결정해. |
Scheduler / sampler | setting | 각 스텝마다 얼마나 노이즈를 제거할지와 수치적 방법을 정해. 텍스처와 수렴 속도는 바꾸지만 내용은 바꾸지 않아. |
Steps | setting | 노이즈 제거 반복 횟수. Turbo, Lightning, Schnell, Klein 같은 증류 모델은 1~8 스텝만 필요해. |
CFG / guidance | setting | 클래시파이어-프리 가이드: 프롬프트 조건 예측을 비조건 예측에서 얼마나 멀리 밀어내는지. 너무 높으면 색이 타버려; guidance-distilled 모델(Flux dev)은 단일 가이드 값만 써. |
Latent size | setting | |
Flow matching | training method |
단계별 안내
- 노이즈 입력: 시드로부터 랜덤 숫자 잠재 그리드를 생성해. 시드를 바꾸면 이후 결과도 바뀌어.
- 프롬프트 입력: 텍스트 인코더가 단어를 임베딩으로 바꿔. CLIP 모델은 77토큰 넘으면 잘라내거나 버려; LLM 기반 모델은 문단도 문제없어.
- 각 스텝: SD와 SDXL은 노이즈 제거기를 두 번 실행(프롬프트 포함/미포함); 두 결과 차이를 CFG로 조절해 잠재 공간을 프롬프트 방향으로 움직여. Flux dev는 가이드 값이 내장된 한 번 실행.
- 샘플러가 스케줄(Karras, exponential, simple, beta)에 따라 예측 노이즈를 빼. 마지막 스텝 후 잠재 공간은 압축된 깨끗한 이미지.
- 디코드: VAE가 잠재 공간을 픽셀로 확장. 큰 이미지에선 이 단계가 8GB 카드 메모리를 초과할 수 있어 타일드 VAE 디코드가 있음.
- 선택적 두 번째 패스: hires-fix는 결과에 약간 노이즈를 다시 넣고 더 큰 크기로 노이즈 제거; img2img는 순수 노이즈 대신 기존 이미지에서 시작; 인페인팅은 변경을 마스크 영역으로 제한.
- 비디오 모델은 잠재 공간에 시간 축을 추가(5초 클립은 3D 잠재 공간 하나)하고 나머지는 같은 루프라 메모리가 10배 필요해.
예시
세 가지 아키텍처에서 같은 프롬프트
SD 1.5 (CLIP, 77 tokens): "portrait of an old sailor, grey beard, wool cap, harbour background, film photo"
SDXL (two CLIPs): same words, 1024x1024, CFG 6, 28 steps
Flux dev (CLIP-L + T5): "A weathered old sailor with a grey beard and a navy wool cap stands at a harbour railing at dusk; shallow depth of field, Kodak Portra look." guidance 3.5, 24 steps
ComfyUI 노드와 구성 요소 매핑
Load Checkpoint -> MODEL (denoiser), CLIP (text encoder), VAE
CLIP Text Encode (prompt) -> KSampler (sampler, steps, CFG, seed) -> VAE Decode -> Save Image
팁
- 모델은 학습 데이터에 없던 걸 그릴 수 없어. 그래서 애니메이션 파인튜닝은 수천 캐릭터를 알고 사진 모델은 못 알고, 거의 모든 빈틈에 LoRA가 존재해.
- 파인튜닝(DreamShaper, Juggernaut, Illustrious, Pony)은 기본 모델과 같은 구조에 가중치만 다름; 기본 모델용 LoRA는 보통 파인튜닝에도 작동하지만, 완전히 다른 파인튜닝(Pony)에는 안 될 때도 있어.
- 여기 설명한 모든 게 클라우드 파트너에서도 로컬과 똑같이 돌아가; 차이는 GPU 소유자가 누구냐뿐.
문제 해결
이미지가 회색빛, 흐릿하거나 보라색 빛이 돌 때
원인
VAE가 없거나 맞지 않거나 SDXL에서 fp16 VAE 오버플로우.
해결 방법
가족에 맞는 VAE를 불러와; SDXL은 fp16-fix VAE 사용.
긴 프롬프트가 일부 무시될 때
원인
SD 1.5와 SDXL의 CLIP 토큰 제한.
해결 방법
중요한 단어를 앞에 두거나 LLM 인코더가 있는 Flux, Qwen, Z-Image 모델로 바꿔.
색이 타고 대비가 너무 강할 때
원인
모델에 비해 CFG가 너무 높거나 가이드 증류 모델에 CFG 사용.
해결 방법
SDXL은 CFG 5~7로 낮추고, Flux dev는 가이드 3~4, CFG 1 사용.
큰 크기에서 타일링이나 피사체 중복
원인
잠재 공간 크기가 학습 해상도보다 훨씬 큼; 모델이 반복해서 그림.
해결 방법
원래 해상도로 생성 후 업스케일하거나 hires-fix에 0.4 노이즈 제거 사용.
마지막 단계에서만 메모리 부족
원인
전체 크기에서 VAE 디코드 단계.
해결 방법
타일드 VAE 디코드 사용하거나 작은 출력 크기 후 업스케일러 사용.
질문
모델이 학습 이미지 복사하는 건가?
가중치를 저장할 뿐 이미지 자체를 저장하거나 불러올 수 없어. 아주 자주 나온 이미지(유명 그림, 로고)와 비슷한 게 나올 수 있는데, 그래서 그런 이미지를 프롬프트에 넣지 않는 게 좋아.
아이디어는 같은데 왜 새 모델은 메모리가 더 많이 필요해?
더 큰 노이즈 제거기(Flux는 120억 파라미터, SD 1.5는 9억), 더 큰 텍스트 인코더, 더 큰 잠재 공간 때문. 양자화된 fp8, GGUF 버전이 메모리를 줄여줘.
체크포인트와 모델 차이는?
체크포인트는 모델(노이즈 제거기, 보통 인코더와 VAE 포함) 저장 파일이야. 사람들이 두 단어를 섞어 쓰기도 해.
같은 시드인데 다른 PC에서 다른 이미지가 나오는 이유?
GPU, 정밀도(fp16 vs bf16), 샘플러 구현 차이 때문. 노이즈는 같지만 계산 방식이 조금 달라. 같은 기기, 같은 설정이면 같은 이미지.
스텝 수가 많으면 항상 좋은가?
아니. 대부분 샘플러는 25~30스텝이면 수렴해; 그 이상은 시간 낭비. 증류 모델은 스텝 많으면 오히려 성능 떨어져.
링크 및 출처
- Denoising Diffusion Probabilistic Models (Ho et al., 2020)
- High-Resolution Image Synthesis with Latent Diffusion Models (Rombach et al., 2022)
- Flow Matching for Generative Modeling (Lipman et al., 2022)
- Flux family page
- SD 1.5 family page
- BitVector web appAD
이 가이드의 모델
작성자
재고를 관리합니다: 모든 LoRA, 모든 퀀트, 누군가가 final_v2_REAL.safetensors로 이름을 바꾼 모든 파일. 저녁 식사 전 몇 번의 Wan 렌더가 가능한지로 하드웨어를 평가합니다. VRAM 수치를 알려주고 크롬이 열려 있어서 틀렸다고 말할 겁니다. 가중치가 공개되지 않으면 출하되지 않은 것입니다.
Quartermaster의 모든 가이드
관련 가이드
AI 이미지 생성 시작하기: 10분 만에 첫 그림 만들기
2025년 8월 14일
스텝, CFG, 샘플러, 스케줄러, 시드: 안전한 기본값과 함께하는 생성 설정 설명
2025년 11월 19일
체크포인트 vs LoRA vs 임베딩 vs ControlNet: 각 파일의 역할
2025년 10월 8일
Flux vs SDXL vs SD 1.5 vs Qwen vs Z-Image: 2026년에 어떤 모델 패밀리를 쓸까
2026년 5월 22일

