soiz1's picture
Update app.py
2e6c46f verified
import gradio as gr
from diffusers import StableDiffusionPipeline
import torch
import os
# Hugging Faceのトークン
HUGGING_FACE_TOKEN = os.getenv("token")
# モデルのロード
def load_model():
model_id = "soiz1/hololive-diffusion"
pipe = StableDiffusionPipeline.from_pretrained(
model_id,
use_auth_token=HUGGING_FACE_TOKEN
)
pipe.to("cuda" if torch.cuda.is_available() else "cpu")
return pipe
# 画像生成関数
def generate_image(prompt, num_inference_steps, guidance_scale):
try:
result = pipe(prompt, num_inference_steps=num_inference_steps, guidance_scale=guidance_scale)
return result.images[0]
except Exception as e:
return f"エラーが発生しました: {e}"
# Gradioインターフェースの定義
pipe = load_model()
with gr.Blocks() as demo:
gr.Markdown("## Hololive Diffusion 画像生成")
with gr.Row():
with gr.Column():
prompt = gr.Textbox(label="プロンプト", placeholder="例: かわいい猫のイラスト")
num_inference_steps = gr.Slider(1, 100, value=50, step=1, label="推論ステップ数")
guidance_scale = gr.Slider(1, 20, value=7.5, step=0.1, label="ガイダンススケール")
generate_button = gr.Button("画像生成")
with gr.Column():
output_image = gr.Image(label="生成された画像")
generate_button.click(
fn=generate_image,
inputs=[prompt, num_inference_steps, guidance_scale],
outputs=[output_image]
)
# アプリの実行
demo.launch()