learn.ericfromkorea.com / small-stable-diffusion

원하는 걸 그리게 하기

클래스 조건부 생성과 CFG(선명도 손잡이) — 같은 모델로 13종 골라 그리기

차례
  1. 원하는 걸 그리기
  2. 조건 넣는 법
  3. CFG — 힌트를 더 세게
  4. 13종 골라 그리기
STEP 1

원하는 걸 그리게 하기

앞 페이지의 모델은 "아무거나" 그렸어요. 이번엔 "얼룩말을 그려줘"처럼 종류를 골라 그리게 만듭니다. 방법은 의외로 간단해요 — 모델에게 노이즈 그림과 단계 t뿐 아니라 "지금 그리는 건 9번(얼룩말)이야"라는 힌트(클래스 번호)도 같이 줍니다.

🎨 비유: 화가에게 "그냥 그려" 대신 "고양이 그려"라고 말해주는 것. 모델 안에서는 클래스 번호를 작은 벡터(임베딩)로 바꿔 단계 정보에 더해줍니다.
STEP 2

조건을 넣는 법

클래스 번호를 임베딩(작은 숫자 벡터)으로 바꿔, 단계 정보와 합쳐 모델에 넣어요. 그러면 같은 모델이 "고양이 모드", "버스 모드"처럼 다르게 동작합니다.

조건부 생성 설정
조건 입력
클래스 번호 0~1213종 중 무엇을 그릴지
조건 주입
임베딩 → 시간 정보에 +그림 만드는 내내 힌트 유지
학습 트릭
10% 확률로 힌트 제거CFG를 쓰려고 일부러 가림

학습할 때 일부러 10%는 힌트를 지워 "아무거나 모드"도 함께 배우게 했어요. 이게 다음에 나올 CFG의 비밀 재료입니다.

STEP 3

CFG — 힌트를 더 세게

Classifier-Free Guidance는 그림 AI의 "선명도 손잡이"예요. 생성할 때 모델을 두 번 돌립니다: 하나는 힌트 있음("고양이"), 하나는 힌트 없음("아무거나"). 그리고 둘의 차이를 과장해서 더합니다.

🔊 비유: "고양이 쪽으로 가는 방향"을 찾아서 그 방향으로 더 멀리 밀어주는 것. 손잡이(guidance scale)를 키우면 더 또렷한 "고양이다움"이 나오지만, 너무 키우면 부자연스러워져요.

아래는 같은 노이즈에서 시작해 guidance scale만 바꿔 생성한 결과예요.

CFG 강도 비교
왼쪽(약함)→오른쪽(강함). 셀수록 클래스 특징이 또렷해지는 실제 생성 결과
STEP 4

13종 골라 그리기

이제 클래스를 지정해 한 종씩 그려봤어요. 배운 13종 안에서는 그 종류다운 형태와 색이 나옵니다. (배우지 않은 것, 예를 들어 "비행기"는 번호 자체가 없어서 그릴 수 없어요 — 이게 도메인 제한입니다.)

클래스별 생성
클래스를 지정해 생성한 13종 (CFG=4). 각 그림 위 라벨이 '그려달라고 시킨 카테고리'. 모두 실제 모델 출력

다음 → 잠재공간 디퓨전으로 진짜 Stable Diffusion 구조 완성