diff --git a/libavfilter/vf_unsharp.c b/libavfilter/vf_unsharp.c
index e7bf95333da31772f5aefa61f0d7d58183199865..5cc5aa19ba584ef0736c50dc70fd265cb4869ec2 100644
--- a/libavfilter/vf_unsharp.c
+++ b/libavfilter/vf_unsharp.c
@@ -133,7 +133,8 @@ static av_cold int init(AVFilterContext *ctx, const char *args, void *opaque)
         sscanf(args, "%d:%d:%lf:%d:%d:%lf", &lmsize_x, &lmsize_y, &lamount,
                                             &cmsize_x, &cmsize_y, &camount);
 
-    if (lmsize_x < 2 || lmsize_y < 2 || cmsize_x < 2 || cmsize_y < 2) {
+    if ((lamount && (lmsize_x < 2 || lmsize_y < 2)) ||
+        (camount && (cmsize_x < 2 || cmsize_y < 2))) {
         av_log(ctx, AV_LOG_ERROR,
                "Invalid value <2 for lmsize_x:%d or lmsize_y:%d or cmsize_x:%d or cmsize_y:%d\n",
                lmsize_x, lmsize_y, cmsize_x, cmsize_y);