Chat NoASS
A roleplay node that tells the model exactly how to start its reply
- config
- vars
- image
- text
- history
Chat NoASS is the pack's experimental roleplay node, and it's doing something genuinely different from plain Chat. NoASS stands for "No Assistant" - the trick being that instead of asking the model to write a reply, you pre-fill the start of the reply yourself and let the model continue from there. It's the old "assistant prefill" trick from the roleplay world: if you want the character to act a certain way, you start the sentence as the character and the model has no choice but to finish it in that voice.
The author calls it "hardcore roleplay" and the mechanism is right there in the description: single-turn context with a giant assistant prefill to force formatting. Rather than a long back-and-forth chat, it constructs a scenario, your action, and a mandated opening, then lets the model take over from your opening words. It's a heavy hammer - great for steering tone, breaking the model out of its default assistant voice, or forcing a specific response format, and not something you'd use for normal Q&A.
The inputs
config- required, fromAPI Config.scenario_instructions- the world, characters, and rules. The "stage setting" user message.user_action- your current turn or dialogue.prefill_start- optional; the first words of the assistant's response, which the model must continue from. This is the steering wheel.history- connect one node'shistoryoutput to the next node's input to keep a conversation going across multiple NoASS nodes.image- optional IMAGE for vision-capable models.user_name/char_name- labels used in the formatted conversation, defaultUserandAssistant.vars,temperature,max_tokens- the usual set. Mustache{{var}}works in the scenario, action, and prefill.
Outputs: text (the model's continuation) and history (the formatted transcript, for chaining).
Why it's fiddly and worth it
Assistant prefill is one of the few reliably reproducible ways to control roleplay output, because you're not hoping the model follows instructions - you're physically writing the first tokens. The trade is that it's single-turn context assembled per request, so long-term memory has to be carried through the history string you pass along, and the formatting has to stay consistent or the prefill fights you. It's experimental for a reason: it works best when you keep the scenario tight and the prefill short enough to continue naturally.
Installing it
cd ComfyUI/custom_nodes
git clone https://github.com/Moeblack/ComfyUI-SimpleChat
Restart, or use Manager and search "ComfyUI-SimpleChat". Only dependency: aiohttp. It's an API-call node like the rest of the pack - no local model to download.
Gotchas
The prefill_start is fed as the assistant's opening, so if it doesn't match the model's trained style the continuation can lurch. Keep history chained explicitly - unlike a real chat API this node doesn't keep state, so forgetting to pass history forward means every node is a fresh scene. And because it's single-turn with a big prefill, token cost is higher per exchange than plain Chat; don't run it where a normal prompt would do.
Inputs (11)
| Name | Type | Default | Description |
|---|---|---|---|
| config | SIMPLECHAT_CONFIG | — | |
| scenario_instructions | STRING | — | |
| user_action | STRING | — | |
| prefill_startopt | STRING | — | |
| historyopt | STRING | — | |
| varsopt | SIMPLECHAT_VARS | — | |
| imageopt | IMAGE | — | |
| user_nameopt | STRING | User | — |
| char_nameopt | STRING | Assistant | — |
| temperatureopt | FLOAT | 1.00–2 | — |
| max_tokensopt | INT | 20481–128000 | — |
Outputs (2)
| Name | Type | Description |
|---|---|---|
| text | STRING | — |
| history | STRING | — |