왜 디퓨전 모델인가?
우리가 사진을 뚝딱 만들어내려고 하면, GAN이 대세였다. 그런데 GAN은 종종 학습이 불안정하고, 모드 붕괴(특정 패턴만 반복 생성) 문제가 있었다. 디퓨전 모델은 “노이즈를 뒤섞었다가 다시 걷어내는” 방법을 택해, 안정적으로 고품질 이미지를 뽑아낸다. 말 그대로 ‘확산(diffusion)’이라는 물리 현상을 그대로 모방한 것이다.
직관적으로, ‘확산’이란(DDPM)
컵에 잉크 한 방울을 떨어뜨리면 처음엔 동그랗던 잉크가 점차 물에 퍼져서 마침내 완전히 섞이는 것처럼,
- Forward 과정: 원본 이미지(잉크 덩어리)에 아주 작은 가우시안 노이즈를 계속 섞어, 마침내 완전한 잡음 상태로 만든다.
- Reverse 과정: 잡음으로 시작해, 네트워크가 조금씩 노이즈를 걷어내면서 마지막에 선명한 이미지를 복원해 낸다.
즉, 노이즈를 섞을 때(Forward) 썼던 진짜 노이즈(ε)를 기억해 두고, 제거할 때(Reverse) “이 정도 노이즈였을 텐데”라고 네트워크가 예측한 노이즈를 비교해 둘 사이 차이를 최소화하도록(즉 MSE 손실) 학습한다. 결과적으로, 네트워크는 “잡음 속에 숨어 있는 원본 형태”를 점점 뚜렷이 꺼내는 법을 배우게 된다.
디퓨전 모델이란?
- 본질: “이미지에 노이즈를 점진적으로 섞었다가, 그 노이즈를 거꾸로 걷어내며 새 이미지를 만들어 내는” 생성 모델
- 비유: 먼지가 잔뜩 쌓인 벽화를 단계별로 조심조심 닦아내면, 마침내 전혀 본 적 없는 새로운 그림이 드러나는 과정
생성(Sampling) 과정
- 완전 노이즈 준비
- 순수 먼지 상태의 캔버스(=가우시안 랜덤 노이즈)를 꺼냄
- 단계별 노이즈 제거
- 가장 덥혀진 상태에서 시작해
- “조금 닦기 → 또 닦기 → …”를 반복
- 매 스텝 U-Net에 “지금 이만큼 먼지가 섞였는데, 원래 형태는 이랬을 거야”라고 물어보고
- 예측된 만큼만 닦아 주면 다음 단계가 완성
- 최종 이미지
- 마지막엔 깨끗해진 이미지가 등장 → 새로운 생성 이미지
조건부 생성 (Conditional Sampling)
- 텍스트 프롬프트(예: “웰시코기를 그려줘”)나 원본 이미지를
- 매 스텝 U-Net에 함께 입력하여
- “단순 복원”이 아니라 “요청에 맞는 형태”로 먼지를 닦아 냄 → 텍스트→이미지, 이미지→이미지 변형 모두 지원
왜 디퓨전 모델이 각광받는가?
- 안정적 학습: GAN처럼 경쟁적 구조 없이, MSE 손실 하나로만 훈련 → 붕괴나 발산 거의 없음
- 고품질·다양성: 수백~수천 단계 복원 덕분에 매우 선명하고 다양한 샘플 보장
- 유연성: 텍스트·이미지 등 조건을 자연스럽게 결합 가능, 오픈 생태계로 확장성 뛰어남
GAN·VAE와 비교
| VAE | GAN | Difussion | |
| 입력 | 벡터 z | 벡터 z | 노이즈 한 장 |
| 생성 호출 횟수 | 1회 | 1회 | 수십~수백회 |
| 훈련 목표 | ELBO (재구성+KL) | Adversarial Loss (경쟁) | MSE 손실 (단계별 노이즈 예측) |
| 특징 | 흐릿함 있음 | 빠르고 사실적이나 불안정 가능 | 안정적·고품질·고다양성 |
Difussion model
- 학습 중 Forward 단계에서 실제 이미지를 점진적으로 더럽혀(노이즈 추가) 놓고, Reverse 단계에서 “이 정도 더러워진 상태라면 이런 모습이었을 거야”를 반복해서 예측하며
- 노이즈 제거(복원) 연습만으로 훈련하죠. 그래서 “복원하는 법” 그 자체를 배우는 모델이라고 할 수 있다.
VAE
- 인코더 → 잠재벡터 → 디코더 구조로,
- 입력된 이미지를 “어떻게 압축했다가 최대한 비슷하게 재구성할까”를 ELBO(재구성 손실 + KL 발산)로 학습한다.
- 따라서 “이미지 → 숫자 → 이미지” 과정에서 재구성(복원) 능력을 익히는 셈이지만,
- “노이즈를 걷어내는” 식의 단계별 정교한 복원법은 아니고, 전체 이미지를 한 번에 압축하고 풀어내는 형태로 배운다.
GAN
- 절대 ‘복원’이 주목적이 아니다
- Generator는 “어떤 랜덤 벡터를 넣으면 그럴듯한 이미지가 나오도록” 학습하고, Discriminator와의 경쟁(adversarial loss)을 통해 분포 전체를 흉내 내는 법을 익힌다.
- 즉, “특정 이미지를 노이즈로 오염시켰다가 다시 원래대로 돌리는” 훈련 절차는 전혀 없지만 복원보다는 “어떤 벡터로도 진짜 같은 새 이미지를 뽑아내는” 데 집중합니다.
요약
- Diffusion 모델은 문자 그대로 “노이즈를 제거해 원본을 복원하는 과정”을 단계별로 배움
- VAE는 “이미지→잠재→이미지” 재구성(복원) 능력을 배우지만, 노이즈 단계별 복원과는 다름
- GAN은 복원이 아니라 “벡터→진짜 같은 새 이미지 생성” 분포 학습이 핵심
Controllability: 내가 원하는 대로 그림을 더 잘 제어할 수 있는 방법들
Conditional Training
학습할 때부터 “이 프롬프트(조건)를 주면 이렇게 그려라” 하고 네트워크에 조건 정보(예: 텍스트 임베딩, 클래스 레이블)를 같이 넣고 학습한다. 생성할 때도 “고양이” “코기” 같은 조건을 정확히 반영해 줍니다.
- 상황: 해산물 스튜를 만들 때, 요리책에 적힌 레시피(재료와 순서)를 처음부터 끝까지 그대로 따라 배워둔다.
- 결과: “해산물 스튜”라고 주문하면, 책에 쓰인 대로 항상 일정한 맛이 나옵니다.
Classifier Guidance
따로 훈련된 분류기(classifier)를 활용해, 매 샘플링 단계마다 “이 상태가 얼마나 내가 원하는 클래스(예: ‘코기’)에 가까운가?”를 계산하고 그 방향으로 노이즈 제거 과정을 살짝 보정해 주는 방법 조건(클래스)을 매우 강하게 반영하지만, 분류기 성능에 따라 삐끗할 수도 있다.
- 상황: 요리하는 동안, 옆에 일류 셰프 친구(평론가)가 “좀 더 짠맛을 줄이고, 단맛은 조금 더 올려봐”라고 실시간으로 코멘트해 줍니다.
- 결과: 평론가가 가리키는 대로 소금·설탕을 조금씩 더하거나 덜어내서, 원하는 맛에 더 가깝게 조정됩니다.
Classifier-Free Guidance (CFG)
분류기를 따로 쓰지 않고, “조건이 있는 모델” 출력과 “조건이 없는 모델” 출력을 일정 비율(스케일)로 섞어서 조건 반영 강도를 조절하는 기법 분류기가 필요 없어서 간편하고, 스케일 값을 조절해 “더 창의적으로 vs. 더 정확히” 사이의 균형을 맞출 수 있다.
- 상황:
- 첫 번째 레시피(책에만 있는 기본 스튜)로도 만들어 보고,
- 두 번째 레시피(“더 크리미 하게”라는 특별판)로도 만들어 본 뒤,
- 이 둘을 1:1 아니면 2:1 비율로 섞어서 맛을 봅니다.
- 결과:
- 섞는 비율을 바꾸면 “크리미함 vs. 기본 맛” 사이를 자유롭게 조절해서,
- 원하는 만큼 균형 잡힌 맛을 낼 수 있어요.
Direct Injection of Condition (ILVR): samping 과정에서 원하는 이미지(condition)의 방향으로 계속 이끌어준다
원본 이미지나 레퍼런스 영상을 직접 중간중간 주입하면서 샘플링한다. “이 부분은 레퍼런스처럼 유지”시키도록, 반복해서 latent(잠재벡터)를 조밀하게 보정하는 방식이다. 사진·초상화 편집, 이미지 간 변환(예: 스케치→실사)에 강력하다.
- 상황:
- 요리하다가 “이건 조금 더 이런 색감이었지?” 싶으면,
- 직접 레시피 책 사진을 중간중간 꺼내서 옆에 놓고 보며,
- “빛깔이 이 정도여야 해” 하고 색감을 맞춰 냅니다.
- 결과: 원본 레시피(사진)의 분위기와 색감을 유지하면서도, 조금씩 변형된 결과물을 만들 수 있어요.
Multimodal & Text Guidance
- Multimodal Prompt Guidance:
- 텍스트, 이미지, 오디오 등 여러 형태의 입력을 한꺼번에 임베딩해 조건으로 쓰는 방법
- Text Guidance (Editing):
- 이미 생성되는 중간에 프롬프트를 바꿔 끼워 넣거나 (null-text optimization)
- “여기를 더 선명하게, 저기를 더 따뜻하게” 같은 부분적인 편집을 하는 기법
Controllability 기법 비교
- 정밀 제어가 필요하면 → Classifier Guidance or Classifier-Free Guidance (CFG)
- 원본·레퍼런스 유지하며 변형하려면 → ILVR (Direct Injection)
- 다양한 입력을 섞어 쓰고 싶으면 → Multimodal Prompt
- 실시간으로 텍스트 바꿔가며 편집하려면 → Text Guidance
이렇게 Controllability 발전 덕분에, "그림을 완전히 랜덤으로 뽑는다"에서 "색감·구도·스타일·대상(subject)을 내 마음대로 조절하며 뽑는다”로 확실히 훨씬 더 정교하고 융통성 있게 변신할 수 있었다.
Diffusion Model 효율성(Efficiency) 높이기
Fast Sampler without Extra Learning
“알고리즘 고도화” 만으로 단계 수를 확 줄이는 방법들
- DDIM (Denoising Diffusion Implicit Models)
- 기존 1000단계 ▶︎ 50~100단계 정도로 줄이고도 비슷한 품질
- 작은 보폭(step) 대신 큰 보폭으로 건너뛰기(Non-Markovian)
- EDM (Efficient Diffusion Model)
- 기존 방식 대신 “수학적 ODE 기법”을 빌려와 조금 덜 반복해도 부드럽게 이미지를 그려내기
- DPM-Solver
- “미리 계산된” 노이즈 제거 속도·방향 가이드라인을 써서 DDIM보다도 더 빠르고 정확하게 스텝을 건너뛸 수 있다.
비유: 원래는 한 걸음씩 걸어가는 산책이라면, 이 기법들은 전동 킥보드, 자전거, 속도 조절 가이드를 통해 훨씬 빠르게 목적지(완전한 이미지)에 도달하게 해 준다.
Knowledge Distillation
“배운 내용을 압축·전달” 해서 작은 모델(또는 적은 단계)로도 동일 성능을 내는 방법들
- Progressive Distillation (PD, 2022)
- Teacher-Student 구조
- Teacher 모델이 100단계 과정을 2단계로 압축해 보여주면,
- Student 모델이 그 2단계만 따라 하도록 학습. 처음엔 100 스텝 ▶︎ 순차적으로 50, 25, 12… ▶︎ 최종엔 한 자릿수 스텝 만에 샘플링 가능
- Consistency Models (CD/CT, 2023)
- 어떤 노이즈 상태에서든, 바로 깨끗한 이미지로 가는 일관된(mapping) 함수를 직접 학습
- 마치 “어떤 위치에서도 A→B 지름길만 기억하면 된다”는 식으로, 1~2 스텝 만에 결과를 뽑아낼 수 있게 해 준다
- ADD (Advanced Distillation & Deployment)
- Stable Diffusion 계열에 적용된 최종 단계 기술 Turbo 시리즈로 불리며, 실서비스에서 초단위 혹은 실시간 생성이 가능하도록 최적화
비유: 원래 요리사가 한 가지 요리를 10단계에 걸쳐 정성껏 만들던 레시피를 비법 노트 하나로 2단계 만에 뚝딱 따라 할 수 있게 전수하는 것과 비슷합니다.
- Fast Sampler: 별도 재학습 없이, 수학·알고리즘 트릭으로 스텝 수 절감
- Knowledge Distillation: 이미 배운(Teacher) 과정을 Student가 한 방에 따라 하도록 재학습
이 덕분에, 1000단계 걸려야 나왔던 고품질 이미지”를 “1020단계(혹은 12단계) 만에”도 뽑아낼 수 있게 된 것이다. 이제 Diffusion 모델도 초고화질·초단시간 생성이 가능해졌다.
Diffusion Model 적용
Super-Resolution
흐릿한(저해상도) 사진을 입력으로 받아, 디테일을 살려 해상도를 쭉쭉 올려주는 작업이다.
- 디퓨전 모델 적용법
- 원본 흐릿한 사진에 “의도적으로” 노이즈를 더해 더 흐리게 만들고
- 그 노이즈를 점진적으로 제거하는 과정을 학습
- 복원 단계에서는 “좀 더 선명하게” 노이즈를 걷어내면서, 고해상도 디테일을 채워 넣음
3D Generation (3D 형태 생성)
점들(point cloud)이나 삼각망(mesh) 같은 3D 데이터를 만들어 내는 작업이다.
- 디퓨전 모델 적용법
- 3차원 공간에서 무작위 점(완전 노이즈)처럼 시작
- 3D U-Net(공간 ×공간 ×공간 컨볼루션)을 이용해 단계별로 노이즈를 제거
- 마침내 “연어비늘 모양” “비행기 형상” 같은 의미 있는 3D 구조가 떠오르게 함
Semantic Segmentation (의미 영역 분할)
사진 속에서 “사람, 말, 나무, 배경” 등 픽셀 단위로 어떤 객체인지 구분 표시
- 디퓨전 모델 적용법
- 원본 이미지에 소량의 노이즈를 섞고, “이 픽셀은 어떤 클래스?”를 조건으로 매 스텝 노이즈 제거
- 최종엔 각 픽셀마다 클래스별 색(레이블) 맵을 뚜렷하게 복원
Image Editing (이미지 편집) & Virtual Try-on
- 무엇을 하나?
- 사진 속 특정 영역(옷, 배경, 얼굴 일부)을 지우거나 교체하고,
- 가상의 옷·소파·가구를 사진 속 인물이나 방에 입혀 보는 작업
- 디퓨전 모델 적용법
- 편집할 영역만큼 마스크(구멍)를 뚫고 거기다 노이즈를 더함
- “이 부분은 원본처럼 유지 / 이 부분은 새 옷 스타일로 채워”라는 조건을 주고
- 마스크 된 영역에만 노이즈를 제거하면서 새 이미지를 생성
Video Generation (동영상 생성)
텍스트 프롬프트나 짧은 클립 없이, 정말 새로운 짧은 동영상 생성
디퓨전 모델 적용법
- 프레임 ×높이 ×너비 ×채널 형태의 “4D 노이즈”로 시작
- 3D 컨볼루션(U-Net)을 써서 시간축까지 고려해 노이즈 제거
- 움직임이 자연스럽게 연결된 영상이 최종 결과로 생성
Audio Generation (음향/음성 생성)
“피아노 선율” “말소리” “효과음” 같은 오디오 클립을 만드는 작업
- 디퓨전 모델 적용법
- 스펙트로그램(시간 ×주파수) 형태로 노이즈 이미지처럼 시작
- 단계별로 노이즈를 제거하며 실제 소리 특성(주파수 패턴)을 복원
- 다시 오디오 신호로 변환해 들을 수 있는 음향 생성
Medical Imaging (의료 영상)
저선량 CT나 MRI처럼 노이즈가 많거나 손상된 스캔을 깨끗하게 복원
- 디퓨전 모델 적용법
- 실제 의료 영상에 인위적인 노이즈를 추가해 더 저화질 상태를 만들고
- 그 노이즈 제거 과정을 학습
- 훈련 후엔 원본보다 훨씬 선명·정확한 의료 영상을 뽑아내 환자 진단에 도움
비디오 생성 타임라인
이미지 생성에 쓰던 Diffusion 모델을 시간축(프레임) 차원까지 확장해, “프레임 단위로 노이즈를 점진적으로 제거”하며 동영상 한 편을 생성하기 시작하였다. 2022년에는 이미지 디퓨전을 영상으로 확장하는 첫 시도들이 나왔고, 2023년에 들어와 학계 논문·오픈소스·상용 서비스가 한꺼번에 터지면서 비디오 생성이 “실제로 써볼 만한” 수준에 이르렀다.
| 연도 | 주요 이벤트 | 설명 |
| 2022 | Video Diffusion Models | 2D 이미지용 U-Net을 프레임×공간 3D U-Net으로 확장해, 최초로 영상 생성에 디퓨전을 적용 |
| 2022 | Imagen Video | Google “Imagen” 이미지 모델을 비디오로 확장 → 가능성 타진 |
| 2022 | Runway Gen-1 & 2 | Runway에서 상용급(짧은 클립) 비디오 생성 서비스 공개 |
| 2023 | Align Your Latents | 텍스트→비디오 품질(SOTA)을 논문화·공개 → 학계 주도권 가속 |
| 2023 | AnimateDiff | 오픈소스로 “코드 공개” 시작, 누구나 실험 가능 |
| 2023 | Stable Video Diffusion | Stability AI에서 “Stable Diffusion” 비디오 버전 공개 → 대중화 물꼬 |
| 2024 | Sora | 더욱 진화된 실시간·고해상도 비디오 생성 엔진 출시 예정 |
2D U-Net가 원래 이미지(Height×Width) 한 장을 처리하도록 만든 네트워크라면, 3D U-Net을 적용하여
- Frames × Height × Width 형태의 4차원(시간+공간) 데이터를 입력받아 처리
- 즉, “시간” 축을 세 번째 차원으로 보고, 2D 컨볼루션 대신 3D 컨볼루션(시간 방향으로도 필터가 움직임)을 사용해 프레임 간의 움직임(모션)을 이해·보존하면서 노이즈 제거를 수행합니다.
비유: 2D U-Net은 “한 장 짜리 만화 컷”을 색칠 공부하듯 세밀하게 보정하는 도구라면, 3D U-Net은 “연속된 만화 컷(만화책 페이지 여러 장)”을 한꺼번에 보고, 컷과 컷 사이의 흐름도 고려하며 색칠하는 애니메이터 도구 같은 느낌이다.
Open Challenge for 비디오 생성
- 시간 축으로 ID 유지
- 비디오를 만들 때, 매 프레임마다 같은 인물·사물이 동일한 형태와 정체성(identity)으로 보여야 한다.
- 예를 들어 “강아지가 왼쪽으로 고개를 돌렸는데, 얼굴이 갑자기 다른 종처럼 바뀌면 안 된다”는 뜻이다.
- Diffusion은 원래 공간(spatial) 데이터에 특화
- 이미지 한 장을 픽셀 단위로 다루는 데는 최강이지만, 시간 흐름(temporal consistency), 즉 “이전 프레임과 자연스럽게 이어지는 움직임”을 다루는 건 아직 부족하다. 또 “영상 길이를 더 늘려서 몇 초→몇 분짜리”로 만들면 모델이 불안정해진다.
- Text-to-Video 데이터의 한계
- 텍스트로 설명된 영상(“해변에서 파도가 치며 돛단배가 떠 있는 장면” 등)과 실제 동영상을 쌍으로 모은 데이터셋이 충분치 않아서, 이미지처럼 “텍스트 하나로 즉시 쫙 뽑아내는” 건 아직 연구 초기 단계이다.
또 다른 Challenging Task: Virtual Try-On
사람 사진 위에 “가상으로 옷을 입혀 보거나(의류 착용)", 방 사진 위에 “가구를 배치해 보는” 등 실제 사진이나 공간에 원하는 아이템을 자연스럽게 합성하는 기술이다. 디퓨전 모델 적용 예로는,
- 마스크로 편집 영역을 찍어 놓고, 그 부분에 “이 옷”을 FiLM/Cross-Attention으로 주입해서
- 스텝별 노이즈 제거 과정을 거치며 자연스럽게 합성하는 식으로 연구가 진행되고 있어요.
어려운 이유
- 물체 정합(Alignment): 옷이 인물의 팔·몸통에 잘 맞아야 하고, 가구가 바닥·벽과 어울려야 한다.
- 조명·질감 통일: 합성한 옷이나 소파가 사진 속 조명·그림자·질감과 자연스럽게 어우러져야 한다.
- 3D 구조 이해: 옷 주름·가구 각도가 전부 3D 정보이기 때문에, 단순 2D 편집으로는 한계가 있다.
'인공지능' 카테고리의 다른 글
| Multimodal Image 생성기술 (2) | 2025.05.30 |
|---|---|
| Multimodal 모델 (3) | 2025.05.29 |
| Vision 생성 모델 - VAE, GAN (5) | 2025.05.28 |
| CV 분야에서 Transformers (1) | 2025.05.28 |
| Post Transformer(feat. GPT, BERT) (2) | 2025.05.27 |