When calling a StableDiffusionInpaintPipeline
pipeline, the documentation (Stable diffusion pipelines) states that tensors can be used as input for parameters image
and mask_image
. The docs indicate that mask_image
needs to have shape (B, H, W, 1), but what is the expected shape for image
?
I used (B, H, W, 1) for both image
and mask_image
parameters, and got this error:
----> Preformatted text4 image = pipe(prompt=inpaint_prompts[0], image=inpaint_input, mask_image=inpaint_mask).images[0]
5
6 image2 frames
/usr/local/lib/python3.7/dist-packages/torch/autograd/grad_mode.py in decorate_context(*args, **kwargs)
25 def decorate_context(*args, **kwargs):
26 with self.clone():
—> 27 return func(*args, **kwargs)
28 return cast(F, decorate_context)
29/usr/local/lib/python3.7/dist-packages/diffusers/pipelines/stable_diffusion/pipeline_stable_diffusion_inpaint.py in call(self, prompt, image, mask_image, height, width, num_inference_steps, guidance_scale, negative_prompt, num_images_per_prompt, eta, generator, latents, output_type, return_dict, callback, callback_steps, **kwargs)
361
362 # prepare mask and masked_image
→ 363 mask, masked_image = prepare_mask_and_masked_image(image, mask_image)
364 mask = mask.to(device=self.device, dtype=text_embeddings.dtype)
365 masked_image = masked_image.to(device=self.device, dtype=text_embeddings.dtype)/usr/local/lib/python3.7/dist-packages/diffusers/pipelines/stable_diffusion/pipeline_stable_diffusion_inpaint.py in prepare_mask_and_masked_image(image, mask)
21
22 def prepare_mask_and_masked_image(image, mask):
—> 23 image = np.array(image.convert(“RGB”))
24 image = image[None].transpose(0, 3, 1, 2)
25 image = torch.from_numpy(image).to(dtype=torch.float32) / 127.5 - 1.0AttributeError: ‘Tensor’ object has no attribute ‘convert’
Are tensors not actually supported as inputs?