File size: 1,880 Bytes
af10332 3a8ce39 75d0567 af10332 a5b71c1 43b1092 716be81 75d0567 a5b71c1 0176c0d 75d0567 70ba535 75d0567 a5b71c1 70ba535 a5b71c1 75d0567 a5b71c1 3a8ce39 0de51f5 a5b71c1 716be81 a5b71c1 067a650 a5b71c1 0de51f5 a5b71c1 067a650 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 53 54 55 56 57 58 59 60 61 |
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(bytes):
gr.download(bytes, "generated_image.png")
# Создаем интерфейс Gradio
iface = gr.Interface(
fn=generate_image,
inputs=[
gr.Textbox(label="Prompt", placeholder="Enter prompt here"),
gr.Textbox(label="Negative Prompt", placeholder="Enter negative prompt here")
],
outputs=[
gr.Image(type="pil", label="Generated Image"),
gr.Button("Download Image", action=download_image)
],
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", placeholder="Enter seed here", default="-1")
]
)
# Запускаем интерфейс
iface.launch()
|