votepurchase commited on
Commit
7cb9b94
1 Parent(s): e0e396b

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +128 -1
app.py CHANGED
@@ -1,3 +1,130 @@
1
  import gradio as gr
 
 
 
 
 
 
 
 
 
2
 
3
- gr.load("models/votepurchase/ponyDiffusionV6XL").launch()
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
  import gradio as gr
2
+ import numpy as np
3
+ import PIL.Image
4
+ from PIL import Image
5
+ import random
6
+ from diffusers import ControlNetModel, StableDiffusionXLPipeline, AutoencoderKL
7
+ from diffusers import DDIMScheduler, EulerAncestralDiscreteScheduler
8
+ import cv2
9
+ import torch
10
+ import spaces
11
 
12
+ device = torch.device("cuda" if torch.cuda.is_available() else "cpu")
13
+
14
+ pipe = StableDiffusionXLPipeline.from_pretrained(
15
+ "votepurchase/ponyDiffusionV6XL",
16
+ torch_dtype=torch.float16,
17
+ )
18
+
19
+ pipe.scheduler = EulerAncestralDiscreteScheduler.from_config(pipe.scheduler.config)
20
+ pipe.to(device)
21
+
22
+ MAX_SEED = np.iinfo(np.int32).max
23
+ MAX_IMAGE_SIZE = 1216
24
+
25
+
26
+ @spaces.GPU
27
+ def infer(prompt, negative_prompt, seed, randomize_seed, width, height, guidance_scale, num_inference_steps):
28
+
29
+ if randomize_seed:
30
+ seed = random.randint(0, MAX_SEED)
31
+
32
+ generator = torch.Generator().manual_seed(seed)
33
+
34
+ output_image = pipe(
35
+ prompt=prompt,
36
+ negative_prompt=negative_prompt,
37
+ guidance_scale=guidance_scale,
38
+ num_inference_steps=num_inference_steps,
39
+ width=width,
40
+ height=height,
41
+ generator=generator
42
+ ).images[0]
43
+
44
+ return output_image
45
+
46
+
47
+ css = """
48
+ #col-container {
49
+ margin: 0 auto;
50
+ max-width: 520px;
51
+ }
52
+ """
53
+
54
+ with gr.Blocks(css=css) as demo:
55
+
56
+ with gr.Column(elem_id="col-container"):
57
+
58
+ with gr.Row():
59
+ prompt = gr.Text(
60
+ label="Prompt",
61
+ show_label=False,
62
+ max_lines=1,
63
+ placeholder="Enter your prompt",
64
+ container=False,
65
+ )
66
+
67
+ run_button = gr.Button("Run", scale=0)
68
+
69
+ result = gr.Image(label="Result", show_label=False)
70
+
71
+ with gr.Accordion("Advanced Settings", open=False):
72
+
73
+ negative_prompt = gr.Text(
74
+ label="Negative prompt",
75
+ max_lines=1,
76
+ placeholder="Enter a negative prompt",
77
+ value="nsfw, (low quality, worst quality:1.2), very displeasing, 3d, watermark, signature, ugly, poorly drawn"
78
+ )
79
+
80
+ seed = gr.Slider(
81
+ label="Seed",
82
+ minimum=0,
83
+ maximum=MAX_SEED,
84
+ step=1,
85
+ value=0,
86
+ )
87
+
88
+ randomize_seed = gr.Checkbox(label="Randomize seed", value=True)
89
+
90
+ with gr.Row():
91
+ width = gr.Slider(
92
+ label="Width",
93
+ minimum=256,
94
+ maximum=MAX_IMAGE_SIZE,
95
+ step=32,
96
+ value=1024,#832,
97
+ )
98
+
99
+ height = gr.Slider(
100
+ label="Height",
101
+ minimum=256,
102
+ maximum=MAX_IMAGE_SIZE,
103
+ step=32,
104
+ value=1024,#1216,
105
+ )
106
+
107
+ with gr.Row():
108
+ guidance_scale = gr.Slider(
109
+ label="Guidance scale",
110
+ minimum=0.0,
111
+ maximum=20.0,
112
+ step=0.1,
113
+ value=7,
114
+ )
115
+
116
+ num_inference_steps = gr.Slider(
117
+ label="Number of inference steps",
118
+ minimum=1,
119
+ maximum=28,
120
+ step=1,
121
+ value=28,
122
+ )
123
+
124
+ run_button.click(#lambda x: None, inputs=None, outputs=result).then(
125
+ fn=infer,
126
+ inputs=[prompt, negative_prompt, seed, randomize_seed, width, height, guidance_scale, num_inference_steps],
127
+ outputs=[result]
128
+ )
129
+
130
+ demo.queue().launch()