From af5a2c03a91166e45d6167f1224e56219603303c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?St=C3=A9phane=20du=20Hamel?= Date: Fri, 7 Feb 2025 02:48:42 +0100 Subject: [PATCH] inpaint: force binary mask for inpaint models --- ggml_extend.hpp | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/ggml_extend.hpp b/ggml_extend.hpp index 035f088f4..618be16a8 100644 --- a/ggml_extend.hpp +++ b/ggml_extend.hpp @@ -318,8 +318,10 @@ __STATIC_INLINE__ void sd_apply_mask(struct ggml_tensor* image_data, for (int ix = 0; ix < width; ix++) { for (int iy = 0; iy < height; iy++) { float m = ggml_tensor_get_f32(mask, ix, iy); + m = round(m); // inpaint models need binary masks + ggml_tensor_set_f32(mask, m, ix, iy); for (int k = 0; k < channels; k++) { - float value = ((float)(m < 254.5/255)) * (ggml_tensor_get_f32(image_data, ix, iy, k) - .5) + .5; + float value = (1 - m) * (ggml_tensor_get_f32(image_data, ix, iy, k) - .5) + .5; ggml_tensor_set_f32(output, value, ix, iy, k); } }