mirror of
https://github.com/invoke-ai/InvokeAI
synced 2024-08-30 20:32:17 +00:00
fix(ui): retain denoise strength and opacity when changing image
This commit is contained in:
parent
620ee2875e
commit
32277193b6
@ -616,12 +616,24 @@ export const controlLayersSlice = createSlice({
|
|||||||
iiLayerAdded: {
|
iiLayerAdded: {
|
||||||
reducer: (state, action: PayloadAction<{ layerId: string; imageDTO: ImageDTO | null }>) => {
|
reducer: (state, action: PayloadAction<{ layerId: string; imageDTO: ImageDTO | null }>) => {
|
||||||
const { layerId, imageDTO } = action.payload;
|
const { layerId, imageDTO } = action.payload;
|
||||||
|
|
||||||
|
// Retain opacity and denoising strength of existing initial image layer if exists
|
||||||
|
let opacity = 1;
|
||||||
|
let denoisingStrength = 0.75;
|
||||||
|
const iiLayer = state.layers.find((l) => l.id === layerId);
|
||||||
|
if (iiLayer) {
|
||||||
|
assert(isInitialImageLayer(iiLayer));
|
||||||
|
opacity = iiLayer.opacity;
|
||||||
|
denoisingStrength = iiLayer.denoisingStrength;
|
||||||
|
}
|
||||||
|
|
||||||
// Highlander! There can be only one!
|
// Highlander! There can be only one!
|
||||||
state.layers = state.layers.filter((l) => (isInitialImageLayer(l) ? false : true));
|
state.layers = state.layers.filter((l) => (isInitialImageLayer(l) ? false : true));
|
||||||
|
|
||||||
const layer: InitialImageLayer = {
|
const layer: InitialImageLayer = {
|
||||||
id: layerId,
|
id: layerId,
|
||||||
type: 'initial_image_layer',
|
type: 'initial_image_layer',
|
||||||
opacity: 1,
|
opacity,
|
||||||
x: 0,
|
x: 0,
|
||||||
y: 0,
|
y: 0,
|
||||||
bbox: null,
|
bbox: null,
|
||||||
@ -629,7 +641,7 @@ export const controlLayersSlice = createSlice({
|
|||||||
isEnabled: true,
|
isEnabled: true,
|
||||||
image: imageDTO ? imageDTOToImageWithDims(imageDTO) : null,
|
image: imageDTO ? imageDTOToImageWithDims(imageDTO) : null,
|
||||||
isSelected: true,
|
isSelected: true,
|
||||||
denoisingStrength: 0.75,
|
denoisingStrength,
|
||||||
};
|
};
|
||||||
state.layers.push(layer);
|
state.layers.push(layer);
|
||||||
exclusivelySelectLayer(state, layer.id);
|
exclusivelySelectLayer(state, layer.id);
|
||||||
|
Loading…
Reference in New Issue
Block a user