text2image_4 / app.py
Kpenciler's picture
Update app.py
99c0979
import os
from io import BytesIO
import gradio as gr
import numpy as np
import replicate
import requests
from PIL import Image
model_id = "stability-ai/sdxl:2b017d9b67edd2ee1401238df49d75da53c523f36e363881e057f5dc3ed3c5b2"
default_steps = 25
def generate(prompt: str, secret_key: str):
"""
γƒ—γƒ­γƒ³γƒ—γƒˆγ‹γ‚‰η”Ÿζˆη”»εƒ(PIL.Image.open)を取得
"""
if secret_key == os.environ["SECRET_KEY"]:
output = replicate.run(
model_id,
input={
"prompt": prompt,
"num_inference_steps": default_steps,
},
)
# γƒͺンク取得
png_link = output[0]
# PNGフゑむルをγƒͺンクから取得
response = requests.get(png_link)
# むパージをパヒγƒͺδΈŠγ«ι–‹γ
img = Image.open(BytesIO(response.content))
return img
examples = [
["station"],
["station, ghibli style"],
["Elon Musk"],
["Elon Musk playing Shogi"],
# ["An astronaut riding a rainbow unicorn, cinematic, dramatic", ""],
# ["A robot painted as graffiti on a brick wall. a sidewalk is in front of the wall, and grass is growing out of cracks in the concrete.", ""],
# ["Panda mad scientist mixing sparkling chemicals, artstation.", ""],
# ["An astronaut riding a rainbow unicorn, cinematic, dramatic"],
# [
# "photo of a rhino dressed suit and tie sitting at a table in a bar with a bar stools, award winning photography."
# ],
# ["a giant monster hybrid of dragon and spider, in dark dense foggy forest"],
# [
# "a man in a space suit playing a piano, highly detailed illustration, full color illustration, very detailed illustration"
# ],
]
with gr.Blocks(title="Stable Diffusion XL (SDXL 1.0)") as demo:
with gr.Row():
with gr.Column(scale=1, min_width=600):
gr_prompt = gr.Textbox(label="γƒ—γƒ­γƒ³γƒ—γƒˆ")
gr_password = gr.Textbox(label="パスワード")
gr_generate_button = gr.Button("η”Ÿζˆ")
# with gr.Accordion("advanced settings", open=False):
# gr_steps = gr.Number(label="steps", value=default_steps)
# gr_seed = gr.Number(label="seed", value=-1)
with gr.Column(scale=1, min_width=600):
gr_image = gr.Image()
# examples=examples
gr_generate_button.click(
generate,
inputs=[gr_prompt, gr_password],
outputs=[gr_image],
)
with gr.Row():
gr.Examples(examples, inputs=[gr_prompt], label="γƒ—γƒ­γƒ³γƒ—γƒˆδΎ‹")
demo.launch()