見出し画像

HuggingFace Diffusers v0.6.0の新機能

「Diffusers v0.6.0」の新機能についてまとめました。

・Diffusers v0.6.0

前回

1. Diffusers v0.6.0 のリリースノート

情報元となる「Diffusers 0.6.0」のリリースノートは、以下で参照できます。

2. Inpainting用のチェックポイントを提供

inpainting用にファインチューニングされたチェックポイントが提供されました。以下のサイトで試すことができます。

コード例は、次のとおりです。

from io import BytesIO
import torch
import PIL
import requests
from diffusers import StableDiffusionInpaintPipeline

# 画像のダウンロード
def download_image(url):
    response = requests.get(url)
    return PIL.Image.open(BytesIO(response.content)).convert("RGB")

# パイプラインの準備
pipe = StableDiffusionInpaintPipeline.from_pretrained(
    "runwayml/stable-diffusion-inpainting",
    revision="fp16",
    torch_dtype=torch.float16,
).to("cuda")

# パラメータ
img_url = "https://raw.githubusercontent.com/CompVis/latent-diffusion/main/data/inpainting_examples/overture-creations-5sI6fQgYIuo.png"
mask_url = "https://raw.githubusercontent.com/CompVis/latent-diffusion/main/data/inpainting_examples/overture-creations-5sI6fQgYIuo_mask.png"
image = download_image(img_url).resize((512, 512))
mask_image = download_image(mask_url).resize((512, 512))
prompt = "Face of a yellow cat, high resolution, sitting on a park bench"

# 推論の実行
output = pipe(prompt=prompt, image=image, mask_image=mask_image)
image = output.images[0]

3. CPU推論用のONNXパイプラインを提供

CPU推論用に最適化されたONNXパイプラインが提供されました。

・OnnxStableDiffusionImg2ImgPipeline : image2image用
・OnnxStableDiffusionInpaintPipeline : inpainting用

from diffusers import OnnxStableDiffusionImg2ImgPipeline, OnnxStableDiffusionInpaintPipeline

img_pipeline = OnnxStableDiffusionImg2ImgPipeline.from_pretrained(
    "CompVis/stable-diffusion-v1-4", revision="onnx", provider="CPUExecutionProvider"
)

inpaint_pipeline = OnnxStableDiffusionInpaintPipeline.from_pretrained(
    "runwayml/stable-diffusion-inpainting", revision="onnx", provider="CPUExecutionProvider"
)

4. コミュニティパイプラインの追加

2つのコミュニティパイプラインが追加されました。

4-1. Stable Diffusion Interpolation example

異なるプロンプト/シード間の「Stable Diffusion」の潜在空間を補間するパイプラインです。詳しくは「stable-diffusion-videos」、コード例は「Stable Diffusion Interpolation」を参照してください。

4-2. Stable Diffusion Interpolation Mega

Text2Image、Image2Image、Inpaintingの全機能を備えた 1 つのStable Diffusionパイプラインです。コード例は「Stable Diffusion Mega」を参照してください。

次回



この記事が気に入ったらサポートをしてみませんか?