ComfyUI Node

Number to Text

'2' becomes 'two' (or 'zwei', if you leave the dropdown alone)

By MartinDeanMoriarty·Created 10 months ago·Updated 10 months ago· 0
Number to Text
    • STRING
    number2
    languagede

    The name tells you everything. Number to Text takes a number and hands you that number written as a word: "2" becomes two, "15" becomes fifteen. That's the entire job, and it's refreshing in a ComfyUI ecosystem where half the packs you install want to drag in a ControlNet and a couple of gigabytes of checkpoints. This one calls no API, needs no key, downloads zero models, and has a single Python dependency. The README even opens with a joke warning that using it means "you are old enough to know the risks of the internet" - that's the author being funny, because the only risk here is a couple of minutes wondering why you grabbed it.

    When you'd actually reach for it

    It's a text-plumbing utility, so its moment is when a number needs to end up as a word inside a string. The use case I'd actually endorse is natural-language dataset captioning. The captioning guidance for the LLM-encoder generation (Flux, Z-Image, Qwen-Image) is to write captions as plain natural language rather than tag soup, and a numbered series reads more naturally as "photo three of a ceramic mug" than "photo 3". If you're scripting captions for shot_003.jpg style datasets, this node slots right into the text-assembly step before the caption gets written.

    The other common ask is prompt variation: turning a loop counter into a word inside a dynamic prompt so you can grid out "a room lit by lamp one / lamp two / lamp three" without hand-typing each variant. That's about it. It's niche, it's personal - the node lives under the author's own DeanLogic category in a pack that has exactly one node - and nobody on reddit is arguing about it. Don't expect a community favorite; expect a tiny utility that does one thing.

    How it works

    It's a thin wrapper around the well-known Python library num2words. The node takes your input string, tries to parse it as an integer, falls back to a float, then hands it to num2words with lang='en' or lang='de'. If it can't parse the input at all, it just returns it unchanged, which is a friendly failure mode - paste "abc" in and you get "abc" back instead of a crash. One quirk to know: the input is a string, not an integer, so a plain batch-counter INT won't plug straight into it; you'll need a primitive or a text-formatting node in between.

    The inputs that matter

    There are only two, and you'll set both:

    • number - a string like "2" or "15" (default "2"). Works for ints and floats.
    • language - the dropdown with de and en. Here's the trap: the default is de. Leave it alone as an English speaker and you'll get zwei and fünfzehn, which is probably not what you wanted. The author's clearly German-speaking; flip it to en.

    The single output is a plain STRING, so it wires into any text concatenation node, a CLIPTextEncode prompt, or whatever's assembling your caption or prompt further down the graph.

    Installing it

    Easiest path is ComfyUI Manager - search "NumberToText" (the pack title is ComfyUI-NumberToText), install, restart. Or do it by hand:

    cd ComfyUI/custom_nodes
    git clone https://github.com/MartinDeanMoriarty/ComfyUI-NumberToText
    cd ComfyUI-NumberToText
    pip install -r requirements.txt
    

    That last line is not optional decoration: the requirement is num2words, and it is not bundled with ComfyUI. Manager runs it for you automatically; if you clone manually, you have to run it yourself.

    Common issues

    • ModuleNotFoundError: No module named 'num2words' - you cloned manually and skipped the pip install. Run pip install -r requirements.txt from the pack folder and restart ComfyUI. This is the one failure mode you'll actually hit.
    • German output you didn't ask for - see above; the default is de.
    • "I can't connect my integer to the number input" - expected; the input is a string. Convert first.
    • The README vouches for "numbers up to 9999 without problems." num2words can honestly go much higher, but the author only guarantees four digits - stay inside that and you're on solid ground.
    CategoryDeanLogic

    Inputs (2)

    NameTypeDefaultDescription
    numberSTRING2
    languageCOMBOde2 options: de, en

    Outputs (1)

    NameTypeDescription
    STRINGSTRING