From e17dfae72e352e244edad5c8885ee5ae7db219f1 Mon Sep 17 00:00:00 2001
From: G30 <50341825+silentoplayz@users.noreply.github.com>
Date: Tue, 11 Aug 2026 19:38:10 -0400
Subject: [PATCH] fix: enforce the image generation flag on the legacy chat
feature path (#27759)
* fix: enforce the image generation flag on the legacy chat feature path
* fix: refresh the config store when image generation is disabled in admin settings
* fix: hide active feature pills when the feature is no longer available
---
backend/open_webui/utils/middleware.py | 13 +++++++++++++
src/lib/components/admin/Settings/Images.svelte | 3 ++-
src/lib/components/chat/MessageInput.svelte | 6 +++---
3 files changed, 18 insertions(+), 4 deletions(-)
diff --git a/backend/open_webui/utils/middleware.py b/backend/open_webui/utils/middleware.py
index 338b652d45..a269843b73 100644
--- a/backend/open_webui/utils/middleware.py
+++ b/backend/open_webui/utils/middleware.py
@@ -1716,6 +1716,19 @@ async def chat_image_generation_handler(request: Request, form_data: dict, extra
system_message_content = f'Image generation was attempted but failed. The system is currently unable to generate the image. Tell the user that the following error occurred: {error_message}'
+ elif not await Config.get('image_generation.enable'):
+ await __event_emitter__(
+ {
+ 'type': 'status',
+ 'data': {
+ 'description': 'Image generation is disabled',
+ 'done': True,
+ },
+ }
+ )
+
+ system_message_content = 'Image generation was requested but the feature is currently disabled by the administrator, so no image was created. Let the user know that image generation is currently unavailable.'
+
else:
# Create image(s)
if await Config.get('image_generation.prompt.enable'):
diff --git a/src/lib/components/admin/Settings/Images.svelte b/src/lib/components/admin/Settings/Images.svelte
index 1eb8421409..88e595571b 100644
--- a/src/lib/components/admin/Settings/Images.svelte
+++ b/src/lib/components/admin/Settings/Images.svelte
@@ -150,8 +150,9 @@
});
if (res) {
+ backendConfig.set(await getBackendConfig());
+
if (res.ENABLE_IMAGE_GENERATION) {
- backendConfig.set(await getBackendConfig());
getModels();
}
diff --git a/src/lib/components/chat/MessageInput.svelte b/src/lib/components/chat/MessageInput.svelte
index f276db9de7..f7abcdc701 100644
--- a/src/lib/components/chat/MessageInput.svelte
+++ b/src/lib/components/chat/MessageInput.svelte
@@ -2241,7 +2241,7 @@
{/if}
{/each}
- {#if webSearchEnabled}
+ {#if webSearchEnabled && showWebSearchButton}
{/if}
- {#if imageGenerationEnabled}
+ {#if imageGenerationEnabled && showImageGenerationButton}
{/if}
- {#if codeInterpreterEnabled}
+ {#if codeInterpreterEnabled && showCodeInterpreterButton}