|
import gradio as gr |
|
import requests |
|
import os |
|
|
|
|
|
base_url = os.getenv("BASE_URL") |
|
api_key = os.getenv("API_KEY") |
|
|
|
|
|
def generate_image(prompt, negative_prompt, sampling_steps, cfg_scale, seed): |
|
headers = { |
|
"Authorization": f"Bearer {api_key}" |
|
} |
|
|
|
payload = { |
|
"prompt": prompt, |
|
"negative_prompt": negative_prompt, |
|
"sampling_steps": sampling_steps, |
|
"cfg_scale": cfg_scale, |
|
"seed": seed |
|
} |
|
|
|
response = requests.post(base_url, json=payload, headers=headers) |
|
|
|
|
|
generated_image_bytes = response.content |
|
|
|
return generated_image_bytes |
|
|
|
|
|
iface = gr.Interface( |
|
fn=generate_image, |
|
inputs=[ |
|
gr.Textbox(label="Prompt", default=""), |
|
gr.Textbox(label="Negative Prompt", default="") |
|
], |
|
outputs=[ |
|
gr.Image(type="pil", label="Generated Image"), |
|
gr.Button("Download Image", onclick=lambda bytes: gr.download(bytes, "generated_image.png")) |
|
], |
|
live=True, |
|
title="Huggingface Image Generator" |
|
) |
|
|
|
|
|
iface.add_tab( |
|
"Advanced Settings", |
|
[ |
|
gr.Slider(minimum=1, maximum=30, label="Sampling Steps", default=15), |
|
gr.Slider(minimum=1, maximum=20, label="CFG Scale", default=10), |
|
gr.Textbox(label="Seed", default="-1") |
|
] |
|
) |
|
|
|
|
|
iface.launch() |
|
|