1.22.0
August 25, 2026
New Feature: Image Studio.
Ever thought to yourself: I need that perfect OC reference, and I have my API keys loaded up right here, but it's such a pain squeezing an image out of characters? Well, I certainly did.
Added Image Studio to the + menu — generate images and video directly, with no character involved. Built primarily around the Grok family! It supports every other image model the app offers, but we recommend Grok, especially its new Imagine Image 2.0, that was added to the app TODAY! It hits the holy trifecta of reference images, good output quality, and not being afraid of hot OCs. Go try it.
Generating
- Batching: Grok supports up to four images per press, each appearing the moment it finishes rather than waiting on the slowest.
- The aspect-ratio picker morphs to preview the shape being picked, and only offers ratios the selected model accepts. Quality and resolution controls appear only on models that use them.
- Grok and Gemini generations display a cost estimate under the controls before submission, priced from xAI's own table.
Video
- Switch the prompt bar to video for text-to-video, or press Animate on any image to make it the first frame of a clip. Duration, resolution, aspect, and sound are set on chips.
- Leaving the prompt empty lets Grok decide what happens in the shot. Typing something steers it.
- Clips render as background jobs with a live percentage. Leaving the page or closing the app does not cancel a render; finished clips land in your feed.
Results & Library
- Every result carries its full recipe — the prompt, the model, and every setting — one tap away, with copy buttons.
- Results can be reused as prompts, fed back in as reference images (up to three, from disk, from a character's visual references, or from any earlier result), favorited, or saved to your device.
- The Library keeps every generation, searchable by prompt text and filterable by favorite or type. Nothing generated here is swept up by the app's cleanup passes.
Failures & Prompting
- A generation blocked by a provider's content filter shows a dedicated "blocked by content policy" card with a Retry on it.
- Optional auto-refine switch lets the Content Refiner reword a blocked prompt and try once more on its own.
- Prompt enhancement can be set to off, always, or auto (auto expands short prompts only). Both the original and the enhanced prompt are kept on the result, and the enhancement instructions are editable like every prompt in this app.
New Feature: Worlds
Added Create World to the + menu. A world is a setting authored once and attached to any number of characters, replacing the practice of pasting the same lore into five lorebooks and indexing it five times.
- A world is authored like a character card — a lorebook split into entries, static lore that is always in play, the same taxonomy tags with the same Auto-Generate button — and gets its own knowledge graph, browsable in the Archival Scholar and the constellation.
- Attaching a world copies nothing. The character reads the world's lore live, so an edit to the world reaches every character using it with no re-import.
- A character's own lorebook KG fuses on top of the world's rather than beside it, so a world figure a character has a private take on does not appear twice.
- The world itself is never written to. Anything a character changes becomes that character's own copy, so the same world dropped into somebody else arrives exactly as authored.
- Detaching keeps the lore a character actually fused; the world's own entries stop appearing. Deleting a world lists the characters using it first.
- Build it for me: a line of direction — "a drowned Victorian city where the tide is a law" — drafts four different settings to choose between, rerolls included, and the chosen one is built out in full. It only fills fields left empty.
- Worlds can be shared as a file. Lore, cover, and the fully indexed graph travel together, so the recipient does not pay to re-index lore that has already been read.
- Worlds sync between your devices like characters do, cover art included.
One slow first sync after this update. Worlds change how devices compare libraries, so the first time each pair connects they perform one full comparison instead of the usual quick check. On a large library that is a few minutes and a lot of traffic, once. Every connect after that is back to normal.
New Feature: First Message
Added First Message — an opening post a character carries, used to begin every new timeline with them instead of starting on a blank screen.
- Written at the bottom of the character card, by hand or with Write it for me, which reads the character's own card so the opening sounds like them rather than like a description of them. Guidance can be left blank.
- The opening is a real message: the character remembers it, it can be recalled later in the story like anything else, and it can be edited, regenerated, or deleted like any other post.
- Multiple openings put arrows under the first post — swipe to pick which scene the timeline starts on.
- The switch is a mute, not a delete: turning it off stops new timelines using the opening but keeps the text.
- Group chats always start empty.
SillyTavern Import
- Opening messages are no longer discarded. It now arrives intact, word for word, switched on and ready, with alternate greetings as the swipe options above it.
- The opening is copied across untouched rather than passed through the converter, so its wording, formatting, and pacing are not rewritten.
{char}and{user}from the original card are converted to this app's spelling. However, SillyTavern's native spelling should function just fine.
Web Search
Characters can look things up mid-conversation.
- Search runs on four surfaces, each with its own switch: the main timeline, Backstage, Live Chat, and the Narrator. The main timeline and the Narrator start off. The Narrator uses at most one search per scene evaluation, so it can check a fact before directing around it.
- A character who looked something up gets a green shimmer and a globe on their name. Long-press the message (right-click on desktop) for "What they looked up" — the exact searches they ran and the sources they used, with tappable links.
- Characters write their own notes on what they found, on the turn they search (since persisting search results is impossible - they are kept server-side and never exposed via API). The notes stay on that message for as long as it exists, so a fact looked up once is still there when the story circles back weeks later — in the conversation, and in memory recall on the main timeline. They appear under the sources in "What they looked up".
- Characters actually search instead of pretending to. Models left to their own devices roleplay the lookup — "hang on, googling it" — and then invent the answer. A nudge now licenses the tool in plain terms: asking them to look something up ("can you google X", "look it up") is an always-honored cue, anything real and current is fair game, and claiming to have checked without checking is forbidden outright.
- Gemini gets the full search suite: alongside Google Search it can open and read the pages it finds — and links you paste — instead of settling for result blurbs.
- A quiet "looked something up" line appears the moment a search happens.
- Requires no new account and no new key — it runs on Google, xAI, Anthropic, or OpenRouter. If the chat model can search by itself it does; otherwise a second, cheap search-capable model searches for it and hands it the report, which lets even a local model look things up. On Windows, Claude Code does it on your existing subscription.
Web Search Settings
- The settings say in plain words which provider a search would actually use and what it costs, before anything is turned on.
- Searches per reply and findings per search go up to 25 each — a character can chase a topic as far as it needs to and stops on its own — and a list of sites never to read from is configurable. Every search-related instruction is an editable prompt.
- The sidecar model picker only offers models that can actually search.
Lore Research
Added a Research lore for me button above the Lorebooks field on a character card. Name a subject that already exists — Lady from Devil May Cry, a noble house of GoT, an entire worldbuild — and it reads up on it and writes what it found straight into the lorebook.
- Nothing is summarized, trimmed, or rewritten on the way in, and nothing already written is touched — findings are added below.
- Deep Research (requires a paid Google key) plans its own investigation, runs well over a hundred searches, and returns a properly cited report. It costs real money per run, so the price and the likely wait are shown before it starts.
- Research runs on Google's side, so the card, the app, or the phone can be left. A blue ring on the character's portrait means it is still running, and a notification opens their card when it lands.
Lazy Creator
- Added dismiss-with-reason. Turning down one concept or all four now asks what was wrong with it — "almost, but make her older", "less noble, more feral", "wrong century" — and the redraw is told to treat that as a correction and keep what was working. An empty box redraws blindly as before; canceling discards nothing.
- The Lazy Creator now reads an attached world in full — places, factions, history, rules — and offers people who live there, with a faction they owe or a city they fled. A line under the button indicates when this is happening.
- With a world attached it is given different instructions: do not invent nations or magic systems, do not re-explain the setting, spend the character's lorebook on the character. Both instruction sets are editable under Settings → Services.
- Added an opt-in checkbox for your persona, remembered between runs. It is used to give the character somewhere to touch — a trade, a grudge, a gap you could walk into — and is explicitly forbidden from writing you into their history.
Models & Providers
Model Family
- Added a Model family picker under Primary Provider for OpenRouter, NanoGPT, and relays. Claude, Gemini, GPT, and Grok are selectable, and every model the app has not been told about follows that family. The provider does not change; only the models behind it do.
- The card lists the actual model each tier lands on — NanoGPT · Gemini 2.5 Pro rather than a guess.
- Each family sends writing and analysis to different models: the flagship rated for prose goes on the story slots (Gemini 2.5 Pro, Opus 4.6) and the more literal successor goes on the knowledge graph and the Chronicler. The card spells out which is which.
- Fixed an issue where the cheapest NanoGPT tier pointed at a Claude Haiku name NanoGPT does not serve, failing background jobs on a NanoGPT key. Its Gemini and Grok names were wrong as well; all are now checked against the live model lists.
- Models picked by hand are never moved by a family switch. The Apply … to all slots button, now named after the selected family, sweeps everything over when that is wanted.
Model Lists
- Gemini models are now hidden from the model dropdowns when no Gemini key is present, since they could only ever fail. Nothing already chosen is changed or lost.
- Added Show Gemini models anyway to the Providers & Keys page, right where they went missing.
- Voice transcription is untouched and keeps the full list, since it needs a Gemini model to hear you.
Models That Cannot See
Characters send their appearance pictures with every message. Until now only a local model could be spared them, so a text-only cloud model like GLM failed the turn with an error you had to decode.
- The app now reads vision support straight from the catalog when you press Fetch for Anthropic, OpenRouter, NanoGPT, and xAI.
- For providers that publish nothing — Z.ai, custom endpoints, anything self-hosted — the app learns from the first
cannot process images error: it strips the images, sends the message again on its own, and says so in the chat. There is no second failed turn. - Major models that are multimodal by nature — Gemini, Claude, GPT-4o and newer — are never in doubt, and are thus excluded from the self-learning blacklist.
- When pictures are left out, the notes referring to them are removed as well, so a blind model is no longer told about a photo it never received and left to invent what was in it. The character's written Visual Appearance is used instead.
- Settings → Providers & Keys now lists every model treated as blind and why: reported by the provider, learned from a refusal, or set by you. Anything learned can be forgotten with one tap, and any model can be set by hand either way.
- The crossed-eye mark now appears in the model list when models are fetched, not only after one has been picked.
- The "drop images for models that cannot see" switch moved from Local AI to Providers & Keys, as it now covers every provider. Existing choices carry over.
- Fixed an issue where a character on a blind model would offer GIFs and memes — which means looking at candidates — and would stall reviewing a photo it could not see, holding up selfies.
- Fixed an issue where the "pictures were left out" note was written into the conversation as a message from the character, saving it to your log and reading it back to the model on later turns. It now appears once per model as a transient notification and stays out of the chat.
- Live Chat now reports when pictures were left out of a message. It had been doing it silently.
- The game watcher now warns outright if its model cannot see images, rather than narrating a playthrough it never watched.
- Fixed an issue where a message too large to send was re-sent without its images but kept the notes pointing at them.
Temperature
- Fixed an issue where GLM refused every message when Temperature was above 1. Z.AI only allows 0–1, and routing through OpenRouter forwards the value rather than softening it. The app now knows each model's real ceiling, shows the slider only that far, and sends the highest value the model actually accepts instead of failing the turn.
- The same fix covers Claude on its own API, which has always been limited to 1.
- Saved Temperature belongs to the slot rather than the model, so switching a slot to a stricter model no longer breaks the very next message.
Gemini
- Everything that used Gemini 3.5 Flash now uses Gemini 3.7 Flash — writing, memory, the knowledge graph, Live Chat, alarms, the game watcher. It is the current version of the same model at the same tier. Anything picked by hand stays exactly where it was put.
- Added Gemini 3.7 Flash, Gemini Flash Latest, and Gemini Pro Latest to the model list. The floating options always point at Google's newest release, and are deliberately not the defaults: Google can swap them to a preview or experimental version with tighter rate limits on two weeks' notice.
- Fixed an issue, before anyone could hit it, where models from a future Gemini generation would have quietly lost their thinking settings and stopped reporting their reasoning, with the thinking controls simply vanishing from the settings page.
Memory & Knowledge Graph
- Improved embedding effectiveness of gemini-embedding-2 with new TaskTypes.
- Fixed an issue where the indexer could merge two related entities into one — an ancestor and her descendant sharing a name, a title, and a bloodline were folded together despite the relationship between them already being recorded.
- Entities with any relationship at all, will never be merged automatically. Nothing is related to itself, so a recorded relationship is the graph stating outright that these are two beings.
- This covers both the automatic cleanup and the AI auditor. Folds you perform yourself are untouched.
- A refused merge is written to the debug log with the relationship that blocked it. Duplicates it declines to fold stay visible and can still be merged by hand — the reverse mistake could not be undone.
Mobile
Text Editing
Every writing surface was a popup dialog, which is unpleasant to write on.
- Text editors are full pages on phones now — editing a message, writing a redraw note, leaving instructions for the concept artist, renaming a timeline, writing a Narrator note, filling in a Life Profile, setting up lore research, interjecting mid-generation, and sending a crash report. The back gesture closes them like anything else.
- The War Room is a real page rather than a window pretending to be one, so it sits below the status bar properly and the back gesture closes it instead of whatever was behind it.
- Fixed an issue where several Save buttons silently ignored a press when a required field was empty. They are greyed out instead.
- Wide windows are unchanged and keep the compact dialogs — there is no keyboard covering anything, and a full-screen takeover would hide the panes being written against.
Prompt Editing
- Long-pressing any prompt on a phone opens a menu with its name at the top: edit it, copy its text, or restore just that one to default. Nothing else on the page moves.
- Added a Restore button to the prompt editor's top bar, on phone and desktop alike. It appears only when the prompt differs from the default, and it does not save on its own — the default drops into the editor to be read, typed over, or backed out of.
- Copy sits above Restore on purpose: once a prompt is restored, the version you wrote is gone.
- The 9px dot beside an edited prompt's name stays, but only as a marker for "edited". It was never a button worth hunting for.
Appearance
- Light Academia's highlight color is terracotta now. The greens were unreadable, causing bad user experience.
Settings
- Fixed the What's New page opening on "No notes shipped with this build" immediately after an update — the one moment the page exists for. Each release's notes ship inside the build they describe, and the page reads them there.
- Every Upload .txt button — character card, persona, group chat primers, system instructions — now accepts
.txt,.md,.markdown, and.text, and is labeled Upload text. The files were only ever read as plain text, so greying Markdown out in the file browser bought nothing and blocked the format most written lore arrives in.
Stability
Android Background
- Fixed an issue where a fault during a background wake-up — a check for whether a character should text you, an alarm keeping time — took the entire app down with it while it was not on screen. Android would restart it a few seconds later, it would fail the same way, and go down again. A failure now costs that one wake-up. The alarm, timer, and background-messaging paths all survive a fault.
- Fixed an issue where a timer finishing on a phone with a silent-ringtone profile or a wiped default alarm tone killed the app. Timers now ring silently and still show the timer screen.
Ember Scorch
- Fixed an issue where changing almost any setting — mark strength, a theme, a font size — while an Ember Scorch misspelling mark was burning killed the app to a red error screen.
- Fixed an issue where switching marker style away from Ember Scorch while a word was burning left the sparks frozen on screen until restart. They now go out immediately.
- Fixed an issue where sparks lingered over a screen you had left — switching characters, opening a timeline, or closing a pane mid-burn.
- Fixed an issue on multi-monitor desktops where dragging the window to a display with different scaling left the embers rendering at the old resolution.