Skip to content

Commit 52b51a6

Browse files
psychedelicioushipsterusername
authored andcommitted
fix(ui): recall/use size sets aspect ratio correctly
Added a new action that resets the aspect ratio when dispatched. Closes #5456
1 parent 52b24e0 commit 52b51a6

File tree

2 files changed

+22
-8
lines changed

2 files changed

+22
-8
lines changed

invokeai/frontend/web/src/features/parameters/hooks/useRecallParameters.ts

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ import {
3434
modelSelected,
3535
} from 'features/parameters/store/actions';
3636
import {
37-
heightChanged,
37+
heightRecalled,
3838
selectGenerationSlice,
3939
setCfgRescaleMultiplier,
4040
setCfgScale,
@@ -45,7 +45,7 @@ import {
4545
setSeed,
4646
setSteps,
4747
vaeSelected,
48-
widthChanged,
48+
widthRecalled,
4949
} from 'features/parameters/store/generationSlice';
5050
import type { ParameterModel } from 'features/parameters/types/parameterSchemas';
5151
import {
@@ -373,7 +373,7 @@ export const useRecallParameters = () => {
373373
parameterNotSetToast();
374374
return;
375375
}
376-
dispatch(widthChanged(width));
376+
dispatch(widthRecalled(width));
377377
parameterSetToast();
378378
},
379379
[dispatch, parameterSetToast, parameterNotSetToast]
@@ -388,7 +388,7 @@ export const useRecallParameters = () => {
388388
parameterNotSetToast();
389389
return;
390390
}
391-
dispatch(heightChanged(height));
391+
dispatch(heightRecalled(height));
392392
parameterSetToast();
393393
},
394394
[dispatch, parameterSetToast, parameterNotSetToast]
@@ -407,8 +407,8 @@ export const useRecallParameters = () => {
407407
allParameterNotSetToast();
408408
return;
409409
}
410-
dispatch(heightChanged(height));
411-
dispatch(widthChanged(width));
410+
dispatch(heightRecalled(height));
411+
dispatch(widthRecalled(width));
412412
allParameterSetToast();
413413
},
414414
[dispatch, allParameterSetToast, allParameterNotSetToast]
@@ -893,11 +893,11 @@ export const useRecallParameters = () => {
893893
}
894894

895895
if (isParameterWidth(width)) {
896-
dispatch(widthChanged(width));
896+
dispatch(widthRecalled(width));
897897
}
898898

899899
if (isParameterHeight(height)) {
900-
dispatch(heightChanged(height));
900+
dispatch(heightRecalled(height));
901901
}
902902

903903
if (isParameterStrength(strength)) {

invokeai/frontend/web/src/features/parameters/store/generationSlice.ts

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -230,6 +230,18 @@ export const generationSlice = createSlice({
230230
heightChanged: (state, action: PayloadAction<number>) => {
231231
state.height = action.payload;
232232
},
233+
widthRecalled: (state, action: PayloadAction<number>) => {
234+
state.width = action.payload;
235+
state.aspectRatio.value = action.payload / state.height;
236+
state.aspectRatio.id = 'Free';
237+
state.aspectRatio.isLocked = false;
238+
},
239+
heightRecalled: (state, action: PayloadAction<number>) => {
240+
state.height = action.payload;
241+
state.aspectRatio.value = state.width / action.payload;
242+
state.aspectRatio.id = 'Free';
243+
state.aspectRatio.isLocked = false;
244+
},
233245
aspectRatioChanged: (state, action: PayloadAction<AspectRatioState>) => {
234246
state.aspectRatio = action.payload;
235247
},
@@ -306,6 +318,8 @@ export const {
306318
aspectRatioChanged,
307319
widthChanged,
308320
heightChanged,
321+
widthRecalled,
322+
heightRecalled,
309323
} = generationSlice.actions;
310324

311325
export const { selectOptimalDimension } = generationSlice.selectors;

0 commit comments

Comments
 (0)