From 944a220939c645d17f5e5f6bd1ceb87e4e41a9ff Mon Sep 17 00:00:00 2001 From: Codex Date: Sat, 19 Sep 2026 14:46:26 +0800 Subject: [PATCH] fix: force text model for list mode to avoid image model rejection --- fix_text_model.py | 17 +++++++++++++++++ web/src/pages/canvas/list-mode-generator.ts | 8 +++++++- 2 files changed, 24 insertions(+), 1 deletion(-) create mode 100644 fix_text_model.py diff --git a/fix_text_model.py b/fix_text_model.py new file mode 100644 index 000000000..647666b61 --- /dev/null +++ b/fix_text_model.py @@ -0,0 +1,17 @@ +path = r"D:\yingce\open-ai-canvas-main\web\src\pages\canvas\list-mode-generator.ts" +with open(path, "r", encoding="utf-8") as f: + content = f.read() + +old = ''' const listConfig = buildGenerationConfig(config, sourceNode, "text");''' +new = ''' // Force text model: strip node.metadata.model so buildGenerationConfig uses config.textModel + const sourceNodeForConfig = { ...sourceNode, metadata: { ...(sourceNode.metadata || {}), model: undefined } }; + let listConfig = buildGenerationConfig(config, sourceNodeForConfig, "text"); + // Explicitly set model to the configured text model + if (config.textModel) { + listConfig = { ...listConfig, model: config.textModel }; + }''' +content = content.replace(old, new, 1) + +with open(path, "w", encoding="utf-8") as f: + f.write(content) +print("done") diff --git a/web/src/pages/canvas/list-mode-generator.ts b/web/src/pages/canvas/list-mode-generator.ts index 15a21bc8e..f5de40f12 100644 --- a/web/src/pages/canvas/list-mode-generator.ts +++ b/web/src/pages/canvas/list-mode-generator.ts @@ -95,7 +95,13 @@ export async function handleListGenerate({ setRunningNodeId(sourceNodeId); try { - const listConfig = buildGenerationConfig(config, sourceNode, "text"); + // Force text model: strip node.metadata.model so buildGenerationConfig uses config.textModel + const sourceNodeForConfig = { ...sourceNode, metadata: { ...(sourceNode.metadata || {}), model: undefined } }; + let listConfig = buildGenerationConfig(config, sourceNodeForConfig, "text"); + // Explicitly set model to the configured text model + if (config.textModel) { + listConfig = { ...listConfig, model: config.textModel }; + } const referenceImages = imageNodes.map((node) => ({ id: node.id,