|
|
@ -29,8 +29,7 @@ import { |
|
|
import { isHttpMediaUrl } from "@/utils/mediaResolver"; |
|
|
import { isHttpMediaUrl } from "@/utils/mediaResolver"; |
|
|
import { |
|
|
import { |
|
|
cleanupTemporaryImages, |
|
|
cleanupTemporaryImages, |
|
|
uploadPopiserverDynamicInputsForGeneration, |
|
|
uploadPopiserverGenerationInputsForGeneration, |
|
|
uploadPopiserverImagesForGeneration, |
|
|
|
|
|
uploadTemporaryDynamicInputsForGeneration, |
|
|
uploadTemporaryDynamicInputsForGeneration, |
|
|
uploadTemporaryImagesForGeneration, |
|
|
uploadTemporaryImagesForGeneration, |
|
|
} from "@/utils/temporaryImageUpload"; |
|
|
} from "@/utils/temporaryImageUpload"; |
|
|
@ -159,13 +158,16 @@ export async function executeNanoBanana( |
|
|
let temporaryImageIds: string[] = []; |
|
|
let temporaryImageIds: string[] = []; |
|
|
|
|
|
|
|
|
try { |
|
|
try { |
|
|
const preparedImages = provider === "popiserver" |
|
|
const preparedPopiserverInputs = provider === "popiserver" |
|
|
? await uploadPopiserverImagesForGeneration(images) |
|
|
? await uploadPopiserverGenerationInputsForGeneration(images, sanitizedDynamicInputs) |
|
|
|
|
|
: null; |
|
|
|
|
|
const preparedImages = preparedPopiserverInputs |
|
|
|
|
|
? { images: preparedPopiserverInputs.images, cleanupIds: preparedPopiserverInputs.cleanupIds } |
|
|
: provider === "newapiwg" |
|
|
: provider === "newapiwg" |
|
|
? await uploadTemporaryImagesForGeneration(images) |
|
|
? await uploadTemporaryImagesForGeneration(images) |
|
|
: { images, cleanupIds: [] }; |
|
|
: { images, cleanupIds: [] }; |
|
|
const preparedDynamicInputs = provider === "popiserver" |
|
|
const preparedDynamicInputs = preparedPopiserverInputs |
|
|
? await uploadPopiserverDynamicInputsForGeneration(sanitizedDynamicInputs) |
|
|
? { dynamicInputs: preparedPopiserverInputs.dynamicInputs, cleanupIds: preparedPopiserverInputs.cleanupIds } |
|
|
: provider === "newapiwg" |
|
|
: provider === "newapiwg" |
|
|
? await uploadTemporaryDynamicInputsForGeneration(sanitizedDynamicInputs) |
|
|
? await uploadTemporaryDynamicInputsForGeneration(sanitizedDynamicInputs) |
|
|
: { dynamicInputs: sanitizedDynamicInputs, cleanupIds: [] }; |
|
|
: { dynamicInputs: sanitizedDynamicInputs, cleanupIds: [] }; |
|
|
@ -196,12 +198,13 @@ export async function executeNanoBanana( |
|
|
batchSize: requestedImageCount, |
|
|
batchSize: requestedImageCount, |
|
|
} |
|
|
} |
|
|
: mergeConfiguredParametersOverride(normalizedBaseParameters, configuredParameters); |
|
|
: mergeConfiguredParametersOverride(normalizedBaseParameters, configuredParameters); |
|
|
|
|
|
const usedModelId = modelToUse.modelId || nodeData.model; |
|
|
const requestPayload = { |
|
|
const requestPayload = { |
|
|
images: preparedImages.images, |
|
|
images: preparedImages.images, |
|
|
prompt: finalPrompt, |
|
|
prompt: finalPrompt, |
|
|
aspectRatio: (parametersOverride?.aspectRatio as string) ?? nodeConfig.aspectRatio, |
|
|
aspectRatio: (parametersOverride?.aspectRatio as string) ?? nodeConfig.aspectRatio, |
|
|
resolution: (parametersOverride?.resolution as string) ?? nodeConfig.resolution, |
|
|
resolution: (parametersOverride?.resolution as string) ?? nodeConfig.resolution, |
|
|
model: nodeData.model, |
|
|
model: usedModelId, |
|
|
useGoogleSearch: (parametersOverride?.useGoogleSearch as boolean) ?? nodeData.useGoogleSearch, |
|
|
useGoogleSearch: (parametersOverride?.useGoogleSearch as boolean) ?? nodeData.useGoogleSearch, |
|
|
useImageSearch: (parametersOverride?.useImageSearch as boolean) ?? nodeData.useImageSearch, |
|
|
useImageSearch: (parametersOverride?.useImageSearch as boolean) ?? nodeData.useImageSearch, |
|
|
selectedModel: modelToUse, |
|
|
selectedModel: modelToUse, |
|
|
@ -219,7 +222,6 @@ export async function executeNanoBanana( |
|
|
|
|
|
|
|
|
const usePopiserverBatch = provider === "popiserver" && requestedImageCount > 1; |
|
|
const usePopiserverBatch = provider === "popiserver" && requestedImageCount > 1; |
|
|
const requestCount = usePopiserverBatch ? 1 : requestedImageCount; |
|
|
const requestCount = usePopiserverBatch ? 1 : requestedImageCount; |
|
|
const usedModelId = modelToUse.modelId || nodeData.model; |
|
|
|
|
|
const usedModelDisplayName = modelToUse.displayName || usedModelId; |
|
|
const usedModelDisplayName = modelToUse.displayName || usedModelId; |
|
|
const batchTimestamp = Date.now(); |
|
|
const batchTimestamp = Date.now(); |
|
|
const generatedItems: Array<{ |
|
|
const generatedItems: Array<{ |
|
|
|