Diffusers documentation

제어된 생성

You are viewing main version, which requires installation from source. If you'd like regular pip install, checkout the latest stable version (v0.42.1).
Hugging Face's logo
Join the Hugging Face community

and get access to the augmented documentation experience

to get started

제어된 생성

확산 모델이 생성하는 출력을 제어하는 것은 커뮤니티가 오랫동안 추구해 온 목표이며, 현재 활발한 연구 주제입니다. 많은 인기 있는 확산 모델에서는 이미지와 텍스트 프롬프트 모두의 미세한 입력 변화가 출력을 극적으로 바꿀 수 있습니다. 이상적인 세상에서는 의미(semantics)가 어떻게 보존되고 변화하는지를 제어할 수 있기를 원합니다.

의미를 보존하는 대부분의 예시는 입력의 변경 사항을 출력의 변경 사항으로 정확히 매핑할 수 있는 능력으로 귀결됩니다. 즉, 프롬프트의 주어에 형용사를 추가하면 이미지의 나머지 부분은 그대로 유지되고, 변경된 주어만 수정됩니다. 또는 특정 주체에 대한 이미지 변형은 해당 주체의 포즈를 유지합니다.

또한, 의미 보존을 넘어 생성된 이미지의 품질에 영향을 미치고 싶은 요소들이 있습니다. 즉, 일반적으로 출력물이 좋은 품질을 갖추고, 특정 스타일을 따르거나, 사실적으로 보이기를 원합니다.

diffusers가 지원하는 확산 모델 생성 제어 기법 중 일부를 문서화하겠습니다. 많은 부분이 최첨단 연구이며 상당히 세분화된 내용을 다룹니다. 명확히 해야 할 사항이 있거나 제안 사항이 있다면 주저하지 말고 GitHub Discussion 또는 GitHub issue를 열어 주세요.

생성 과정을 제어하는 방식에 대한 고수준 설명과 기술적 세부 사항의 일부를 제공합니다. 기술적 세부 사항에 대한 더 심층적인 설명이 필요할 경우, 파이프라인에서 링크된 원본 논문이 항상 가장 좋은 자료입니다.

사용 사례에 따라 적절한 기법을 선택해야 합니다. 많은 경우 이러한 기법들을 조합할 수 있습니다. 예를 들어, Textual Inversion과 SEGA를 결합하여 Textual Inversion을 사용해 생성된 출력에 더 많은 의미론적 안내를 제공할 수 있습니다.

별도로 언급되지 않는 한, 이는 기존 모델과 함께 작동하며 자체 가중치가 필요하지 않은 기법입니다.

  1. InstructPix2Pix
  2. 관심과 흥분
  3. 의미적 가이드
  4. 자기 주의 유도
  5. Depth2Image
  6. MultiDiffusion Panorama
  7. DreamBooth
  8. 텍스추얼 인버전
  9. ControlNet
  10. 프롬프트 가중치
  11. 커스텀 디퓨전
  12. DiffEdit
  13. T2I-Adapter
  14. FABRIC

편의상 추론 전용 메서드와 파인튜닝/학습이 필요한 메서드를 구분하는 표를 제공합니다.

메서드추론 전용학습 /
파인튜닝 필요
댓글
InstructPix2Pix✅❌추가로
편집 지침에 대해 더 나은
성능을 위해
파인튜닝할 수 있습니다.
관심과 흥분✅❌
의미적 가이드✅❌
자기 주의 유도✅❌
Depth2Image✅❌
MultiDiffusion Panorama✅❌
DreamBooth❌✅
텍스추얼 인버전❌✅
ControlNet✅❌ControlNet은
사용자 정의 조건부 데이터로 학습/파인튜닝
할 수 있습니다.
프롬프트 가중치✅❌
커스텀 디퓨전❌✅
DiffEdit✅❌
T2I-Adapter✅❌
Fabric✅❌

InstructPix2Pix

논문

InstructPix2Pix는 입력 이미지를 편집할 수 있도록 Stable Diffusion에서 파인튜닝된 모델입니다. 이미지와 편집을 설명하는 프롬프트를 입력으로 받아 편집된 이미지를 출력합니다. InstructPix2Pix는 InstructGPT와 유사한 프롬프트와 함께 잘 작동하도록 명시적으로 학습되었습니다.

참석하고 열광하세요

논문

Attend and Excite는 프롬프트의 주제가 최종 이미지에서 충실히 표현되도록 합니다.

의 주체에 해당하며 이미지 내에 존재해야 하는 토큰 인덱스 집합이 입력으로 주어집니다. 노이즈 제거(denoising) 과정에서 각 토큰 인덱스는 이미지의 패치 중 적어도 하나에 대해 최소 주의(attention) 임계값을 충족하도록 보장됩니다. 노이즈 제거 과정 동안 중간 잠재 변수(intermediate latents)가 반복적으로 최적화되어, 가장 소외된 주체 토큰의 주의를 강화합니다. 이 과정은 모든 주체 토큰이 주의 임계값을 통과할 때까지 계속됩니다.

Pix2Pix Zero와 마찬가지로, Attend and Excite의 파이프라인에는 사전 학습된 가중치를 변경하지 않는 미니 최적화 루프가 포함되며, 일반적인 StableDiffusionPipeline보다 더 많은 메모리가 필요할 수 있습니다.

의미 기반 가이던스(SEGA)

논문

SEGA는 이미지에서 하나 이상의 개념을 적용하거나 제거할 수 있습니다. 개념의 강도도 제어할 수 있습니다. 즉, smile 개념을 사용하여 초상화의 미소를 점진적으로 증가시키거나 감소시킬 수 있습니다.

classifier free guidance가 빈 프롬프트 입력을 통해 가이던스를 제공하는 것과 유사하게, SEGA는 개념적 프롬프트에 대한 가이던스를 제공합니다. 이러한 개념적 프롬프트는 여러 개를 동시에 적용할 수 있습니다. 각 개념적 프롬프트는 가이던스가 양(+)으로 적용되는지 음(-)으로 적용되는지에 따라 해당 개념을 추가하거나 제거합니다.

Pix2Pix Zero나 Attend and Excite와 달리, SEGA는 명시적인 기저 기반 최적화를 수행하는 대신 확산 과정에 직접 상호작용합니다.

자기 주의 유도(Self-attention Guidance, SAG)

논문

Self-attention Guidance는 이미지의 전반적인 품질을 향상시킵니다.

SAG는 고주파 세부 사항에 조건이 부여되지 않은 예측에서 완전히 조건이 부여된 이미지까지의 가이던스를 제공합니다. 고주파 세부 사항은 UNet의 self-attention 맵에서 추출됩니다.

Depth2Image

프로젝트

Depth2Image는 텍스트 기반 이미지 변형 시 의미론적 정보를 더 잘 보존할 수 있도록 Stable Diffusion에서 파인튜닝되었습니다.

원본 이미지의 단안 깊이 추정값을 조건으로 사용합니다.

MultiDiffusion 파노라마

논문

MultiDiffusion Panorama는 사전 학습된 diffusion model에 대해 새로운 생성 과정을 정의합니다. 이 과정은 고품질이고 다양한 이미지를 생성하는 데 바로 적용할 수 있는 여러 diffusion 생성 방법을 하나로 묶습니다. 생성 결과는 panorama와 같은 원하는 aspect ratio, 또는 긴밀한 segmentation mask부터 bounding box까지의 공간적 유도 신호와 같은 사용자가 제공한 제어 조건을 따릅니다. MultiDiffusion Panorama를 사용하면 panorama와 같은 임의의 aspect ratio로 고품질 이미지를 생성할 수 있습니다.

자체 모델 파인튜닝

Diffusers는 사전 학습된 모델 외에도 사용자가 제공한 데이터로 모델을 미세 조정하기 위한 학습 스크립트를 제공합니다.

DreamBooth

프로젝트

DreamBooth는 모델을 미세 조정하여 새로운 주제를 학습시킵니다. 예를 들어, 특정 인물에 대한 몇 장의 사진을 사용하여 다양한 스타일로 해당 인물의 이미지를 생성할 수 있습니다.

Textual Inversion

논문

Textual Inversion은 새로운 개념을 모델에 학습시키기 위해 모델을 fine-tune합니다. 즉, 특정 스타일의 예술 작품 사진 몇 장을 사용하여 해당 스타일의 이미지를 생성할 수 있습니다.

ControlNet

논문

ControlNet은 추가 조건을 부여하는 보조 네트워크입니다. 엣지 디텍션, 스케치, 깊이 맵, 시맨틱 세그멘테이션 등 다양한 조건으로 학습된 8개의 정형화된 사전 학습된 ControlNet이 있습니다.

프롬프트 가중치

Prompt weighting은 텍스트 입력의 특정 부분에 더 많은 주의(attention) 가중치를 부여하는 간단한 기법입니다.

Custom Diffusion

논문

Custom Diffusion은 사전 학습된 텍스트-이미지 diffusion 모델의 cross-attention 맵만 fine-tune합니다. 또한 Textual Inversion을 추가로 수행할 수 있습니다. 설계상 다중 개념 학습을 지원합니다. DreamBooth와 Textual Inversion과 마찬가지로, Custom Diffusion도 사전 학습된 텍스트-이미지 diffusion 모델에 새로운 개념을 학습시켜 관심 있는 개념이 포함된 출력을 생성하는 데 사용됩니다.

DiffEdit

논문

DiffEdit는 입력 이미지와 입력 프롬프트를 기반으로 의미론적 편집을 수행하되, 원본 입력 이미지를 최대한 보존합니다.

T2I-Adapter

논문

T2I-Adapter는 추가 조건을 부여하는 보조 네트워크입니다. 엣지 디텍션, 스케치, 깊이 맵, 시맨틱 세그멘테이션 등 다양한 조건으로 학습된 8개의 정형화된 사전 학습된 어댑터가 있습니다.

Fabric

논문

Fabric은 학습이 필요 없는 접근 방식으로, 다양한 인기 있는 diffusion 모델에 적용할 수 있습니다. 가장 널리 사용되는 아키텍처에 존재하는 self-attention 레이어를 활용하여 feedback 이미지 집합에 조건을 부여하는 방식으로 diffusion 프로세스를 제어합니다.

Update on GitHub