diff --git a/invokeai/frontend/web/src/common/components/SessionMenuItems.tsx b/invokeai/frontend/web/src/common/components/SessionMenuItems.tsx index d73bbc3315..821cc8bb9d 100644 --- a/invokeai/frontend/web/src/common/components/SessionMenuItems.tsx +++ b/invokeai/frontend/web/src/common/components/SessionMenuItems.tsx @@ -1,6 +1,8 @@ import { MenuItem } from '@invoke-ai/ui-library'; import { useAppDispatch } from 'app/store/storeHooks'; -import { allEntitiesDeleted } from 'features/controlLayers/store/canvasSlice'; +import { canvasReset } from 'features/controlLayers/store/actions'; +import { inpaintMaskAdded } from 'features/controlLayers/store/canvasSlice'; +import { $canvasManager } from 'features/controlLayers/store/ephemeral'; import { paramsReset } from 'features/controlLayers/store/paramsSlice'; import { memo, useCallback } from 'react'; import { useTranslation } from 'react-i18next'; @@ -11,7 +13,9 @@ export const SessionMenuItems = memo(() => { const dispatch = useAppDispatch(); const resetCanvasLayers = useCallback(() => { - dispatch(allEntitiesDeleted()); + dispatch(canvasReset()); + dispatch(inpaintMaskAdded({ isSelected: true, isBookmarked: true })); + $canvasManager.get()?.stage.fitBboxToStage(); }, [dispatch]); const resetGenerationSettings = useCallback(() => { dispatch(paramsReset()); diff --git a/invokeai/frontend/web/src/features/controlLayers/store/canvasSlice.ts b/invokeai/frontend/web/src/features/controlLayers/store/canvasSlice.ts index e6af138b1d..f304f3a1ee 100644 --- a/invokeai/frontend/web/src/features/controlLayers/store/canvasSlice.ts +++ b/invokeai/frontend/web/src/features/controlLayers/store/canvasSlice.ts @@ -1618,7 +1618,6 @@ export const { entityArrangedToBack, entityOpacityChanged, entitiesReordered, - allEntitiesDeleted, allEntitiesOfTypeIsHiddenToggled, allNonRasterLayersIsHiddenToggled, // bbox diff --git a/invokeai/frontend/web/src/features/gallery/components/ImageContextMenu/ImageMenuItemNewCanvasFromImageSubMenu.tsx b/invokeai/frontend/web/src/features/gallery/components/ImageContextMenu/ImageMenuItemNewCanvasFromImageSubMenu.tsx index 604284dadc..d492685521 100644 --- a/invokeai/frontend/web/src/features/gallery/components/ImageContextMenu/ImageMenuItemNewCanvasFromImageSubMenu.tsx +++ b/invokeai/frontend/web/src/features/gallery/components/ImageContextMenu/ImageMenuItemNewCanvasFromImageSubMenu.tsx @@ -21,7 +21,14 @@ export const ImageMenuItemNewCanvasFromImageSubMenu = memo(() => { const onClickNewCanvasWithRasterLayerFromImage = useCallback(async () => { const { dispatch, getState } = store; await navigationApi.focusPanel('canvas', WORKSPACE_PANEL_ID); - await newCanvasFromImage({ imageDTO, withResize: false, type: 'raster_layer', dispatch, getState }); + await newCanvasFromImage({ + imageDTO, + withResize: false, + withInpaintMask: true, + type: 'raster_layer', + dispatch, + getState, + }); toast({ id: 'SENT_TO_CANVAS', title: t('toast.sentToCanvas'), @@ -32,7 +39,14 @@ export const ImageMenuItemNewCanvasFromImageSubMenu = memo(() => { const onClickNewCanvasWithControlLayerFromImage = useCallback(async () => { const { dispatch, getState } = store; await navigationApi.focusPanel('canvas', WORKSPACE_PANEL_ID); - await newCanvasFromImage({ imageDTO, withResize: false, type: 'control_layer', dispatch, getState }); + await newCanvasFromImage({ + imageDTO, + withResize: false, + withInpaintMask: true, + type: 'control_layer', + dispatch, + getState, + }); toast({ id: 'SENT_TO_CANVAS', title: t('toast.sentToCanvas'), @@ -43,7 +57,14 @@ export const ImageMenuItemNewCanvasFromImageSubMenu = memo(() => { const onClickNewCanvasWithRasterLayerFromImageWithResize = useCallback(async () => { const { dispatch, getState } = store; await navigationApi.focusPanel('canvas', WORKSPACE_PANEL_ID); - await newCanvasFromImage({ imageDTO, withResize: true, type: 'raster_layer', dispatch, getState }); + await newCanvasFromImage({ + imageDTO, + withResize: true, + withInpaintMask: true, + type: 'raster_layer', + dispatch, + getState, + }); toast({ id: 'SENT_TO_CANVAS', title: t('toast.sentToCanvas'), @@ -54,7 +75,14 @@ export const ImageMenuItemNewCanvasFromImageSubMenu = memo(() => { const onClickNewCanvasWithControlLayerFromImageWithResize = useCallback(async () => { const { dispatch, getState } = store; await navigationApi.focusPanel('canvas', WORKSPACE_PANEL_ID); - await newCanvasFromImage({ imageDTO, withResize: true, type: 'control_layer', dispatch, getState }); + await newCanvasFromImage({ + imageDTO, + withResize: true, + withInpaintMask: true, + type: 'control_layer', + dispatch, + getState, + }); toast({ id: 'SENT_TO_CANVAS', title: t('toast.sentToCanvas'),