diff --git a/src/store/execution/generate3dExecutor.ts b/src/store/execution/generate3dExecutor.ts index 1c95b7be..6ac9322c 100644 --- a/src/store/execution/generate3dExecutor.ts +++ b/src/store/execution/generate3dExecutor.ts @@ -70,7 +70,7 @@ export async function executeGenerate3D( error: null, }); - const runOnce = async (modelToUse: SelectedModel): Promise => { + const runOnce = async (modelToUse: SelectedModel, parametersOverride?: Record): Promise => { const provider = modelToUse.provider; const headers = buildGenerateHeaders(provider, providerSettings); @@ -78,7 +78,7 @@ export async function executeGenerate3D( images, prompt: promptText || "", selectedModel: modelToUse, - parameters: nodeData.parameters, + parameters: parametersOverride ?? nodeData.parameters, dynamicInputs, mediaType: "3d" as const, }; @@ -188,7 +188,9 @@ export async function executeGenerate3D( nodeId: node.id, primary: primaryModel, fallback: nodeData.fallbackModel, + fallbackParameters: nodeData.fallbackParameters, updateNodeData, runOnce, + clearOutput: { outputVideo: null }, }); } diff --git a/src/store/execution/generateAudioExecutor.ts b/src/store/execution/generateAudioExecutor.ts index f2dbe30c..b84c332c 100644 --- a/src/store/execution/generateAudioExecutor.ts +++ b/src/store/execution/generateAudioExecutor.ts @@ -79,7 +79,7 @@ export async function executeGenerateAudio( error: null, }); - const runOnce = async (modelToUse: SelectedModel): Promise => { + const runOnce = async (modelToUse: SelectedModel, parametersOverride?: Record): Promise => { const provider = modelToUse.provider; const headers = buildGenerateHeaders(provider, providerSettings); @@ -87,7 +87,7 @@ export async function executeGenerateAudio( images: [], prompt: text, selectedModel: modelToUse, - parameters: nodeData.parameters, + parameters: parametersOverride ?? nodeData.parameters, dynamicInputs, mediaType: "audio" as const, }; @@ -219,7 +219,9 @@ export async function executeGenerateAudio( nodeId: node.id, primary: nodeData.selectedModel, fallback: nodeData.fallbackModel, + fallbackParameters: nodeData.fallbackParameters, updateNodeData, runOnce, + clearOutput: { outputAudio: null }, }); } diff --git a/src/store/execution/generateVideoExecutor.ts b/src/store/execution/generateVideoExecutor.ts index 3bb04cb9..9394a04d 100644 --- a/src/store/execution/generateVideoExecutor.ts +++ b/src/store/execution/generateVideoExecutor.ts @@ -85,7 +85,7 @@ export async function executeGenerateVideo( error: null, }); - const runOnce = async (modelToUse: SelectedModel): Promise => { + const runOnce = async (modelToUse: SelectedModel, parametersOverride?: Record): Promise => { const provider = modelToUse.provider; const headers = buildGenerateHeaders(provider, providerSettings); @@ -93,7 +93,7 @@ export async function executeGenerateVideo( images, prompt: text, selectedModel: modelToUse, - parameters: nodeData.parameters, + parameters: parametersOverride ?? nodeData.parameters, dynamicInputs, mediaType: "video" as const, }; @@ -224,7 +224,9 @@ export async function executeGenerateVideo( nodeId: node.id, primary: nodeData.selectedModel, fallback: nodeData.fallbackModel, + fallbackParameters: nodeData.fallbackParameters, updateNodeData, runOnce, + clearOutput: { outputVideo: null }, }); } diff --git a/src/store/execution/nanoBananaExecutor.ts b/src/store/execution/nanoBananaExecutor.ts index 2718ca82..ef857576 100644 --- a/src/store/execution/nanoBananaExecutor.ts +++ b/src/store/execution/nanoBananaExecutor.ts @@ -91,7 +91,7 @@ export async function executeNanoBanana( // Inner runOnce: performs the actual fetch/process/history work for a given model. // Extracted so runWithFallback can invoke it twice (primary, then fallback) if needed. - const runOnce = async (modelToUse: SelectedModel): Promise => { + const runOnce = async (modelToUse: SelectedModel, parametersOverride?: Record): Promise => { const provider = modelToUse.provider; const headers = buildGenerateHeaders(provider, providerSettings); @@ -110,7 +110,7 @@ export async function executeNanoBanana( useGoogleSearch: nodeData.useGoogleSearch, useImageSearch: nodeData.useImageSearch, selectedModel: modelToUse, - parameters: nodeData.parameters, + parameters: parametersOverride ?? nodeData.parameters, dynamicInputs: sanitizedDynamicInputs, }; @@ -274,7 +274,9 @@ export async function executeNanoBanana( nodeId: node.id, primary: primaryModel, fallback: nodeData.fallbackModel, + fallbackParameters: nodeData.fallbackParameters, updateNodeData, runOnce, + clearOutput: { outputImage: null }, }); }