Browse Source

fix(quick-012): add prompt passthrough in replicate and fal.ai dynamicInputs branches

- Include input.prompt in API request when dynamicInputs are present but don't contain a prompt key
- Use schema paramMap to resolve model-specific prompt parameter name
- Skip if dynamicInputs already provides a prompt value (no duplication)
handoff-20260429-1057
shrimbly 5 months ago
parent
commit
9cadb88c84
  1. 7
      src/app/api/generate/providers/fal.ts
  2. 9
      src/app/api/generate/providers/replicate.ts

7
src/app/api/generate/providers/fal.ts

@ -288,6 +288,13 @@ export async function generateWithFalQueue(
}
}
Object.assign(requestBody, filteredInputs);
// Ensure prompt is included even when dynamicInputs are present
// (executor sends prompt as top-level field, not in dynamicInputs)
const promptParam = paramMap.prompt || "prompt";
if (input.prompt && !requestBody[promptParam]) {
requestBody[promptParam] = input.prompt;
}
} else {
// Fallback: use schema to map generic input names to model-specific parameter names
if (input.prompt) {

9
src/app/api/generate/providers/replicate.ts

@ -76,7 +76,7 @@ export async function generateWithReplicate(
if (hasDynamicInputs) {
// Apply coerced parameters first, then dynamic inputs override
Object.assign(predictionInput, coerceParameterTypes(input.parameters, parameterTypes));
const { schemaArrayParams } = getInputMappingFromSchema(schema);
const { paramMap, schemaArrayParams } = getInputMappingFromSchema(schema);
// Apply array wrapping based on schema type
for (const [key, value] of Object.entries(input.dynamicInputs!)) {
@ -90,6 +90,13 @@ export async function generateWithReplicate(
}
}
}
// Ensure prompt is included even when dynamicInputs are present
// (executor sends prompt as top-level field, not in dynamicInputs)
const promptParam = paramMap.prompt || "prompt";
if (input.prompt && !predictionInput[promptParam]) {
predictionInput[promptParam] = input.prompt;
}
} else {
// Fallback: use schema to map generic input names to model-specific parameter names
const { paramMap, arrayParams } = getInputMappingFromSchema(schema);

Loading…
Cancel
Save