Skip to content
live PRIMARY PRODUCT / LOCAL CHAT

Local Chat v1.8.226 · Multimodal interaction surface

Local-first long-term conversations and multimodal authoring desktop products. The 48k token text budget, SessionRoster, role federation index and immutable message anchors work together to maintain long conversations, role status and asynchronous task ownership.

belong to the system First-level product · Local AI Application · Current source code baseline v1.8.226, long-term daily use · Text is connected to OpenRouter, images are connected to local ComfyUI and Comfy Cloud, and video is used as an independent creation surface (see Engineering chain)·Latest verification: 2026-09-19

01 / DESKTOP DEMO

A public interactive shell of the official desktop version

Run directly below Local Chat v1.8.226 is a public shell of the current desktop front-end, fixed to the warm brown scroll theme. Dialogue, reading aloud, pictures, videos, role switching and input modes are all operable; the original back-end scripts, character cards, sessions, keys, paths, non-public functions and historical pictures have not entered the public package.

Open the complete Demo on a separate page ↗

02 / PRODUCT SHAPE

Local state assumes continuity, and models and generation backends remain replaceable

Local Chat It is an independent native desktop product: PyWebView hosts the vanilla JS interface, and the Python backend hosts static resources and APIs. Text enters the streaming link through OpenRouter; image and video requests are first compiled locally for characters, scenes, task attributions, and prompts, and then handed over to the currently configured generation backend. The key only remains on the backend and is encrypted by Windows DPAPI.

talking-with PWA Continue to run as a browser/mobile lightweight branch: Cloudflare Workers isolate upstream keys and supplier routing, IndexedDB saves browser-side role cards and conversations; the desktop side is responsible for local data recovery, card version management and ComfyUI deep linking.

Sessions, character cards, image indexes, task status, and publishing controls are saved locally; the text model is provided by OpenRouter, and the image backend can be switched between local ComfyUI and Comfy Cloud. Character conversations are a real, everyday use case for long-term state and multimodal workflows.

03 / Core experience

Long conversations, character states, and asynchronous results always return to the correct object

The text budget is 48k tokens, and compression will be entered after a total of 28 rounds, so that recent conversations can be given priority to retain complete semantics. SessionRoster unifies the character status of the currently present characters, manual selections and multi-modal tasks, avoiding the need to maintain a separate character list for text, pictures and videos.

The character directory uses the ILL fine-tuning library as the first-level source and the ANIMADEX community directory to supplement the long tail. After deduplication, 36,672 searchable character entries are formed. The retrieval tag is separated from the prompt_tag of the generated image, and the background worker continues to pre-cache the character image.

The sessionId and immutable message anchor are frozen when the image and video task is initiated, and written back according to the original anchor point after completion. Even if the user switches sessions or role cards, the old task still returns to the original message; the failure status retains the reason and recovery entry.

The multi-modal director chain extracts character actions, positions, shots and contact relationships from the current reply, and then hierarchically compiles identities, clothing, number of people and actions into local ComfyUI, Comfy Cloud or video workflow input.

04 / Current implementation

Local Chat v1.8.226 · Current source code baseline

The product loop of v1.8.226 covers context, roles, asynchronous tasks, multi-modal generation and local data recovery.

AContext and SessionRoster

48k token text budget, compressed after 28 rounds; character cards, real text rounds and currently present characters enter the same context strategy.

BAsynchronous task ownership

Replies, pictures, and videos freeze sessionId and immutable message anchors; after switching role cards or sessions, completion results are still written back at the original anchor point.

C36,672 character entries

ILL fine-tuning database and ANIMADEX community directory deduplication joint index; the search tag is separated from the raw image prompt_tag, and the character image is pre-cached by the background worker.

DMultimodal director chain

Characters, actions, positions, contact relationships, shots and clothing are compiled in layers, connecting local ComfyUI, Comfy Cloud and independent video workflows.

Elocal data integrity

Sessions, role cards, card versions, image indexes, settings, and task status are persisted locally; after a role card is deleted, the session can be restored from its own role snapshot.

FCandidate release and recovery

The new version is first verified in the independent directory, AppData, WebView profile, port and mutex; key data is checked before and after the official switch, and the previous version is restored if the startup fails.

05 / Next milestone

Continue to improve recoverability for long-term use

Amultimodal stability

Continue to reduce the failure rate of multi-person occlusion, identity cross-color, action direction and complex gestures; only use the same seed single-variable real picture, task receipt and final product acceptance, without the need for prompt text self-certification effect.

BUnified Task Trace

String input, status snapshots, model replies, image/video tasks, result attribution, and failure reasons into replayable traces, and clarify the input, output, time-consuming, and recovery semantics of each segment.

CCross-end state boundary

Define the minimum state allowed for synchronization between Local Chat and the lightweight PWA, clarify the boundaries at which images, private contexts, and keys must stay local, and evaluate cross-device recovery and conflict policies.

DPublication of evidence for sustainability

Continue to converge candidate isolation, data before and after snapshots, in-package hashing, health checks, automatic rollback, and local tags into a recoverable release receipt, reducing the risk of long-term high-frequency iterations to formal data.

06 / Iteration log

Version evolution·Problem driven

The current official running baseline is listed first, and then historical nodes with architectural significance are retained; the old version number is used to mark the snapshot when the evidence occurred, and does not mean that the current version is still stopped.

v1.8.226

The current source code and README running baseline: session lineup, work character directory, painting style gear, clothing directory and asynchronous task attribution continue to evolve within the same state boundary; the public page does not write the unstarted local 8500 port as an online instance.

v1.8.31

Card-level outfit priority is officially deployed: new structured outfit coverage, subsequent outfit changes are higher than user card-level basic outfits, the registry default outfits are only rolled back to the last level; old cards can be read-only derived, and the real card creation, Director and local real picture verification are passed.

v1.8.30

The multi-player wide format is officially deployed: two people automatically use 1536×1152, three people automatically use 1728×1024, and the single-person frame does not change; two-person and three-person local real pictures, 134 backends, and 30 multi-person special verifications are passed.

v1.8.29

Automatic scene members of 2-4 people are connected to the biograph chain: each person has an independent identity, clothing, actions, expressions and area, and canonical aliases are deduplicated; 5 people and unregistered characters are blocked before submission.

v1.8.28

Plot scroll, two sets of warm brown and bright colors and black and purple dark themes are officially deployed; the original 6 sets of themes are retained, with left picture and right text, same-wheel scrolling, fixed input dock and complete function chain to complete the four-viewport verification.

v1.8.27

The two-person card drawings are officially deployed: the identities and regions of the two are compiled separately, and generated according to the character's movements, expressions and locked / replaced / removed / modified clothing status; the official real picture and special verification are passed.

v1.8.18

Unregistered single card appearance anchor: tags + description deterministic injection, while adding registered character anti-pollution, group image isolation and negative word boundaries. OpenRouter true tune and B1/B8 official interface original image hit the target appearance, 82/82 backend, 15/15 frontend and official EXE hydration passed.

v1.8.16

Expression and clothing director chain: canon clothing is injected item by item, eyes open/eyes closed mutually exclusive filtering; raw image placement is converged into stage, percentage, time consumption and 2px progress bar, and silhouettes and titles irrelevant to the content are deleted.

v1.8.15

The status of the image generation is changed from "waiting for black box" to placeholder after submission, showing the character matching, compilation, ComfyUI sampling and postback stages; after completion, it will be replaced in place, the reason for failure and retry will be retained, and the image history will be restored across restarts.

v1.8.14

Long reply delay: The first draft is displayed immediately, the model can be called at most once for three options, and reasoning and network interference in ordinary conversations are turned off. The first draft of the official true tune takes 15.6 seconds, and the complete result takes 21.5 seconds.

v1.8.13

A single-frame composition spindle, two-contact budget, direction lock and lens correction were added; the subsequent three rounds of seed A/B proved that the composition was improved but the direction constraint was still not closed, and the problem was kept in the Badcase ledger to continue to be fixed.

v1.8.11

Two broken circuits for role networking are fixed: useWeb is no longer hard-coded on the front end, and accurate lookup routing and structured receipts are added on the back end; failures are no longer treated as "reference 0". Official EXE passed with 7 sources / 51,192 words, 45/45 backend, 77/77 frontend and GUI hydration.

v2.27

The graph generation function is moved from the independent Worker to the main endpoint. Problem: The original independent graph generation Worker URL has been offline, and there is no response when the user clicks the graph generation button. Solution: Unify the comfygen discover endpoint and delete the dead link.

v2.27.4

Service Worker incorrectly caches API requests. Problem: The cache-first policy of sw.js also caches /api/* dynamic requests, causing the LLM reply to not be updated. Solution: sw.js adds a network-only bypass rule for the /api/* path.

v2.24

Cloud backup OOM. Problem: Read all IndexedDB data at once and push it to KV. When the role card library is large, the browser memory overflows. Solution: Use IDB cursor streaming reading + single store 8MB upper limit truncation.

v2.23

The character card is lost. Problem: The activeCardId in some operation paths points to the deleted card, and all subsequent conversations refer to the empty card. Solution: Verify the validity of the activeCardId when loading, and fallback to the default card when it is invalid; fix the lookup sorting.

v2.22

The character card modification tag injection is misplaced. Problem: The user mod tags the character (such as gender conversion), and the tag injection position is incorrect, causing LLM to ignore it. Solution: Redesign the tag injection priority, and promote the modification tag to the front of the system prompt.

v2.15

Raw image/video target switching. Problem: The raw image can only show the whole body of the current character, and the scene or perspective cannot be specified. Solution: Add target + style selector, the user can select close-up/full body/scene, and the raw image prompt adjusts the composition accordingly.

v2.14

Dialogue depth digging. Problem: LLM’s replies are always superficial responses and do not actively expand the character’s inner world. Solution: Add on-demand depth digging. User clicks to allow LLM to expand deeply on the current topic.

v2.13.89

The deploy path error causes the entire API to hang. Problem: When wrangler deploy, the working directory is in the project root instead of the PWA subdirectory, causing the functions bundle not to be packaged, and all /api/* returns to index.html. Solution: Fixed the deploy command to be cd into the PWA directory to execute, and add deploy to double check (curl grep version number).

v2.13.74

After switching the conversation, the previous character will appear in the graph. Problem: The activeCardCache is not cleared synchronously when switching conversations, and the graphing module still refers to the character identity of the previous conversation. Solution: All caches derived by dialogue are uniformly cleared when the conversation is switched, and the graph is drawn based on the message position instead of the generated event.

v2.13.72

Multi-character drawing illusion. Problem: LLM infers non-existent characters from the dialogue context and draws them into the drawing. Solution: Roll back the multi-character drawing, limiting it to drawing only the single character of the currently active character card.

v2.13.67

Long dialogue AI reduces intelligence. Problem: After the dialogue exceeds 20 items, the context window is close to the upper limit, and the LLM reply quality drops significantly. Solution: Introduce auto-compact, and when the number of dialogues exceeds 20, the background LLM compresses the first 14 items as summaries, retains the latest 6 original texts + 1 summary, and archives the original text to IndexedDB for recovery.

v2.13.64

Visual novel mode. Problem: Pure text dialogue lacks narrative immersion. Solution: Add galgame fixed script mode (seed→skeleton→background pre-generation→full-screen VN UI), support archive/route branch/favorability/ending.

The above only selects nodes involving identity consistency, latency, data integrity, deployment security and multi-modal experience; more detailed failure attribution is entered separately Badcase ledger.

System/Module