|
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 |
|
|
|
|
|
def download_image(prompt, negative_prompt, sampling_steps, cfg_scale, seed): |
|
bytes = generate_image(prompt, negative_prompt, sampling_steps, cfg_scale, seed) |
|
gr.download(bytes, "generated_image.png") |
|
|
|
|
|
iface = gr.Interface( |
|
fn=download_image, |
|
inputs=[ |
|
gr.Textbox(label="Prompt", placeholder="Enter prompt here"), |
|
gr.Textbox(label="Negative Prompt", placeholder="Enter negative prompt here"), |
|
gr.Slider(minimum=1, maximum=30, label="Sampling Steps", initial=15), |
|
gr.Slider(minimum=1, maximum=20, label="CFG Scale", initial=10), |
|
gr.Textbox(label="Seed", placeholder="Enter seed here", default="-1") |
|
], |
|
outputs=gr.Image(type="pil", label="Generated Image"), |
|
live=True, |
|
title="Huggingface Image Generator" |
|
) |
|
|
|
|
|
iface.launch() |
|
|