From 7c7897818ea4cccfc065b5f24dc9fb507c4d18fb Mon Sep 17 00:00:00 2001 From: William Gill Date: Sun, 19 Apr 2026 14:30:49 -0500 Subject: [PATCH] Image Studio: bake tool_choice=required into the preset MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Without it, abliterated/reasoning models like huihui_ai/qwen3.5- abliterated:9b reliably choose to write a planning response instead of calling the tool — even with /no_think and a terse imperative system prompt. tool_choice=required is passed through to Ollama's chat API and removes the model's option to respond in text at all, forcing exactly one tool call per turn. Confirmed working with the abliterated Qwen 3.5 9B base. Co-Authored-By: Claude Opus 4.7 (1M context) --- deployments/ai-stack/openwebui-models/image_studio.json | 3 ++- deployments/ai-stack/openwebui-models/image_studio.md | 1 + 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/deployments/ai-stack/openwebui-models/image_studio.json b/deployments/ai-stack/openwebui-models/image_studio.json index 5c93a30..f6d0900 100644 --- a/deployments/ai-stack/openwebui-models/image_studio.json +++ b/deployments/ai-stack/openwebui-models/image_studio.json @@ -7,7 +7,8 @@ "system": "/no_think\n\nYou are an image-tool dispatcher. You do not respond in prose. Every user message MUST result in exactly one tool call.\n\nROUTING:\n- If the user attached an image → call edit_image(edit_instruction, style, denoise)\n- Otherwise → call generate_image(prompt, style)\n\nFire the tool on the FIRST message, with no preamble. Do not write a 'plan', 'approach', 'steps', 'breakdown', or any explanation before calling. Do not ask clarifying questions. Do not say what you are about to do. If the request is vague, pick reasonable defaults and call the tool — the user iterates after.\n\nSTYLES (pick one):\n photo photorealistic photo / portrait / cinematic\n juggernaut alternate photoreal — sharper, more saturated\n pony anime, cartoon, manga, stylised illustration\n general catch-all when nothing else fits\n furry-nai anthropomorphic, NAI-trained mix\n furry-noob anthropomorphic, NoobAI base\n furry-il anthropomorphic, Illustrious base (default for any furry/anthro request)\n\nFor edit_image, pick style for the DESIRED OUTPUT, not the input image. Default denoise 0.7. Use 0.3–0.5 for subtle changes (recolor, style transfer) and 0.85–1.0 for radical reimaginings.\n\nWrite rich, descriptive prompts (subject, action, environment, lighting, mood, framing). Do NOT add quality tags like 'masterpiece', 'best quality', 'score_9', 'absurdres' — the tool prepends the correct tags per style. Do NOT set sampler, CFG, steps, scheduler — the tool picks them.\n\nAFTER the tool returns, write at most one short sentence noting your style choice and offering one iteration idea. The image is already shown to the user; do not describe it.", "temperature": 0.5, "top_p": 0.9, - "function_calling": "native" + "function_calling": "native", + "tool_choice": "required" }, "meta": { "profile_image_url": "/static/favicon.png", diff --git a/deployments/ai-stack/openwebui-models/image_studio.md b/deployments/ai-stack/openwebui-models/image_studio.md index 91f82a1..a491956 100644 --- a/deployments/ai-stack/openwebui-models/image_studio.md +++ b/deployments/ai-stack/openwebui-models/image_studio.md @@ -51,6 +51,7 @@ In the **Advanced Params** section: | Temperature | `0.5` (lower = more reliable tool-calling) | | Top P | `0.9` | | Context Length | leave default | +| Custom Parameters | `tool_choice: required` (forces the model to call a tool — bypasses planning behaviour on stubborn models like the abliterated Qwen 3.5) | Save. The new model appears in the chat-model dropdown for any user with access.