From ec90b2fbe9c7bc8be54b1e99eda9659617eb5d20 Mon Sep 17 00:00:00 2001 From: Alexander Eichhorn Date: Sun, 12 Apr 2026 04:29:17 +0200 Subject: [PATCH] Merge remote-tracking branch 'upstream/main' into external-models --- invokeai/backend/model_manager/starter_models.py | 1 + .../listenerMiddleware/listeners/modelSelected.ts | 2 +- .../controlLayers/components/StagingArea/shared.test.ts | 2 +- .../controlLayers/components/StagingArea/shared.ts | 8 +++++--- .../web/src/features/parameters/types/parameterSchemas.ts | 2 +- .../AdvancedSettingsAccordion.tsx | 2 +- .../GenerationSettingsAccordion.tsx | 4 +++- 7 files changed, 13 insertions(+), 8 deletions(-) diff --git a/invokeai/backend/model_manager/starter_models.py b/invokeai/backend/model_manager/starter_models.py index 8536319cf2..edcac321f1 100644 --- a/invokeai/backend/model_manager/starter_models.py +++ b/invokeai/backend/model_manager/starter_models.py @@ -1108,6 +1108,7 @@ openai_dall_e_2 = StarterModel( ), default_settings=ExternalApiModelDefaultSettings(width=1024, height=1024, num_images=1), panel_schema=ExternalModelPanelSchema(image=[{"name": "dimensions"}]), +) # region Anima anima_qwen3_encoder = StarterModel( name="Anima Qwen3 0.6B Text Encoder", diff --git a/invokeai/frontend/web/src/app/store/middleware/listenerMiddleware/listeners/modelSelected.ts b/invokeai/frontend/web/src/app/store/middleware/listenerMiddleware/listeners/modelSelected.ts index da8a2d28ce..251403ed04 100644 --- a/invokeai/frontend/web/src/app/store/middleware/listenerMiddleware/listeners/modelSelected.ts +++ b/invokeai/frontend/web/src/app/store/middleware/listenerMiddleware/listeners/modelSelected.ts @@ -4,10 +4,10 @@ import { bboxSyncedToOptimalDimension, rgRefImageModelChanged } from 'features/c import { buildSelectIsStaging, selectCanvasSessionId } from 'features/controlLayers/store/canvasStagingAreaSlice'; import { loraIsEnabledChanged } from 'features/controlLayers/store/lorasSlice'; import { - aspectRatioIdChanged, animaQwen3EncoderModelSelected, animaT5EncoderModelSelected, animaVaeModelSelected, + aspectRatioIdChanged, kleinQwen3EncoderModelSelected, kleinVaeModelSelected, modelChanged, diff --git a/invokeai/frontend/web/src/features/controlLayers/components/StagingArea/shared.test.ts b/invokeai/frontend/web/src/features/controlLayers/components/StagingArea/shared.test.ts index 8b3f47ffcb..d0ce87edfc 100644 --- a/invokeai/frontend/web/src/features/controlLayers/components/StagingArea/shared.test.ts +++ b/invokeai/frontend/web/src/features/controlLayers/components/StagingArea/shared.test.ts @@ -207,7 +207,7 @@ describe('StagingAreaApi Utility Functions', () => { }, } as unknown as S['SessionQueueItem']; - expect(getOutputImageName(queueItem)).toBe('first.png'); + expect(getOutputImageNames(queueItem)).toEqual(['first.png', 'second.png']); }); it('should handle empty session mapping', () => { diff --git a/invokeai/frontend/web/src/features/controlLayers/components/StagingArea/shared.ts b/invokeai/frontend/web/src/features/controlLayers/components/StagingArea/shared.ts index b8e0d96f2b..bc13ee16f8 100644 --- a/invokeai/frontend/web/src/features/controlLayers/components/StagingArea/shared.ts +++ b/invokeai/frontend/web/src/features/controlLayers/components/StagingArea/shared.ts @@ -32,9 +32,11 @@ export const getOutputImageNames = (item: S['SessionQueueItem']): string[] => { if (isImageField(value)) { imageNames.push(value.image_name); } - } - if (isImageFieldCollection(value)) { - return value[0]?.image_name ?? null; + if (isImageFieldCollection(value)) { + for (const img of value) { + imageNames.push(img.image_name); + } + } } } diff --git a/invokeai/frontend/web/src/features/parameters/types/parameterSchemas.ts b/invokeai/frontend/web/src/features/parameters/types/parameterSchemas.ts index 7f5ae3b089..eb2f1e6c15 100644 --- a/invokeai/frontend/web/src/features/parameters/types/parameterSchemas.ts +++ b/invokeai/frontend/web/src/features/parameters/types/parameterSchemas.ts @@ -2,8 +2,8 @@ import { NUMPY_RAND_MAX } from 'app/constants'; import { roundToMultiple } from 'common/util/roundDownToMultiple'; import { buildZodTypeGuard } from 'common/util/zodUtils'; import { - zExternalModelIdentifierField, zAnimaSchedulerField, + zExternalModelIdentifierField, zFluxDypeExponentField, zFluxDypePresetField, zFluxDypeScaleField, diff --git a/invokeai/frontend/web/src/features/settingsAccordions/components/AdvancedSettingsAccordion/AdvancedSettingsAccordion.tsx b/invokeai/frontend/web/src/features/settingsAccordions/components/AdvancedSettingsAccordion/AdvancedSettingsAccordion.tsx index d0e9d73499..b96b4c5e61 100644 --- a/invokeai/frontend/web/src/features/settingsAccordions/components/AdvancedSettingsAccordion/AdvancedSettingsAccordion.tsx +++ b/invokeai/frontend/web/src/features/settingsAccordions/components/AdvancedSettingsAccordion/AdvancedSettingsAccordion.tsx @@ -4,8 +4,8 @@ import { skipToken } from '@reduxjs/toolkit/query'; import { createMemoizedSelector } from 'app/store/createMemoizedSelector'; import { useAppSelector } from 'app/store/storeHooks'; import { - selectIsExternal, selectIsAnima, + selectIsExternal, selectIsFLUX, selectIsFlux2, selectIsSD3, diff --git a/invokeai/frontend/web/src/features/settingsAccordions/components/GenerationSettingsAccordion/GenerationSettingsAccordion.tsx b/invokeai/frontend/web/src/features/settingsAccordions/components/GenerationSettingsAccordion/GenerationSettingsAccordion.tsx index ef9560df74..9d53331a2d 100644 --- a/invokeai/frontend/web/src/features/settingsAccordions/components/GenerationSettingsAccordion/GenerationSettingsAccordion.tsx +++ b/invokeai/frontend/web/src/features/settingsAccordions/components/GenerationSettingsAccordion/GenerationSettingsAccordion.tsx @@ -94,7 +94,9 @@ export const GenerationSettingsAccordion = memo(() => { - {!isExternal && !isFLUX && !isFlux2 && !isSD3 && !isCogView4 && !isZImage && !isAnima && } + {!isExternal && !isFLUX && !isFlux2 && !isSD3 && !isCogView4 && !isZImage && !isAnima && ( + + )} {!isExternal && isFLUX && } {!isExternal && isZImage && } {!isExternal && isAnima && }