fix(canvas): 图片生成 - 按模型能力限制画布参考图数量

Co-authored-by: dyhhhhhqwer <1613203335@qq.com>
Original-PR: https://github.com/ddcat-ai/open-ai-canvas/pull/203
This commit is contained in:
dyhhhhh
2026-08-14 09:54:08 +08:00
committed by GitHub
parent 879a780167
commit fcfd4c4143
3 changed files with 14 additions and 4 deletions

View File

@@ -42,12 +42,13 @@ export async function runBackendCanvasGenerationTask({
metadata?: Record<string, unknown>;
onTaskCreated?: (task: GenerationTask) => void;
}) {
const normalizedReferenceImages = mode === "image" ? limitCanvasImageReferences(config, referenceImages) : referenceImages;
return runBackendGenerationTask({
projectId,
mode,
prompt,
config,
referenceImages,
referenceImages: normalizedReferenceImages,
referenceVideos,
referenceAudios,
mask,
@@ -57,6 +58,14 @@ export async function runBackendCanvasGenerationTask({
});
}
// Canvas references can include a scene frame plus multiple character turnarounds. Keep
// the earliest connected scene image when a provider accepts fewer images than the graph.
export function limitCanvasImageReferences(config: AiConfig, referenceImages: ReferenceImage[]) {
const maxImages = modelCapabilityConfigFor(config, config.model).image?.references.maxImages;
if (maxImages === undefined || maxImages < 1 || referenceImages.length <= maxImages) return referenceImages;
return referenceImages.slice(0, maxImages);
}
export { backendProviderConfig };
export function generationTaskMetadata(task: GenerationTask): CanvasNodeMetadata {