Skip to content

Commit 02fc51f

Browse files
stduhpfleejet
authored andcommitted
fix: force binary mask for inpaint models (leejet#589)
Co-authored-by: leejet <[email protected]>
1 parent 9fd768a commit 02fc51f

File tree

1 file changed

+3
-1
lines changed

1 file changed

+3
-1
lines changed

ggml_extend.hpp

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -403,8 +403,10 @@ __STATIC_INLINE__ void sd_apply_mask(struct ggml_tensor* image_data,
403403
for (int ix = 0; ix < width; ix++) {
404404
for (int iy = 0; iy < height; iy++) {
405405
float m = ggml_tensor_get_f32(mask, ix, iy);
406+
m = round(m); // inpaint models need binary masks
407+
ggml_tensor_set_f32(mask, m, ix, iy);
406408
for (int k = 0; k < channels; k++) {
407-
float value = ((float)(m < 254.5/255)) * (ggml_tensor_get_f32(image_data, ix, iy, k) - .5) + .5;
409+
float value = (1 - m) * (ggml_tensor_get_f32(image_data, ix, iy, k) - .5) + .5;
408410
ggml_tensor_set_f32(output, value, ix, iy, k);
409411
}
410412
}

0 commit comments

Comments
 (0)