PersonaPlex Settings
The single dial-board for every PersonaPlex sampling, timing, and server knob
- settings
PersonaPlex Settings is the control surface for everything the pack doesn't want you to fiddle with one knob at a time. It's optional - every field has a sane default, so you can build a working workflow without ever touching it - but it's the node you reach for the moment you want the model to stop sounding like it's reading a script, or when you need reproducible output.
Think of it as the CFG-scale-and-sampler panel of this pack: one node, one wire, all the dials. It outputs a single settings bundle (type PERSONAPLEX_SETTINGS) that plugs into either the Conversation Server or the Inference node. Wire it to one and you've centralized the persona, the voice, the randomness, and even the server's network behavior.
What you'll actually touch
The sampling knobs map to the Moshi LM's generation parameters:
temp_audio(0.8) andtemp_text(0.7) - sampling temperature for the audio and text token streams. Higher = more random. The audio one shapes how "expressive" the voice gets; the text one shapes how unhinged the content gets. Crank them together and you'll get variety; crank them way up and you get gibberish.topk_audio(250) andtopk_text(25) - top-K sampling per stream. Note the asymmetry: the audio stream samples from a wide pool, the text stream is kept tight at 25. That's deliberate - it keeps speech natural-sounding while keeping the words coherent.use_sampling(true) - the big hammer. On, you get stochastic sampling; off, greedy decoding (deterministic picks). If you're chasing reproducibility, greedy plus a fixed seed is the most repeatable combination.silence_duration(0.5s) - how long the model waits before it starts talking.seed(-1) - -1 means random every run. Set a number to reproduce a generation, assuming the rest of the graph is unchanged.
Then the persona block: voice_preset (default, which resolves to NATF2, or any of the 18 presets) and text_prompt (the system prompt defining who the AI is). One gotcha worth knowing: when this node is connected, its voice_preset and text_prompt override whatever you typed directly on the Inference node - empty/default values pass through, anything else wins. That's the author's own behavior, and it's caused many a "why is it ignoring my prompt" moment.
The last three fields only matter for the Conversation Server: host (0.0.0.0), use_ssl (HTTPS with auto-generated certificates, for exposing the UI), and gradio_tunnel (remote access from another machine). Leave them alone unless you're deliberately opening the chat up beyond localhost.
How it works
It's a plain data node: it builds a dictionary from your inputs and hands it down the PERSONAPLEX_SETTINGS wire. The Inference node reads sampling and persona values out of it; the server node reads host, use_ssl, gradio_tunnel, and seed. Nothing runs on its own - it only matters when something downstream consumes it. Output node status: no, it's not marked as a terminal node, so you can't just run it alone and call it done; it has to feed Inference or the Server.
When to bother
For a first run, don't. The defaults are tuned sensibly and the model's weak point isn't its sampling config. Where this node earns its place: (1) you want the same persona across multiple inference nodes without retyping it, (2) you need a fixed seed for a repeatable test, or (3) you're comparing temperature/top-k settings and want them in one visible place instead of buried in individual nodes. Install is the pack standard (pip install -r requirements.txt plus pip install -e personaplex_src/moshi) - and since this node does no heavy lifting itself, it's the only node in the pack that'll work even if your models haven't been downloaded yet.
Inputs (12)
| Name | Type | Default | Description |
|---|---|---|---|
| temp_audio | FLOAT | 0.800–2 | Audio sampling temperature. Higher = more random. |
| temp_text | FLOAT | 0.700–2 | Text sampling temperature. Higher = more random. |
| topk_audio | INT | 2501–2000 | Top-K sampling for audio tokens. |
| topk_text | INT | 251–500 | Top-K sampling for text tokens. |
| use_sampling | BOOLEAN | true | Use sampling. If False, uses greedy decoding. |
| silence_duration | FLOAT | 0.50–5 | Silence duration in seconds before response starts. |
| seed | INT | -1-1–2147483647 | Random seed for reproducibility. -1 = random. |
| voice_presetopt | COMBO | default | Voice preset to use. 'default' uses NATF2. |
| text_promptopt | STRING | System prompt defining the AI's persona and behavior. | |
| hostopt | STRING | 0.0.0.0 | Host address for the server. |
| use_sslopt | BOOLEAN | false | Enable HTTPS with auto-generated certificates. |
| gradio_tunnelopt | BOOLEAN | false | Enable gradio tunnel for remote access. |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| settings | PERSONAPLEX_SETTINGS | — |