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()