AI VIDEO BRIEFING

드림부스로 개인화 이미지 생성하기: 스테이블 디퓨전 파인튜닝의 원리와 실제로 부딪히는 한계

사진 몇 장만 있으면 AI가 나를 원하는 배경 속에 합성해준다. 스테이블 디퓨전을 개인화하는 드림부스와 텍스추얼 인버전, LoRA의 원리를 짚고 실제 실행에서 부딪히는 문제와 해결법을 정리했다.

내 사진 몇 장으로 AI 프로필 사진 만들기: 드림부스가 작동하는 원리 영상 대표 이미지

핵심 메시지

  • 개인화 이미지 생성은 스테이블 디퓨전을 내 사진으로 미세조정해, 나를 원하는 맥락 속에 합성하는 기술이다.
  • 파인튜닝에는 세 가지 함정이 있다. 10억 개 파라미터를 다 다시 학습하는 비용, 단어의 원래 의미를 덮어써 다른 사람을 못 그리게 되는 언어 표류, 그리고 적은 샘플에서 쉽게 일어나는 과적합이다.
  • 하이퍼네트워크와 LoRA는 원래 가중치를 건드리지 않고 작은 추가 파라미터만 학습하는 방식이고, 텍스추얼 인버전은 아예 임베딩 공간에서 내 사진에 해당하는 새 단어를 찾아낸다.
  • 구글 리서치의 드림부스는 사전에 거의 쓰이지 않는 희소 토큰에 내 개념을 덮어씌우고, 사전 보존 손실로 원래 클래스의 의미를 함께 지킨다.
  • 논문은 3~5장이면 충분하다고 하지만, 실제로는 10장 정도를 쓰고 학습 단계 수를 조절했을 때 결과가 눈에 띄게 좋아졌다.

쉽게 이해하기

취업용 프로필 사진을 AI로 만들 수 있다면 어떨까. 개인화 이미지 생성은 단순히 AI가 그럴듯한 그림을 만드는 것을 넘어, 내가 넣은 사진 속 인물을 다른 배경과 상황으로 옮겨 놓는 기술이다. 영상 제작자는 레오나르도 디카프리오의 사진 몇 장으로 실험했지만, 친구들의 사진으로도 잘 작동했다고 밝힌다.

바탕이 되는 기술은 스테이블 디퓨전이다. U-Net으로 이미지의 잡음을 제거하는 법을 배우는 생성 모델인데, 잡음을 되돌리는 과정을 텍스트나 이미지 같은 다른 조건에 맞춰 조절할 수 있다는 점이 핵심이다. 흔히 쓰이는 방법은 이미지와 텍스트 쌍으로 함께 학습한 CLIP 임베딩을 쓰는 것으로, 모델이 문장에서 이미지를 끌어내기가 훨씬 쉬워진다. 약 50억 쌍 규모의 LAION-5B 데이터셋으로 학습됐고 완전히 오픈소스라 상업적 이용도 가능하다.

문제는 이 모델을 내 사진에 맞추는 일이 생각만큼 간단하지 않다는 점이다. 파라미터가 약 10억 개라 전부 다시 학습하기엔 비용이 크다. 특정 단어를 내 이미지로 미세조정하면 모델이 그 단어의 원래 뜻을 잊어버리는 언어 표류, 즉 파국적 망각이 일어난다. 사진이 몇 장뿐이라 모델이 그것들을 통째로 외워버리는 과적합도 쉽게 발생한다.

이를 피하는 방법이 여럿 나와 있다. 하이퍼네트워크는 교차 어텐션 층 여러 곳에 작은 신경망을 끼워 넣고 그것만 학습한다. LoRA는 가중치 행렬을 저랭크 행렬 두 개의 곱으로 분해해 트랜스포머 각 층에 끼우고, 원래 가중치는 그대로 둔 채 훨씬 적은 파라미터만 최적화한다. 텍스추얼 인버전은 접근이 다르다. 파인튜닝을 역문제로 다시 정의해, 내 이미지들로 이어지는 새로운 단어를 텍스트 임베딩 공간에서 찾아내므로 모델 파라미터를 전혀 건드리지 않는다.

드림부스는 사진 부스에서 이름을 따온 구글 리서치의 방법이다. 두 개의 축으로 작동한다. 첫째, 어휘 사전에서 거의 쓰이지 않는 희소 토큰을 골라 내 개념으로 덮어쓰고, 프롬프트를 '희소 토큰 + 클래스' 형태로 구성한다. 둘째, 사전 보존 손실을 써서 그 클래스의 원래 의미를 지킨다. 먼저 해당 클래스의 이미지를 여러 장 생성해 두고, 학습 중 그 이미지들의 잡음 제거 능력도 함께 유지하도록 손실 함수에 항을 하나 더 넣는 방식이다.

주요 인사이트

  • 개인화의 어려움은 '새로 배우기'가 아니라 '배우면서 잊지 않기'에 있다. 드림부스의 사전 보존 손실도, 텍스추얼 인버전이 파라미터를 건드리지 않는 설계도 결국 이 문제를 겨냥한다.
  • 실행 환경은 생각보다 가볍다. 영상에서는 무료 구글 코랩의 16GB 테슬라 T4 GPU에서 돌렸고, 8비트 Adam과 혼합 정밀도로 메모리를 줄였다. 더 작은 12GB, 8GB GPU용 구현도 공개돼 있다.
  • 학습 단계 수에는 최적점이 있다. 짧게 학습하면 생성된 인물이 대상과 닮지 않고, 너무 길게 학습하면 넣어준 샘플을 그대로 재현한다. 이 지점은 사람마다 달라서 어떤 얼굴은 더 적은 반복으로 충분했다.
  • 가장 큰 변수는 알고리즘이 아니라 입력 사진의 품질이었다. 논문은 3~5장이면 된다고 하지만 제작자는 10장 정도를 썼을 때 결과가 확실히 좋았다고 말한다.
  • 얼굴의 눈이나 치아처럼 어색해지는 부위는 프롬프트만으로는 잘 잡히지 않았고, 사람 얼굴에 맞춰 미세조정된 VAE를 붙였을 때 훨씬 자연스러워졌다.

자주 묻는 질문

언어 표류(파국적 망각)란 무엇인가?

예를 들어 'person'이라는 단어를 내 사진으로 미세조정하면, 모델이 그 단어의 원래 의미를 덮어써 다른 사람을 그리지 못하고 특정 인물만 생성하게 되는 현상이다. 드림부스는 희소 토큰을 쓰고 사전 보존 손실을 더해 이 문제를 완화한다.

사전 보존 손실은 어떻게 작동하나?

학습 전에 해당 클래스의 일반적인 이미지를 여러 장 생성해 둔다. 영상 예시에서는 '사람 사진'이라는 클래스 프롬프트로 300장을 만들었다. 학습 중에는 이 이미지들의 잡음을 제거하는 능력도 함께 유지하도록 손실 함수에 항을 추가해, 클래스의 의미가 특정 인물로 덮이지 않게 한다.

LoRA와 텍스추얼 인버전은 무엇이 다른가?

LoRA는 가중치 행렬을 저랭크 행렬로 분해해 각 층에 추가 학습 파라미터를 끼워 넣는 방식으로, 원래 가중치는 그대로 두면서 최적화할 파라미터 수를 줄인다. 텍스추얼 인버전은 모델 파라미터를 전혀 바꾸지 않고, 내 이미지에 해당하는 새 단어 임베딩 벡터를 텍스트 임베딩 공간에서 탐색해 찾아낸다.

결과가 마음에 들지 않을 때 무엇을 조절해야 하나?

먼저 입력 사진의 수와 품질을 늘려보고, 대상과 닮지 않으면 학습 단계 수를 늘리되 샘플을 그대로 재현할 정도로 과하게 늘리지 않는다. 배경에 변화를 주려면 사무실 건물이나 스카이라인 같은 프롬프트를 시도하고, 눈·치아가 어색하면 얼굴에 맞춰 조정된 VAE를 적용한다.

원문과 출처

이 글은 원본 영상의 자막을 바탕으로 한국어 독자를 위해 요약했습니다. 전체 맥락과 최신 정보는 원문에서 확인하세요.

YouTube 원본 영상 보기 ↗

관련 AI 소식