diff --git a/invokeai/frontend/web/src/features/controlLayers/components/SaveToGalleryButton.tsx b/invokeai/frontend/web/src/features/controlLayers/components/SaveToGalleryButton.tsx index afb4fec35a..8077092a50 100644 --- a/invokeai/frontend/web/src/features/controlLayers/components/SaveToGalleryButton.tsx +++ b/invokeai/frontend/web/src/features/controlLayers/components/SaveToGalleryButton.tsx @@ -22,7 +22,7 @@ export const SaveToGalleryButton = memo(() => { const onClick = useCallback(async () => { isSaving.setTrue(); - const rect = shift ? canvasManager.stateApi.getBbox().rect : canvasManager.stage.getVisibleRect(); + const rect = shift ? canvasManager.stateApi.getBbox().rect : canvasManager.stage.getVisibleRect('raster_layer'); const result = await withResultAsync(() => canvasManager.compositor.rasterizeAndUploadCompositeRasterLayer(rect, true) diff --git a/invokeai/frontend/web/src/features/controlLayers/konva/CanvasStageModule.ts b/invokeai/frontend/web/src/features/controlLayers/konva/CanvasStageModule.ts index beb77089c1..8d4124d1dd 100644 --- a/invokeai/frontend/web/src/features/controlLayers/konva/CanvasStageModule.ts +++ b/invokeai/frontend/web/src/features/controlLayers/konva/CanvasStageModule.ts @@ -2,7 +2,7 @@ import type { CanvasManager } from 'features/controlLayers/konva/CanvasManager'; import { CanvasModuleABC } from 'features/controlLayers/konva/CanvasModuleABC'; import { CANVAS_SCALE_BY } from 'features/controlLayers/konva/constants'; import { getPrefixedId, getRectUnion } from 'features/controlLayers/konva/util'; -import type { Coordinate, Dimensions, Rect } from 'features/controlLayers/store/types'; +import type { CanvasEntityIdentifier, Coordinate, Dimensions, Rect } from 'features/controlLayers/store/types'; import type Konva from 'konva'; import type { KonvaEventObject } from 'konva/lib/Node'; import { clamp } from 'lodash-es'; @@ -76,13 +76,17 @@ export class CanvasStageModule extends CanvasModuleABC { }); }; - getVisibleRect = (): Rect => { + getVisibleRect = (type?: Exclude): Rect => { const rects = []; for (const adapter of this.manager.adapters.getAll()) { - if (adapter.state.isEnabled) { - rects.push(adapter.transformer.getRelativeRect()); + if (!adapter.state.isEnabled) { + continue; } + if (type && adapter.state.type !== type) { + continue; + } + rects.push(adapter.transformer.getRelativeRect()); } return getRectUnion(...rects);