From 13dd2f5293c44fc276c657c8fe0a4742e6638865 Mon Sep 17 00:00:00 2001 From: Abhishek Gola Date: Wed, 27 May 2026 18:02:18 +0530 Subject: [PATCH] lama inpainting issue fixed --- modules/dnn/src/layers/conv2_layer.cpp | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/modules/dnn/src/layers/conv2_layer.cpp b/modules/dnn/src/layers/conv2_layer.cpp index 1cc436d32a..f8366c87ae 100644 --- a/modules/dnn/src/layers/conv2_layer.cpp +++ b/modules/dnn/src/layers/conv2_layer.cpp @@ -195,8 +195,11 @@ public: virtual bool fuseBatchNorm(const Ptr& bnlayer) override { BatchNorm2Layer* bn = dynamic_cast(bnlayer.get()); + // addResidual means the graph order is conv->add->bn: the residual is added + // before BN, but the conv applies the fused BN scale only to conv(x), not to + // the residual. Refuse so BN stays separate and runs on (conv + residual). if (fusedBatchNorm || !bn || bn->inputs.size() > 1 || - fastActivation != FAST_ACTIV_NONE || !activ.empty()) + fastActivation != FAST_ACTIV_NONE || !activ.empty() || addResidual) return false; fuseBatchNormWeights(bn); fusedBatchNorm = true;