Rooni commited on
Commit
a5b71c1
·
1 Parent(s): a184028

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +36 -28
app.py CHANGED
@@ -2,16 +2,17 @@ import gradio as gr
2
  import requests
3
  import os
4
 
5
- # Функция для вызова Inference API модели
 
 
 
 
6
  def generate_image(prompt, negative_prompt, sampling_steps, cfg_scale, seed):
7
- url = os.getenv("BASE_URL")
8
- api_key = os.getenv("API_KEY")
9
-
10
  headers = {
11
  "Authorization": f"Bearer {api_key}"
12
  }
13
 
14
- data = {
15
  "prompt": prompt,
16
  "negative_prompt": negative_prompt,
17
  "sampling_steps": sampling_steps,
@@ -19,30 +20,37 @@ def generate_image(prompt, negative_prompt, sampling_steps, cfg_scale, seed):
19
  "seed": seed
20
  }
21
 
22
- response = requests.post(url, headers=headers, json=data)
23
- generated_image = response.content # Получаем изображение из ответа API
24
- return generated_image
25
-
26
- # Создание интерфейса Gradio
27
- inputs_tab1 = [
28
- gr.Textbox(label="Prompt", lines=3),
29
- gr.Textbox(label="Negative Prompt", lines=3)
30
- ]
31
 
32
- inputs_tab2 = [
33
- gr.Slider(minimum=1, maximum=30, default=1, label="Sampling Steps", step=1, init_value=1),
34
- gr.Slider(minimum=1, maximum=20, default=1, label="CFG Scale", step=1, init_value=1),
35
- gr.Number(default=-1, label="Seed")
36
- ]
37
 
38
- outputs = gr.Image(label="Generated Image")
39
 
40
- gr.Interface(
 
41
  fn=generate_image,
42
- inputs=[inputs_tab1, inputs_tab2],
43
- outputs=outputs,
44
- title="HuggingFace Image Generator",
45
- allow_flagging=False, # Отключаем возможность пометить результат
46
- theme="compact", # Выбираем компактную тему интерфейса
47
- server_name="gradio.app"
48
- ).launch()
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2
  import requests
3
  import os
4
 
5
+ # Получаем URL и API Key из переменных окружения
6
+ base_url = os.getenv("BASE_URL")
7
+ api_key = os.getenv("API_KEY")
8
+
9
+ # Функция для отправки запроса к модели
10
  def generate_image(prompt, negative_prompt, sampling_steps, cfg_scale, seed):
 
 
 
11
  headers = {
12
  "Authorization": f"Bearer {api_key}"
13
  }
14
 
15
+ payload = {
16
  "prompt": prompt,
17
  "negative_prompt": negative_prompt,
18
  "sampling_steps": sampling_steps,
 
20
  "seed": seed
21
  }
22
 
23
+ response = requests.post(base_url, json=payload, headers=headers)
 
 
 
 
 
 
 
 
24
 
25
+ # Предположим, что модель возвращает изображение в виде байтов
26
+ generated_image_bytes = response.content
 
 
 
27
 
28
+ return generated_image_bytes
29
 
30
+ # Создаем интерфейс Gradio
31
+ iface = gr.Interface(
32
  fn=generate_image,
33
+ inputs=[
34
+ gr.Textbox("text", label="Prompt", default=""),
35
+ gr.Textbox("text", label="Negative Prompt", default="")
36
+ ],
37
+ outputs=[
38
+ gr.Image(type="pil", label="Generated Image"),
39
+ gr.Button("Download Image", onclick=lambda bytes: gr.download(bytes, "generated_image.png"))
40
+ ],
41
+ live=True,
42
+ title="Huggingface Image Generator"
43
+ )
44
+
45
+ # Добавляем вторую вкладку
46
+ iface.add_tab(
47
+ "Advanced Settings",
48
+ [
49
+ gr.Slider(minimum=1, maximum=30, label="Sampling Steps", default=15),
50
+ gr.Slider(minimum=1, maximum=20, label="CFG Scale", default=10),
51
+ gr.Textbox("text", label="Seed", default="-1")
52
+ ]
53
+ )
54
+
55
+ # Запускаем интерфейс
56
+ iface.launch()