Spaces:
Running
Running
Support raw pose image and depth image
Browse files- app_depth.py +3 -0
- app_pose.py +3 -0
- model.py +26 -15
app_depth.py
CHANGED
|
@@ -13,6 +13,8 @@ def create_demo(process, max_images=12, default_num_images=3):
|
|
| 13 |
prompt = gr.Textbox(label='Prompt')
|
| 14 |
run_button = gr.Button(label='Run')
|
| 15 |
with gr.Accordion('Advanced options', open=False):
|
|
|
|
|
|
|
| 16 |
num_samples = gr.Slider(label='Images',
|
| 17 |
minimum=1,
|
| 18 |
maximum=max_images,
|
|
@@ -67,6 +69,7 @@ def create_demo(process, max_images=12, default_num_images=3):
|
|
| 67 |
num_steps,
|
| 68 |
guidance_scale,
|
| 69 |
seed,
|
|
|
|
| 70 |
]
|
| 71 |
prompt.submit(fn=process, inputs=inputs, outputs=result)
|
| 72 |
run_button.click(fn=process,
|
|
|
|
| 13 |
prompt = gr.Textbox(label='Prompt')
|
| 14 |
run_button = gr.Button(label='Run')
|
| 15 |
with gr.Accordion('Advanced options', open=False):
|
| 16 |
+
is_depth_image = gr.Checkbox(label='Is depth image',
|
| 17 |
+
value=False)
|
| 18 |
num_samples = gr.Slider(label='Images',
|
| 19 |
minimum=1,
|
| 20 |
maximum=max_images,
|
|
|
|
| 69 |
num_steps,
|
| 70 |
guidance_scale,
|
| 71 |
seed,
|
| 72 |
+
is_depth_image,
|
| 73 |
]
|
| 74 |
prompt.submit(fn=process, inputs=inputs, outputs=result)
|
| 75 |
run_button.click(fn=process,
|
app_pose.py
CHANGED
|
@@ -13,6 +13,8 @@ def create_demo(process, max_images=12, default_num_images=3):
|
|
| 13 |
prompt = gr.Textbox(label='Prompt')
|
| 14 |
run_button = gr.Button(label='Run')
|
| 15 |
with gr.Accordion('Advanced options', open=False):
|
|
|
|
|
|
|
| 16 |
num_samples = gr.Slider(label='Images',
|
| 17 |
minimum=1,
|
| 18 |
maximum=max_images,
|
|
@@ -67,6 +69,7 @@ def create_demo(process, max_images=12, default_num_images=3):
|
|
| 67 |
num_steps,
|
| 68 |
guidance_scale,
|
| 69 |
seed,
|
|
|
|
| 70 |
]
|
| 71 |
prompt.submit(fn=process, inputs=inputs, outputs=result)
|
| 72 |
run_button.click(fn=process,
|
|
|
|
| 13 |
prompt = gr.Textbox(label='Prompt')
|
| 14 |
run_button = gr.Button(label='Run')
|
| 15 |
with gr.Accordion('Advanced options', open=False):
|
| 16 |
+
is_pose_image = gr.Checkbox(label='Is pose image',
|
| 17 |
+
value=False)
|
| 18 |
num_samples = gr.Slider(label='Images',
|
| 19 |
minimum=1,
|
| 20 |
maximum=max_images,
|
|
|
|
| 69 |
num_steps,
|
| 70 |
guidance_scale,
|
| 71 |
seed,
|
| 72 |
+
is_pose_image,
|
| 73 |
]
|
| 74 |
prompt.submit(fn=process, inputs=inputs, outputs=result)
|
| 75 |
run_button.click(fn=process,
|
model.py
CHANGED
|
@@ -438,16 +438,19 @@ class Model:
|
|
| 438 |
input_image: np.ndarray,
|
| 439 |
image_resolution: int,
|
| 440 |
detect_resolution: int,
|
|
|
|
| 441 |
) -> tuple[PIL.Image.Image, PIL.Image.Image]:
|
| 442 |
input_image = HWC3(input_image)
|
| 443 |
-
|
| 444 |
-
|
| 445 |
-
|
| 446 |
-
|
| 447 |
-
|
| 448 |
-
|
| 449 |
-
|
| 450 |
-
|
|
|
|
|
|
|
| 451 |
|
| 452 |
return PIL.Image.fromarray(control_image), PIL.Image.fromarray(
|
| 453 |
control_image)
|
|
@@ -465,11 +468,13 @@ class Model:
|
|
| 465 |
num_steps: int,
|
| 466 |
guidance_scale: float,
|
| 467 |
seed: int,
|
|
|
|
| 468 |
) -> list[PIL.Image.Image]:
|
| 469 |
control_image, vis_control_image = self.preprocess_pose(
|
| 470 |
input_image=input_image,
|
| 471 |
image_resolution=image_resolution,
|
| 472 |
detect_resolution=detect_resolution,
|
|
|
|
| 473 |
)
|
| 474 |
return self.process(
|
| 475 |
task_name='pose',
|
|
@@ -537,15 +542,19 @@ class Model:
|
|
| 537 |
input_image: np.ndarray,
|
| 538 |
image_resolution: int,
|
| 539 |
detect_resolution: int,
|
|
|
|
| 540 |
) -> tuple[PIL.Image.Image, PIL.Image.Image]:
|
| 541 |
input_image = HWC3(input_image)
|
| 542 |
-
|
| 543 |
-
|
| 544 |
-
|
| 545 |
-
|
| 546 |
-
|
| 547 |
-
|
| 548 |
-
|
|
|
|
|
|
|
|
|
|
| 549 |
return PIL.Image.fromarray(control_image), PIL.Image.fromarray(
|
| 550 |
control_image)
|
| 551 |
|
|
@@ -562,11 +571,13 @@ class Model:
|
|
| 562 |
num_steps: int,
|
| 563 |
guidance_scale: float,
|
| 564 |
seed: int,
|
|
|
|
| 565 |
) -> list[PIL.Image.Image]:
|
| 566 |
control_image, vis_control_image = self.preprocess_depth(
|
| 567 |
input_image=input_image,
|
| 568 |
image_resolution=image_resolution,
|
| 569 |
detect_resolution=detect_resolution,
|
|
|
|
| 570 |
)
|
| 571 |
return self.process(
|
| 572 |
task_name='depth',
|
|
|
|
| 438 |
input_image: np.ndarray,
|
| 439 |
image_resolution: int,
|
| 440 |
detect_resolution: int,
|
| 441 |
+
is_pose_image: bool,
|
| 442 |
) -> tuple[PIL.Image.Image, PIL.Image.Image]:
|
| 443 |
input_image = HWC3(input_image)
|
| 444 |
+
if not is_pose_image:
|
| 445 |
+
control_image, _ = apply_openpose(
|
| 446 |
+
resize_image(input_image, detect_resolution))
|
| 447 |
+
control_image = HWC3(control_image)
|
| 448 |
+
image = resize_image(input_image, image_resolution)
|
| 449 |
+
H, W = image.shape[:2]
|
| 450 |
+
control_image = cv2.resize(control_image, (W, H),
|
| 451 |
+
interpolation=cv2.INTER_NEAREST)
|
| 452 |
+
else:
|
| 453 |
+
control_image = input_image
|
| 454 |
|
| 455 |
return PIL.Image.fromarray(control_image), PIL.Image.fromarray(
|
| 456 |
control_image)
|
|
|
|
| 468 |
num_steps: int,
|
| 469 |
guidance_scale: float,
|
| 470 |
seed: int,
|
| 471 |
+
is_pose_image: bool,
|
| 472 |
) -> list[PIL.Image.Image]:
|
| 473 |
control_image, vis_control_image = self.preprocess_pose(
|
| 474 |
input_image=input_image,
|
| 475 |
image_resolution=image_resolution,
|
| 476 |
detect_resolution=detect_resolution,
|
| 477 |
+
is_pose_image=is_pose_image,
|
| 478 |
)
|
| 479 |
return self.process(
|
| 480 |
task_name='pose',
|
|
|
|
| 542 |
input_image: np.ndarray,
|
| 543 |
image_resolution: int,
|
| 544 |
detect_resolution: int,
|
| 545 |
+
is_depth_image: bool,
|
| 546 |
) -> tuple[PIL.Image.Image, PIL.Image.Image]:
|
| 547 |
input_image = HWC3(input_image)
|
| 548 |
+
if not is_depth_image:
|
| 549 |
+
control_image, _ = apply_midas(
|
| 550 |
+
resize_image(input_image, detect_resolution))
|
| 551 |
+
control_image = HWC3(control_image)
|
| 552 |
+
image = resize_image(input_image, image_resolution)
|
| 553 |
+
H, W = image.shape[:2]
|
| 554 |
+
control_image = cv2.resize(control_image, (W, H),
|
| 555 |
+
interpolation=cv2.INTER_LINEAR)
|
| 556 |
+
else:
|
| 557 |
+
control_image = input_image
|
| 558 |
return PIL.Image.fromarray(control_image), PIL.Image.fromarray(
|
| 559 |
control_image)
|
| 560 |
|
|
|
|
| 571 |
num_steps: int,
|
| 572 |
guidance_scale: float,
|
| 573 |
seed: int,
|
| 574 |
+
is_depth_image: bool,
|
| 575 |
) -> list[PIL.Image.Image]:
|
| 576 |
control_image, vis_control_image = self.preprocess_depth(
|
| 577 |
input_image=input_image,
|
| 578 |
image_resolution=image_resolution,
|
| 579 |
detect_resolution=detect_resolution,
|
| 580 |
+
is_depth_image=is_depth_image,
|
| 581 |
)
|
| 582 |
return self.process(
|
| 583 |
task_name='depth',
|