File size: 1,955 Bytes
54ad393
f4ff201
54ad393
 
3fec1fb
f4ff201
1291143
 
54ad393
 
1291143
54ad393
f4ff201
3fec1fb
 
70e3d12
3fec1fb
 
 
 
70e3d12
3fec1fb
 
 
70e3d12
548031b
 
 
 
 
1291143
 
 
548031b
3fec1fb
 
 
 
0a14984
3fec1fb
5305898
70e3d12
54ad393
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
from diffusers import StableDiffusionXLPipeline
import torch
#from controlnet_aux import OpenposeDetector
#from diffusers.utils import load_image
import gradio as gr

model_base = "stabilityai/stable-diffusion-xl-base-1.0"

pipe = StableDiffusionXLPipeline.from_pretrained(
    model_base, torch_dtype=torch.float16
)
pipe = 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,
        #generator=torch.manual_seed(97),
    ).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=1100)
        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)