inblog logo
|
kjyong

    Textual Inversion: An Image is Worth One Word: Personalizing Text-to-Image Generation using Textual Inversion

    바세린용자 (yongja)'s avatar
    바세린용자 (yongja)
    Jan 11, 2026
    Textual Inversion: An Image is Worth One Word: Personalizing Text-to-Image Generation using Textual Inversion
     
    • Task: personalized text-to-image generation
      • notion image
    • inversion
      • 이미지 생성이 latent z → x로 만드는 것이라면, inversion은 x → z로 만드는 것
      • 왜 x → z가 필요한가? 수정된 x를 만드려고
        • 이 논문에선 text prompt 조건으로 수정된 x를 만들기 위해서
    • 학습 방법
      • V100 2장으로 3-5장 학습 이미지로 5000 step
      • notion image
      • text encoder, generator는 freezing
      • 임의의 토큰 S*로 프롬프트를 만듦 “A photo of S*”
        • S*를 placeholder token, pseudo-word이라고 부름
        • S*가 인풋이미지와 대응되는 새로운 토큰이 되는 것임
        • 이 때 여러가지 템플릿과 인풋이미지를 조합하여 프롬프트를 만듦
          • notion image
      • S*에 대응되는 vector v*로 학습시켜 generator에 넣을 텍스트 임베딩을 만듦
        • LDM loss와 동일한데, 이 loss를 최소화 시키는 v*를 학습시킴
          • notion image
    • 학습 결과
      • notion image
        notion image
        notion image
      • 두 단어를 따로 학습시키고 추론 시 조합
      • notion image
      • Image Similarity
        • 생성된 이미지와 학습 이미지의 CLIP 임베딩의 유사도 평균
      • Text Similarity
        • “a oil painting” vs “a oil painting of S*” 이런 식으로 S*를 넣은 스타일 트랜스퍼 프롬프트 pair를 준비해서, S* 유무에 상관없이 생성 샘플 이미지의 이미지 CLIP 임베딩 유사도 계산
      • 실험 항목
        • Multi-word: S*를 2개/3개 임베딩(=2-word/3-word)으로 늘려봄
        • Progressive multi-vector: 학습 시 학습 벡터를 1개로 시작 → 2000 step에 2개 → 4000 step에 3개로 늘리는 방식
        • Regularization: 학습된 임베딩이 기존 단어 분포에서 너무 벗어나지 않도록 임베딩에 L2정규화
        • Per-image tokens: 공유 토큰 S* + 이미지별 토큰 Sᵢ를 함께 두고(“S* with Sᵢ”), 공통/개별 정보를 분리하려는 세팅
        • Human captions: 크라우딩으로 수집한 짧은 캡션(12단어이하) / 긴 캡션(30단어 이하)을 S* 대신 넣어 비교
      • 한계
        • V100 2장 썼다고 하는데, 학습에 2시간 걸린 적도 있다고 함
        • 다른 논문 (dream booth)에서 textual inversion의 생성 이미지 샘플을 보면, 제대로 생성이 안 된 경우가 보임
         
    Share article

    kjyong

    RSS·Powered by Inblog