もとのスクリプト
touch-sp.hatenablog.comこちらのスクリプトを使いました。
import torch from diffusers import StableCascadeDecoderPipeline, StableCascadePriorPipeline prior = StableCascadePriorPipeline.from_pretrained( "stabilityai/stable-cascade-prior", torch_dtype=torch.bfloat16, variant="bf16", ).to("cuda") decoder = StableCascadeDecoderPipeline.from_pretrained( "stabilityai/stable-cascade", torch_dtype=torch.bfloat16, variant="bf16", ).to("cuda") num_images_per_prompt = 1 prompt = "a cat playing with a white ball in the forest" negative_prompt = "poor quality, worst quality" prior_output = prior( prompt=prompt, height=1024, width=1024, negative_prompt=negative_prompt, guidance_scale=4.0, num_images_per_prompt=num_images_per_prompt, num_inference_steps=20 ) decoder_output = decoder( image_embeddings=prior_output.image_embeddings, prompt=prompt, negative_prompt=negative_prompt, guidance_scale=0.0, output_type="pil", num_inference_steps=10 ).images[0] decoder_output.save("result.png")
結果
「次のスクリプトをGradioアプリ化して下さい」と書いてその後にそのままスクリプトをコピペしました。そしたら以下のスクリプトを返してくれました。そのまま動きます。import torch import gradio as gr from diffusers import StableCascadeDecoderPipeline, StableCascadePriorPipeline def generate_image(prompt, negative_prompt): prior = StableCascadePriorPipeline.from_pretrained( "stabilityai/stable-cascade-prior", torch_dtype=torch.bfloat16, variant="bf16", ).to("cuda") decoder = StableCascadeDecoderPipeline.from_pretrained( "stabilityai/stable-cascade", torch_dtype=torch.bfloat16, variant="bf16", ).to("cuda") num_images_per_prompt = 1 prior_output = prior( prompt=prompt, height=1024, width=1024, negative_prompt=negative_prompt, guidance_scale=4.0, num_images_per_prompt=num_images_per_prompt, num_inference_steps=20 ) decoder_output = decoder( image_embeddings=prior_output.image_embeddings, prompt=prompt, negative_prompt=negative_prompt, guidance_scale=0.0, output_type="pil", num_inference_steps=10 ).images[0] return decoder_output def main(): def generate_image_fn(prompt, negative_prompt): return generate_image(prompt, negative_prompt) gr.Interface( fn=generate_image_fn, inputs=["text", "text"], outputs="image", title="Image Generation App", description="Generate an image based on prompts.", ).launch() if __name__ == "__main__": main()
プロンプトを引数にとるようになどとは指定していないにも関わらず、勝手にプロンプトとネガティブプロンプトを引数にとるようなアプリになっています。