isalpha
Letters only — no digits, no spaces
- BOOLEAN
The sibling of isalnum, one notch stricter: only letters pass. If you're validating a name - a subject, a style, a label - where digits just don't make sense, this is the check.
What it does
isalpha wraps str.isalpha(). It returns True only if every character in the string is alphabetic - a letter - and the string has at least one character. The moment a digit, space, or punctuation shows up, it's False.
One string input, one BOOLEAN output. That's the node.
Why you'd reach for it
Name validation, mostly. "Is this string a plausible subject name?" - if it contains digits or symbols, it probably isn't, and you can route it elsewhere. It's the natural gate before a string becomes a key, a filename component, or a comparison target. Like the rest of the is-* family, the output is a boolean that feeds cleanly into the pack's control-flow nodes for branching.
The realistic split in this family: isalpha for "letters only," isalnum for "letters and/or digits," isascii for "everything's plain ASCII." Pick by what your downstream actually tolerates.
Installing
Part of Basic data handling by StableLlama. In ComfyUI Manager search "Basic data handling" → Install → restart. Or:
cd ComfyUI/custom_nodes
git clone https://github.com/StableLlama/ComfyUI-basic_data_handling
Restart. Zero runtime dependencies - pure stdlib - so the install is trivial and can't break anything else.
Where people get burned
The same two quirks as isalnum. Empty string → False (the "at least one character" rule), and Unicode letters count, so "Café" returns True. If you were expecting ASCII-only behavior, remember this is checking letters, not ASCII letters - that's what isascii is for. And spaces always fail, which catches people who check a whole sentence.
Inputs (1)
| Name | Type | Default | Description |
|---|---|---|---|
| string | STRING | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| BOOLEAN | BOOLEAN | — |