From 957d591d996d95dd9fca4397b6ee140d2aab537b Mon Sep 17 00:00:00 2001
From: psychedelicious <4822129+psychedelicious@users.noreply.github.com>
Date: Fri, 25 Oct 2024 15:47:28 +1000
Subject: [PATCH] feat(ui): "Auto-Mask" -> "Select Object"
---
invokeai/frontend/web/public/locales/en.json | 4 +-
.../EntityListSelectedEntityActionBar.tsx | 4 +-
...ctedEntityActionBarSelectObjectButton.tsx} | 8 +--
.../components/CanvasMainPanelContent.tsx | 4 +-
.../ControlLayer/ControlLayerMenuItems.tsx | 4 +-
.../RasterLayer/RasterLayerMenuItems.tsx | 4 +-
.../SelectObject.tsx} | 54 ++++++++++---------
.../SelectObjectInvert.tsx} | 6 +--
.../SelectObjectPointType.tsx} | 10 ++--
... => CanvasEntityMenuItemsSelectObject.tsx} | 6 +--
10 files changed, 53 insertions(+), 51 deletions(-)
rename invokeai/frontend/web/src/features/controlLayers/components/CanvasEntityList/{EntityListSelectedEntityActionBarAutoMaskButton.tsx => EntityListSelectedEntityActionBarSelectObjectButton.tsx} (76%)
rename invokeai/frontend/web/src/features/controlLayers/components/{SegmentAnything/SegmentAnything.tsx => SelectObject/SelectObject.tsx} (78%)
rename invokeai/frontend/web/src/features/controlLayers/components/{SegmentAnything/SegmentAnythingInvert.tsx => SelectObject/SelectObjectInvert.tsx} (84%)
rename invokeai/frontend/web/src/features/controlLayers/components/{SegmentAnything/SegmentAnythingPointType.tsx => SelectObject/SelectObjectPointType.tsx} (82%)
rename invokeai/frontend/web/src/features/controlLayers/components/common/{CanvasEntityMenuItemsSegment.tsx => CanvasEntityMenuItemsSelectObject.tsx} (77%)
diff --git a/invokeai/frontend/web/public/locales/en.json b/invokeai/frontend/web/public/locales/en.json
index 1d873d5707..1664ff38a4 100644
--- a/invokeai/frontend/web/public/locales/en.json
+++ b/invokeai/frontend/web/public/locales/en.json
@@ -1886,8 +1886,8 @@
"apply": "Apply",
"cancel": "Cancel"
},
- "segment": {
- "autoMask": "Auto Mask",
+ "selectObject": {
+ "selectObject": "Select Object",
"pointType": "Point Type",
"invertSelection": "Invert Selection",
"include": "Include",
diff --git a/invokeai/frontend/web/src/features/controlLayers/components/CanvasEntityList/EntityListSelectedEntityActionBar.tsx b/invokeai/frontend/web/src/features/controlLayers/components/CanvasEntityList/EntityListSelectedEntityActionBar.tsx
index c8799a8628..2ec01041e2 100644
--- a/invokeai/frontend/web/src/features/controlLayers/components/CanvasEntityList/EntityListSelectedEntityActionBar.tsx
+++ b/invokeai/frontend/web/src/features/controlLayers/components/CanvasEntityList/EntityListSelectedEntityActionBar.tsx
@@ -1,10 +1,10 @@
import { Flex, Spacer } from '@invoke-ai/ui-library';
import { EntityListGlobalActionBarAddLayerMenu } from 'features/controlLayers/components/CanvasEntityList/EntityListGlobalActionBarAddLayerMenu';
-import { EntityListSelectedEntityActionBarAutoMaskButton } from 'features/controlLayers/components/CanvasEntityList/EntityListSelectedEntityActionBarAutoMaskButton';
import { EntityListSelectedEntityActionBarDuplicateButton } from 'features/controlLayers/components/CanvasEntityList/EntityListSelectedEntityActionBarDuplicateButton';
import { EntityListSelectedEntityActionBarFill } from 'features/controlLayers/components/CanvasEntityList/EntityListSelectedEntityActionBarFill';
import { EntityListSelectedEntityActionBarFilterButton } from 'features/controlLayers/components/CanvasEntityList/EntityListSelectedEntityActionBarFilterButton';
import { EntityListSelectedEntityActionBarOpacity } from 'features/controlLayers/components/CanvasEntityList/EntityListSelectedEntityActionBarOpacity';
+import { EntityListSelectedEntityActionBarSelectObjectButton } from 'features/controlLayers/components/CanvasEntityList/EntityListSelectedEntityActionBarSelectObjectButton';
import { EntityListSelectedEntityActionBarTransformButton } from 'features/controlLayers/components/CanvasEntityList/EntityListSelectedEntityActionBarTransformButton';
import { memo } from 'react';
@@ -17,7 +17,7 @@ export const EntityListSelectedEntityActionBar = memo(() => {
-
+
diff --git a/invokeai/frontend/web/src/features/controlLayers/components/CanvasEntityList/EntityListSelectedEntityActionBarAutoMaskButton.tsx b/invokeai/frontend/web/src/features/controlLayers/components/CanvasEntityList/EntityListSelectedEntityActionBarSelectObjectButton.tsx
similarity index 76%
rename from invokeai/frontend/web/src/features/controlLayers/components/CanvasEntityList/EntityListSelectedEntityActionBarAutoMaskButton.tsx
rename to invokeai/frontend/web/src/features/controlLayers/components/CanvasEntityList/EntityListSelectedEntityActionBarSelectObjectButton.tsx
index 38a0b3c995..900a56894d 100644
--- a/invokeai/frontend/web/src/features/controlLayers/components/CanvasEntityList/EntityListSelectedEntityActionBarAutoMaskButton.tsx
+++ b/invokeai/frontend/web/src/features/controlLayers/components/CanvasEntityList/EntityListSelectedEntityActionBarSelectObjectButton.tsx
@@ -7,7 +7,7 @@ import { memo } from 'react';
import { useTranslation } from 'react-i18next';
import { PiMaskHappyBold } from 'react-icons/pi';
-export const EntityListSelectedEntityActionBarAutoMaskButton = memo(() => {
+export const EntityListSelectedEntityActionBarSelectObjectButton = memo(() => {
const { t } = useTranslation();
const selectedEntityIdentifier = useAppSelector(selectSelectedEntityIdentifier);
const segment = useEntitySegmentAnything(selectedEntityIdentifier);
@@ -27,11 +27,11 @@ export const EntityListSelectedEntityActionBarAutoMaskButton = memo(() => {
size="sm"
variant="link"
alignSelf="stretch"
- aria-label={t('controlLayers.segment.autoMask')}
- tooltip={t('controlLayers.segment.autoMask')}
+ aria-label={t('controlLayers.selectObject.selectObject')}
+ tooltip={t('controlLayers.selectObject.selectObject')}
icon={}
/>
);
});
-EntityListSelectedEntityActionBarAutoMaskButton.displayName = 'EntityListSelectedEntityActionBarAutoMaskButton';
+EntityListSelectedEntityActionBarSelectObjectButton.displayName = 'EntityListSelectedEntityActionBarSelectObjectButton';
diff --git a/invokeai/frontend/web/src/features/controlLayers/components/CanvasMainPanelContent.tsx b/invokeai/frontend/web/src/features/controlLayers/components/CanvasMainPanelContent.tsx
index a7d6eb7ceb..1e8dccfd39 100644
--- a/invokeai/frontend/web/src/features/controlLayers/components/CanvasMainPanelContent.tsx
+++ b/invokeai/frontend/web/src/features/controlLayers/components/CanvasMainPanelContent.tsx
@@ -10,7 +10,7 @@ import { CanvasDropArea } from 'features/controlLayers/components/CanvasDropArea
import { Filter } from 'features/controlLayers/components/Filters/Filter';
import { CanvasHUD } from 'features/controlLayers/components/HUD/CanvasHUD';
import { InvokeCanvasComponent } from 'features/controlLayers/components/InvokeCanvasComponent';
-import { SegmentAnything } from 'features/controlLayers/components/SegmentAnything/SegmentAnything';
+import { SelectObject } from 'features/controlLayers/components/SelectObject/SelectObject';
import { StagingAreaIsStagingGate } from 'features/controlLayers/components/StagingArea/StagingAreaIsStagingGate';
import { StagingAreaToolbar } from 'features/controlLayers/components/StagingArea/StagingAreaToolbar';
import { CanvasToolbar } from 'features/controlLayers/components/Toolbar/CanvasToolbar';
@@ -102,7 +102,7 @@ export const CanvasMainPanelContent = memo(() => {
-
+
diff --git a/invokeai/frontend/web/src/features/controlLayers/components/ControlLayer/ControlLayerMenuItems.tsx b/invokeai/frontend/web/src/features/controlLayers/components/ControlLayer/ControlLayerMenuItems.tsx
index 7c34bd59d6..ab77f238bc 100644
--- a/invokeai/frontend/web/src/features/controlLayers/components/ControlLayer/ControlLayerMenuItems.tsx
+++ b/invokeai/frontend/web/src/features/controlLayers/components/ControlLayer/ControlLayerMenuItems.tsx
@@ -6,7 +6,7 @@ import { CanvasEntityMenuItemsDelete } from 'features/controlLayers/components/c
import { CanvasEntityMenuItemsDuplicate } from 'features/controlLayers/components/common/CanvasEntityMenuItemsDuplicate';
import { CanvasEntityMenuItemsFilter } from 'features/controlLayers/components/common/CanvasEntityMenuItemsFilter';
import { CanvasEntityMenuItemsSave } from 'features/controlLayers/components/common/CanvasEntityMenuItemsSave';
-import { CanvasEntityMenuItemsSegment } from 'features/controlLayers/components/common/CanvasEntityMenuItemsSegment';
+import { CanvasEntityMenuItemsSelectObject } from 'features/controlLayers/components/common/CanvasEntityMenuItemsSelectObject';
import { CanvasEntityMenuItemsTransform } from 'features/controlLayers/components/common/CanvasEntityMenuItemsTransform';
import { ControlLayerMenuItemsConvertToSubMenu } from 'features/controlLayers/components/ControlLayer/ControlLayerMenuItemsConvertToSubMenu';
import { ControlLayerMenuItemsCopyToSubMenu } from 'features/controlLayers/components/ControlLayer/ControlLayerMenuItemsCopyToSubMenu';
@@ -24,7 +24,7 @@ export const ControlLayerMenuItems = memo(() => {
-
+
diff --git a/invokeai/frontend/web/src/features/controlLayers/components/RasterLayer/RasterLayerMenuItems.tsx b/invokeai/frontend/web/src/features/controlLayers/components/RasterLayer/RasterLayerMenuItems.tsx
index 69b17f5f04..212720e064 100644
--- a/invokeai/frontend/web/src/features/controlLayers/components/RasterLayer/RasterLayerMenuItems.tsx
+++ b/invokeai/frontend/web/src/features/controlLayers/components/RasterLayer/RasterLayerMenuItems.tsx
@@ -6,7 +6,7 @@ import { CanvasEntityMenuItemsDelete } from 'features/controlLayers/components/c
import { CanvasEntityMenuItemsDuplicate } from 'features/controlLayers/components/common/CanvasEntityMenuItemsDuplicate';
import { CanvasEntityMenuItemsFilter } from 'features/controlLayers/components/common/CanvasEntityMenuItemsFilter';
import { CanvasEntityMenuItemsSave } from 'features/controlLayers/components/common/CanvasEntityMenuItemsSave';
-import { CanvasEntityMenuItemsSegment } from 'features/controlLayers/components/common/CanvasEntityMenuItemsSegment';
+import { CanvasEntityMenuItemsSelectObject } from 'features/controlLayers/components/common/CanvasEntityMenuItemsSelectObject';
import { CanvasEntityMenuItemsTransform } from 'features/controlLayers/components/common/CanvasEntityMenuItemsTransform';
import { RasterLayerMenuItemsConvertToSubMenu } from 'features/controlLayers/components/RasterLayer/RasterLayerMenuItemsConvertToSubMenu';
import { RasterLayerMenuItemsCopyToSubMenu } from 'features/controlLayers/components/RasterLayer/RasterLayerMenuItemsCopyToSubMenu';
@@ -23,7 +23,7 @@ export const RasterLayerMenuItems = memo(() => {
-
+
diff --git a/invokeai/frontend/web/src/features/controlLayers/components/SegmentAnything/SegmentAnything.tsx b/invokeai/frontend/web/src/features/controlLayers/components/SelectObject/SelectObject.tsx
similarity index 78%
rename from invokeai/frontend/web/src/features/controlLayers/components/SegmentAnything/SegmentAnything.tsx
rename to invokeai/frontend/web/src/features/controlLayers/components/SelectObject/SelectObject.tsx
index 6a50bd769c..0edea450b9 100644
--- a/invokeai/frontend/web/src/features/controlLayers/components/SegmentAnything/SegmentAnything.tsx
+++ b/invokeai/frontend/web/src/features/controlLayers/components/SelectObject/SelectObject.tsx
@@ -19,8 +19,8 @@ import { useAppSelector } from 'app/store/storeHooks';
import { useFocusRegion, useIsRegionFocused } from 'common/hooks/focus';
import { CanvasAutoProcessSwitch } from 'features/controlLayers/components/CanvasAutoProcessSwitch';
import { CanvasOperationIsolatedLayerPreviewSwitch } from 'features/controlLayers/components/CanvasOperationIsolatedLayerPreviewSwitch';
-import { SegmentAnythingInvert } from 'features/controlLayers/components/SegmentAnything/SegmentAnythingInvert';
-import { SegmentAnythingPointType } from 'features/controlLayers/components/SegmentAnything/SegmentAnythingPointType';
+import { SelectObjectInvert } from 'features/controlLayers/components/SelectObject/SelectObjectInvert';
+import { SelectObjectPointType } from 'features/controlLayers/components/SelectObject/SelectObjectPointType';
import { useCanvasManager } from 'features/controlLayers/contexts/CanvasManagerProviderGate';
import type { CanvasEntityAdapterControlLayer } from 'features/controlLayers/konva/CanvasEntity/CanvasEntityAdapterControlLayer';
import type { CanvasEntityAdapterRasterLayer } from 'features/controlLayers/konva/CanvasEntity/CanvasEntityAdapterRasterLayer';
@@ -31,7 +31,7 @@ import { memo, useCallback, useRef } from 'react';
import { Trans, useTranslation } from 'react-i18next';
import { PiArrowsCounterClockwiseBold, PiFloppyDiskBold, PiInfoBold, PiStarBold, PiXBold } from 'react-icons/pi';
-const SegmentAnythingContent = memo(
+const SelectObjectContent = memo(
({ adapter }: { adapter: CanvasEntityAdapterRasterLayer | CanvasEntityAdapterControlLayer }) => {
const { t } = useTranslation();
const ref = useRef(null);
@@ -91,9 +91,9 @@ const SegmentAnythingContent = memo(
- {t('controlLayers.segment.autoMask')}
+ {t('controlLayers.selectObject.selectObject')}
- }>
+ }>
@@ -105,8 +105,8 @@ const SegmentAnythingContent = memo(
-
-
+
+
@@ -114,32 +114,32 @@ const SegmentAnythingContent = memo(
leftIcon={}
onClick={adapter.segmentAnything.processImmediate}
isLoading={isProcessing}
- loadingText={t('controlLayers.segment.process')}
+ loadingText={t('controlLayers.selectObject.process')}
variant="ghost"
isDisabled={!hasPoints || autoProcess}
>
- {t('controlLayers.segment.process')}
+ {t('controlLayers.selectObject.process')}
}
onClick={adapter.segmentAnything.reset}
isLoading={isProcessing}
- loadingText={t('controlLayers.segment.reset')}
+ loadingText={t('controlLayers.selectObject.reset')}
variant="ghost"
>
- {t('controlLayers.segment.reset')}
+ {t('controlLayers.selectObject.reset')}
@@ -171,9 +171,9 @@ const SegmentAnythingContent = memo(
}
);
-SegmentAnythingContent.displayName = 'SegmentAnythingContent';
+SelectObjectContent.displayName = 'SegmentAnythingContent';
-export const SegmentAnything = () => {
+export const SelectObject = memo(() => {
const canvasManager = useCanvasManager();
const adapter = useStore(canvasManager.stateApi.$segmentingAdapter);
@@ -181,8 +181,10 @@ export const SegmentAnything = () => {
return null;
}
- return ;
-};
+ return ;
+});
+
+SelectObject.displayName = 'SelectObject';
const Bold = (props: PropsWithChildren) => (
@@ -190,27 +192,27 @@ const Bold = (props: PropsWithChildren) => (
);
-const SegmentAnythingHelpTooltipContent = memo(() => {
+const SelectObjectHelpTooltipContent = memo(() => {
const { t } = useTranslation();
return (
- }} />
+ }} />
- }} />
+ }} />
-
+
- {t('controlLayers.segment.clickToAdd')}
- {t('controlLayers.segment.dragToMove')}
- {t('controlLayers.segment.clickToRemove')}
+ {t('controlLayers.selectObject.clickToAdd')}
+ {t('controlLayers.selectObject.dragToMove')}
+ {t('controlLayers.selectObject.clickToRemove')}
);
});
-SegmentAnythingHelpTooltipContent.displayName = 'SegmentAnythingHelpTooltipContent';
+SelectObjectHelpTooltipContent.displayName = 'SelectObjectHelpTooltipContent';
diff --git a/invokeai/frontend/web/src/features/controlLayers/components/SegmentAnything/SegmentAnythingInvert.tsx b/invokeai/frontend/web/src/features/controlLayers/components/SelectObject/SelectObjectInvert.tsx
similarity index 84%
rename from invokeai/frontend/web/src/features/controlLayers/components/SegmentAnything/SegmentAnythingInvert.tsx
rename to invokeai/frontend/web/src/features/controlLayers/components/SelectObject/SelectObjectInvert.tsx
index 9215a23c30..639f5d5696 100644
--- a/invokeai/frontend/web/src/features/controlLayers/components/SegmentAnything/SegmentAnythingInvert.tsx
+++ b/invokeai/frontend/web/src/features/controlLayers/components/SelectObject/SelectObjectInvert.tsx
@@ -5,7 +5,7 @@ import type { CanvasEntityAdapterRasterLayer } from 'features/controlLayers/konv
import { memo, useCallback } from 'react';
import { useTranslation } from 'react-i18next';
-export const SegmentAnythingInvert = memo(
+export const SelectObjectInvert = memo(
({ adapter }: { adapter: CanvasEntityAdapterRasterLayer | CanvasEntityAdapterControlLayer }) => {
const { t } = useTranslation();
const invert = useStore(adapter.segmentAnything.$invert);
@@ -16,11 +16,11 @@ export const SegmentAnythingInvert = memo(
return (
- {t('controlLayers.segment.invertSelection')}
+ {t('controlLayers.selectObject.invertSelection')}
);
}
);
-SegmentAnythingInvert.displayName = 'SegmentAnythingInvert';
+SelectObjectInvert.displayName = 'SelectObjectInvert';
diff --git a/invokeai/frontend/web/src/features/controlLayers/components/SegmentAnything/SegmentAnythingPointType.tsx b/invokeai/frontend/web/src/features/controlLayers/components/SelectObject/SelectObjectPointType.tsx
similarity index 82%
rename from invokeai/frontend/web/src/features/controlLayers/components/SegmentAnything/SegmentAnythingPointType.tsx
rename to invokeai/frontend/web/src/features/controlLayers/components/SelectObject/SelectObjectPointType.tsx
index b119da584c..9e51b10b13 100644
--- a/invokeai/frontend/web/src/features/controlLayers/components/SegmentAnything/SegmentAnythingPointType.tsx
+++ b/invokeai/frontend/web/src/features/controlLayers/components/SelectObject/SelectObjectPointType.tsx
@@ -6,7 +6,7 @@ import { SAM_POINT_LABEL_STRING_TO_NUMBER, zSAMPointLabelString } from 'features
import { memo, useCallback } from 'react';
import { useTranslation } from 'react-i18next';
-export const SegmentAnythingPointType = memo(
+export const SelectObjectPointType = memo(
({ adapter }: { adapter: CanvasEntityAdapterRasterLayer | CanvasEntityAdapterControlLayer }) => {
const { t } = useTranslation();
const pointType = useStore(adapter.segmentAnything.$pointTypeString);
@@ -22,14 +22,14 @@ export const SegmentAnythingPointType = memo(
return (
- {t('controlLayers.segment.pointType')}
+ {t('controlLayers.selectObject.pointType')}
- {t('controlLayers.segment.include')}
+ {t('controlLayers.selectObject.include')}
- {t('controlLayers.segment.exclude')}
+ {t('controlLayers.selectObject.exclude')}
@@ -38,4 +38,4 @@ export const SegmentAnythingPointType = memo(
}
);
-SegmentAnythingPointType.displayName = 'SegmentAnythingPointType';
+SelectObjectPointType.displayName = 'SelectObject';
diff --git a/invokeai/frontend/web/src/features/controlLayers/components/common/CanvasEntityMenuItemsSegment.tsx b/invokeai/frontend/web/src/features/controlLayers/components/common/CanvasEntityMenuItemsSelectObject.tsx
similarity index 77%
rename from invokeai/frontend/web/src/features/controlLayers/components/common/CanvasEntityMenuItemsSegment.tsx
rename to invokeai/frontend/web/src/features/controlLayers/components/common/CanvasEntityMenuItemsSelectObject.tsx
index b7677bb880..d0235d3161 100644
--- a/invokeai/frontend/web/src/features/controlLayers/components/common/CanvasEntityMenuItemsSegment.tsx
+++ b/invokeai/frontend/web/src/features/controlLayers/components/common/CanvasEntityMenuItemsSelectObject.tsx
@@ -5,16 +5,16 @@ import { memo } from 'react';
import { useTranslation } from 'react-i18next';
import { PiMaskHappyBold } from 'react-icons/pi';
-export const CanvasEntityMenuItemsSegment = memo(() => {
+export const CanvasEntityMenuItemsSelectObject = memo(() => {
const { t } = useTranslation();
const entityIdentifier = useEntityIdentifierContext();
const segmentAnything = useEntitySegmentAnything(entityIdentifier);
return (
} isDisabled={segmentAnything.isDisabled}>
- {t('controlLayers.segment.autoMask')}
+ {t('controlLayers.selectObject.selectObject')}
);
});
-CanvasEntityMenuItemsSegment.displayName = 'CanvasEntityMenuItemsSegment';
+CanvasEntityMenuItemsSelectObject.displayName = 'CanvasEntityMenuItemsSelectObject';