Image Studio: default base model → huihui_ai/qwen3.5-abliterated:9b

Re-imports of image_studio.json kept reverting the base model back to
mistral-nemo:12b because that was still hard-coded in the JSON.
Updated the JSON, the markdown setup table, and the vision-capability
section to lead with the Qwen 3.5 abliterated 9B preset.

Re-ordered the markdown's vision section: shipped default first
(Qwen 3.5 abliterated, with the /no_think + enable_thinking caveat
called out explicitly), alternatives (qwen2.5vl:7b, llama3.2-vision,
minicpm-v) second, non-vision fallback third.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-04-19 14:22:13 -05:00
co-authored by Claude Opus 4.7
parent 0b1c2ee5b5
commit a1fca4d5d9
2 changed files with 29 additions and 28 deletions
@@ -1,7 +1,7 @@
[
{
"id": "image-studio",
"base_model_id": "mistral-nemo:12b",
"base_model_id": "huihui_ai/qwen3.5-abliterated:9b",
"name": "Image Studio",
"params": {
"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.30.5 for subtle changes (recolor, style transfer) and 0.851.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.",
@@ -38,7 +38,7 @@ prompts. Verify after import:
| Field | Value |
| ----- | ----- |
| Name | `Image Studio` |
| Base Model | `mistral-nemo:12b` (best tool-caller in this stack) |
| Base Model | `huihui_ai/qwen3.5-abliterated:9b` (vision-capable, 256K context, abliterated). Pull via `init-models.sh` first. |
| Description | `Image generation and routing across SDXL checkpoints.` |
| System Prompt | Paste the block from [System prompt](#system-prompt) below. |
| Tools | enable **only** `smart_image_gen` |
@@ -107,41 +107,42 @@ ignore it). Drop it only if it actually causes problems.
The shipped preset sets `meta.capabilities.vision: true` so Open WebUI
allows users to attach images to chats with this model. Two paths:
### Quick path — non-vision LLM with vision flag enabled (default)
### Default — `huihui_ai/qwen3.5-abliterated:9b`
`mistral-nemo:12b` isn't a vision model. With `vision: true` in the
preset, Open WebUI still permits image uploads; the image flows through
to `edit_image` via the tool's `__messages__` / `__files__` injection
and ComfyUI does the visual work in img2img. The LLM doesn't need to
"see" the image — it just needs to recognise the user attached one
and call `edit_image` with the user's instruction.
The shipped preset uses Qwen 3.5 abliterated 9B as the base — vision-
capable, 256K context, no censorship hedging. Preseed via
`init-models.sh` (an `s3_pull` line is already in place; see
[Mirroring models to S3](../README.md#mirroring-models-to-s3) for the
mirror workflow).
Limitation: the LLM can't answer questions like "what's in this
image?" or "describe this" — it never sees pixels. Editing with an
explicit instruction works fine.
**Important Qwen 3.x quirk:** thinking mode is on by default and
breaks native function calling — the model "thinks" about how to use
the tool instead of just calling it. The shipped system prompt starts
with `/no_think` to suppress this. If the model still plans instead
of firing the tool, also set `enable_thinking: false` in **Advanced
Params → Custom Parameters** (API-level enforcement).
### Better path — actual vision-capable LLM
### Alternatives
Swap the base model to one that can see. Recommended Ollama tags:
If Qwen 3.5 isn't a fit (size, language preferences, abliteration
caveats), other vision-capable Ollama tags worth trying:
- `qwen2.5vl:7b` — small, modern, good vision
- `qwen2.5vl:7b` — smaller, no thinking mode, very reliable tool-caller
- `llama3.2-vision:11b` — Meta's vision variant, ~7 GB
- `minicpm-v:8b` — fast, capable, good for editing tasks
- `minicpm-v:8b` — fast, capable
Pull one via the Ollama init script or the Open WebUI model UI, then
edit Image Studio's Base Model field to point at it. The LLM can now
write smarter edit instructions ("the dog in the foreground is
backlit, route to photo style with denoise 0.5 to preserve the rim
light") and confirm what it sees before generating.
To swap, change `base_model_id` in `image_studio.json` (or the Base
Model field if you imported manually) and pull the model via
`init-models.sh` or the Open WebUI model UI.
To preseed automatically, add to `init-models.sh`:
### Non-vision base model
```sh
ollama pull qwen2.5vl:7b
```
Then change `base_model_id` in `image_studio.json` (or the Base Model
field if you imported manually) to `qwen2.5vl:7b`.
If you'd rather use a text-only LLM (e.g. `mistral-nemo:12b`),
keep `vision: true` in the preset so Open WebUI still permits image
attachments; the image flows through to `edit_image` via
`__messages__` / `__files__` and ComfyUI does the visual work. The
LLM can't see the image, but for explicit edit instructions ("change
the background to a sunset") that doesn't matter.
## Why this works when a generic chat model didn't