Model reference · open weights

vui

Audio fluxions Text→speech 1 build Open weights 571 dl/mo

vui is an open-weight audio or speech model from fluxions. vui (BF16) weighs 3.5 GB; the smallest configuration that runs it is RTX 3060 12 GB.

For self-hosting, compare this build's requirements below with the GPU you plan to rent.

  • Vui is a context-aware text-to-speech model developed by fluxions that generates speech within a conversation using a 6-minute context window.
  • The model features 219 million active parameters and 305 million total parameters, supports English, and is released under the Apache 2.0 license.
  • It includes voice cloning capabilities and a dependency-free C build that enables real-time streaming inference on CPU.

Summary of the fluxions/vui model card, 2026-10-01

What it is

Released byfluxions
Released2025-06-05
VRAM3.5 GB for the weights

What it runs on

Memory and cards for vui (BF16)

3.5 GBweights, file size
1.6 GBruntime overhead
CardOne streamMemory
RTX 3060 12 GBfits11.6 GB
RTX 4060 Ti 16 GBfits15.4 GB
RTX 3090 24 GBfits23.4 GB
RTX 4090 24 GBfits23.4 GB
RTX 5090 32 GBfits31.0 GB
L40S 48 GBfits44.0 GB
A100 80 GBfits78.2 GB
H100 80 GBfits78.1 GB
RTX PRO 6000 Blackwell 96 GBfits93.8 GB
DGX Spark (GB10) 128 GB unifiedfits107 GB
H200 141 GBfits138 GB
B200 180 GBfits176 GB

From the model card

What fluxions says about vui

Read the model card

👉 Full code, install, docs, and the streaming voice assistant: github.com/fluxions-ai/vui

📖 Launch blog post — design notes, demos, and what's next.

Vui Nano is a small, context-aware text-to-speech model trained on real conversations: 219M active parameters (305M total), Apache 2.0, with voice cloning, real-time streaming, and a dependency-free C build that runs on CPU.

Most TTS models synthesise one utterance in isolation. Vui Nano generates each reply inside the conversation: the whole dialogue so far — your text and the actual audio of your turn — lives in the KV cache it decodes from, across a ~6-minute context. It was trained on two-speaker dialogue with an explicit speaker-change token, so it carries prosody across turns and produces the things real speech has and read-aloud corpora don't: breaths, laughter, hesitations, and overlap.

The handful of other open models that condition on dialogue acoustics this way are an order of magnitude larger and GPU-only. Vui Nano does it at 219M active parameters, and the C build runs it on a CPU with no Python, PyTorch, or ONNX at runtime.

It ships inside Vui, a real-time voice assistant: speak into your mic, the model transcribes, runs a local LLM, and streams a TTS reply back — all from a single Python server.

Features

  • Vui Nano (219M active, 305M total) — a small, context-aware TTS model: Llama-style decoder + RQ-Transformer head over the Qwen3-TTS-12Hz codec, Apache 2.0
  • Conversation-conditioned generation — replies are decoded from a KV cache holding the whole dialogue, including the audio of your turn (~6-minute context)
  • CPU inference, zero dependencies — a pure-C engine: one binary plus one weight file, no Python, PyTorch, or ONNX at runtime; supports voice cloning and streaming playback
  • Real-time voice loop — WebRTC + WebSocket pipeline (ASR → LLM → TTS) with a browser UI, VAD-driven turn taking, speculative LLM prefill while you're still speaking, sentence-level TTS chunking with backpressure
  • Barge-in — start talking mid-reply, the model cancels and listens
  • Streaming TTS — ~9× realtime on a 4090, bf16 inference, CUDA graphs
  • OpenAI Realtime API compatible — drop-in ws://…/v1/realtime for clients written against OpenAI's spec (docs/realtime-api.md)
  • One-shot voice-note REST endpoint — POST /v1/voice-note runs the whole ASR → LLM → TTS pipeline in a single HTTP call (audio in, JSON out)
  • Standalone TTS demo — demo.py Gradio playground for the model on its own
  • Voice cloning — upload an audio sample to clone any speaker; 4 fine-tuned presets shipped (maeve, abraham, rhian, harry)
  • SQ / WPS conditioning — bias generation on six speech-quality channels and words-per-second
  • Hot-swap models — pick Ollama LLM and ASR backend live from the UI
  • Pluggable ASR — faster-whisper (GPU) or Moonshine (CPU streaming, ONNX)
  • Pluggable LLM backends — Ollama, vLLM, any OpenAI-compatible endpoint
  • Memories — assistant remembers facts about you across sessions
  • Thoughts stream — parallel LLM routes voice intent to ~10 tools (memory ops, task control, delegation) without a wake-word grammar; pluggable for your own local tools
  • Optional Claude task server — sidecar agent that handles slow/agentic work (Gmail, Calendar, Drive, Slack, web search) via your existing Claude Code MCPs
  • Apple Silicon support — MLX backend (WIP)
  • Mobile-ready — documented cloudflared and Tailscale paths for phone access with mic over HTTPS
  • Docker compose — one file brings up the full stack
  • OpenClaw integration — point OpenClaw's openai realtime provider at Vui for a fully-local voice front-end

Install (one-liner)

curl -fsSL https://install.fluxions.ai | bash

Clones into ~/vui, auto-detects Docker vs. native, installs deps (uv, Ollama, ffmpeg, Claude Code CLI), pulls the Ollama LLM, and launches the stack on .

Full Docker compose / native install, mobile setup, configuration, ASR options, and the Claude task server — all in the GitHub README.

TTS demo on its own

git clone https://github.com/fluxions-ai/vui
cd vui
uv sync
python demo.py                                          # Gradio UI — upload your own voice prompt
python demo.py --render --prompt prompts/abraham.wav    # CLI render with a preset voice

The Vui checkpoint and Qwen codec download automatically from this repo on first run.

Preset voices

VoiceDescription
maeveRecommended Default — Female Irish accent, beautiful but may be hard for non-UK listeners
abrahamBritish, well-spoken, exciting energy and personality — conscientious, good at emotionally difficult subjects
rhianMore traditional British accent, slightly hesitant speaking style
harryBritish male accent, mumbly

More personalities coming soon! Got a voice or character you'd like to hear? Open an issue or let us know on Discord.

Python API

from vui.engine import Engine, GenConfig

engine = Engine()  # vui-nano-1.1 by default; Engine("vui-190k") / Engine("vui-nano") for the others
with engine.new_row() as row:
    codes, audio = row.render(   # render() returns (codes (T,Q), audio (1,1,S))
        "So [breath] the thing about this is, it's not what you'd expect, right?",
        GenConfig(temperature=0.7),
    )

Clone a voice

Cloning is a prefill: hand the model Segment(text, codes) — a reference transcript plus its encoded audio — and everything rendered afterwards follows that speaker.

import torch
from julius.resample import resample_frac
from torchcodec.decoders import AudioDecoder
from torchcodec.encoders import AudioEncoder

from vui.engine import Engine, Ge

Quoted from the model card on Hugging Face. The full card is behind the Hugging Face link above.

© 2026 AxForge · EU-hosted AI infrastructure Pricing Docs Trust Privacy Terms