HelloSun commited on
Commit
edfcd79
·
verified ·
1 Parent(s): ea83815

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +59 -79
app.py CHANGED
@@ -1,43 +1,59 @@
1
  import gradio as gr
2
  import numpy as np
3
- import random
4
- #import spaces #[uncomment to use ZeroGPU]
 
5
  from diffusers import DiffusionPipeline
6
- import torch
 
 
 
7
 
8
- device = "cuda" if torch.cuda.is_available() else "cpu"
9
- model_repo_id = "stabilityai/sdxl-turbo" #Replace to the model you would like to use
 
 
10
 
11
- if torch.cuda.is_available():
12
- torch_dtype = torch.float16
13
- else:
14
- torch_dtype = torch.float32
15
 
16
- pipe = DiffusionPipeline.from_pretrained(model_repo_id, torch_dtype=torch_dtype)
17
- pipe = pipe.to(device)
18
 
19
- MAX_SEED = np.iinfo(np.int32).max
20
- MAX_IMAGE_SIZE = 1024
21
 
22
- #@spaces.GPU #[uncomment to use ZeroGPU]
23
- def infer(prompt, negative_prompt, seed, randomize_seed, width, height, guidance_scale, num_inference_steps, progress=gr.Progress(track_tqdm=True)):
24
 
25
- if randomize_seed:
26
- seed = random.randint(0, MAX_SEED)
27
-
28
- generator = torch.Generator().manual_seed(seed)
29
-
30
- image = pipe(
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
31
  prompt = prompt,
32
- negative_prompt = negative_prompt,
33
- guidance_scale = guidance_scale,
34
  num_inference_steps = num_inference_steps,
35
- width = width,
36
  height = height,
37
- generator = generator
38
- ).images[0]
39
 
40
- return image, seed
41
 
42
  examples = [
43
  "Astronaut in a jungle, cold color palette, muted colors, detailed, 8k",
@@ -48,17 +64,18 @@ examples = [
48
  css="""
49
  #col-container {
50
  margin: 0 auto;
51
- max-width: 640px;
52
  }
53
  """
54
 
 
55
  with gr.Blocks(css=css) as demo:
56
 
57
  with gr.Column(elem_id="col-container"):
58
  gr.Markdown(f"""
59
- # Text-to-Image Gradio Template
60
  """)
61
-
62
  with gr.Row():
63
 
64
  prompt = gr.Text(
@@ -74,69 +91,32 @@ with gr.Blocks(css=css) as demo:
74
  result = gr.Image(label="Result", show_label=False)
75
 
76
  with gr.Accordion("Advanced Settings", open=False):
77
-
78
- negative_prompt = gr.Text(
79
- label="Negative prompt",
80
- max_lines=1,
81
- placeholder="Enter a negative prompt",
82
- visible=False,
83
- )
84
-
85
- seed = gr.Slider(
86
- label="Seed",
87
- minimum=0,
88
- maximum=MAX_SEED,
89
- step=1,
90
- value=0,
91
- )
92
-
93
- randomize_seed = gr.Checkbox(label="Randomize seed", value=True)
94
 
95
  with gr.Row():
96
 
97
- width = gr.Slider(
98
- label="Width",
99
- minimum=256,
100
- maximum=MAX_IMAGE_SIZE,
101
- step=32,
102
- value=1024, #Replace with defaults that work for your model
103
- )
104
-
105
- height = gr.Slider(
106
- label="Height",
107
- minimum=256,
108
- maximum=MAX_IMAGE_SIZE,
109
- step=32,
110
- value=1024, #Replace with defaults that work for your model
111
- )
112
-
113
- with gr.Row():
114
-
115
- guidance_scale = gr.Slider(
116
- label="Guidance scale",
117
- minimum=0.0,
118
- maximum=10.0,
119
- step=0.1,
120
- value=0.0, #Replace with defaults that work for your model
121
- )
122
-
123
  num_inference_steps = gr.Slider(
124
  label="Number of inference steps",
125
  minimum=1,
126
  maximum=50,
127
  step=1,
128
- value=2, #Replace with defaults that work for your model
129
  )
130
 
131
  gr.Examples(
132
  examples = examples,
133
  inputs = [prompt]
134
  )
135
- gr.on(
136
- triggers=[run_button.click, prompt.submit],
137
  fn = infer,
138
- inputs = [prompt, negative_prompt, seed, randomize_seed, width, height, guidance_scale, num_inference_steps],
139
- outputs = [result, seed]
140
  )
141
 
142
- demo.queue().launch()
 
1
  import gradio as gr
2
  import numpy as np
3
+ from optimum.intel import OVStableDiffusionPipeline, OVStableDiffusionXLPipeline, OVLatentConsistencyModelPipeline
4
+ from optimum.intel.openvino.modeling_diffusion import OVModelVaeDecoder, OVBaseModel
5
+ from diffusers.pipelines.stable_diffusion import StableDiffusionSafetyChecker
6
  from diffusers import DiffusionPipeline
7
+ from diffusers.schedulers import EulerDiscreteScheduler
8
+ import openvino.runtime as ov
9
+ from typing import Optional, Dict
10
+ from huggingface_hub import snapshot_download
11
 
12
+ #model_id = "echarlaix/sdxl-turbo-openvino-int8"
13
+ #model_id = "echarlaix/LCM_Dreamshaper_v7-openvino"
14
+ #model_id = "OpenVINO/LCM_Dreamshaper_v7-int8-ov"
15
+ model_id = "yujiepan/dreamshaper-8-lcm-openvino-w8a8"
16
 
17
+ #safety_checker = StableDiffusionSafetyChecker.from_pretrained("CompVis/stable-diffusion-safety-checker")
 
 
 
18
 
 
 
19
 
20
+ #pipeline = OVLatentConsistencyModelPipeline.from_pretrained(model_id, compile=False, safety_checker=safety_checker)
21
+ pipeline = OVLatentConsistencyModelPipeline.from_pretrained(model_id, compile=False, device='CPU',)
22
 
23
+ batch_size, num_images, height, width = 1, 1, 512, 512
24
+ pipeline.reshape(batch_size=batch_size, height=height, width=width, num_images_per_prompt=num_images)
25
 
26
+ #不可用lora
27
+ #pipeline.load_lora_weights("nerijs/pixel-art-xl", weight_name="pixel-art-xl.safetensors", adapter_name="pixel")
28
+ #pipeline.set_adapters("pixel")
29
+
30
+
31
+ # 选择采样方法(调度器) 可以新增但是跑就死
32
+ #scheduler = EulerDiscreteScheduler()
33
+ #pipeline.scheduler = scheduler
34
+
35
+ #badhandv4
36
+ #pipeline.load_textual_inversion("./badhandv4.pt", "badhandv4")
37
+ #hiten1
38
+ #pipeline.load_textual_inversion("./hiten1.pt", "hiten1")
39
+ pipeline.compile()
40
+
41
+ #TypeError: LatentConsistencyPipelineMixin.__call__() got an unexpected keyword argument 'negative_prompt'
42
+ #negative_prompt="easynegative,bad anatomy, bad hands, missing fingers, extra fingers, three hands, three legs, bad arms, missing legs, missing arms, poorly drawn face, bad face, fused face, cloned face, three crus, fused feet, fused thigh, extra crus, ugly fingers, horn, cartoon, cg, 3d, unreal, animate, amputation, disconnected limbs, nsfw, nude, censored, "
43
+
44
+ def infer(prompt, num_inference_steps):
45
+
46
+ image = pipeline(
47
  prompt = prompt,
48
+ #negative_prompt = negative_prompt,
49
+ guidance_scale = 7.0,
50
  num_inference_steps = num_inference_steps,
51
+ width = width,
52
  height = height,
53
+ num_images_per_prompt=num_images,
54
+ ).images[0]
55
 
56
+ return image
57
 
58
  examples = [
59
  "Astronaut in a jungle, cold color palette, muted colors, detailed, 8k",
 
64
  css="""
65
  #col-container {
66
  margin: 0 auto;
67
+ max-width: 520px;
68
  }
69
  """
70
 
71
+
72
  with gr.Blocks(css=css) as demo:
73
 
74
  with gr.Column(elem_id="col-container"):
75
  gr.Markdown(f"""
76
+ # Demo : [Fast LCM](https://huggingface.co/OpenVINO/LCM_Dreamshaper_v7-int8-ov) quantized with NNCF ⚡
77
  """)
78
+
79
  with gr.Row():
80
 
81
  prompt = gr.Text(
 
91
  result = gr.Image(label="Result", show_label=False)
92
 
93
  with gr.Accordion("Advanced Settings", open=False):
94
+ #with gr.Row():
95
+ # negative_prompt = gr.Text(
96
+ # label="Negative prompt",
97
+ # max_lines=1,
98
+ # placeholder="Enter a negative prompt",
99
+ # )
 
 
 
 
 
 
 
 
 
 
 
100
 
101
  with gr.Row():
102
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
103
  num_inference_steps = gr.Slider(
104
  label="Number of inference steps",
105
  minimum=1,
106
  maximum=50,
107
  step=1,
108
+ value=4,
109
  )
110
 
111
  gr.Examples(
112
  examples = examples,
113
  inputs = [prompt]
114
  )
115
+
116
+ run_button.click(
117
  fn = infer,
118
+ inputs = [prompt, num_inference_steps],
119
+ outputs = [result]
120
  )
121
 
122
+ demo.queue().launch(share=True)