stable-diffusion-image-generation は何をしますか?
HuggingFace Diffusersを使ったStable Diffusionモデルによる最新のテキストから画像への生成。テキストプロンプトからの画像生成、画像間変換、インペインティング、カスタム拡散パイプラインの構築に使用します。
説明
このスキルは、Stable Diffusionモデルを利用してテキスト記述から画像を生成するためのツールを提供します。HuggingFace Diffusersライブラリを使用することで、さまざまな事前学習済みモデルにアクセスし、画像生成、画像間変換(img2img)、インペインティングなどのタスクを実行できます。
使い方
インストール
pip install diffusers transformers accelerate torch
基本的なテキストから画像への生成
from diffusers import StableDiffusionPipeline
import torch
model_id = "runwayml/stable-diffusion-v1-5"
pipe = StableDiffusionPipeline.from_pretrained(model_id, torch_dtype=torch.float16)
pipe = pipe.to("cuda")
prompt = "a photo of an astronaut riding a horse on mars"
image = pipe(prompt).images[0]
image.save("astronaut_horse.png")
画像間変換(img2img)
from diffusers import StableDiffusionImg2ImgPipeline
from PIL import Image
pipe = StableDiffusionImg2ImgPipeline.from_pretrained(model_id, torch_dtype=torch.float16).to("cuda")
init_image = Image.open("input.png").convert("RGB")
prompt = "a fantasy landscape"
images = pipe(prompt=prompt, image=init_image, strength=0.75, guidance_scale=7.5).images
images[0].save("fantasy_landscape.png")
インペインティング
from diffusers import StableDiffusionInpaintPipeline
pipe = StableDiffusionInpaintPipeline.from_pretrained(
"runwayml/stable-diffusion-inpainting",
torch_dtype=torch.float16
).to("cuda")
init_image = Image.open("input.png").convert("RGB")
mask_image = Image.open("mask.png").convert("RGB")
prompt = "a cat sitting on a bench"
image = pipe(prompt=prompt, image=init_image, mask_image=mask_image).images[0]
image.save("inpainted.png")
パラメータ
prompt: 生成する画像を記述したテキストプロンプトnegative_prompt: 生成を避ける内容を指定するオプションのプロンプトnum_inference_steps: 推論ステップ数(デフォルト: 50)guidance_scale: プロンプトへの忠実度(デフォルト: 7.5)height/width: 生成画像のサイズseed: 再現性のためのランダムシード
サポートされるモデル
- Stable Diffusion v1.4/v1.5
- Stable Diffusion v2.0/v2.1
- Stable Diffusion XL (SDXL)
- カスタムファインチューンモデル
注意事項
- GPU(CUDA)を推奨しますが、CPUでも動作可能です(速度が大幅に低下します)
- 使用前に各モデルのライセンスを確認してください
- 生成された画像はモデルのバイアスを反映する可能性があるため、注意して使用してください