From 8f67f29317d986aa469c6d696394080a9c35e5fb Mon Sep 17 00:00:00 2001 From: Akarshan Date: Thu, 11 Sep 2025 13:08:01 +0530 Subject: [PATCH] feat: add support for mmproj offload setting Expose the new `mmproj_offload` option in the model settings UI and include it in the `ModelPlan` type. The component now collects the offload flag (`result.offloadMmproj`) and queues it with other setting updates to ensure a single atomic change, preventing race conditions when toggling this feature. This enables users to control MMProj offloading directly from the app. --- web-app/src/containers/ModelSetting.tsx | 10 ++++++++++ web-app/src/services/models/types.ts | 1 + 2 files changed, 11 insertions(+) diff --git a/web-app/src/containers/ModelSetting.tsx b/web-app/src/containers/ModelSetting.tsx index a02b9df80..39a587cbc 100644 --- a/web-app/src/containers/ModelSetting.tsx +++ b/web-app/src/containers/ModelSetting.tsx @@ -93,6 +93,16 @@ export function ModelSetting({ }) } + if ( + model.settings?.mmproj_offload && + result.offloadMmproj !== undefined + ) { + settingsToUpdate.push({ + key: 'mmproj_offload', + value: result.offloadMmproj, + }) + } + // Apply all settings in a single update to avoid race conditions if (settingsToUpdate.length > 0) { handleMultipleSettingsChange(settingsToUpdate) diff --git a/web-app/src/services/models/types.ts b/web-app/src/services/models/types.ts index b7959227a..b7724fef2 100644 --- a/web-app/src/services/models/types.ts +++ b/web-app/src/services/models/types.ts @@ -85,6 +85,7 @@ export interface ModelPlan { gpuLayers: number maxContextLength: number noOffloadKVCache: boolean + offloadMmproj: boolean mode: 'GPU' | 'Hybrid' | 'CPU' | 'Unsupported' }