Abobasnik commited on
Commit
4d8f48b
·
verified ·
1 Parent(s): c915378

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +17 -10
app.py CHANGED
@@ -7,7 +7,6 @@ import numpy as np
7
  import os
8
 
9
  # 1. Настройка модели
10
- # Указываем путь к твоему репозиторию
11
  model_id = "Abobasnik/HiperAi-ImageGenerator"
12
 
13
  device = "cuda" if torch.cuda.is_available() else "cpu"
@@ -15,27 +14,27 @@ dtype = torch.float16 if torch.cuda.is_available() else torch.float32
15
 
16
  print(f"⏳ Загрузка модели {model_id} на {device}...")
17
 
18
- # Загружаем твою модель
19
  pipe = AutoPipelineForText2Image.from_pretrained(
20
  model_id,
21
  torch_dtype=dtype,
22
  variant="fp16" if torch.cuda.is_available() else None
23
  ).to(device)
24
 
25
- # Загружаем фильтр цензуры (он будет проверять пиксели)
26
  safety_checker = StableDiffusionSafetyChecker.from_pretrained("CompVis/stable-diffusion-safety-checker").to(device)
27
  feature_extractor = CLIPImageProcessor.from_pretrained("openai/clip-vit-base-patch32")
28
 
29
- def generate_safe(prompt):
30
  if not prompt:
31
  return None, "Введите запрос"
32
 
33
- # Генерация (SDXL Turbo лучше всего работает на 4-8 шагах)
34
  image = pipe(
35
  prompt=prompt,
36
  negative_prompt="nude, nsfw, naked, breasts, gore, violence",
37
- num_inference_steps=8,
38
- guidance_scale=1.5
39
  ).images[0]
40
 
41
  # Проверка на цензуру
@@ -44,7 +43,6 @@ def generate_safe(prompt):
44
  _, has_nsfw_concept = safety_checker(images=clip_input.pixel_values, clip_input=clip_input.pixel_values)
45
 
46
  if has_nsfw_concept[0]:
47
- # Если цензура сработала — возвращаем черный квадрат
48
  black_img = np.zeros((512, 512, 3), dtype=np.uint8)
49
  return black_img, "🚨 КОНТЕНТ ЗАБЛОКИРОВАН"
50
 
@@ -53,7 +51,7 @@ def generate_safe(prompt):
53
  # 2. Интерфейс Gradio
54
  with gr.Blocks(theme=gr.themes.Soft(), css="footer {display: none !important}") as demo:
55
  gr.HTML("<h1 style='text-align: center;'>🛡️ HiperAi-ImageGenerator v1</h1>")
56
- gr.HTML("<p style='text-align: center;'>Модель: <b>HiperAi-ImageGenerator</b> | Владелец: <b>Graznaa_Lava</b></p>")
57
 
58
  with gr.Row():
59
  with gr.Column():
@@ -62,12 +60,21 @@ with gr.Blocks(theme=gr.themes.Soft(), css="footer {display: none !important}")
62
  placeholder="Например: Cute cat in space...",
63
  lines=3
64
  )
 
 
 
 
65
  gen_btn = gr.Button("ГЕНЕРИРОВАТЬ", variant="primary")
66
 
67
  with gr.Column():
68
  output_img = gr.Image(label="Результат")
69
  status_text = gr.Textbox(label="Статус", interactive=False)
70
 
71
- gen_btn.click(fn=generate_safe, inputs=input_text, outputs=[output_img, status_text])
 
 
 
 
 
72
 
73
  demo.launch()
 
7
  import os
8
 
9
  # 1. Настройка модели
 
10
  model_id = "Abobasnik/HiperAi-ImageGenerator"
11
 
12
  device = "cuda" if torch.cuda.is_available() else "cpu"
 
14
 
15
  print(f"⏳ Загрузка модели {model_id} на {device}...")
16
 
17
+ # Загружаем модель
18
  pipe = AutoPipelineForText2Image.from_pretrained(
19
  model_id,
20
  torch_dtype=dtype,
21
  variant="fp16" if torch.cuda.is_available() else None
22
  ).to(device)
23
 
24
+ # Загружаем фильтр цензуры
25
  safety_checker = StableDiffusionSafetyChecker.from_pretrained("CompVis/stable-diffusion-safety-checker").to(device)
26
  feature_extractor = CLIPImageProcessor.from_pretrained("openai/clip-vit-base-patch32")
27
 
28
+ def generate_safe(prompt, steps, guidance):
29
  if not prompt:
30
  return None, "Введите запрос"
31
 
32
+ # Генерация с использованием слайдеров
33
  image = pipe(
34
  prompt=prompt,
35
  negative_prompt="nude, nsfw, naked, breasts, gore, violence",
36
+ num_inference_steps=int(steps),
37
+ guidance_scale=float(guidance)
38
  ).images[0]
39
 
40
  # Проверка на цензуру
 
43
  _, has_nsfw_concept = safety_checker(images=clip_input.pixel_values, clip_input=clip_input.pixel_values)
44
 
45
  if has_nsfw_concept[0]:
 
46
  black_img = np.zeros((512, 512, 3), dtype=np.uint8)
47
  return black_img, "🚨 КОНТЕНТ ЗАБЛОКИРОВАН"
48
 
 
51
  # 2. Интерфейс Gradio
52
  with gr.Blocks(theme=gr.themes.Soft(), css="footer {display: none !important}") as demo:
53
  gr.HTML("<h1 style='text-align: center;'>🛡️ HiperAi-ImageGenerator v1</h1>")
54
+ gr.HTML("<p style='text-align: center;'>Создатель: <b>Graznaa_Lava</b> | Модель: <b>HiperAi-ImageGenerator</b></p>")
55
 
56
  with gr.Row():
57
  with gr.Column():
 
60
  placeholder="Например: Cute cat in space...",
61
  lines=3
62
  )
63
+ # Добавленные настройки
64
+ steps_slider = gr.Slider(1, 12, value=8, step=1, label="Повторы (Steps)")
65
+ guidance_slider = gr.Slider(0.0, 5.0, value=1.5, step=0.1, label="Строгость (Guidance)")
66
+
67
  gen_btn = gr.Button("ГЕНЕРИРОВАТЬ", variant="primary")
68
 
69
  with gr.Column():
70
  output_img = gr.Image(label="Результат")
71
  status_text = gr.Textbox(label="Статус", interactive=False)
72
 
73
+ # Обновленные входы (inputs) для генерации
74
+ gen_btn.click(
75
+ fn=generate_safe,
76
+ inputs=[input_text, steps_slider, guidance_slider],
77
+ outputs=[output_img, status_text]
78
+ )
79
 
80
  demo.launch()