huggingface / huggingface/diffusers

Controlnet inpainting change too much of masking area

Open
#7,796 6 comments 0 reactions 0 assignees View on GitHub
bug stale
Dominant language
Python
Stars
34.5k
Forks
7.3k
Avg merge
3d 3h
Merged PRs (30d)
91

Description

### Describe the bug

mask

![download-30](https://github.com/huggingface/diffusers/assets/1147704/96ef8de3-88f8-47a7-8c48-a83c567d09fc)

![download-29](https://github.com/huggingface/diffusers/assets/1147704/0286b4b3-0fe6-439c-b4b7-95dec25ee077)

i got mask with this

```
def make_inpaint_condition (image, image_mask):
image = np.array(image.convert("RGB")).astype(np.float32) / 255.0
image_mask = np.array(image_mask.convert("L")).astype(np.float32) / 255.0

assert image.shape[0:1] == image_mask.shape[0:1], "image and image_mask must have the same image size"
image[image_mask > 0.5] = -1.0 # set as masked pixel
image = np.expand_dims(image, 0).transpose(0, 3, 1, 2)
image = torch.from_numpy(image)
return image
```

if use apply mask still bad around edge

```python
output_image = pipe.image_processor.apply_overlay(mask_image1, input_image, output_image)
```

![download-31](https://github.com/huggingface/diffusers/assets/1147704/877bf347-57a9-44a6-b9aa-a5e26ed40d0c)

image

Because there are too many noise below, the one above cannot cover them.

is it possible to preserve mask area?

---

and below is when i use compel without DiffusersTextualInversionManager

the color changed, but it looks cloth is original

https://github.com/damian0815/compel/issues/86

![image](https://github.com/huggingface/diffusers/assets/1147704/0ef91cb6-5ca3-4834-bac1-edecf9646b69)

### Reproduction

code from here

https://huggingface.co/docs/diffusers/en/using-diffusers/controlnet

### Logs

```shell
no log
```

### System Info

0.27.2

### Who can help?

_No response_

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.