diff --git a/invokeai/frontend/web/src/features/controlAdapters/store/controlAdaptersSlice.ts b/invokeai/frontend/web/src/features/controlAdapters/store/controlAdaptersSlice.ts index 054f88e26b..39dc0dce3d 100644 --- a/invokeai/frontend/web/src/features/controlAdapters/store/controlAdaptersSlice.ts +++ b/invokeai/frontend/web/src/features/controlAdapters/store/controlAdaptersSlice.ts @@ -37,10 +37,10 @@ export const { } = caAdapterSelectors; const initialControlAdaptersState: ControlAdaptersState = caAdapter.getInitialState<{ - _version: 1; + _version: 2; pendingControlImages: string[]; }>({ - _version: 1, + _version: 2, pendingControlImages: [], }); @@ -405,6 +405,9 @@ const migrateControlAdaptersState = (state: any): any => { if (!('_version' in state)) { state._version = 1; } + if (state._version === 1) { + state = cloneDeep(initialControlAdaptersState); + } return state; }; diff --git a/invokeai/frontend/web/src/features/lora/store/loraSlice.ts b/invokeai/frontend/web/src/features/lora/store/loraSlice.ts index 21be0dbeff..250142ec4a 100644 --- a/invokeai/frontend/web/src/features/lora/store/loraSlice.ts +++ b/invokeai/frontend/web/src/features/lora/store/loraSlice.ts @@ -18,12 +18,12 @@ export const defaultLoRAConfig: Pick = { }; type LoraState = { - _version: 1; + _version: 2; loras: Record; }; const initialLoraState: LoraState = { - _version: 1, + _version: 2, loras: {}, }; @@ -72,6 +72,10 @@ const migrateLoRAState = (state: any): any => { if (!('_version' in state)) { state._version = 1; } + if (state._version === 1) { + // Model type has changed, so we need to reset the state - too risky to migrate + state = cloneDeep(initialLoraState); + } return state; }; diff --git a/invokeai/frontend/web/src/features/parameters/store/generationSlice.ts b/invokeai/frontend/web/src/features/parameters/store/generationSlice.ts index 2122e23a08..f705ac8478 100644 --- a/invokeai/frontend/web/src/features/parameters/store/generationSlice.ts +++ b/invokeai/frontend/web/src/features/parameters/store/generationSlice.ts @@ -24,7 +24,7 @@ import type { ImageDTO } from 'services/api/types'; import type { GenerationState } from './types'; const initialGenerationState: GenerationState = { - _version: 1, + _version: 2, cfgScale: 7.5, cfgRescaleMultiplier: 0, height: 512, @@ -276,6 +276,11 @@ const migrateGenerationState = (state: any): GenerationState => { state._version = 1; state.aspectRatio = initialAspectRatioState; } + if (state._version === 1) { + // The signature of the model has changed, so we need to reset it + state._version = 2; + state.model = null; + } return state; }; diff --git a/invokeai/frontend/web/src/features/parameters/store/types.ts b/invokeai/frontend/web/src/features/parameters/store/types.ts index 884db3e911..73185754ee 100644 --- a/invokeai/frontend/web/src/features/parameters/store/types.ts +++ b/invokeai/frontend/web/src/features/parameters/store/types.ts @@ -19,7 +19,7 @@ import type { } from 'features/parameters/types/parameterSchemas'; export interface GenerationState { - _version: 1; + _version: 2; cfgScale: ParameterCFGScale; cfgRescaleMultiplier: ParameterCFGRescaleMultiplier; height: ParameterHeight; diff --git a/invokeai/frontend/web/src/features/sdxl/store/sdxlSlice.ts b/invokeai/frontend/web/src/features/sdxl/store/sdxlSlice.ts index 88061a28f6..91e1418e1d 100644 --- a/invokeai/frontend/web/src/features/sdxl/store/sdxlSlice.ts +++ b/invokeai/frontend/web/src/features/sdxl/store/sdxlSlice.ts @@ -9,7 +9,7 @@ import type { } from 'features/parameters/types/parameterSchemas'; type SDXLState = { - _version: 1; + _version: 2; positiveStylePrompt: ParameterPositiveStylePromptSDXL; negativeStylePrompt: ParameterNegativeStylePromptSDXL; shouldConcatSDXLStylePrompt: boolean; @@ -23,7 +23,7 @@ type SDXLState = { }; const initialSDXLState: SDXLState = { - _version: 1, + _version: 2, positiveStylePrompt: '', negativeStylePrompt: '', shouldConcatSDXLStylePrompt: true, @@ -93,6 +93,11 @@ const migrateSDXLState = (state: any): any => { if (!('_version' in state)) { state._version = 1; } + if (state._version === 1) { + // Model type has changed, so we need to reset the state - too risky to migrate + state._version = 2; + state.refinerModel = null; + } return state; };