Flowstate — local AI companion with funscript pattern integration + Handy JOI Director (WIP, looking for feedback)


Sorry for full on ai writing but It’s late and I am waitign for 2 hrs of debugging right now.


Hey eroscripts. Been lurking here a while pulling scripts for the handy (Thank you to all you script makers paid or unpaid, I have spent way too much money on patreons haha)

I’ve been building Flowstate for the past few months — a self-hosted AI companion that runs on your own hardware and ties together voice-cloned personas, image-aware conversation, and AI-driven Handy control. It’s not vibes — there’s a real funscript pattern library indexer feeding the JOI Director, and a hardware velocity safety cap so the AI can never accidentally push past 400 mm/s.

Tonight I’m running a 6-agent verification squad over the codebase (basically 6 instances of Claude tearing through 63 tests across the app) and posting this while waves complete. Figured it’s a good moment to share where it’s at.

What’s working right now (personally tested)

  • Voice-cloned personas — drop a .wav, get a unique voice per character. Real-time streaming TTS, switches voice mid-conversation when you swap persona.
  • Roleplay flow — the persona stays in character, responds to dirty talk requests, picks up scenario hints. Honest take: she’s a bit on the coy/teasing side right now (see image 3 — “let’s just enjoy the tease” instead of going full filth on demand). Tuning the brain temperature + system prompts to be filthier is on my list.
  • JOI Director chain — Gemma vision model decides the move (sp/dp/rng) per turn, syncs to your Handy via the v1 API. Hardware-capped at 67 sp (= 400 mm/s) so it can’t hurt you.
  • Pattern library indexer — I added scripts snippets provided by @Slibowitz into a Python indexer that computes peak velocity, position envelope, action density. Each pattern gets mapped to handy sp/dp/rng bands so the AI dispatches from real human-authored data, not made-up numbers.
  • Vision pipeline — point it at a folder of persona photos, it tags each one (skin level / mood / expression / intensity) AND writes an uncensored prose caption. During roleplay the persona picks the right photo to send based on the current mood. See image 4 — that photo was pulled from her own library because the conversation was matching “tease” mood.
  • Live transcript / mic always-on — I can just talk and it transcribes (Faster-Whisper locally). Image 1 shows “Talk dirty to me” being picked up via voice.
  • 3-machine LLM cluster — main PC (5090, 32 GB) runs the brain + scenario writer, laptop (8 GB) holds the vision/director, third PC handles only TTS. All federated through one LM Studio endpoint.
  • 180 funscripts indexed into mood datapatterns_index.json with sp/dp/rng bands per named pattern. The AI dispatches from named moods like doggy_slow, cowgirl_fast, bj_tongue_tease.

What needs work (honest list)

  • TTS latency — works (image 1 shows the live transcript path firing), but the engine swap when the TTS server unloads/reloads between Chatterbox/IndexTTS2/Fish is 3-5 seconds. Hoping the verification agents help me trim that.
  • Persona aggressiveness ceiling — the brain (qwen2.5-7b-uncensored) is willing but still hedges into “let’s tease first” mode a lot. Need to tune the system prompts to drop the safety hedging completely.
  • JOI scenario re-injection bug — the scenario string isn’t auto-clearing per turn (verification just caught this — gets re-injected every reply until you toggle off). Real bug, fixing it.
  • “Stop” voice command doesn’t fully halt the device — currently maps to “afterglow” mood (sp 8-20) instead of true sp=0. Only the red Stop button does true zero. Considering whether to harden voice “stop” to force sp=0.
  • No persona creator UI yet — currently you edit JSON to make a new persona. Wizard is in the queue.
  • Mobile build is rough — there’s a portable build path but no installer yet.

Tech stack

  • Backend: FastAPI + WebSocket, Python 3.11
  • Frontend: React + Vite + Zustand + Tailwind
  • LLM serving: LM Studio cluster mode (free, GUI). Works with any OpenAI-compatible endpoint.
  • TTS: I strongly recommend Pinokio for one-click TTS installs — Chatterbox / IndexTTS2 / F5-TTS / Fish Speech / VibeVoice all install through it without Python env wrangling. Flowstate talks to the Ultimate-TTS-Studio Gradio server.
  • Hardware: Handy v2 API (HAMP mode), 400 mm/s hardware safety cap baked into the controller.
  • STT: Faster-Whisper local, en-AU/en-US, always-on mic with adjustable noise gate.
  • Vision: any vision-capable LLM (I use amoral-gemma3-12b-vision).

Hardware reality

What I’m running it on:

  • Main PC: RTX 5090 (32 GB VRAM)
  • Laptop: ~8 GB VRAM
  • Third PC: ~12 GB VRAM (TTS only)

You don’t need three machines. A single 16-24 GB GPU running smaller quants of each model works fine — you’d just trade off some speed. 12 GB card with a 7B brain + a 4B vision + a small embed handles the whole stack on one PC.

Patreon interest gauge

I’ve been building this solo and I’m close to a state where I’d feel comfortable letting other people use it. If anyone here is interested in supporting development and getting access to a fully-tested WIP, I’m considering opening a small Patreon ($5-15/month range depending on tier). This is not a done deal if you read later I am still not sure what I should do mainly because I have spent days and days and days, also, a lot of irl money on gemini and claude api keys/subcsriptions.

What patrons would get — the skeleton of Flowstate:

  • The full Flowstate framework (FastAPI backend + React UI)
  • The funscript pattern indexer (drop your own scripts, get them mapped into AI-dispatchable moods)
  • The JOI Director module + Handy connection layer with safety cap
  • The vision + caption pipeline
  • A few starter personas tuned to different VRAM budgets (low / mid / high) with template system prompts
  • Setup guide for LM Studio + Pinokio TTS + persona creation

What’s NOT included:

  • My specific model picks (you choose your own from LM Studio’s catalog)
  • My voice clones (you source or record your own .wav)
  • My personas (you build your own from the templates)

Not committing to anything yet — gauging interest. Drop a reply if this scratches an itch, especially if you’ve got specific features you’d want or specific funscript pattern types you’d want supported. The pattern library is the easiest thing to extend if you can send me some to analyse and add to the databse (The scriptdatabase would be sold as a .zip, I am contemplating uploading the skeleton and tutorial to github but the actual scripting analysing I guess like blood and muscles? behind a paywall? Not sure yet, Still not at a stage to upload it.

Cheers, and thanks to this community for the pattern inspiration —@Slibowitz gave me script snippets for this project. They’re short scripted sequences taken from actual scripts – Thank you! The rest I had taken from OFS scritpacks and other free software addons.

5 Likes


Ah okay, Sorry, I did see a few ai helped apps etc, I hope Mine is more fleshed out and accessible, But yeah I hear you 100%

Welcome to the club. This stuff is exciting to build. Looks like you’re doing well technically and being serious in your approach.

One suggestion I’d consider is handling import/export of ‘character cards’. V2 or V3 embedded either in an archive, image, or json file. This allows users to drop-in and use one of many personas/characters found online. Also the type of users who will actually set this up are the same that would be using SillyTavern/etc which do support that.

Interesting but I’m out as I only use android phone. I have a good laptop but this tech stuff is to much for me to comprehend

ah mate that fucking silly tavern, My biggest obstacle to trying to formulae to get this doen was due to my 5090 itself, all the tts essentially just without brute forcing won’t let me install and use it, I also am using a few models atm, I’m still trying to find a good balance as this app is not just for gooning :P It’s mainly for an ai gaming companion who can help in real time with RAG local memory and gemini api to look online etc, but yeah the roleplay/gooning idea came after a few dexies and yeah, I have it as a hidden button on my app, Once I get it all streamlined I will most likely seperate the gaming aspect and the gooning just so If i show my friends my work they don’t see the degenaracy, here is the models and a lil synopsis for what I’m using them for atm

" |default_brain (gaming)|mlabonne_qwen3-14b-abliterated|14B (~10GB)|**

|rp_brain (qwen2.5-7b-instruct-uncensored`|7B (~6GB)|

|vision + director + caption|amoral-gemma3-12b-vision-i1|12B (~10GB)|Triple-duty. Worked fine when loadable; was the bottleneck during my implementation

|scenario (heavy reasoner)|qwen3.6-27b-uncensored-hauhaucs-aggressive|27B (~18GB)|Only fires occasionally. Was the G-08 swap from Dolphin.|

|rag_image (re-ranker)|qwen2.5-1.5b-instruct|1.5B (~2GB)|

|embeddings|text-embedding-nomic-embed-text-v2-moe|small| running this on my 4070 gpu laptop. .|

sorry for the cluster fuck of the formatting but I am not usign ai again to make myself sound eloquent, But yeah I am still in the stage of testing different models together and trying to synergise them so to speak

ah mate, I honestly even looked at AI in any general sense last october, It takes some getting used to and a of people are anti ai etc, But I find it interesting that I can sort of learn as I go and now I feel a bit more comfotable with Local LMS, Python scripts, how local memory works, how to intgrate different APIS etc, It’s really kind of fun, I will be looking into an actual coding course sometime soon though because I realy wish I could be more hands on with my project.

Can it control your device while speaking to you? Can it see videos you are watching and commentate on it?

Coding+environment experience will help tremendously with your ability to make something of quality. AI will get things done, but sometimes it gets stuck or does weird things. Like you tell it to build a car, and it builds a working one, but the seats are backwards and the brake peddle is in the trunk.

AI can be a good teacher if you resist hitting the easy button of having it do stuff. Explain you want to learn and have it delegate very simple tasks. Then work through each of those tasks conversationally with something like chatgpt since it won’t cost anything.

That is the overall plan too! :)

1 Like

Any plans for T code support? Or Buttplug.io? Looks interesting :)

I would probably subscribe to the patreon if you could make the install and setup idiot proof. Like I have no idea what to do with a Github link, so its a brick wall for me if thats all there is.