Skip to content

Commit 22cbb23

Browse files
fix(ui): ref images for flux kontext & api models not parsed correctly
1 parent 4d585e3 commit 22cbb23

File tree

4 files changed

+9
-13
lines changed

4 files changed

+9
-13
lines changed

invokeai/frontend/web/src/features/nodes/util/graph/generation/buildChatGPT4oGraph.ts

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ import { selectRefImagesSlice } from 'features/controlLayers/store/refImagesSlic
55
import { selectCanvasMetadata } from 'features/controlLayers/store/selectors';
66
import { isChatGPT4oAspectRatioID, isChatGPT4oReferenceImageConfig } from 'features/controlLayers/store/types';
77
import { getGlobalReferenceImageWarnings } from 'features/controlLayers/store/validators';
8-
import { type ImageField, zModelIdentifierField } from 'features/nodes/types/common';
8+
import { type ImageField, zImageField, zModelIdentifierField } from 'features/nodes/types/common';
99
import { Graph } from 'features/nodes/util/graph/generation/Graph';
1010
import {
1111
getOriginalAndScaledSizesForOtherModes,
@@ -49,9 +49,7 @@ export const buildChatGPT4oGraph = async (arg: GraphBuilderArg): Promise<GraphBu
4949
reference_images = [];
5050
for (const entity of validRefImages) {
5151
assert(entity.config.image, 'Image is required for reference image');
52-
reference_images.push({
53-
image_name: entity.config.image.crop?.image.image_name ?? entity.config.image.original.image.image_name,
54-
});
52+
reference_images.push(zImageField.parse(entity.config.image.crop?.image ?? entity.config.image.original.image));
5553
}
5654
}
5755

invokeai/frontend/web/src/features/nodes/util/graph/generation/buildFLUXGraph.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -164,7 +164,7 @@ export const buildFLUXGraph = async (arg: GraphBuilderArg): Promise<GraphBuilder
164164
const kontextImagePrep = g.addNode({
165165
id: getPrefixedId('flux_kontext_image_prep'),
166166
type: 'flux_kontext_image_prep',
167-
images: [zImageField.parse(config.image)],
167+
images: [zImageField.parse(config.image?.crop?.image ?? config.image?.original.image)],
168168
});
169169
const kontextConditioning = g.addNode({
170170
type: 'flux_kontext',

invokeai/frontend/web/src/features/nodes/util/graph/generation/buildFluxKontextGraph.ts

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -60,17 +60,17 @@ export const buildFluxKontextGraph = (arg: GraphBuilderArg): GraphBuilderReturn
6060
model: zModelIdentifierField.parse(model),
6161
aspect_ratio: aspectRatio.id,
6262
prompt_upsampling: true,
63-
input_image: {
64-
image_name: firstImage.crop?.image.image_name ?? firstImage.original.image.image_name,
65-
},
63+
input_image: zImageField.parse(firstImage.crop?.image ?? firstImage.original.image),
6664
...selectCanvasOutputFields(state),
6765
});
6866
} else {
6967
// Multiple reference images - use concatenation
7068
const kontextConcatenator = g.addNode({
7169
id: getPrefixedId('flux_kontext_image_prep'),
7270
type: 'flux_kontext_image_prep',
73-
images: validRefImages.map(({ config }) => zImageField.parse(config.image)),
71+
images: validRefImages.map(({ config }) =>
72+
zImageField.parse(config.image?.crop?.image ?? config.image?.original.image)
73+
),
7474
});
7575

7676
fluxKontextImage = g.addNode({

invokeai/frontend/web/src/features/nodes/util/graph/generation/buildGemini2_5Graph.ts

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ import { selectMainModelConfig } from 'features/controlLayers/store/paramsSlice'
44
import { selectRefImagesSlice } from 'features/controlLayers/store/refImagesSlice';
55
import { isGemini2_5ReferenceImageConfig } from 'features/controlLayers/store/types';
66
import { getGlobalReferenceImageWarnings } from 'features/controlLayers/store/validators';
7-
import type { ImageField } from 'features/nodes/types/common';
7+
import { type ImageField, zImageField } from 'features/nodes/types/common';
88
import { Graph } from 'features/nodes/util/graph/generation/Graph';
99
import { selectCanvasOutputFields } from 'features/nodes/util/graph/graphBuilderUtils';
1010
import type { GraphBuilderArg, GraphBuilderReturn } from 'features/nodes/util/graph/types';
@@ -44,9 +44,7 @@ export const buildGemini2_5Graph = (arg: GraphBuilderArg): GraphBuilderReturn =>
4444
reference_images = [];
4545
for (const entity of validRefImages) {
4646
assert(entity.config.image, 'Image is required for reference image');
47-
reference_images.push({
48-
image_name: entity.config.image.crop?.image.image_name ?? entity.config.image.original.image.image_name,
49-
});
47+
reference_images.push(zImageField.parse(entity.config.image.crop?.image ?? entity.config.image.original.image));
5048
}
5149
}
5250

0 commit comments

Comments
 (0)