Diffusers 0.3 リリースは、画像から画像への変換、テキストインバージョン、インペインティング、GPU 最適化、Mac MPS、ONNX サポート、そして新しいドキュメントを追加します

要点

Diffusers 0.3 は、画像から画像への生成、テキストインバージョン、実験的インペインティング、低スペック GPU 向けのメモリ効率の良い推論、ネイティブ Mac M1/M2 サポート、ONNX エクスポートパイプライン、そして包括的なドキュメントの大幅な刷新を提供し、Stable Diffusion の利用ハードルを劇的に下げ、コミュニティツールの波を引き起こします。


画像から画像へのパイプライン

新しい 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 デモも用意されており、手軽に実験できます。


テキストインバージョン

テキストインバージョンは、たった 3‑5 枚の個人画像から新しい概念を作成できる手法です。ユーザーはトークン埋め込みを学習させ、後でプロンプトに呼び出すことができ、生成された概念は sd-concepts-library ハブを通じて共有可能です。ワークフローは以下を含みます:

  • Navigator Colab – 150 以上のコミュニティ生成概念を閲覧。
  • Training Colab – カスタム画像セットで新しいトークンを微調整。
  • Inference Colab – 学習済みトークンを使って画像を生成。

リリースから数日で、コミュニティは 200 を超える概念を投稿しました。


実験的インペインティングパイプライン

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

この機能は実験的と位置付けられており、今後も改良が続く予定です。


小型 GPU 向け最適化

バージョン 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 でもディフュージョンモデルが利用しやすくなります。


macOS (M1/M2) での Diffusers 使用(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]

公式ドキュメントにはベンチマークとセットアップ手順が掲載されています。


実験的 ONNX エクスポーターとパイプライン

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 という変換スクリプトも同梱されています。


新ドキュメントリリース (v0.3.0)

専用のドキュメントスプリントにより、初のフルバージョンのドキュメントサイトが作成され、以下を網羅しています:

  • 最適化手法 – FP16、attention slicing、MPS の活用方法。
  • トレーニング概要 – ディフュージョンモデルのファインチューニング手順のハイレベル解説。
  • コントリビューションガイド – パッチや拡張機能の提出方法。
  • API リファレンス – スケジューラやパイプラインの詳細ページ。

ドキュメントは https://huggingface.co/docs/diffusers/v0.3.0/en/ で公開されており、コミュニティからの貢献を歓迎しています。


コミュニティハイライト

リリースは Diffusers 上に構築された多数のコミュニティプロジェクトを巻き起こしました:

  • Stable Diffusion Videos – 潜在空間の補間とプロンプトモーフィングを行うツール。pip パッケージと Colab ノートブックで提供。
  • Diffusers Interpret – ディフュージョンステップとトークンレベルの寄与を可視化する説明可能性スイート。
  • Japanese Stable Diffusion – 1億枚の日本語キャプション画像で学習し、文化的ニュアンスを捉えるモデル。
  • Waifu Diffusion – 高品質なアニメスタイル生成向けにファインチューニングされたチェックポイント。
  • Cross‑Attention Control – アテンションマップを編集してプロンプトの影響を変更、オブジェクトの置換やスタイル注入を可能にするリポジトリ。
  • Reusable Seeds – ある生成のシードを別の生成に再利用し、制御されたバリエーションを実現するノートブック。

参加方法

Diffusers リポジトリはオープンソースのままで、ユーザーは GitHub プロジェクトにスターを付け、Hugging Face Discord に参加し、Issue や Pull Request を提出することが奨励されています。継続的なコミュニティ貢献がライブラリの急速な進化に不可欠です。

Sources