Traditional to Simplified Chinese
Your Pipeline Only Speaks Simplified — Flip the Script With One Node
- text
Say you've got a ComfyUI TTS workflow humming along, and the model - trained mostly on mainland-Chinese data - keeps butchering anything written in traditional characters. Or you're feeding a prompt written in traditional to a CLIP encoder that was clearly built on simplified. TraditionalToSimplified takes traditional-Chinese text and outputs the simplified version, so whatever comes next in your graph gets input in the dialect it actually handles. It's the mirror image of the pack's other node, SimplifiedToTraditional, and together they cover the whole round trip.
What it is
One half of MylanChan/comfyui-chinese-converter, a tiny two-node pack that exists for one reason: text written in one Chinese script reaching models that only read the other. This node is text in, text out, nothing else - no GPU, no model download, no API key, fully offline. The pack's own README frames the whole thing around TTS models that don't support traditional Chinese, but the same reasoning applies anywhere a model or tool is simplified-only.
How it works
It's a thin wrapper around OpenCC, the standard library for hanzi script conversion (the same engine behind Wikipedia and macOS input methods). The node creates an OpenCC instance with the t2s (traditional-to-simplified) config and runs convert() on whatever string you give it. Because OpenCC works with phrase tables rather than single characters, it converts idioms as units instead of producing word-by-word Franken-Chinese. The dependency is opencc-python-reimplemented, a pure-Python port, so nothing compiled and nothing heavy - which is a small mercy in ComfyUI's dependency hellscape.
One implementation note: the converter is built lazily and cached per node instance, and the node's IS_CHANGED returns a hash of the input text. That just means it reruns when your text actually changes and stays quiet otherwise - exactly the behavior you want from a pass-through node.
Inputs and outputs
The entire surface area is one field:
- text (STRING, multiline required) - paste your traditional-Chinese text or wire it in from an upstream node.
And one output:
- text (STRING) - the simplified conversion, ready to plug into a CLIP Text Encode prompt, a TTS model's text input, or a Save Text node.
Because it's a plain typed STRING socket, you can fan the result out to several consumers at once - the same "one authoritative text source, many wires" pattern ComfyUI's plumbing layer is built around. No special data structures, no pipes, no context objects to keep straight.
Installing it
Install once for both nodes: ComfyUI Manager → search comfyui-chinese-converter, or by hand:
cd ComfyUI/custom_nodes
git clone https://github.com/MylanChan/comfyui-chinese-converter
cd comfyui-chinese-converter
pip install -r requirements.txt
Then restart ComfyUI. The only requirement is the pure-Python OpenCC port, so install takes seconds and there are no model files to hunt down.
Where people get burned
- OpenCC dependency clashes. The README warns to check for conflicts if the node misbehaves - another pack may have pulled in a different
openccbuild, and audio packs in particular have a track record of dependency collisions (the KB's TTS essay flags dependency conflict as the default failure mode there). If you hit an import error naming opencc, straighten out the duplicate and reinstall. - Rare characters pass through unchanged. OpenCC runs off predefined dictionaries and the author is upfront that uncommon hanzi may not convert. It's a script converter, not a translator - if a character isn't in the tables, it ships through as-is.
For the usual case - a standard traditional script feeding a simplified-only model - this node is a boring, reliable, offline fix. Boring is the compliment: it does one thing, does it with the industry-standard library, and gets out of your graph's way.
Inputs (1)
| Name | Type | Default | Description |
|---|---|---|---|
| text | STRING | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| text | STRING | — |