File size: 1,837 Bytes
af10332 3a8ce39 75d0567 af10332 a5b71c1 43b1092 716be81 75d0567 a5b71c1 0176c0d 75d0567 70ba535 75d0567 a5b71c1 70ba535 a5b71c1 75d0567 a5b71c1 3a8ce39 0de51f5 428129e 0de51f5 a5b71c1 428129e a5b71c1 067a650 428129e 85ca52b 067a650 428129e a5b71c1 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 |
import gradio as gr
import requests
import os
# Получаем URL и API Key из переменных окружения
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")
# Создаем интерфейс Gradio
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()
|