rafael1994s commited on
Commit
2364e09
·
verified ·
1 Parent(s): af1fb85

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +29 -14
app.py CHANGED
@@ -1,37 +1,52 @@
1
  import torch
2
- from diffusers import StableDiffusionXLPipeline, AutoencoderKL
3
  import gradio as gr
 
4
 
5
- # Загружаем базовую модель Pony
6
  model_id = "LyliaEngine/Pony_Diffusion_V6_XL"
7
- vae = AutoencoderKL.from_pretrained("madebyollin/sdxl-vae-fp16-fix", torch_dtype=torch_float16)
 
 
8
  pipe = StableDiffusionXLPipeline.from_pretrained(
9
  model_id,
10
  vae=vae,
11
  torch_dtype=torch.float16,
12
  variant="fp16"
13
- ).to("cuda")
14
-
15
- # Загружаем LoRA (стиль Summertime Saga)
16
  pipe.load_lora_weights("nncyberpunk/LoRA_SDXL1.0_SummertimeSagaXL_Pony", weight_name="SummertimeSagaXL.safetensors")
 
17
 
18
- def infer(prompt, negative_prompt, lora_scale):
19
- # Применяем вес LoRA (обычно 0.6 - 0.8)
 
 
 
 
20
  image = pipe(
21
  prompt=prompt,
22
- negative_prompt=negative_prompt,
23
  cross_attention_kwargs={"scale": lora_scale},
24
  num_inference_steps=25,
25
  guidance_scale=7.0,
26
  ).images[0]
27
  return image
28
 
29
- # Интерфейс как в твоем проекте Punch the Monkey
30
  with gr.Blocks() as demo:
31
- prompt = gr.Textbox(label="Prompt (используй score_9, score_8 для Pony)")
32
- lora_scale = gr.Slider(0, 1, value=0.7, label="LoRA Strength")
33
- btn = gr.Button("Generate")
34
- output = gr.Image()
 
 
 
 
 
 
 
 
35
  btn.click(infer, inputs=[prompt, lora_scale], outputs=output)
36
 
37
  demo.launch()
 
1
  import torch
2
+ import spaces
3
  import gradio as gr
4
+ from diffusers import StableDiffusionXLPipeline, AutoencoderKL
5
 
6
+ # 1. Загружаем модель один раз при старте (вне функции генерации)
7
  model_id = "LyliaEngine/Pony_Diffusion_V6_XL"
8
+ # Специальный VAE для SDXL, чтобы не было "черных квадратов"
9
+ vae = AutoencoderKL.from_pretrained("madebyollin/sdxl-vae-fp16-fix", torch_dtype=torch.float16)
10
+
11
  pipe = StableDiffusionXLPipeline.from_pretrained(
12
  model_id,
13
  vae=vae,
14
  torch_dtype=torch.float16,
15
  variant="fp16"
16
+ )
17
+ # Подгружаем LoRA
 
18
  pipe.load_lora_weights("nncyberpunk/LoRA_SDXL1.0_SummertimeSagaXL_Pony", weight_name="SummertimeSagaXL.safetensors")
19
+ pipe.to("cuda") # Это сработает внутри Space
20
 
21
+ # 2. Функция генерации с декоратором для ZeroGPU
22
+ @spaces.GPU
23
+ def infer(prompt, lora_scale):
24
+ # У Pony свои правила промптов, добавляем их автоматически для качества
25
+ base_negative = "score_6, score_5, score_4, low quality, bad anatomy, blur"
26
+
27
  image = pipe(
28
  prompt=prompt,
29
+ negative_prompt=base_negative,
30
  cross_attention_kwargs={"scale": lora_scale},
31
  num_inference_steps=25,
32
  guidance_scale=7.0,
33
  ).images[0]
34
  return image
35
 
36
+ # 3. Интерфейс Gradio
37
  with gr.Blocks() as demo:
38
+ gr.Markdown("# Summertime Saga XL Generator")
39
+ with gr.Row():
40
+ with gr.Column():
41
+ prompt = gr.Textbox(
42
+ label="Prompt",
43
+ placeholder="score_9, score_8, rating_explicit, summertime saga style, girl in the park..."
44
+ )
45
+ lora_scale = gr.Slider(0, 1, value=0.7, label="LoRA Strength")
46
+ btn = gr.Button("Generate")
47
+ with gr.Column():
48
+ output = gr.Image()
49
+
50
  btn.click(infer, inputs=[prompt, lora_scale], outputs=output)
51
 
52
  demo.launch()