diff --git a/app/(admin)/settings/_components/local-ai-sections/image-pipeline-sections.tsx b/app/(admin)/settings/_components/local-ai-sections/image-pipeline-sections.tsx index 89de319b2..6de029e4b 100644 --- a/app/(admin)/settings/_components/local-ai-sections/image-pipeline-sections.tsx +++ b/app/(admin)/settings/_components/local-ai-sections/image-pipeline-sections.tsx @@ -55,6 +55,7 @@ import { export function LocalAiImagePipelineSections({ modelsData, + providersData, rmbgConfig, setRmbgConfig, enhanceConfig, @@ -115,22 +116,17 @@ export function LocalAiImagePipelineSections({ const availableImageModels = (modelsData?.models || []).filter( (model) => model.supportsImageGen && model.isEnabled ); - const duplicateRuntimeModelIds = new Set( - availableImageModels - .filter( - (model, index, models) => - models.findIndex((candidate) => candidate.modelId === model.modelId) !== - index - ) - .map((model) => model.modelId) + const providerNamesById = new Map( + (providersData?.providers || []).map((provider) => [ + provider.id, + provider.name, + ]) ); const formatAiWashModelOptionLabel = ( model: (typeof availableImageModels)[number] ) => - `${model.displayName || model.modelId}${ - duplicateRuntimeModelIds.has(model.modelId) - ? ` · 供应商 ${model.providerId.slice(0, 8)}` - : "" + `${model.displayName || model.modelId} · ${ + providerNamesById.get(model.providerId) || model.modelId }${model.isHidden ? " · 前台隐藏" : ""}`; const resolveCanvasLocalEditSelectValue = (modelRef: string) => resolveCanvasLocalEditModelRef(availableImageModels, modelRef)?.id || diff --git a/app/(admin)/settings/_lib/types.ts b/app/(admin)/settings/_lib/types.ts index 2149b972f..f6163e8a7 100644 --- a/app/(admin)/settings/_lib/types.ts +++ b/app/(admin)/settings/_lib/types.ts @@ -307,6 +307,7 @@ export type LayerSplitConfig = { export type LocalAiImagePipelineSectionsProps = LocalAiSectionControlProps & { modelsData?: AdminModelsData; + providersData?: AdminProvidersData; rmbgConfig: RmbgConfig; setRmbgConfig: Dispatch>; enhanceConfig: EnhanceConfig; diff --git a/app/(admin)/settings/admin-settings-client.tsx b/app/(admin)/settings/admin-settings-client.tsx index b4fbbf6d7..b1b326aaf 100644 --- a/app/(admin)/settings/admin-settings-client.tsx +++ b/app/(admin)/settings/admin-settings-client.tsx @@ -18449,6 +18449,7 @@ export function AdminSettingsClient() { layerSplitConfig={layerSplitConfig} modelsData={modelsData} pointsSystemConfig={pointsSystemConfig} + providersData={providersData} renderEnhanceProPresetEditor={renderEnhanceProPresetEditor} rmbgConfig={rmbgConfig} savedEnhanceProKeyRows={savedEnhanceProKeyRows} diff --git a/tests/routes/canvas-scale-adjust-intent.test.ts b/tests/routes/canvas-scale-adjust-intent.test.ts index 20d531b83..190165971 100644 --- a/tests/routes/canvas-scale-adjust-intent.test.ts +++ b/tests/routes/canvas-scale-adjust-intent.test.ts @@ -49,6 +49,7 @@ test.describe("canvas scale adjust product lock", () => { expect(settingsRoute).toContain("modelId: localEditModel?.id || \"\""); expect(settingsPanel).toContain("resolveCanvasLocalEditSelectValue("); expect(settingsPanel).toContain("canvasLocalEditConfig.modelId"); + expect(settingsPanel).toContain("providerNamesById.get(model.providerId)"); expect(settingsPanel).toContain( '' );