Image providers
What is painted
Character portraits at creation, inline scene art as the story moves, location pictures for new places, campaign covers, and world-pack art if you generate it. Battle maps, tokens, effects and the interface are painted on your device from shipped art and never need an image backend; without one, painted head-and-shoulders portraits for every race and class (masculine, feminine and neutral) stand in. At a table that plays in another language, the story text is rewritten into English inside the image job, since image models read English best.
The backends
| Backend | Needs | Where | Notes |
|---|---|---|---|
| OpenAI-compatible | A key | Apps: the Story AI OpenAI door lends its key. Server: Admin, Images, or OPENAI_IMAGE_API_KEY | No GPU. Pick an image model from the provider's list; blank means no pictures. Fast and slow request medium and high where supported. A campaign key covers that campaign's scene art and maps; covers and library portraits use the server's own key. |
| ComfyUI | The hardware and files needed by the selected model; an SDXL setup commonly needs about 8 GB of GPU memory | Server: Admin, Images, URL http://127.0.0.1:8188, choose an installed checkpoint or catalog model. Desktop app: the guided install, or the world's admin panel | Free and private. Choose a catalog model or installed checkpoint, including Z-Image Turbo; the server checks the files it needs and the setting supplies the style. The workflow, dimensions and sampling follow the chosen catalog model or checkpoint configuration. |
| FLUX worker (MFLUX on a Mac, SDNQ elsewhere) | The ultra-fast-image-gen worker on :7869 | Server: Admin, Images | FLUX.2-klein at four steps, 1024 long side, 2048 for slow, up to two reference images. |
| The agent | Codex (a ChatGPT plan) or Grok Build (SuperGrok or X Premium+), after a test picture | Server: Admin, Agent. Desktop app: Story AI, An agent you already have | No GPU and no key: the same subscription that tells the story paints portraits, scene art and maps. Offered only once one real image has succeeded; pictures count toward the plan's usage. Claude Code and opencode cannot paint. |
In the apps
The OpenAI door on the Story AI screen sets the image backend to OpenAI on the same key, and selects the image model when the key lists one clear recommendation; otherwise choose it in Admin, Images. Storytelling can work while pictures still need a model. The Local AI on this machine door on Windows and Linux offers Install image generation (ComfyUI): ComfyUI with Stable Diffusion XL on your GPU, about 15 GB including Python packages, 8 GB of graphics memory beside a local storyteller's, needing Python 3.10 to 3.14 and Git installed first. On a 16 GB card already running gpt-oss-20b there is little room left, so pictures from an agent or a key suit it better. Anything else (a ComfyUI already on your network, the FLUX worker) is set in the world's admin panel, account menu, Admin, Images.
Per campaign
The Settings tab has pictures on or off, their shape (landscape, portrait, square) and fast or slow. On a self-hosted server it can also pick the backend per campaign. An old or interrupted request shows Image tool requested with a Generate button, and any picture can be uploaded by hand wherever the AI would paint one.
Cost and speed
- OpenAI-compatible: billed by the provider for the model and quality chosen. Pictures are the expensive part of a session; fast quality or landscape-only keeps it down, and off costs nothing.
- ComfyUI and the FLUX worker: free, and as fast as the GPU. On a shared GPU a render is queued behind the Dungeon Master's turn and behind narration.
Checking
The Settings tab reports the campaign's real image capability. Placeholders can mean pictures are off, a model has not been chosen, or a backend is unreachable: check the URL (from Docker, host.docker.internal), that the selected ComfyUI model's files are installed, or that the key has credit. The ComfyUI reachability probe in the admin panel is administrator-only on purpose.