diff --git a/modules/impact/core.py b/modules/impact/core.py index 32b350c5..6ff4a184 100644 --- a/modules/impact/core.py +++ b/modules/impact/core.py @@ -420,38 +420,11 @@ def enhance_detail_for_animatediff(image_frames, model, clip, vae, guide_size, g # upscale the mask tensor by a factor of 2 using bilinear interpolation if isinstance(noise_mask, np.ndarray): noise_mask = torch.from_numpy(noise_mask) + noise_mask = noise_mask.unsqueeze(0) if len(noise_mask.shape) == 2 else noise_mask + upscaled_mask = [torch.nn.functional.interpolate(m.unsqueeze(0).unsqueeze(0), size=(new_h, new_w), mode='bilinear', align_corners=False).squeeze(0) for m in noise_mask] + upscaled_mask = torch.stack(upscaled_mask, dim=0) if len(upscaled_mask) > 1 else upscaled_mask[0] - if len(noise_mask.shape) == 2: - noise_mask = noise_mask.unsqueeze(0) - else: # == 3 - noise_mask = noise_mask - - upscaled_mask = None - - for single_mask in noise_mask: - single_mask = single_mask.unsqueeze(0).unsqueeze(0) - upscaled_single_mask = torch.nn.functional.interpolate(single_mask, size=(new_h, new_w), mode='bilinear', align_corners=False) - upscaled_single_mask = upscaled_single_mask.squeeze(0) - - if upscaled_mask is None: - upscaled_mask = upscaled_single_mask - else: - upscaled_mask = torch.cat((upscaled_mask, upscaled_single_mask), dim=0) - - latent_frames = None - for image in image_frames: - image = torch.from_numpy(image).unsqueeze(0) - - # upscale - upscaled_image = tensor_resize(image, new_w, new_h) - - # ksampler - samples = to_latent_image(upscaled_image, vae)['samples'] - - if latent_frames is None: - latent_frames = samples - else: - latent_frames = torch.concat((latent_frames, samples), dim=0) + latent_frames = torch.cat([to_latent_image(tensor_resize(torch.from_numpy(frame).unsqueeze(0), new_w, new_h)['samples']) for frame in image_frames], dim=0) cnet_images = None if control_net_wrapper is not None: