diff --git a/invokeai/frontend/web/src/features/nodes/components/flow/nodes/Invocation/InvocationNodeFooter.tsx b/invokeai/frontend/web/src/features/nodes/components/flow/nodes/Invocation/InvocationNodeFooter.tsx
index 6f4b719f74..ba1f7977ab 100644
--- a/invokeai/frontend/web/src/features/nodes/components/flow/nodes/Invocation/InvocationNodeFooter.tsx
+++ b/invokeai/frontend/web/src/features/nodes/components/flow/nodes/Invocation/InvocationNodeFooter.tsx
@@ -25,8 +25,8 @@ const InvocationNodeFooter = ({ nodeId }: Props) => {
justifyContent: 'space-between',
}}
>
- {hasImageOutput && }
+ {hasImageOutput && }
{hasImageOutput && }
);
diff --git a/invokeai/frontend/web/src/features/nodes/hooks/useHasImageOutput.ts b/invokeai/frontend/web/src/features/nodes/hooks/useHasImageOutput.ts
index 0976ededd1..111e48a45f 100644
--- a/invokeai/frontend/web/src/features/nodes/hooks/useHasImageOutput.ts
+++ b/invokeai/frontend/web/src/features/nodes/hooks/useHasImageOutput.ts
@@ -17,8 +17,12 @@ export const useHasImageOutput = (nodeId: string) => {
if (!isInvocationNode(node)) {
return false;
}
- return some(node.data.outputs, (output) =>
- IMAGE_FIELDS.includes(output.type)
+ return some(
+ node.data.outputs,
+ (output) =>
+ IMAGE_FIELDS.includes(output.type) &&
+ // the image primitive node does not actually save the image, do not show the image-saving checkboxes
+ node.data.type !== 'image'
);
},
defaultSelectorOptions