ShowTextNode
The boring text box that makes SenseVoice's transcriptions visible
- sense_voice_output
Let's be honest about what this node is: it's the passenger seat of the SenseVoice pack, not the engine. The star of AIFSH/SenseVoice-ComfyUI is SenseVoiceNode, which runs SenseVoice-Small (Alibaba's multilingual speech-recognition model, from the FunASR toolchain) on an audio input and returns the recognized text as a TEXT value. The problem with that is a TEXT value floating in a graph is invisible - it goes nowhere you can actually read. ShowTextNode exists to give it somewhere to land. It's the terminal node at the end of your speech-to-text pipeline: audio in, SenseVoice transcribes, and this box shows you what the model heard.
Why you'd reach for it
Two reasons, and only one is good. The good one: you're running a transcription or voice-to-prompt workflow and you want to actually see the transcript on your canvas, then do something with it downstream. The bad one: you found this node in a list and thought it was a generic "show text" utility. It isn't - it's bolted to the SenseVoice pack, and there are better standalone text display nodes elsewhere. If you don't need speech recognition, don't install this pack to get this node. It rides along because its sister node's output needs a visible end point.
How it works
Mechanically it's dead simple, and that's the whole point. It's an output node (OUTPUT_NODE = True, no return types - nothing wires out of it). When it runs, its encode function just returns {"ui": {"text": [sense_voice_output]}}, handing the transcription string back to the ComfyUI frontend where it shows up in the node's UI output.
Here's the part that will save you a confused afternoon: that visible text textbox input is required but never read. The Python code accepts it and ignores it completely. Typing in it does nothing, and leaving it empty changes nothing - the displayed value always comes from sense_voice_output. There's a JavaScript extension in the pack (js/innerText.js) clearly meant to auto-fill that textbox with the result after execution, but it hooks a node named TextNode while the pack registers ShowTextNode. So the auto-fill doesn't fire for this node as shipped. Don't fight it; just know the transcript lands in the node's UI output, not magically in the textbox.
The inputs that matter
There are exactly two, both required, and only one does anything:
sense_voice_output(TEXT) - this is the one that matters. Wire theTEXToutput of SenseVoiceNode into it. Any node that outputs a matchingTEXTtype will connect too.text(STRING, multiline) - decorative. Accepted and ignored. Type whatever you want; it won't appear in the output.
That's the whole interface. There are no outputs, no optional params, nothing to tune.
Installing it
It's not installed on its own - it comes with the whole SenseVoice pack. The easy path: ComfyUI Manager → search SenseVoice → install, then restart. The manual path is the same as it always is:
cd ComfyUI/custom_nodes
git clone https://github.com/AIFSH/SenseVoice-ComfyUI.git
cd SenseVoice-ComfyUI
pip install -r requirements.txt
Fair warning before you do: this is a heavyweight install for what looks like a text box. The requirements pull in funasr, modelscope, and a numpy<=1.26.4 pin that can clash with other nodes expecting a newer numpy - this is a classic source of "my workflow broke after installing this pack" posts. The SenseVoiceSmall weights are downloaded from ModelScope (Alibaba's hub, not HuggingFace) at module import time, so startup will try to grab the model before you've even added a node - and if ModelScope is slow or blocked where you are, that's your first hang. The node also hardcodes cuda:0 with no CPU fallback.
Troubleshooting
- Startup hangs or errors on import - that's the ModelScope download kicking in. Let it finish once (or pre-download
iic/SenseVoiceSmalltopretrianed_models/SenseVoiceSmallinside the pack) and it caches. - "numpy" version conflicts after installing - the
<=1.26.4pin is the usual suspect; sort your numpy situation before blaming other nodes. - The textbox never updates on its own - expected, per the JS mismatch above. Read the transcript from the node's UI output.
- CUDA errors - you need a GPU. This pack has no CPU mode.
Net: ShowTextNode is a four-line display utility riding in a much bigger pack. If you're here for SenseVoice transcription, it's the box at the end that makes the result tangible. If you're here for a text display node, you found the wrong one.
Inputs (2)
| Name | Type | Default | Description |
|---|---|---|---|
| sense_voice_output | TEXT | — | |
| text | STRING | — |
Outputs (0)
No outputs