|
import gradio as gr |
|
import requests |
|
import os |
|
|
|
|
|
def generate_image(prompt, negative_prompt, sampling_steps, cfg_scale, seed): |
|
url = os.getenv("BASE_URL") |
|
api_key = os.getenv("API_KEY") |
|
|
|
headers = { |
|
"Authorization": f"Bearer {api_key}" |
|
} |
|
|
|
data = { |
|
"prompt": prompt, |
|
"negative_prompt": negative_prompt, |
|
"sampling_steps": sampling_steps, |
|
"cfg_scale": cfg_scale, |
|
"seed": seed |
|
} |
|
|
|
response = requests.post(url, headers=headers, json=data) |
|
generated_image = response.content |
|
return generated_image |
|
|
|
|
|
inputs_tab1 = [ |
|
gr.Textbox(label="Prompt", lines=3), |
|
gr.Textbox(label="Negative Prompt", lines=3) |
|
] |
|
|
|
inputs_tab2 = [ |
|
gr.Slider(1, 30, default=1, label="Sampling Steps", step=1), |
|
gr.Slider(1, 20, default=1, label="CFG Scale", step=1), |
|
gr.Number(default=-1, label="Seed") |
|
] |
|
|
|
outputs = gr.Image(label="Generated Image") |
|
|
|
gr.Interface( |
|
fn=generate_image, |
|
inputs=[inputs_tab1, inputs_tab2], |
|
outputs=outputs, |
|
title="HuggingFace Image Generator", |
|
allow_flagging=False, |
|
theme="compact", |
|
server_name="gradio.app" |
|
).launch() |
|
|