From 30fb9ff39bacc86a3c43b8ca9f0f1281fc9be303 Mon Sep 17 00:00:00 2001 From: Hacker 17082006 Date: Wed, 3 Apr 2024 20:38:05 +0700 Subject: [PATCH] 'i' --- motiondiff_modules/mogen/smpl/render_mesh.py | 4 ++-- nodes/smpl_nodes.py | 6 ++++-- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/motiondiff_modules/mogen/smpl/render_mesh.py b/motiondiff_modules/mogen/smpl/render_mesh.py index 734260b..7d566b0 100644 --- a/motiondiff_modules/mogen/smpl/render_mesh.py +++ b/motiondiff_modules/mogen/smpl/render_mesh.py @@ -314,8 +314,8 @@ def render_from_smpl_multiple_subjects(verts_frames, cam_t_frames, focal_length, rot2xyz = Rotation2xyz(device="cpu", smpl_model_path=smpl_model_path) faces = rot2xyz.smpl_model.faces - MINS = torch.stack([verts_frame.min(0).values.min(0).values for verts_frame in verts_frames]).min(0).values - MAXS = torch.stack([verts_frame.max(0).values.max(0).values for verts_frame in verts_frames]).max(0).values + MINS = torch.stack([verts_frame.min(0).values.min(0).values for verts_frame in verts_frames if verts_frame is not None]).min(0).values + MAXS = torch.stack([verts_frame.max(0).values.max(0).values for verts_frame in verts_frames if verts_frame is not None]).max(0).values minx = MINS[0] - 0.5 maxx = MAXS[0] + 0.5 minz = MINS[2] - 0.5 diff --git a/nodes/smpl_nodes.py b/nodes/smpl_nodes.py index 9341573..75c640e 100644 --- a/nodes/smpl_nodes.py +++ b/nodes/smpl_nodes.py @@ -159,6 +159,7 @@ class RenderMultipleSubjectsSMPLMesh: }, "optional": { "normals": ("BOOLEAN", {"default": False}), + "remove_background": ("BOOLEAN", {"default": True}) } } @@ -166,7 +167,7 @@ class RenderMultipleSubjectsSMPLMesh: RETURN_NAMES = ("IMAGE", "DEPTH_MAP") CATEGORY = "MotionDiff/smpl" FUNCTION = "render" - def render(self, smpl_multi_subjects, fx_offset, fy_offset, move_x, move_y, move_z, rotate_x, rotate_y, rotate_z, draw_platform, depth_only, background_hex_color, normals=False): + def render(self, smpl_multi_subjects, fx_offset, fy_offset, move_x, move_y, move_z, rotate_x, rotate_y, rotate_z, draw_platform, depth_only, background_hex_color, normals=False, remove_background=True): smpl_model_path, verts_frames, meta = smpl_multi_subjects color_frames, depth_frames = render_from_smpl_multiple_subjects( verts_frames, meta["cam"], meta["focal_length"], @@ -180,7 +181,8 @@ class RenderMultipleSubjectsSMPLMesh: (color_frames[..., 1] == 1.) & (color_frames[..., 2] == 1.) ] - color_frames[..., :3][white_mask] = torch.Tensor(bg_color) + if remove_background: + color_frames[..., :3][white_mask] = torch.Tensor(bg_color) white_mask_tensor = torch.stack(white_mask, dim=0) white_mask_tensor = white_mask_tensor.float() / white_mask_tensor.max() white_mask_tensor = 1.0 - white_mask_tensor.permute(1, 2, 3, 0).squeeze(dim=-1)