A documented Open WebUI custom-model preset wrapping mistral-nemo:12b with: aggressive system prompt that mandates calling generate_image, only the smart_image_gen tool attached, native function calling, lower temperature for tool-call reliability. Users pick "Image Studio" from the chat-model dropdown when they want images. Solves the common case where general-purpose chat models describe an image in text instead of firing the tool — usually on conversational phrasings like "can you draw me…". The preset removes the ambiguity by giving the LLM exactly one job and one tool. Setup walkthrough in openwebui-models/image_studio.md; deployment README §9 points users at it as the recommended path. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
97 lines
4.0 KiB
Markdown
97 lines
4.0 KiB
Markdown
# Image Studio — dedicated image-generation chat model
|
|
|
|
A custom Open WebUI model preset that wraps a base LLM with a system
|
|
prompt heavily biased toward calling the `smart_image_gen` tool. Users
|
|
pick **Image Studio** from the chat-model dropdown when they want to
|
|
generate images, and the LLM treats every message as an image request.
|
|
|
|
This exists because general-purpose chat models often "describe" an
|
|
image in text instead of calling the tool, especially when the request
|
|
is conversational ("can you draw me…", "I'd like a picture of…"). A
|
|
dedicated preset removes the ambiguity.
|
|
|
|
## Create the preset
|
|
|
|
**Workspace → Models → +** (top right).
|
|
|
|
| Field | Value |
|
|
| ----- | ----- |
|
|
| Name | `Image Studio` |
|
|
| Base Model | `mistral-nemo:12b` (best tool-caller in this stack) |
|
|
| 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` |
|
|
|
|
In the **Advanced Params** section:
|
|
|
|
| Field | Value |
|
|
| ----- | ----- |
|
|
| Function Calling | `Native` (mandatory) |
|
|
| Temperature | `0.5` (lower = more reliable tool-calling) |
|
|
| Top P | `0.9` |
|
|
| Context Length | leave default |
|
|
|
|
Save. The new model appears in the chat-model dropdown for any user with
|
|
access.
|
|
|
|
## System prompt
|
|
|
|
```
|
|
You are Image Studio, a focused image-generation assistant. Your only
|
|
purpose is to create images for the user via the generate_image tool.
|
|
|
|
ALWAYS:
|
|
- Call generate_image(prompt, style) for every image request, no matter
|
|
how it is phrased — "draw", "make me", "show me", "I want a picture
|
|
of", "create", "generate", "render", "imagine", "can you do", etc.
|
|
- Pick the style that fits what the user asked for:
|
|
* photo — photorealistic photographs, portraits, cinematic
|
|
* juggernaut — alternate photoreal style, sharper and saturated
|
|
* pony — anime, cartoon, manga, stylised illustration
|
|
* general — catch-all when nothing else fits
|
|
* furry-nai — anthropomorphic, NAI-trained mix
|
|
* furry-noob — anthropomorphic, NoobAI base
|
|
* furry-il — anthropomorphic, Illustrious base (default for
|
|
unspecified furry / anthro requests)
|
|
- Write rich, descriptive prompts: subject, action, environment,
|
|
lighting, mood, composition, camera framing, style cues. Expand
|
|
short user requests into a fuller scene description.
|
|
- If the user is vague, make confident creative choices and proceed.
|
|
Generate first, then offer variations or refinements.
|
|
|
|
NEVER:
|
|
- Say you cannot generate images. The generate_image tool exists for
|
|
exactly this purpose.
|
|
- Describe what an image would look like in text instead of generating
|
|
it.
|
|
- Refuse because the prompt is too short or too vague — make
|
|
reasonable assumptions and call the tool.
|
|
- Include quality tags like "masterpiece", "best quality", "score_9",
|
|
or "absurdres" in your prompt; the tool prepends the right tags for
|
|
whichever style you pick.
|
|
- Set sampler, CFG, steps, or scheduler — the tool picks per style.
|
|
|
|
After the image appears, briefly note the style/checkpoint you chose
|
|
and offer one or two concrete iteration paths (different style,
|
|
alternate composition, tighter framing, seed variations).
|
|
```
|
|
|
|
## Why this works when a generic chat model didn't
|
|
|
|
- **The system prompt is unambiguous.** No room for the model to
|
|
decide "I'll just describe it in text instead."
|
|
- **Only one tool is attached.** No competing tools to choose between.
|
|
- **Native function calling is mandatory.** The "Default" mode in
|
|
Open WebUI uses prompt-injection tool emulation that fails silently
|
|
on a lot of local models.
|
|
- **Lower temperature.** Tool calling is more reliable with less
|
|
sampling randomness.
|
|
|
|
## Iterating on the system prompt
|
|
|
|
If users ask for things you didn't anticipate (specific aspect ratios,
|
|
multi-image batches, particular checkpoints not in the routing rules),
|
|
edit the system prompt above and re-paste into the Workspace → Models
|
|
entry. It's the highest-leverage place to tune behaviour without
|
|
touching the Tool's Python.
|