본문 바로가기
C.W.K.
Stream
Lesson 04 of 10 · published

노이즈 제거가 생성이 되는 이유와 텍스트 조건

~14 min · diffusion, latent-space, l4

Level 0첫 불꽃
0 XP0/100 lessons0/14 achievements
0/200 XP to next level200 XP to go0% complete

피파 한 줄 정리: 학습은 노이즈를 빼는 일 하나지만, 순수 노이즈에 그 능력을 반복하면 생성이 나타나. 텍스트는 cross-attention으로 매 단계의 경로를 조금씩 원하는 쪽으로 밀어.

기존 이미지에서 노이즈를 지우는 법만 배운 모델이 어떻게 본 적 없는 이미지를 만들까? 수천 개의 jigsaw puzzle을 연구한 사람에게 무작위 조각을 주는 상황을 생각해봐. 특정 퍼즐을 외워 재현하지 않아도 유효한 퍼즐이 어떤 모습인지는 알아. 그래서 조각을 전에 없던 그럴듯한 그림으로 배열할 수 있어.

모델이 배운 것은 이미지의 분포다

모델은 개별 이미지를 외우기보다 가능한 이미지 전체의 통계적 분포를 배웠어. 순수 노이즈를 제거할 때 이 분포 안을 이동해 혼돈에서 그럴듯한 이미지로 가는 길을 찾아. 시작 노이즈가 다르면 경로와 결과도 달라져.

노이즈 A → 🌫️ → 🌁 → 🖼️ 새벽 풍경
노이즈 B → 🌫️ → 🌁 → 🖼️ 따뜻한 빛의 초상
노이즈 C → 🌫️ → 🌁 → 🖼️ 과일 정물

같은 모델과 학습이라도 출발점이 다르면 이미지 공간의 여정도 다르다.

텍스트 조건이 노이즈 제거를 이끈다

길잡이가 없으면 아무 유효 이미지로나 갈 수 있어. 원하는 내용을 정하려면 프롬프트를 text encoder로 수치 표현에 바꾸고 매 노이즈 제거 단계에 넣는 text conditioning을 사용해.

텍스트 없음:
🎲 → [노이즈 제거] → [노이즈 제거] → … → 🖼️ 무작위 유효 이미지

“창턱 위 고양이” 조건:
🎲 → [노이즈 제거 + 🔤] → [노이즈 제거 + 🔤] → … → 🖼️ 창턱 위 고양이
             ↑                      ↑
          매 단계에서 텍스트가 길을 잡는다

모델은 매 단계 “이 노이즈 이미지와 ‘창턱 위 고양이’라는 문장을 함께 볼 때 조금 더 깨끗한 상태는 어떤 모습일까?”라고 계산해. 텍스트가 픽셀을 명령하지는 않지만 이미지 공간에서 설명과 맞는 영역으로 경로를 기울여.

텍스트가 들어가는 방식

CLIP이나 T5 같은 text encoder가 단어를 의미를 담은 벡터로 바꾸고, cross-attention이 노이즈 제거 모델에 이 벡터를 매 단계 보여줘. FLUX처럼 Mistral Small 같은 강한 언어 모델을 encoder로 쓰는 모델이 예전의 단순한 CLIP 기반 모델보다 자연어 지시를 잘 이해하는 이유야.

핵심 정리
  • 노이즈 제거가 생성이 되는 까닭은 모델이 개별 이미지가 아니라 유효한 이미지의 분포를 배웠기 때문이다.
  • 시작 노이즈가 달라지면 제거 경로와 최종 이미지도 달라진다.
  • 텍스트 조건은 매 노이즈 제거 단계를 프롬프트와 맞는 개념 쪽으로 이끈다.
  • 텍스트는 벡터로 바뀌어 cross-attention을 통해 매 단계에 들어간다.

External links

Exercise

프롬프트를 비우거나 공백 하나만 넣어 이미지 하나를 생성해. 모델이 무엇을 만들었는지 보고 색 조합과 구도 성향을 100자로 적어. 그게 unconditional prior야.

Progress

Progress is local-only — sign in to sync across devices.
이 페이지에서 버그를 발견하셨거나 피드백이 있으세요?문제 신고

댓글 0

🔔 답글 알림 (로그인 필요)
로그인댓글을 남기려면 로그인해 주세요.

아직 댓글이 없어요. 첫 댓글을 남겨보세요.