From 8dff43481f6f78aacc85cc41a7f3fcaaa7ea74f2 Mon Sep 17 00:00:00 2001 From: Gabe Date: Wed, 8 Apr 2026 14:56:36 -0500 Subject: [PATCH] fixes --- node.py | 22 +++++++++++++--------- 1 file changed, 13 insertions(+), 9 deletions(-) diff --git a/node.py b/node.py index 8bdb1ec..c694768 100644 --- a/node.py +++ b/node.py @@ -329,15 +329,19 @@ class OpenRouterNode: "seed": seed } - # Always enable image+text modalities and send image_config - data["modalities"] = ["image", "text"] - # Extract size value from dropdown label (e.g. "0.5K (flash only)" -> "0.5K") - image_config = {"image_size": image_resolution.split(" ")[0]} - if aspect_ratio != "auto": - # Extract ratio from dropdown label (e.g. "16:9 (1344x768)" -> "16:9") - image_config["aspect_ratio"] = aspect_ratio.split(" ")[0] - data["image_config"] = image_config - print(f"Payload: modalities={data['modalities']}, image_config={data['image_config']}, model={modified_model}") + # Only request image modality for image-capable models. Text-only models + # (e.g. hermes, gemini-2.5-flash) return 404 if asked to output images. + if is_image_model: + data["modalities"] = ["image", "text"] + # Extract size value from dropdown label (e.g. "0.5K (flash only)" -> "0.5K") + image_config = {"image_size": image_resolution.split(" ")[0]} + if aspect_ratio != "auto": + # Extract ratio from dropdown label (e.g. "16:9 (1344x768)" -> "16:9") + image_config["aspect_ratio"] = aspect_ratio.split(" ")[0] + data["image_config"] = image_config + print(f"Payload: modalities={data['modalities']}, image_config={data['image_config']}, model={modified_model}") + else: + print(f"Payload: text-only, model={modified_model}") # Add plugins if a specific PDF engine is selected if pdf_engine != "auto":