File size: 2,464 Bytes
f4ff201
 
3fec1fb
f4ff201
fbdca8d
468aab2
90c02c2
f01e148
468aab2
f01e148
bf4b161
307ef64
 
bf4b161
f4ff201
efcd5d5
70e3d12
f4ff201
 
3fec1fb
 
70e3d12
3fec1fb
 
 
 
70e3d12
3fec1fb
 
 
70e3d12
548031b
 
 
 
 
 
 
 
3fec1fb
 
 
 
0a14984
3fec1fb
5305898
70e3d12
 
548031b
70e3d12
548031b
 
3fec1fb
548031b
b00a80c
 
 
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
import torch
from diffusers import StableDiffusionPipeline
import gradio as gr

#model_base = "SG161222/Realistic_Vision_V5.1_noVAE" #realistic people
#model_base = "Justin-Choo/epiCRealism-Natural_Sin_RC1_VAE" #cartoon people
#model_base = "Lykon/DreamShaper" #unrealistic people
#model_base = "runwayml/stable-diffusion-v1-5" #base
model_base = "Krebzonide/LazyMixPlus" #nsfw people

#lora_model_path = "Krebzonide/LoRA-CH-0" #mecjh - Corey H, traind on epiCRealism
lora_model_path = "Krebzonide/LoRA-CH-1" #mecjh - Corey H, traind on epiCRealism
#lora_model_path = "Krebzonide/LoRA-EM1" #exgfem - Emily M, trained on LizyMixPlus
#lora_model_path = "Krebzonide/LoRA-YX1" #uwspyx - Professor Xing, trained on Realistic_Vision

pipe = StableDiffusionPipeline.from_pretrained(model_base, torch_dtype=torch.float16, use_safetensors=True)
pipe.unet.load_attn_procs(lora_model_path)
pipe.to("cuda")

css = """
.btn-green {
  background-image: linear-gradient(to bottom right, #6dd178, #00a613) !important;
  border-color: #22c55e !important;
  color: #166534 !important;
}
.btn-green:hover {
  background-image: linear-gradient(to bottom right, #6dd178, #6dd178) !important;
}
"""

def generate(prompt, neg_prompt, samp_steps, guide_scale, lora_scale, progress=gr.Progress(track_tqdm=True)):
    images = pipe(
        prompt,
        negative_prompt=neg_prompt,
        num_inference_steps=samp_steps,
        guidance_scale=guide_scale,
        cross_attention_kwargs={"scale": lora_scale},
        num_images_per_prompt=4
    ).images
    return [(img, f"Image {i+1}") for i, img in enumerate(images)]
        

with gr.Blocks(css=css) as demo:
    with gr.Column():
        prompt = gr.Textbox(label="Prompt")
        negative_prompt = gr.Textbox(label="Negative Prompt", value="lowres, bad anatomy, bad hands, cropped, worst quality, disfigured, deformed, extra limbs, asian, filter, render")
        submit_btn = gr.Button("Generate", elem_classes="btn-green")
        gallery = gr.Gallery(label="Generated images", height=700)
        with gr.Row():
            samp_steps = gr.Slider(1, 100, value=25, step=1, label="Sampling steps")
            guide_scale = gr.Slider(1, 10, value=6, step=0.5, label="Guidance scale")
            lora_scale = gr.Slider(0, 1, value=0.5, step=0.01, label="LoRA power")

    submit_btn.click(generate, [prompt, negative_prompt, samp_steps, guide_scale, lora_scale], [gallery], queue=True)

demo.queue(1)
demo.launch(debug=True)