dreamer / app.py
cutiee82's picture
Update app.py
a80fd23 verified
raw
history blame
2.48 kB
import io
import random
import gradio as gr
import requests
from PIL import Image
MAX_SEED = 2 ** 31 - 1
session = requests.Session()
def _fetch_url(*args, **kwargs):
try:
response = session.get(*args, **kwargs)
response.raise_for_status()
return response.content
except requests.RequestException as e:
print(f"Request error: {e}")
return None
def generate(
prompt,
seed=None,
randomize_seed=True,
width=1024,
height=1024
):
if seed is None or randomize_seed:
seed = random.randint(0, MAX_SEED)
url = f"https://pollinations.ai/p/{prompt}?nologo=true&private=true"
params = dict(prompt=prompt, seed=seed, width=width, height=height)
image = _fetch_url(url, params=params)
if image:
return Image.open(io.BytesIO(image))
return None
with gr.Blocks(
title="Text-to-image UI",
css="footer {display: none !important}"
) as app:
gr.Markdown("# Text-to-Image UI")
with gr.Tab("🎨 Generate"):
result = gr.Image(
label="Image",
show_label=False,
format="jpeg",
interactive=False
)
with gr.Group():
with gr.Row():
prompt = gr.Textbox(
label="Prompt",
show_label=False,
placeholder="Enter your prompt..",
max_lines=1,
container=False
)
btn = gr.Button("Generate", variant="primary")
with gr.Tab("⚙️ Settings"):
with gr.Row():
seed = gr.Slider(
label="Seed",
minimum=0,
maximum=MAX_SEED,
step=1,
value=0
)
randomize_seed = gr.Checkbox(label="Randomize seed", value=True)
with gr.Row():
width = gr.Slider(
label="Width",
minimum=256,
maximum=1344,
step=64,
value=1024
)
height = gr.Slider(
label="Height",
minimum=256,
maximum=1344,
step=64,
value=1024
)
btn.click(
generate,
inputs=[prompt, seed, randomize_seed, width, height],
outputs=[result],
api_name="run"
)
if __name__ == "__main__":
app.queue().launch(debug=True, ssr_mode=False)