Artoke

확산 모델: 지우개로 그림을 그리는 AI

확산 모델: 지우개로 그림을 그리는 AI

여러분, "AI가 그림을 그린다"는 말 들어봤나요? 요즘 컴퓨터에게 "우주복 입은 고양이 그려줘"라고 말하면 진짜로 그림이 튀어나옵니다. 그 뒤에 숨은 기술 중 하나가 바로 확산 모델(Diffusion Model)이에요.

이름은 어렵지만 아이디어는 아주 단순합니다. 오늘 하나만 기억하면 됩니다. 확산 모델은 지저분한 얼룩에서 그림을 "닦아내는" AI입니다.

1. 모래성이 무너지는 것을 되돌린다면?

바닷가에서 멋진 모래성을 만들었다고 생각해 봐요. 그런데 바람이 붑니다. 조금씩, 조금씩 모래가 날립니다. 시간이 지나면 성은 사라지고 그냥 평평한 모래밭만 남아요.

여기서 질문. 이 과정을 거꾸로 돌릴 수 있을까요? 평평한 모래밭에서 시작해서, 모래를 한 알 한 알 제자리로 돌려놓아 다시 성을 만드는 거예요.

사람은 못 합니다. 하지만 AI는 이걸 연습할 수 있어요. 그게 확산 모델입니다.

2. 두 개의 방향: 망가뜨리기와 되살리기

확산 모델에는 방향이 두 개 있습니다.

앞으로 가는 길(망가뜨리기)
깨끗한 사진에 지지직거리는 점(노이즈)을 조금씩 뿌립니다. 한 번, 두 번, 백 번… 계속 뿌리면 결국 사진은 TV가 고장 났을 때 나오는 모래알 화면처럼 됩니다. 이건 쉬워요. 컴퓨터가 그냥 점을 뿌리기만 하면 되니까요.

뒤로 가는 길(되살리기)
이번엔 반대입니다. 모래알 화면에서 시작해서 점을 조금씩 지웁니다. 지우고, 지우고, 또 지우면… 짠! 그림이 나타납니다.

어려운 건 두 번째죠. 그래서 AI가 배워야 하는 건 딱 하나입니다. "이 지저분한 그림에서 어떤 점이 가짜 점(노이즈)일까?"를 맞히는 일이에요.

확산 모델: 지우개로 그림을 그리는 AI 도식

3. AI는 어떻게 연습할까?

선생님이 시험 문제를 내는 방식과 똑같습니다.

  1. 깨끗한 고양이 사진을 하나 준비합니다.
  2. 선생님(컴퓨터)이 몰래 점을 확 뿌립니다. 어떤 점을 뿌렸는지는 선생님만 알아요.
  3. AI에게 지저분한 사진을 보여주며 묻습니다. "여기서 내가 뿌린 점이 뭐게?"
  4. AI가 답을 내면, 정답과 비교해서 틀린 만큼 혼납니다(=조금 고쳐집니다).

이걸 수백만 번 반복해요. 그러면 AI는 점점 노이즈 감별 전문가가 됩니다. 이제 아무리 지저분한 그림을 줘도 "여기 이 점은 가짜예요"라고 척척 찍어냅니다.

시간이 지날수록 노이즈가 점점 많아지는 노이즈 일정 그래프
출처: 확산 모델 (이미지 생성)

4. 그림 그리기 = 노이즈 지우기

여기가 제일 신기한 부분이에요.

노이즈를 잘 찾는 AI가 있다면, 그림도 그릴 수 있습니다. 어떻게요?

진짜 사진을 주는 대신, 그냥 아무 의미 없는 모래알 화면을 던져주는 거예요. 컴퓨터가 주사위를 굴려서 만든 완전한 무작위 점들이죠.

AI는 성실하게 자기 일을 합니다. "음… 여기 이 점들이 가짜 같네요." 그리고 그 점들을 살짝 지웁니다. 그러면 아주 조금 덜 지저분해져요. 다시 묻습니다. 또 지웁니다. 이걸 수십 번 반복하면…

없던 그림이 스스로 떠오릅니다. 마치 안개가 걷히면서 산이 보이는 것처럼요.

노이즈 제거 단계가 늘어날수록 성 그림이 또렷해지는 비교표
The denoising process used by Stable Diffusion · 출처: 확산 모델 (이미지 생성)

왜 이게 되냐고요? AI가 연습할 때 본 사진들이 전부 고양이, 사람, 풍경이었기 때문이에요. AI가 아는 "깨끗한 그림"은 그런 모습뿐입니다. 그래서 점을 지우다 보면 자연스럽게 그런 그림 쪽으로 끌려갑니다.

구름을 보면 토끼처럼 보일 때 있죠? AI도 비슷해요. 무작위 얼룩 속에서 자기가 아는 모양을 찾아내는 겁니다. 다만 AI는 우리보다 훨씬 집요하게, 끝까지 찾아내죠.

5. 매번 다른 그림이 나오는 이유

시작하는 모래알 화면이 매번 다르기 때문입니다.

주사위를 굴려서 만든 얼룩이니까, 두 번 똑같이 나올 리가 없어요. 출발점이 다르면 도착점도 달라집니다. 그래서 같은 "고양이 그려줘"를 열 번 시켜도 열 마리의 다른 고양이가 나옵니다.

이건 원본 사진을 베끼는 게 아니라, 비슷한 종류의 새 그림을 만들어내는 거예요. 자료에서 말하는 "원래 데이터와 비슷하게 분포된 새로운 것을 만든다"가 바로 이 뜻입니다.

6. "우주복 입은 고양이"는 어떻게 시키나?

지금까지는 AI가 마음대로 그렸어요. 우리가 원하는 걸 그리게 하려면 을 알려줘야 합니다.

그래서 노이즈를 지울 때마다 AI 옆에서 계속 속삭여 줍니다. "우주복 입은 고양이야, 잊지 마."

AI는 그 말을 듣고 지울 점을 고릅니다. 고양이 귀가 될 만한 부분은 남기고, 방해되는 점만 지우는 식이죠. 그렇게 안개가 걷히면 우주복 입은 고양이가 나타납니다.

7. 요령 하나: 작게 줄여서 작업하기

큰 그림 한 장은 점이 정말 많아요. 그걸 수십 번 닦아내려면 컴퓨터가 힘들어 죽습니다.

그래서 똑똑한 사람들이 요령을 냈어요. 먼저 그림을 작게 압축해서, 작은 상태에서 닦아내고, 마지막에 다시 크게 펼치는 겁니다.

큰 종이에 바로 그리지 않고 작은 스케치북에 밑그림을 그린 다음 확대하는 것과 비슷해요. 훨씬 빠르고, 결과도 좋습니다. 유명한 "스테이블 디퓨전"이 이 방식이에요.

스테이블 디퓨전의 구조도. 그림을 작게 압축한 공간에서 노이즈를 지운 뒤 다시 크게 펼친다
Architecture of Stable Diffusion · 출처: 확산 모델 (이미지 생성)

8. 지름길로 가는 방법도 있어요

노이즈를 지우는 걸 천 번 반복하면 그림은 예쁘지만 오래 걸립니다. 사람들은 늘 더 빠른 길을 찾죠.

그래서 나온 아이디어가 "구불구불 가지 말고 직선으로 가자"입니다. 모래알 화면에서 그림까지 가는 길이 있는데, 그 길이 꼬불꼬불하면 발걸음을 많이 나눠 딛어야 해요. 그런데 길을 쭉 펴서 직선으로 만들면? 몇 걸음 만에 도착할 수 있습니다.

출발점에서 목적지까지 곧게 이어진 흐름을 보여주는 그림
Transport by rectified flow [ 42 ] · 출처: 확산 모델 (이미지 생성)

심지어 이미 만들어진 길을 한 번 더 곧게 펴는 방법도 있어요. 등굣길을 다니다 보니 지름길을 발견한 거죠.

꼬여 있던 경로를 다시 펴서 곧은 길로 만드는 과정
The reflow process [ 42 ] · 출처: 확산 모델 (이미지 생성)

이 덕분에 요즘은 그림 한 장이 몇 초 만에 나옵니다. 처음엔 몇 분씩 걸렸는데 말이죠.

9. 글도 쓰고 그림도 그리고

요즘은 한 AI가 글도 쓰고 그림도 그리게 만들려는 연구가 활발합니다. 글은 글대로, 그림은 확산 모델 방식으로 만들면서 하나의 머리를 함께 쓰는 거예요.

글과 그림을 한 모델에서 함께 다루는 구조도
Transfusion architectural diagram · 출처: 확산 모델 (이미지 생성)

10. 오늘의 정리

  • 확산 모델은 그림에 점을 뿌리는 과정점을 지우는 과정, 두 방향으로 이루어집니다.
  • 점 뿌리기는 쉬워요. 그래서 AI는 점 지우기만 열심히 배웁니다.
  • 연습이 끝나면, 아무 의미 없는 얼룩을 주고 점을 지우게 합니다. 그러면 새 그림이 태어납니다.
  • 출발 얼룩이 매번 달라서 매번 다른 그림이 나옵니다.
  • "이런 걸 그려줘"라고 말을 얹으면 원하는 그림이 나옵니다.

결국 확산 모델은 조각가와 닮았습니다. 미켈란젤로는 "돌 속에 이미 조각상이 들어 있고, 나는 필요 없는 부분만 깎아낼 뿐"이라고 했대요.

확산 모델도 똑같이 말할 겁니다. "이 얼룩 속에 이미 그림이 있어요. 저는 노이즈만 지울 뿐이에요."

출처

광고

리깅 파이프라인 자동화 도구

반복 작업은 스크립트에게. 현업에서 쓰는 리깅 툴 모음.

리깅 도구 보기