What’s new in Underfiction

Pick up a story that began somewhere else

The new-story form takes a Story so far: what happened before the first scene, read by the engine on every turn, exactly as written. The form says what that length adds to each turn on the model you chose, and the call is yours; Condense boils a long prehistory down to its facts, and you read and edit the result before you begin. On the phone, Import now sits beside the plus on the Characters and Worlds shelves, and the import in Settings takes a character card or a world book as readily as a story file. Fixes throughout.

A deleted story comes back from its file

Import an archive of a story you deleted and it comes back as a restored story, its world and characters with it. Before, the import kept the deletion and showed neither copy. Add a community card again after deleting it and every device lands on the same copy. On the web, Edit and Illustrate sit in the phone action row, and a feedback draft survives closing Settings. Fixes throughout.

Your own tags, and one switch for every shelf

Characters take tags of your own now, edited in a row under the name, with your library's tags offered as you type, and the Characters shelf filters by them one tap at a time. The shelf's search and its tags open from one control. Library, Underfiction and Community sit on one switch, and Community can be searched by name and tag. Call the narrator out and it says what the text did, claims no motive, and commits to a rule it saves as an agreement; its answer is set like the direction it answers. While you type, the story stays in view right down to the composer, and the jump-to-bottom arrow no longer appears just because the keyboard opened. Fixes throughout.

Pictures that act like turns, and fields that say when they're full

Picture and clip turns now carry the same actions as prose, with Add to backgrounds beside Animate. Long descriptions, personalities and greetings show a counter as they near their limit, and sharing names the field to shorten instead of failing. Out of credits or signed out, the message itself offers Top up or Sign in. Pictures you add to a character or world reach your other devices right away, and an open tab picks up what another device added before you edit. Deleting a background asks first. Switching between versions of a turn keeps your place, and the page no longer runs blank while a reply writes. Fixes throughout.

Frame the picture, see what each turn cost

An illustration now takes a frame: portrait, square or landscape, remembered with its style. The switch between story, image and video stands above the composer at rest, so images and clips are never more than a tap away. Show turn costs, in Settings, writes what each turn cost beneath it. The price beside each model now follows what a typical turn on it really costs, and the pricing page explains credits from the ground up. A turn the length limit cuts short is no longer billed. On the web, the reader gains a wider reading column and three prose text sizes. Scrolling stays smooth while a reply streams, Settings and the model sheets open complete, and fixes throughout.

Choose the model where the story begins

The model that writes your story is now chosen on the setup form, beside Begin, with the same name and version pills the composer has; Settings is no longer the only way to it. The price beside each model is what an average turn on it costs, in credits, and the footnote says so: it depends on the story and on how long the reply runs. Your balance holds steady while a turn is being written; it used to dip by a provisional amount and spring back when the turn settled. A model without a version shows no empty version pill. Fixes throughout.

Muse Wonder and Gemini 4 Argon join, GPT and Inkling leave

Muse Wonder joins the model picker and tops the shortlist as best overall. It writes consensual sex and graphic violence and says no, in its own words, to coerced sex. Gemini 4 Argon joins as a family of its own rather than the next Gemini Pro: it refuses explicit sex where Pro writes it, and still writes violence. GPT 6.1 Sol and Inkling leave the picker on usage; turns already written on them keep their names in the log. The shortlist is Muse, Gemini Pro and DeepSeek.

A smaller ceiling on invites

An invite still earns you 30% of every top-up the person you invited makes, and the lifetime ceiling per invited reader is now 1,000 credits. Anyone you invited before today stays on the 5,000 they joined under. The 200 credits an invited reader starts with on top of the welcome grant are unchanged.

Reading aloud plays on iPhone

Reading a passage aloud never played on iPhone; it does now. On every device a reading gets the same bar under the scene: time elapsed over the total, with pause and stop side by side. Listen on a turn opens its sheet, which is also where a reading starts over. Two new voices join the lineup for reading aloud. On Android, the story settings sheet comes down under a drag instead of springing back. Fixes throughout.

Pictures land where you pressed

An illustration or a clip used to land wherever the scene had reached when it finished, so one pressed before you sent a line came back between that line and its reply. Now a press holds its place at the end of the scene at once, the picture fills in there, and a scene reads in the order you asked for things. The render runs on the server and the finished file syncs, so a clip still rendering when you close the app, or open the story on another device, is waiting when you come back. A turn keeps writing when you leave the reader or the app; only Stop ends it, and a Stop pressed before the server has answered reaches the turn and bills nothing. A turn cut off by a lost connection or a closed app is picked back up instead of asked for and paid for twice, and a reply that dies mid-stream keeps the prose already shown. Edits and deletions hold across devices, including one whose clock runs behind. The image and video pickers on every platform price each model in its row. On iPhone, spacing and icons follow your text size, and VoiceOver reaches what it used to miss. The library shelves sit tighter, and a character's portrait keeps its tile square. Fixes throughout.

Flux 3 draws, Seedance 2.5 animates

Flux 3 joins the models you can illustrate on, at twelve credits a picture. It keeps close to what you ask for, down to the medium: an oil painting comes back as an oil painting, an ink drawing as ink. It sits behind a filter that lets a battlefield through and turns a nude away. Seedance 2.5 joins the models you can animate on: four to fifteen seconds, up to 1080p, sound on every clip. It moves a painted or drawn picture and refuses a photographic one with a person in it, so it is the model for illustrated scenes; a clip it refuses costs nothing. Five seconds at 720p come to two hundred and eighty-eight credits, against fifty-eight on MiniMax H3 Max, which stays the default.

GPT moves to 6.1

GPT 6.1 Sol takes the GPT slot in the model picker at a quarter of Astra's price: three credits per thousand characters, against fifteen. The 1M context is unchanged. If GPT was your model, it still is; turns already written on GPT 6 Astra keep its name in the log.

The send button holds its place

On a narrow Android phone the composer could run out of room: the model's name and its version took the whole row, the send button was squeezed out of it, and a scene could not take its next turn. The send button now keeps its size whatever stands beside it, and a long model name shortens instead. In the composer on a phone, Gemini Pro and Gemini Flash read G Pro and G Flash; the model list still spells them out.

DeepSeek's version is a number

The version beside a model's name is a number and nothing else, so DeepSeek's reads 4.1. V4 Pro leaves the versions you can keep DeepSeek on: it was a different model rather than an earlier release of the same one. If you had kept DeepSeek on V4 Pro, your next turn is written on 4.1 and the scene says so once. Turns already written on V4 Pro keep its name in the log.

Two hundred credits to begin

A new account starts with 200 credits, and a reader who arrives through an invitation starts with 400. Before it asks for an account, a story runs four turns. On the web, the three packs sell at one rate, a cent a credit: 500, 2,000 and 10,000, the same as in the apps. The bonus credits on the larger two are gone. Credits already in an account stay where they are, and the loyalty bonus is unchanged.

Every turn keeps its own notes

A long scene used to stop now and then while a second pass condensed its older turns into a summary, and when that pass failed the scene could stall behind it. Now each turn writes a few notes on itself as it goes — what happened, what was decided or revealed, how the people changed toward each other — and a long scene reads its older turns through them. The model that wrote a turn notes it, nothing waits on a condensing step, and the notes are billed with the turn they belong to; scene summaries stay free. A model that thinks before it writes can now think as long as it needs, and while it does the turn shows for how long, so a four-minute think no longer reads as a hang. A starter opens in the scene setup with its world, its leads and a short premise, every field yours to change before the opening is written, in every language the app speaks. The model control splits into the family and its version: leave it on the newest, or keep a model on the exact version you chose until its provider retires it. On the web, credits come in packs, with bonus credits on the larger two, and the image and video prompts stay in their fields after you send them, so another press is another take. Fixes throughout.

New pictures, new clips

Qwen Image 3 Pro is the new default for illustrations: it draws the dark scenes up close where Seedream kept its distance, and costs a little less. Muse joins at four credits a picture and GPT Image 2.5 for the finest detail, both behind a strict filter. To animate, MiniMax H3 Max is the new default: sound on every clip, and now up to 1080p. Wan 3.0 takes over from Wan 2.7 for less, and Gemini Omni Flash takes Veo's place for cinematic shots at a quarter of the price. Seedream, Kling, Veo, Krea, Nano Banana 2 Lite and MiniMax Turbo leave the pickers. If Wan was your model, it still is; pictures and clips already made keep the name they were made on.

A story you direct from outside

A story can start on a world alone. Leave the protagonist empty and you are not in the scene: the composer says Narrate, every line you send is a direction, and the engine opens on the world and introduces people as it goes. Someone who wants to direct a story rather than appear in one no longer has to cast themselves first — on the web, on iPhone and on Android, and a story begun on any of them reads the same on the others. How long a turn runs is the narrator’s call by default. The length row says Dynamic where it used to say Standard and mean nothing, Short is gone, and Long Form names the shape of a long turn instead of a character count, which had been flattening every turn to the same size. Keeping the engine off your character is a choice now rather than a rule every story carried: it sits under Narration as Yours to Write, and a new story starts without it. The community shelf opens on everything, with one switch in Settings to close it again. And a story whose world and characters are written in German or Japanese opens in that language instead of English.

Opus moves to 5.5

Opus 5.5 takes the Opus slot in the model picker, and it costs a fifth less than Opus 5: six credits per thousand characters in the picker, against eight. The 1M context is unchanged. If Opus was your model, it still is; turns already written on Opus 5 keep its name in the log.

Grok moves to 4.7

Grok 4.7 takes the Grok slot in the model picker, and it now thinks before it writes. The old setting hurried it to the first line; reading whole scenes side by side, the deliberating version holds the room better, lets feeling arrive through a gesture instead of naming it, and stops tidying its own tension away. That costs time and credits: first prose lands in under a minute on a long chapter rather than half of one, and a thousand characters costs five credits where 4.6 cost two. Grok still holds a scene's language where 4.6 would answer German prose in English, still balks at least, and is still the one-tap retry when another model refuses a passage. The 500k context is unchanged. Grok now runs straight from xAI instead of through an intermediary, which is quicker and drops a system prompt that rode every turn; xAI sees the prose and never the reader, and the model picker's privacy badge says so. Turns already written on 4.6 keep its name in the log.

Roleplay, down to the character

Roleplay runs on the character and nothing else. The narration rules that used to ride every turn are gone — no perspective, no tense, no directions between you and the person you cast — and replies read closer to them for it. Setup follows: a line of context if you want one, and a greeting either of you can speak. The character's greeting opens the scene and waits; your own first line opens it and gets an answer; leave both empty and the engine opens the scene itself, rather than landing you on a blank page. Voice follows the greeting — write it the way you want to be spoken to. In a roleplay the composer's sheet holds the backdrop alone. And a character generated from a single line is written about them: the sheet no longer refers to whoever will play opposite. A brand-new library now opens on a first scene rather than the full form — your name, who you meet, where it starts, and an empty scene is one the engine opens by itself. It is offered once; the plus goes to the full form after that.

DeepSeek moves to V4.1

DeepSeek V4.1 Flash takes the DeepSeek slot in the model picker. On the same scenes it wrote cleaner prose than V4 Pro — fewer stock phrases, half the dashes — and it costs half as much: one credit per thousand characters in the picker, against two on V4 Pro. It thinks before it writes and keeps the 1M context. If DeepSeek was your model, it still is; turns already written on V4 Pro keep its name in the log.

Bug fixes

A story started from a character whose portrait still lived on the device carried a copy of that picture inside itself and sent it again with every turn — several megabytes per save on a phone, and a library that grew with pictures it already held. Portraits now travel once, to the same store as illustrations, and a story sends the address; stories you already have slim down the next time they save. Deleted stories are cleared on schedule after thirty days instead of waiting for the account to come back.

Publishing from the phone, and a lighter long chapter

A world or a character publishes to the community shelf from iPhone and Android now: a share row on the sheet says whether it is out and how many copies people have taken, the byline and the private links live in Settings, and a card of your own can be taken down. A community card opens in the character sheet or the world form you already know, read-only, with the byline and tags under the name. Shelf cards are the picture and the name; the author and the count wait on the card. A long chapter costs less per turn. The app summarises as soon as the recent prose passes the trigger instead of letting it run to sixty thousand tokens, sends the server only the turns it reads rather than the whole scene, and folds the memory of a chapter by size rather than by count, so a merge only ever sees enough to compress well — a merge that came back no shorter than it went in is discarded now, and the stack no longer grows behind it. The check that could wipe a scene's memory on open is gone. Import moved to Settings and the plus button just creates; on iPhone the reader's arrow interrupts a scroll it was fighting, and iOS 26 is the floor.

The shelf comes to the phone

The community shelf on iPhone and Android now does what the web shelf does. Start a scene straight from a card: a world seeds the setup form, a character joins whatever cast you were already assembling. Sort by new or popular and filter by the shelf's own tags. Cards carry the blurb, the tags and the size; the sheet shows a world's cast in portraits. And an author blocked by mistake is listed in Settings, with the way back — the only place to undo it once their cards are gone. The Community switch appears the moment the shelf holds something, and not before. A scene of a hundred and fifty turns and more generates again on every model: the request carried a copy of the whole scene that nothing read, and it hit a cap. The summary that folds a long chapter's memory moved to Gemini Flash with a hard length, so it can no longer grow instead of shrink. On the web, the first turn after a page load no longer lands twice. And GLM keeps refreshing a story's title and description through a long scene instead of losing the thread around turn six.

A turn that survives the connection

Lock the phone, switch apps, or lose the signal mid-turn and the run keeps writing on the server; you rejoin it where it left off. Stopping a turn retries until the server acknowledges it, so a stop the network swallowed no longer bills for the whole turn. When a model refuses a direction outright it says so in five tokens instead of writing a content notice into your chapter — nothing is charged, and the retry offers another model. Signing out empties the device only when the server can prove it holds every record and every image; anything short of that leaves the library where it is. Stories stop renaming themselves mid-chapter, a story opens on its newest turn, and Logs list what images, clips and narration cost, not just turns. Plus a QA sweep across web, iOS and Android.

Bug fixes

A paragraph carrying thousands of quote and emphasis marks — a whole document pasted in as an opening — crashed the iOS reader every time the story opened. It renders now. World text, character sheets and scene openings stop at their length caps in the editor instead of failing quietly at the first turn.

Gemini Flash moves up a version

Gemini 3.8 Flash takes the Flash slot and stays the default story model — the same 1M context and the same rate per token as 3.7. It does think longer before it writes: measured on the same scenes, deep in a long chapter it spends about twice the hidden reasoning 3.7 spent for the same paragraphs, so the picker prices Flash at three credits per thousand characters instead of two. Turns already written on 3.7 keep its name in the log.

Half of the cheapest clip

MiniMax H3 Max Turbo joins the models you can animate on: the same five to fifteen seconds, the same 480p and 768p, sound on every clip, at half of H3 Max's price. Five seconds at 768p costs twelve credits, against twenty-four on H3 Max and a hundred and sixty-four on Grok. H3 Max keeps its place in the picker.

A way past a refusal

When a model's provider refuses a passage, the alert says so and offers the turn again on Grok 4.6 with one tap — your model setting moves with it, and the picker takes you back whenever you like. The picker's shortlist grows by two: GLM 5.2, the cheapest turn in the catalog, and Grok 4.6, the fewest refusals and the sparest prose. And an account that started without welcome credits now reads why: they come once per person, and inviting yourself doesn't earn any.

A cheaper clip

MiniMax H3 Max joins the models you can animate on: five to fifteen seconds, 480p or 768p, sound on every clip, and well under half the price of anything else here that carries sound. HappyHorse leaves the picker in the same breath — MiniMax does its job for a third of the credits. Clips already animated on it keep its name.

A shelf for everyone, and roleplay finds its register

Stories, characters, and worlds publish to the community shelf now — a byline, a rating, tags — and Discover is where everyone browses; one tap takes a published thing back down. Free text reads the way prose reads: quotation marks make a line speech, a slash directs the scene, and a bare sentence is no longer demoted to action. In Roleplay the character's head is open on the page and yours stays yours, and the opening you typed survives the switch between Story and Roleplay — the box you leave keeps its own for the trip back. Every record carries its creation date, so shelves sort newest first instead of half-alphabetically. And on Android, portraits and backgrounds moved out of the library file into their own store: a library heavy with images loads light, typing never stalls, and the crashes that came with a big cast are gone.

The composer floats, and one line fills a sheet

The composer lifts off the bottom edge and floats over the prose — one slab the story scrolls beneath, the field on top, the model and the send along its lower edge. It holds a paragraph now, five lines on a phone and eight on a desktop, and the mode switcher shows itself while you compose and steps aside when you stop. Ask for an illustration prompt and one arrives, written into the field a word at a time in about a second, where three used to take twelve. The still you animate comes off a shelf grouped by where it came from: this scene, the cast, the world, your own photos. Type one line above a character or world description, press Generate, and the editor fills with a starter sheet you rewrite from there — one undo puts your version back. A story carries one kind of direction now: write it, name it, use it wherever you like. And every control commits to round, with a corner left for the containers that hold them.

Gemini Flash moves up a version

Gemini 3.7 Flash takes the Flash slot and stays the default story model — the same 1M context and the same rate per turn as 3.6, on a model Google built to hold a longer thread. Turns already written on 3.6 keep its name in the log.

Grok moves up a version

Grok 4.6 takes the Grok slot in the model picker, still set to write rather than deliberate. Illustrations get Grok Imagine 2, and Grok clips animate on Grok Imagine 1.5, which adds 1080p. Turns and images already made on the older versions keep their names in the log.

Roleplay, and directions that travel

Story or Roleplay is a choice you make at setup now: roleplay opens on one character, in their voice, and waits for your reply. Every narration control names its subject, so first person means your protagonist saying “I” rather than the character — and a first-person narrator keeps the interiority they exist for. Write a direction once and it belongs to your library: it syncs like a character or a world, any story can pick it up, and up to three can steer a single story. Your library follows you to every device you sign in on, encrypted at rest, with one switch in Settings that turns sync off and says what that costs. Name your protagonist before the engine writes the opening, so the first turn addresses you correctly.

Grok is back in the picker

Grok 4.5 rejoins the model lineup, set to write rather than deliberate — it reaches the first line of prose in seconds. Kimi K3 leaves the picker; turns already written on it keep their name in the log.

Five classics and a new front door

Pride and Prejudice, Jane Eyre, Dracula, Persuasion, and Sherlock Holmes joined the built-in library, with authored openings in every supported language. The Library and the landing page open on a moving showcase, and picking a world or a character drops you straight into setup. Choose the narration voice, or write a standing direction every turn follows. Your library lives on your device: portable .underfiction archives carry one story or the whole shelf between web, iOS, and Android.

The Library, rebuilt for the phone

The Library has its own shape on a phone now: a showcase that fits the width, a menu that sizes to its labels, and detail views with one clear way back. The navigation menu stays put on the pages it opens.

Credits read in your language

Credit amounts in logs, generation details, and top-ups are written in the language you are reading, on web, iOS, and Android.

Import says what went wrong

A character card or archive that will not open now names the file and the reason, instead of failing with one generic line.

Model rates on Android

The Android model picker shows what each model costs per turn, matching web and iOS.

Browse the openings on iPhone and Android

The starter browser is native now: page through the built-in worlds, their leads, and every authored opening without leaving the Library.

Directions, grouped at setup

Narration nudges are called directions, and story setup groups them into sections instead of one long list.

Duplicating a character keeps your place

Copying a character asks first and leaves the editor open, instead of dropping you back to the list.

Narration directions

Choose the voice before you write: First Person, Second Person, Present Tense, Inner Thoughts. The narrator holds what you pick for the rest of the scene, and scene summaries now keep that voice instead of pulling the prose back toward third person.

Standing directions

Give a story a direction in your own words — "keep her unreliable", "no dialogue tags" — and every turn follows it. It outlasts compression, travels inside portable archives, and comes along when someone takes the pen on a shared excerpt.

Four new openings in the original worlds

Pip, Syra, Lydia, and Lola each get an authored opening built on a shared secret or a craft rather than a stated romance. They lead their worlds in the library rail, and The Antler & Stone reaches the showcase for the first time.

Private or anonymized, stated plainly

Story and narration model pickers mark which models run inside Venice and which reach the model through anonymized routing. Hover a badge and it spells out what that guarantee covers.

Your library lives on your device

Stories, characters, and worlds are held locally, and nothing about them leaves the device unless you move it yourself. Portable .underfiction archives are how a story or a whole library travels between web, iOS, and Android.

One composer at every width

The prose composer uses a single compact layout from phone to desktop, and long speaker names no longer crowd out the field.

Steadier on every platform

Fixed iOS navigation dismissal and zoom transitions, web header and scrollbar shifts, Android segmented-control sizing, and a setup layout that moved while an animation ran.

The world showcase

The starter grids are now a moving showcase on the landing page and in every Library. Lead characters frame each world, the openings read like a table of contents, and the stage advances on its own until you touch it.

Straight into setup

Pick a world or a character and you land in story setup. The onboarding walkthrough and the separate persona step are gone.

Carry your whole library

Export everything — stories, characters, worlds, images, videos — as one portable .underfiction file, and import it on any other device. Merging keeps whichever copy of a story you edited last.

An empty shelf opens the Library

If you have not written anything yet, your shelf opens on the built-in worlds and characters instead of a blank screen.

The classics in eight languages

The complete classics collection — worlds, canon leads, and openings — is now localized in all eight supported languages.

A new landing page

Rebuilt around the showcase, with starting in the browser as the first move and the native apps a quieter link below it.

Five literary classics

Pride and Prejudice, Jane Eyre, Dracula, Persuasion, and Sherlock Holmes joined the built-in library on web, iOS, and Android — eight canon leads, new cover art, fifteen authored openings. You are not the protagonist by default: you take the governess's chair in Jane Eyre, Anne's position in Persuasion, and elsewhere you arrive beside canon as a confidante or a client.

Recommended models first

The story model picker opens on a clear first group of recommended models, with ratings and prices lined up down the list. Kimi K3 is back in the lineup.

Animate an image from earlier in the story

Any illustration already attached to the story can be the source when you animate a scene, not just the most recent one.

Illustrate and Animate, named the same everywhere

Media actions use the same labels and sit in the same place on web, iOS, and Android.

Stories follow your language

The prose language follows what you write, independent of the interface language. Switch mid-story and the narrator switches with you; keep going and it stays in the scene's language. The per-story language setting is gone, and interface language moved into Preferences.

World artwork on story cards

Story cards show the artwork of the world they belong to again.

Turn actions stay out of the way

Rerun, edit, share, and the rest stay quiet until you reach the passage they belong to.

A design pass across platforms

Tuned story setup, character editing, settings, navigation, and the input bar so web and iOS read as the same product at the same rhythm.

Write from an image

Attach an image to your next turn and the narrator writes from what it sees — a face, a room, a photograph you want in the scene. On web, iOS, and Android.

Read it aloud

Have any passage narrated in the model and voice you choose. Narration is cached on your device, so replaying a passage is free.

Export a story

Take a story whole, or stopped at any earlier turn, as readable Markdown or as a portable .underfiction archive carrying its characters, world, images, and videos.

Library actions in the toolbar

Import, export, and the rest of the library actions moved out of the page body and into the toolbar.

Clearer credit use

Credit spend rounds the way you would read it, and model pricing labels in story setup say what they mean.

Localized menus keep their labels

Fixed menu labels that fell back to English and a language switch that did not always take.

Opus 5

Upgraded Claude Opus from 4.8 to Opus 5 — a step up in long-scene coherence and prose control at the same price. Context window and credits-per-turn are unchanged; existing stories pick it up automatically.

Starter stories and Gemini 3.6 Flash

New starter stories on the landing page and in Library — curated openings you can step into with one tap, now on web, iOS, and Android. The library gained a Mine/Library switch so built-in material and your own work stay cleanly separated. Gemini 3.6 Flash joined the model picker and became the default story model.

Alternate takes that stick around

Rerun a turn and your alternate takes now survive a cancel, a failed generation, or leaving the story and coming back. Long scenes cost less to continue: history compression is cache-aware, runs in the background, and keeps a rolling digest so deep scenes hold together. Scene summarization moved server-side with bounded input on every platform, story opening became faster, and Kimi returned to the lineup.

Shared story excerpts

Share a moment from any story as an unlisted link — a directive and the prose it produced, in a clean reader view. Readers can take the pen: one tap copies the full setup into their own library so they can continue the scene their way. Links are unlisted and never indexed; only you can share them.

New models, honest errors

Added Hermes 4 405B through a second inference provider and Inkling to the picker, and upgraded Kimi to K3. Model prices are now derived from each model's measured output, so credits-per-1k-characters reflects what prose actually costs. When a provider declines a scene you see its verbatim reason instead of a generic error. Stories starting from a blank scene now write their opening instead of failing, and retrying a failed generation no longer duplicates turns.

Character books and crypto top-ups

Character books now fire in the story: entries trigger on their keywords as the scene unfolds, on every model tier. Tavern card import is lossless — scenario, greetings, and books survive the round trip. Character sheets are reordered around what steers the prose, with a new details section. Credits can now be topped up with crypto. Generation failures report their actual cause, and empty generations refund automatically.

Illustrate and Animate

Generate images of your characters and scenes right from the story, and turn an illustration or background into a short video clip. Added GPT 5.6 Terra, Kimi K2.6, and DeepSeek V4 Pro to the model lineup, with Seedream 5 Pro leading image generation. The composer now collapses settings, Illustrate, and Animate behind a single plus menu.

Scene backgrounds and scene navigator

Set the mood with a scene background image, toggled right from the input bar. Jump between chapters with the new scene navigator on the story title. Tavern character cards (V2 and V3) and world books import on every platform, and worlds are now config-only packages with a single scene-start flow.

Story opening modes and greetings

Added opening modes for new stories: Adapt for directed setup, Verbatim for exact authored openings, and Character for first-cast greetings. Character greetings now round-trip through local libraries and TavernCard first messages across web, iOS, and Android.

Opus 4.8

Upgraded the default model from Opus 4.7 to Opus 4.8 for sharper prose and stronger scene continuity. No change to ratings, context window, or pricing structure.

Traditional Chinese and Android release polish

Completed Traditional Chinese localization across the mobile UI, built-in characters, worlds, prompts, scene summaries, and store metadata. Tightened Android release automation so Play metadata follows the release tag and the uploaded AAB's versionCode, and pointed the Android landing CTA at the live Play Store listing.

Android review build

Prepared the Android build for Play Store review with Spanish localization, smoother story-screen keyboard behavior, and final reader input polish.

Model bumps and webhook reliability

Upgraded Opus from 4.6 to 4.7. Bumped the freedom rating on GPT and the quality rating on Gemini to reflect recent provider improvements. Fixed a credit-purchase webhook bug where some Stripe deliveries silently retried instead of posting credits cleanly on the first try.

Credits UX and landing redesign

Overhauled the credits experience with cleaner controls, a smarter default amount, and instant rendering of saved cards and auto top-up. Redesigned the landing page with a full-screen hero, prose sections, and a simplified world showcase. Fixed missing tab bars when navigating directly to /characters or /stories, and resolved a handful of hydration errors. Loading skeletons now match the actual content they replace.

Mood removal and reveal stability

Removed the mood system entirely — presets, prompts, and UI — to simplify story setup and let your prompts shape tone directly. Stabilized paragraph reveal during streaming so text lands smoothly. Improved the main menu, fixed a hero image flash on world open, an edit-last-turn bug, and assorted mobile polish issues.

Spacing pass and new art

Normalized spacing across galleries, modals, and page shells, and tightened touch targets on mobile. Switched to new generative cover art across the worlds.

Design system foundation

Introduced shared typography, control, surface, and spacing token systems across the app for consistent rhythm and visual language. Refreshed the logo, favicons, and promo video, and polished the navigation icons.

Core templates and My Worlds

Built-in worlds and characters are now immutable templates — editing one transparently clones it to your personal library on first edit, so the originals stay clean. Added a dedicated My Worlds section, made the Core sections collapsible, and refined character card defaults. Added a Sentry alert for missing Venice pricing so model gaps get caught before users hit them.

Fast-track story creation

New fast-track flow lets you start a story in seconds — pick a world, drop in a character or persona, and you're writing. Refined the mobile bottom navigation, polished modal interactions, and added new crosspost articles to the blog.

Image polish and promo video

Image previews now appear instantly, with no shimmer flicker when changing sources. Embedded a promo video on the landing page and refreshed the model picker.

World books and SEO

Export a world and all its characters as a portable book file, and import books from other users with their images included. Added comprehensive SEO infrastructure with structured data, blog posts, homepage FAQ, and an accessibility pass that brought the PageSpeed score to 100.

Streaming and scroll performance

Stabilized text reveal streaming so paragraphs land without jumping. Fixed shimmer flicker on cached character images, resolved leaked body scroll locks, and improved overall scroll performance on long stories.

Scene intelligence

Rewrote scene summary prompts to better preserve character dynamics and relationship arcs across transitions. Unified the scene opening flow so new scenes, forks, and regenerations all start consistently. Added user-friendly provider error messages that name the model and offer a one-tap retry.

Story runtime refactor

Rebuilt the core story runtime for reliability and lower token cost. Menu pages now open as overlays inside the story view so you never lose your place. Added mid-scene history compression to keep long conversations affordable, and introduced a free-tier framing for new users.

Stability and security sweep

Fixed race conditions in the billing pipeline and library reconciliation. Patched a cross-user data leak, closed an auth bypass on system-generated content, and added missing database indexes. Improved cursor stability during streaming.

Patronage

Introduced Patronage loyalty tiers with bonus credits on every purchase, and a configurable auto top-up so you never run dry mid-scene.

Character import and export

Import and export characters as TavernCard V2 PNG files — fully compatible with SillyTavern, ChubAI, and other platforms. Added smooth expand/collapse on the advanced character fields.

Mobile overhaul

New bottom navigation bar with thematic icons. Scene list and menus now open as swipe-to-dismiss bottom sheets. Replaced the input modal with an inline expanding input bar. Scene suggestions are now free for everyone. Fixed a handful of tap-target and zoom issues on iOS.

Referrals

Launched the referral program: invite a friend and you both get 1,000 credits when they make their first purchase.

TavernCard V2 and credits

Restructured the character model as a TavernCard V2 superset — personality PLists, example dialogue, post-history instructions, and full compatibility with the broader roleplay ecosystem. Replaced dollar-based billing with credits, a purpose-built currency with clearer pricing.

Content-driven worlds

Worlds and characters now load from markdown content files — a single source of truth that's easy to author and version. Redesigned the landing page around worlds, characters, and creative freedom. Added per-world hero images and a mood system that shapes the AI's tone.

Characters gallery

Dedicated Characters tab with portrait cards organized by world. Full-bleed character portraits in the edit modal. Separated built-in characters from your personal library so edits to one don't affect the other. Fixed hero image flicker on first world open.

Worlds

Introducing Worlds — curated world settings with their own characters, lore, and narrative hooks. Four starter worlds ship out of the box: Ashworth End, Linden Park, Antler Lodge, and Marabou Syra. Each world generates dynamic scene suggestions via the LLM so every playthrough starts differently.

Underfiction

The platform has a new name and identity. What started as Fablis, then became Unreliable, is now Underfiction — a name that better captures what we're building. Added Sentry error tracking with full content redaction, and a pre-flight context window check to catch token overflows before they time out.

Launch blog and anonymous mode

Published three launch-day posts covering why we built this, the case for local-first privacy, and what literary AI prose should actually read like. Enabled anonymous free tries so new visitors can start a story before signing up.

Multi-provider fallback

Generation now falls back to Grok when Venice hits rate limits, so you're never stuck waiting. Defaulted everyone to Opus with an 8k response length. Added loading skeletons, API caching, and entrance animations across the app.

Landing page and unified navigation

New public landing page that showcases the platform to visitors. Unified all page headers into a shared PageHeader component and reworked logo routing. Replaced anonymous usage stats with per-user credit and usage data.

Public launch

Underfiction is live. Five preset story scenarios to get new users started, a welcome credits bonus on signup, and the password gate is gone. Extensive mobile polish: 44px tap targets, proper iOS keyboard handling, fixed content overlap with the floating header.

Story presets and advanced settings

Five curated story presets — mainstream genres with pre-built characters and prose samples — appear on the dashboard for new users. Added an advanced settings section with editable system prompts for full control over the AI's behavior. Fixed a bug where the scene auto-generation never triggered.

Prompt engine improvements

Switched to full turn history instead of a truncated prose blob, giving the AI much richer context. Added optional example dialogue and style reference prose to character cards. Two-tier scene summaries: short for the sidebar, detailed for context injection.

Atmosphere update

Paper texture, upgraded drop caps, and scene ornaments give the reading view a tactile, book-like feel. Card hover animations, a streaming cursor, and prose reveal fades round out the mood. Also fixed the most persistent scroll-jump bugs during text reveal.

Mobile, SEO, and settings

Full mobile-responsive pass with touch-optimized interactions and viewport fixes. Added SEO infrastructure: OpenGraph images, JSON-LD, sitemap, and robots.txt. New settings page with model picker, temperature slider, and max response length control.

Prose style engine

Choose between roleplay, balanced, and novel prose styles — each shapes how the AI writes and responds. Mixed narration and dialogue input with distinct visual styling. Adaptive narration so the AI matches your writing cadence. Also added an in-memory story cache for instant page transitions.

Story forking and slash commands

Fork any conversation from any turn to explore alternate paths. New slash command menu: /as to switch character voice, /tone to shift mood, /newScene, and /narrate. Warmed up the color palette and added a subtle prose surface background.

Credits and billing

Pay-per-use credit system powered by Stripe with reserve-then-settle billing. Usage logs page with model breakdown and provider cost. Transaction history with Stripe receipt links. Custom amount top-ups and an auto top-up toggle.

Accounts and authentication

Sign in with Google or GitHub, or create an email/password account. Password reset via email. Automatic OAuth account linking when emails match. Migrated from SQLite to PostgreSQL for production reliability.

Multi-scene stories and IndexedDB

Stories can now span multiple scenes with automatic async summarization to keep context manageable. Migrated local storage from localStorage to IndexedDB, which handles much larger content without hitting size limits.

Theme and typography

Added a light/dark theme toggle that respects system preference, with smooth 150ms color transitions. Switched the reading typeface to Literata for a warmer, more bookish feel. Fixed dark mode hover states across the UI.

First light

The first working build of what would become Underfiction. Core story engine with AI-powered prose generation via Venice.ai, a reading view, character creation, and scene setup. Stories saved locally in the browser. Everything starts somewhere.