SDXL TURBOとGradioを使ってWebインターフェースを作ってみました。
SDXL Turbo以下のサイトでも試すことができるのですが、微妙な調整などができないので、自分で作りました。まだ、調整段階なのでパラメーターの調整などはできないのですが、これもインターフェースからできるようにする予定です。
Gradio
今回はGradioというアプリケーションを使って作成しました。
すごく簡単にWebインターフェースが作れます。
どんなのができた?
実際に作ったのはこれ。
このプロンプトとともに画像がパッパッって変わっていく様子が良いですね。結構、これはこれで使えるなと思います。
それではコード。
コード
今回はGoogle colabでGPUを使っています。というのも前回のようにCPUだと、画像の変更に時間がかかってしまい、SDXL-Turboのいい所が使えなくなってしまうからです。
インストール
以下をインストールします。Google colabでは前に”!”を付けます。
pip install diffusers transformers accelerate --upgrade
pip install gradio
pip install Pillow
コード
import gradio as gr
import gradio as gr
from diffusers import AutoPipelineForImage2Image
import torch
from PIL import Image
# Diffusers パイプラインを初期化
pipe = AutoPipelineForText2Image.from_pretrained("stabilityai/sdxl-turbo", torch_dtype=torch.float16, variant="fp16")
pipe.to("cuda")
# プロンプトに基づいて画像を生成する関数
def generate_image(prompt):
image = pipe(prompt=prompt, num_inference_steps=1, guidance_scale=0.0).images[0]
return image
iface = gr.Interface(
fn=generate_image,
inputs=gr.Textbox(label="Promopt"), # 入力ラベルの変更
outputs=gr.Image(label="Image"), # 出力ラベルの変更
title="SDXL Turbo", # インターフェースのタイトル
live=True
)
iface.launch()
num_inference_steps=1
これはモデルが画像生成のために行う推論ステップの数です。数値が小さい(この場合は1)と、生成プロセスが速くなりますが、生成される画像の品質は影響を受ける可能性があります。
guidance_scale=0.0
これはモデルがプロンプトに従う度合いを決定するパラメータです。0.0の値は、プロンプトへの従順性がないことを意味し、モデルはより自由に画像を生成することになります。