eduardo4547 commited on
Commit
c5994d1
·
verified ·
1 Parent(s): 0c373e9

Update run/gradio_ootd.py

Browse files
Files changed (1) hide show
  1. run/gradio_ootd.py +19 -8
run/gradio_ootd.py CHANGED
@@ -5,6 +5,18 @@ _ft_mod = type(sys)("torchvision.transforms.functional_tensor")
5
  _ft_mod.rgb_to_grayscale = _tvf.rgb_to_grayscale
6
  sys.modules["torchvision.transforms.functional_tensor"] = _ft_mod
7
 
 
 
 
 
 
 
 
 
 
 
 
 
8
  import spaces
9
 
10
  import gradio as gr
@@ -48,14 +60,14 @@ garment_dc = os.path.join(example_path, 'garment/048554_1.jpg')
48
  @spaces.GPU
49
  def process_hd(vton_img, garm_img, n_samples, n_steps, image_scale, seed):
50
  model_type = 'hd'
51
- category = 0 # 0:upperbody; 1:lowerbody; 2:dress
52
 
53
  with torch.no_grad():
54
  openpose_model_hd.preprocessor.body_estimation.model.to('cuda')
55
  ootd_model_hd.pipe.to('cuda')
56
  ootd_model_hd.image_encoder.to('cuda')
57
  ootd_model_hd.text_encoder.to('cuda')
58
-
59
  garm_img = Image.open(garm_img).resize((768, 1024))
60
  vton_img = Image.open(vton_img).resize((768, 1024))
61
  keypoints = openpose_model_hd(vton_img.resize((384, 512)))
@@ -64,7 +76,7 @@ def process_hd(vton_img, garm_img, n_samples, n_steps, image_scale, seed):
64
  mask, mask_gray = get_mask_location(model_type, category_dict_utils[category], model_parse, keypoints)
65
  mask = mask.resize((768, 1024), Image.NEAREST)
66
  mask_gray = mask_gray.resize((768, 1024), Image.NEAREST)
67
-
68
  masked_vton_img = Image.composite(mask_gray, vton_img, mask)
69
 
70
  images = ootd_model_hd(
@@ -98,7 +110,7 @@ def process_dc(vton_img, garm_img, category, n_samples, n_steps, image_scale, se
98
  ootd_model_dc.pipe.to('cuda')
99
  ootd_model_dc.image_encoder.to('cuda')
100
  ootd_model_dc.text_encoder.to('cuda')
101
-
102
  garm_img = Image.open(garm_img).resize((768, 1024))
103
  vton_img = Image.open(vton_img).resize((768, 1024))
104
  keypoints = openpose_model_dc(vton_img.resize((384, 512)))
@@ -107,7 +119,7 @@ def process_dc(vton_img, garm_img, category, n_samples, n_steps, image_scale, se
107
  mask, mask_gray = get_mask_location(model_type, category_dict_utils[category], model_parse, keypoints)
108
  mask = mask.resize((768, 1024), Image.NEAREST)
109
  mask_gray = mask_gray.resize((768, 1024), Image.NEAREST)
110
-
111
  masked_vton_img = Image.composite(mask_gray, vton_img, mask)
112
 
113
  images = ootd_model_dc(
@@ -185,11 +197,10 @@ with block:
185
  n_steps = gr.Slider(label="Steps", minimum=20, maximum=40, value=20, step=1)
186
  image_scale = gr.Slider(label="Guidance scale", minimum=1.0, maximum=5.0, value=2.0, step=0.1)
187
  seed = gr.Slider(label="Seed", minimum=-1, maximum=2147483647, step=1, value=-1)
188
-
189
  ips = [vton_img, garm_img, n_samples, n_steps, image_scale, seed]
190
  run_button.click(fn=process_hd, inputs=ips, outputs=[result_gallery])
191
 
192
-
193
  with gr.Row():
194
  gr.Markdown("## Full-body")
195
  with gr.Row():
@@ -273,7 +284,7 @@ with block:
273
  n_steps_dc = gr.Slider(label="Steps", minimum=20, maximum=40, value=20, step=1)
274
  image_scale_dc = gr.Slider(label="Guidance scale", minimum=1.0, maximum=5.0, value=2.0, step=0.1)
275
  seed_dc = gr.Slider(label="Seed", minimum=-1, maximum=2147483647, step=1, value=-1)
276
-
277
  ips_dc = [vton_img_dc, garm_img_dc, category_dc, n_samples_dc, n_steps_dc, image_scale_dc, seed_dc]
278
  run_button_dc.click(fn=process_dc, inputs=ips_dc, outputs=[result_gallery_dc])
279
 
 
5
  _ft_mod.rgb_to_grayscale = _tvf.rgb_to_grayscale
6
  sys.modules["torchvision.transforms.functional_tensor"] = _ft_mod
7
 
8
+ # Patch gradio_client bug: additionalProperties puede ser bool en JSON Schema
9
+ from gradio_client import utils as _gc_utils
10
+
11
+ _orig_get_type = _gc_utils.get_type
12
+
13
+ def _patched_get_type(schema):
14
+ if not isinstance(schema, dict):
15
+ return "Any"
16
+ return _orig_get_type(schema)
17
+
18
+ _gc_utils.get_type = _patched_get_type
19
+
20
  import spaces
21
 
22
  import gradio as gr
 
60
  @spaces.GPU
61
  def process_hd(vton_img, garm_img, n_samples, n_steps, image_scale, seed):
62
  model_type = 'hd'
63
+ category = 0
64
 
65
  with torch.no_grad():
66
  openpose_model_hd.preprocessor.body_estimation.model.to('cuda')
67
  ootd_model_hd.pipe.to('cuda')
68
  ootd_model_hd.image_encoder.to('cuda')
69
  ootd_model_hd.text_encoder.to('cuda')
70
+
71
  garm_img = Image.open(garm_img).resize((768, 1024))
72
  vton_img = Image.open(vton_img).resize((768, 1024))
73
  keypoints = openpose_model_hd(vton_img.resize((384, 512)))
 
76
  mask, mask_gray = get_mask_location(model_type, category_dict_utils[category], model_parse, keypoints)
77
  mask = mask.resize((768, 1024), Image.NEAREST)
78
  mask_gray = mask_gray.resize((768, 1024), Image.NEAREST)
79
+
80
  masked_vton_img = Image.composite(mask_gray, vton_img, mask)
81
 
82
  images = ootd_model_hd(
 
110
  ootd_model_dc.pipe.to('cuda')
111
  ootd_model_dc.image_encoder.to('cuda')
112
  ootd_model_dc.text_encoder.to('cuda')
113
+
114
  garm_img = Image.open(garm_img).resize((768, 1024))
115
  vton_img = Image.open(vton_img).resize((768, 1024))
116
  keypoints = openpose_model_dc(vton_img.resize((384, 512)))
 
119
  mask, mask_gray = get_mask_location(model_type, category_dict_utils[category], model_parse, keypoints)
120
  mask = mask.resize((768, 1024), Image.NEAREST)
121
  mask_gray = mask_gray.resize((768, 1024), Image.NEAREST)
122
+
123
  masked_vton_img = Image.composite(mask_gray, vton_img, mask)
124
 
125
  images = ootd_model_dc(
 
197
  n_steps = gr.Slider(label="Steps", minimum=20, maximum=40, value=20, step=1)
198
  image_scale = gr.Slider(label="Guidance scale", minimum=1.0, maximum=5.0, value=2.0, step=0.1)
199
  seed = gr.Slider(label="Seed", minimum=-1, maximum=2147483647, step=1, value=-1)
200
+
201
  ips = [vton_img, garm_img, n_samples, n_steps, image_scale, seed]
202
  run_button.click(fn=process_hd, inputs=ips, outputs=[result_gallery])
203
 
 
204
  with gr.Row():
205
  gr.Markdown("## Full-body")
206
  with gr.Row():
 
284
  n_steps_dc = gr.Slider(label="Steps", minimum=20, maximum=40, value=20, step=1)
285
  image_scale_dc = gr.Slider(label="Guidance scale", minimum=1.0, maximum=5.0, value=2.0, step=0.1)
286
  seed_dc = gr.Slider(label="Seed", minimum=-1, maximum=2147483647, step=1, value=-1)
287
+
288
  ips_dc = [vton_img_dc, garm_img_dc, category_dc, n_samples_dc, n_steps_dc, image_scale_dc, seed_dc]
289
  run_button_dc.click(fn=process_dc, inputs=ips_dc, outputs=[result_gallery_dc])
290