Skip to content

Commit 3227719

Browse files
steffy-lopsychedelicious
authored andcommitted
fix(ui): retain denoise strength and opacity when changing image
1 parent 620ee28 commit 3227719

File tree

1 file changed

+14
-2
lines changed

1 file changed

+14
-2
lines changed

invokeai/frontend/web/src/features/controlLayers/store/controlLayersSlice.ts

Lines changed: 14 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -616,20 +616,32 @@ export const controlLayersSlice = createSlice({
616616
iiLayerAdded: {
617617
reducer: (state, action: PayloadAction<{ layerId: string; imageDTO: ImageDTO | null }>) => {
618618
const { layerId, imageDTO } = action.payload;
619+
620+
// Retain opacity and denoising strength of existing initial image layer if exists
621+
let opacity = 1;
622+
let denoisingStrength = 0.75;
623+
const iiLayer = state.layers.find((l) => l.id === layerId);
624+
if (iiLayer) {
625+
assert(isInitialImageLayer(iiLayer));
626+
opacity = iiLayer.opacity;
627+
denoisingStrength = iiLayer.denoisingStrength;
628+
}
629+
619630
// Highlander! There can be only one!
620631
state.layers = state.layers.filter((l) => (isInitialImageLayer(l) ? false : true));
632+
621633
const layer: InitialImageLayer = {
622634
id: layerId,
623635
type: 'initial_image_layer',
624-
opacity: 1,
636+
opacity,
625637
x: 0,
626638
y: 0,
627639
bbox: null,
628640
bboxNeedsUpdate: false,
629641
isEnabled: true,
630642
image: imageDTO ? imageDTOToImageWithDims(imageDTO) : null,
631643
isSelected: true,
632-
denoisingStrength: 0.75,
644+
denoisingStrength,
633645
};
634646
state.layers.push(layer);
635647
exclusivelySelectLayer(state, layer.id);

0 commit comments

Comments
 (0)