This is a big one. I got a bit carried away, which led to a delay. But after two months of work, I believe that we have a massive update containing:
Two things become deprecated with this update, and will be removed in the next one:
Nothing breaks today, and nothing changes in this update. But if you rely on one of these two, it's a good time to start migrating.
A huge thank you to everyone supporting the development of Eudaimonia, and to everyone who took the time to report bugs, send feedback or share ideas. It really shapes what I work on.
Many of the features and improvements in this update were suggested by users, in the request threads on the forum.
You can react to these release notes on Community Space
This is finally here. The Stereo engine has been fully rewritten to give you better and richer stims, more control, and a more robust safety model.
It also comes with a new editor, which I will probably extend to the other stim devices in the future.
The overall intensity is still the volume, in dB. Patterns are now built on top of it by modulating the gain (between 0 and 1).
Each channel can now stack up to three carriers, each with its own waveform (sine, square, triangle, pulse) and its own frequency, anywhere between 500 and 2000 Hz. On top of that, the pulse waveform has its own PWM (duty cycle) modulation.
Above the signal, two mutually exclusive modes shape it over time:
The new editor should be a lot more readable and practical to use.
None of this makes e-stim risk-free, and it doesn't replace the usual rules — please keep following the common safety practices.
One of the most important features of this update. Generation speed is a big lever for a better experience, especially when it comes to edging, ruined orgasms, and tease & denial in general.
With Live streaming enabled, the scene starts playing as soon as the first sentence is written, and the lines keep coming as they are generated. The whole thing feels far more fluid: you now see the first lines a few seconds after hitting Send, instead of staring at a loading spinner.
This comes with a cost, though. Most of the agents and modules around the LLM's output work differently in stream mode, and will probably be a bit less accurate, since they no longer see the full answer at once.
Their execution is also slightly delayed: the very first segments of an answer are not processed by the agents — with two exceptions, Intelligent image generation and Intelligent stim.
The translation feature still holds the output back until the first lines are translated, so that the translation stays complete and consistent. If you want the fastest, smoothest experience, disable translation in the settings.
Same thing for reasoning: a reasoning model outputs nothing until it has finished thinking, which blocks the whole stream. I strongly recommend turning it off when streaming is enabled.
Eudaimonia now runs a small detection model directly in your browser during a session. It locates body areas on the generated images — face, breasts, crotch, buttocks, feet. No image is ever sent anywhere for this: the model is downloaded once and everything happens locally, on your machine.
It unlocks two features described below: a real censor bar, and camera moves that know where to look.
The AI can now decide to censor images during the scene, and the bars are placed on the actual detected areas. It picks the zones, and the design of the censor bars. It's a persistent state: once applied it holds on every following image until she decides to remove it. Which can make it a rather cruel tease tool.
One of my favourite features of this update: a new family of character FX that moves the camera over the detected body zones.
It really deepens the immersion and brings more life into the scene. The camera can now travel, zoom and focus on those areas, in a lot of different ways:
These only appear if the detector managed to load on your machine. If it doesn't, the other character FX keep working normally.
Until now, showing several characters at the same time in a generated image was simply not possible. That changed with the release of Z-Image Turbo first, then Anima, and now Krea 2.
AI models also got smarter, and handle multi-character scenes and conversations far better than they used to.
The Intelligent image generation agent now supports multiple characters.
Every visible character keeps its own appearance and outfit, with its own pose, expression and position in the frame. A roster of characters persists across the session, even when someone walks out of shot — which can become a handful in scenarios with a lot of different characters.
A few things that took a lot of iterations to get right:
EstimAI has a new agent: a Sound Director. It listens to the narration and places short sound effects on it — moans, gasps, impacts, ambiance beds, props, and so on.
Around 50 cues, each with several interchangeable takes (more than 400 different files), so the same sound never plays twice in a row identically.
This is still a work in progress, and all the SFX have been generated with AI, so the quality is uneven. It's a bit hit or miss for now: some cues land right on the beat and feel great, but the agent still struggles and will sometimes fire a sound at the wrong moment, or pick a cue that doesn't fit the scene.
I'll keep improving it over time.
It adds one extra LLM call per response.
The characters page has been completely redesigned, to be both more practical and prettier. Everything works like before, apart from a few new features:
And, most importantly, a new Character sets button. It opens a new page where you can build full sets of images for a character, with different outfits — see below.
You can now build galleries of your favourite characters in different outfits, straight from image generation, automatically tagged, and directly usable as a gallery in any session.
If you can generate images but can't run generation during a session, this is very helpful: you generate everything beforehand, and play with a gallery instead.
A dedicated phase system has been added to the scenario editor, on top of the existing trigger/event system.
I tried to build something extensive and flexible enough to write complex scenarios, which also made it a feature that isn't easy to pick up. I hope the UX and the tooltips will be helpful enough.
Note: I've been working on a new scenario that takes full advantage of this feature. It should be available soon, so you'll be able to look at how it uses the phase system.
I've updated the local TTS server to include KokoroTTS, a new engine that is very light and fast on CPU, with voices in 9 languages (even if most of them don't sound very natural).
And instead of multiplying repositories and installation steps, the local TTS server is now a single unified server that hosts every engine — you only install it once.
You'll find the repository and the installation instructions on GitHub.
The narrator and cloning are now available on every engine that supports them, and the old servers keep working: the app detects a legacy server and adapts. Installation is a single install.bat, which detects conda and your GPU by itself.
The dependency conflict between the engines should be solved, they now cohabit in one environment (though I have a feeling I'll be back on this one).
The first steps in Eudaimonia, especially for EstimAI, are confusing and intimidating. I want to fix that and make it easier to get started, without losing the depth and flexibility of the app.
Below are the first steps in that direction, and I will keep improving the onboarding experience in the future.
A new system prompt has been written: EudaimoniaV3. It's a natural evolution from EudaimoniaV2, even more centered on Eudaimonia's format and principles. It insists on:
This one is a remnant of a failed experiment, which I will try to improve over time.
Physical continuity is the first thing that breaks in a long session: clothes that reappear, restraints that vanish, positions that contradict the previous message. A dedicated agent now maintains a short canonical state after each response — location, what each character wears, positions, restraints, objects — and injects it into the next turn.
It should help the model stay consistent and stop contradicting itself. A "Director agent" was planned alongside it.
The paths of the MCQ mode have been rewritten. They are now plot directions rather than safe continuations: three grounded pivots on different axes, and one wildcard that can bring some creativity into the course of your scenario.
You can now choose which audio output device plays the stim signal. It makes it possible to use TTS or the new sound effects while your stims run on Stereo V2 or the 2B, without dedicating a second device to the stims.
If you don't have a GPU, you can now point Eudaimonia at cloud.comfy.org instead of a local ComfyUI: add your API key in the generation settings and everything else works the same, including the models you imported into your cloud account.
I've played with it a lot and, unfortunately, generation speed is a bit unpredictable. I recommend using a low "Image generation rate". It remains very practical to use the largest models without setting everything up on a GPU server.
Lots of new screen FX have been added, and existing ones improved.
Sound cues are now attached to some of them, so a whip crack actually cracks.
More camera moves, more particles, more realistic effects.
New prompt templates for Anima and Krea 2, plus a two-pass generation type (low resolution first, then upscale) for Z-Image Turbo, Anima, Flux and Krea 2. Slower, but with increased quality, thanks to the integrated upscaling workflow.
All the style presets and the Intelligent image generation got a big quality pass along the way.
And around 150 Krea 2 styles were added to the Medium selector, which now has a search field — the list comes from a Reddit post by u/Dear-Spend-2865, credited on the credits page.
As Eudaimonia grows, I want and I need to enforce some safety measures. A fair amount of moderation and content filtering has been added over the last weeks.
It only targets one thing: content involving minors. Adult content, however extreme, is not concerned. Ageplay between adults, pet names, mommy/daddy kink, fictional taboo between adults, all of that is explicitly allowed.
In practice you should not notice anything. But automatic filters do produce false positives. If you get a [SMO-CF] error on something perfectly legitimate, please send it to me. I'd rather fix a false positive than leave the filter loose.
That's it for August. If something behaves weirdly, please tell me, either on the Community Space or at contact@daimonia.app.
I hope you'll like it, have fun!