Nodes/ComfyUI-i18n-demo/I18n Text Processor
ComfyUI Node

I18n Text Processor

The name is a lie, but that's the point

By comfyui-wiki·Created about a year ago·Updated 9 months ago· 1
I18n Text Processor
    • processed_text
    textHello World!
    operationuppercase
    count1
    prefix[I18N]

    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

    • reverse with count > 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_prefix stacks. With count 3 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.

    CategoryI18n Demo

    Inputs (4)

    NameTypeDefaultDescription
    textSTRINGHello World!The original text content to be processed
    operationCOMBOuppercaseThe text processing operation to be executed
    countINT11–10The number of times to repeat the operation
    prefixoptSTRING[I18N] The prefix to add to the text

    Outputs (1)

    NameTypeDescription
    processed_textSTRING