I18n Text Processor
The name is a lie, but that's the point
- processed_text
Let's get the awkward part out of the way: I18n Text Processor will not translate your prompt into Japanese. If that's what you googled, you can stop reading now. The node takes a string and uppercases it, lowercases it, reverses it, or slaps a prefix on it. That is the entire feature set.
So why does the word "i18n" (short for "internationalization") appear in its name at all? Because the node isn't really the product. It's the demo payload of ComfyUI-i18n-demo, a template pack published by the comfyui-wiki org to show custom-node authors how to ship their node's UI - names, tooltips, dropdown options - translated into the user's language. The i18n is about the ComfyUI interface, not your text. It's a teaching artifact you happen to be able to add to a graph.
How it works
There's no magic and no model involved. Peek at demo_node.py and you'll see a plain Python class that loops over your text count times and applies the chosen operation each pass:
for _ in range(count):
if operation == "uppercase":
result = result.upper()
elif operation == "lowercase":
result = result.lower()
elif operation == "reverse":
result = result[::-1]
elif operation == "add_prefix":
result = prefix + result
Zero dependencies, no GPU, no API calls, no files to download. The whole pack is one Python file, a tiny frontend script, and eight translation folders (en, es, fr, ja, ko, ru, zh, zh-TW) full of JSON that rename the node's inputs and tooltips per language. The js extension also registers two settings (a debug-mode toggle and a default operation) under an "I18n Demo" section - all of it localizable. That's the real content: a reference for how the ComfyUI frontend picks up translated strings.
Inputs and outputs that matter
You only ever set three things:
- text - the string to process. Multiline, defaults to "Hello World!".
- operation - one of
uppercase,lowercase,reverse,add_prefix. - count - how many times to repeat the operation, 1 to 10. Default 1, and honestly leave it there.
There's an optional prefix input (default [I18N] ) used only when operation is add_prefix.
The single output, processed_text, is a STRING - not conditioning, not a CLIP encode. Wire it into anything that accepts a text string, or into the PreviewAny node, which is exactly what the pack's bundled example workflow does.
Install
Install it like any custom node: ComfyUI Manager → search ComfyUI-i18n-demo → install, or clone it manually:
cd ComfyUI/custom_nodes
git clone https://github.com/comfyui-wiki/ComfyUI-i18n-demo
Restart ComfyUI. That's the whole install - there's no requirements.txt, no model downloads, no heavy dependencies to fight over. It also publishes to the Comfy Registry via the standard publish-node-action workflow, which is how Manager finds it.
Gotchas, or: when to just delete it
reversewithcount> 1 flips back and forth. Reverse twice and you're back at the original string. The loop is the spec; there's no de-dup.add_prefixstacks. Withcount3 and prefix[I18N]you get[I18N] [I18N] [I18N] Hello World!.- Any error just becomes a string like
Error: ...passed through as output, so a broken node won't fail the graph loudly - it'll quietly poison whatever eats the string. - The UI translations only show up if your ComfyUI language is set to a language this pack ships (Japanese, Spanish, etc.); on an English install it looks like a perfectly normal little string node.
And here's the honest take: if a downloaded workflow demands this node, you almost certainly don't need it. It's a demo. Replace it with any text source - or just delete it and hardcode the string - and your workflow will run exactly the same. Knowing it's a template, not a utility, saves you the confusion I had.
Inputs (4)
| Name | Type | Default | Description |
|---|---|---|---|
| text | STRING | Hello World! | The original text content to be processed |
| operation | COMBO | uppercase | The text processing operation to be executed |
| count | INT | 11–10 | The number of times to repeat the operation |
| prefixopt | STRING | [I18N] | The prefix to add to the text |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| processed_text | STRING | — |