Diffusers 0.3 릴리스, 이미지‑투‑이미지, 텍스트 인버전, 인페인팅, GPU 최적화, Mac MPS, ONNX 지원 및 새로운 문서 추가

TL;DR

Diffusers 0.3은 이미지‑투‑이미지 생성, 텍스트 인버전, 실험적 인페인팅, 보통 수준의 GPU를 위한 메모리 효율적인 추론, 네이티브 Mac M1/M2 지원, ONNX 내보내기 파이프라인, 그리고 포괄적인 문서 개편을 제공하여 Stable Diffusion 사용 장벽을 크게 낮추고 커뮤니티 도구의 폭발적인 증가를 촉진합니다.


Image‑to‑Image Pipeline

새로운 StableDiffusionImg2ImgPipeline은 사용자가 초기 이미지와 텍스트 프롬프트를 제공해 변형된 이미지를 생성할 수 있게 합니다. API는 텍스트‑투‑이미지 파이프라인과 동일하며, init_image와 원본 이미지 보존 정도를 제어하는 strength 파라미터가 추가되었습니다. 사용 예시:

from diffusers import StableDiffusionImg2ImgPipeline
import torch

pipe = StableDiffusionImg2ImgPipeline.from_pretrained(
    "CompVis/stable-diffusion-v1-4",
    revision="fp16",
    torch_dtype=torch.float16,
    use_auth_token=True,
)

init_image = preprocess(your_image)
prompt = "A fantasy landscape, trending on artstation"
images = pipe(
    prompt=prompt,
    init_image=init_image,
    strength=0.75,
    guidance_scale=7.5,
    generator=torch.Generator().manual_seed(42),
)["sample"]

빠른 실험을 위한 실행 가능한 Space 데모도 제공됩니다.


Textual Inversion

Textual Inversion은 3‑5장의 개인 이미지만으로 새로운 개념을 만들 수 있게 해줍니다. 사용자는 토큰 임베딩을 학습하고, 이후 프롬프트에서 해당 토큰을 호출할 수 있으며, 결과 개념은 sd-concepts-library 허브를 통해 공유됩니다. 워크플로우는 다음을 포함합니다:

  • Navigator Colab – 150개 이상의 커뮤니티 생성 개념을 탐색합니다.
  • Training Colab – 사용자 정의 이미지 세트에 새로운 토큰을 미세 조정합니다.
  • Inference Colab – 학습된 토큰을 사용해 이미지를 생성합니다.

출시 며칠 만에 커뮤니티는 200개가 넘는 개념을 기여했습니다.


Experimental Inpainting Pipeline

StableDiffusionInpaintPipeline은 이미지, 이진 마스크, 그리고 프롬프트를 받아 마스크된 영역을 주변 컨텍스트를 유지하면서 교체합니다. 예시 코드:

from diffusers import StableDiffusionInpaintPipeline

pipe = StableDiffusionInpaintPipeline.from_pretrained(
    "CompVis/stable-diffusion-v1-4",
    revision="fp16",
    torch_dtype=torch.float16,
    use_auth_token=True,
).to("cuda")

images = pipe(
    prompt=["a cat sitting on a bench"] * 3,
    init_image=init_image,
    mask_image=mask_image,
    strength=0.75,
    guidance_scale=7.5,
).images

이 기능은 실험 단계이며 지속적인 개선이 진행 중임을 알립니다.


Optimizations for Smaller GPUs

버전 0.3은 VRAM 사용량을 크게 줄였습니다; Stable Diffusion이 이제 약 3.2 GB 메모리로 실행되며 속도 손실은 약 10 %에 불과합니다. 핵심 옵션은 attention slicing이며, 다음과 같이 활성화합니다:

from diffusers import StableDiffusionPipeline

pipe = StableDiffusionPipeline.from_pretrained(
    "CompVis/stable-diffusion-v1-4",
    revision="fp16",
    torch_dtype=torch.float16,
    use_auth_token=True,
)
pipe = pipe.to("cuda")
pipe.enable_attention_slicing()

이 최적화는 소비자용 GPU에서도 diffusion 모델에 대한 접근성을 넓혀 줍니다.


Diffusers on macOS (M1/M2) via PyTorch MPS

Apple Silicon에 대한 네이티브 지원이 PyTorch mps 디바이스를 통해 추가되었습니다. 사용자는 최소한의 코드 변경으로 M1/M2 Mac에서 Stable Diffusion을 실행할 수 있습니다:

from diffusers import StableDiffusionPipeline

pipe = StableDiffusionPipeline.from_pretrained(
    "CompVis/stable-diffusion-v1-4",
    use_auth_token=True,
)
pipe = pipe.to("mps")

prompt = "a photo of an astronaut riding a horse on mars"
image = pipe(prompt).images[0]

공식 문서에는 성능 벤치마크와 설정 방법이 제공됩니다.


Experimental ONNX Exporter and Pipeline

ONNX 기반 파이프라인(StableDiffusionOnnxPipeline)은 CPU를 포함한 모든 ONNX 호환 하드웨어에서 추론을 가능하게 합니다. 사용 예시:

from diffusers import StableDiffusionOnnxPipeline

pipe = StableDiffusionOnnxPipeline.from_pretrained(
    "CompVis/stable-diffusion-v1-4",
    revision="onnx",
    provider="CPUExecutionProvider",
    use_auth_token=True,
)

prompt = "a photo of an astronaut riding a horse on mars"
image = pipe(prompt).images[0]

맞춤 체크포인트 내보내기를 위한 변환 스크립트(convert_stable_diffusion_checkpoint_to_onnx.py)도 제공됩니다.


New Documentation Release (v0.3.0)

전용 문서 스프린트를 통해 첫 번째 완전 버전 문서 사이트가 제작되었으며, 다음을 다룹니다:

  • Optimization techniques – FP16, attention slicing, 그리고 MPS 가이드.
  • Training overview – diffusion 모델 미세 조정을 위한 고수준 단계.
  • Contributing guide – 패치와 확장 기능을 제출하는 방법.
  • API reference – 스케줄러와 파이프라인에 대한 상세 페이지.

문서는 https://huggingface.co/docs/diffusers/v0.3.0/en/ 에서 호스팅되며 커뮤니티 기여를 환영합니다.


Community Highlights

이번 릴리스는 Diffusers 위에 구축된 다양한 커뮤니티 프로젝트의 물결을 일으켰습니다:

  • Stable Diffusion Videos – 잠재 공간 보간 및 프롬프트 변형 도구로, pip 패키지와 Colab 노트북 형태로 제공됩니다.
  • Diffusers Interpret – diffusion 단계와 토큰 수준 기여도를 시각화하는 설명 가능성 스위트.
  • Japanese Stable Diffusion – 문화적 뉘앙스를 포착하기 위해 1억 장의 일본어 캡션 이미지로 학습된 모델.
  • Waifu Diffusion – 고품질 애니메이션 스타일 생성을 위한 미세 조정 체크포인트.
  • Cross‑Attention Control – 사용자가 어텐션 맵을 편집해 프롬프트 영향, 객체 교체, 스타일 주입 등을 조정할 수 있는 레포지토리.
  • Reusable Seeds – 한 번 생성한 시드를 재사용해 다른 생성에 가이드를 제공, 제어된 변형을 가능하게 하는 노트북.

Getting Involved

Diffusers 레포지토리는 여전히 오픈소스이며, 사용자는 GitHub 프로젝트에 ⭐를 눌러 주고, Hugging Face Discord에 참여하며, 이슈나 풀 리퀘스트를 제출하도록 권장됩니다. 지속적인 커뮤니티 기여는 라이브러리의 빠른 진화를 위해 필수적입니다.

Sources