UmiAI Wildcard Processor
The 'Lite' Wildcard Processor Is the Same Node — Here's Why It Has Two Names
- model
- clip
- model
- clip
- text
- negative_text
- width
- height
- lora_info
- input_text
- input_negative
- bypass_matches
- explain_json
- prompt_diff
- artist_chain
If you searched for UmiAIWildcardNodeLite, you've found a name that doesn't have its own node behind it anymore. The pack's registration maps both UmiAIWildcardNode and UmiAIWildcardNodeLite to the same implementation - the Lite class - and it does that because of how this node's history went.
The short version: the original UmiAI Wildcard Processor was a heavier thing with a local LLM vision pass, a refiner stage and a Danbooru expander built in. When the author rebuilt it as a lean, seeded text processor, that new class was named UmiAIWildcardNodeLite. Later the heavy one was dropped from the release build - the README's "Removed From This Lean Build" list still mentions the local-LLM pieces - and the plain UmiAIWildcardNode name was reassigned to the lean class. UmiAIWildcardNodeLite was kept as a compatibility alias so workflows saved against it keep opening.
What that means in practice
Three things, all of them useful to know:
- Both names are the current node. Your prompt expands with variables, conditionals, negative extraction, inline LoRAs, sections and embedded dimensions exactly as documented for the UmiAI Wildcard Processor. Nothing is stripped, no feature is "lite".
- The Lite entry is marked deprecated. The pack registers it through a subclass with
DEPRECATED = True, which newer ComfyUI frontends use to hide it from the Add Node menu. So on a current install you may see only one "UmiAI Wildcard Processor" in the search, and it will be theUmiAIWildcardNodeentry. On an older frontend you'll see two entries with the identical display name and the identical inputs - they behave the same. - Old workflows load. That's the entire reason the alias exists. If you have a graph from late 2025 or early 2026 with this node in it, leave it; it works.
Since this is the same node, the install and usage are the same: ComfyUI Manager (search the pack title) or clone into ComfyUI/custom_nodes and pip install -r requirements.txt - core needs pyyaml - then restart. It appears under the UmiAI category.
The trap worth naming
The inputs you see in a tutorial are not a reliable guide here, because the old heavy processor took things the lean one doesn't - vision_model, refiner_model, custom_system_prompt, a Danbooru threshold. If you're following a write-up that tells you to point a wildcard node at a .gguf file in models/llm, you're reading about the node that no longer ships. The lean processor's inputs are text and seed plus model/clip passthrough, LoRA behavior and cache, dimensions, input_negative, bypass_phrases, the profile/preset pair, section_order, and dry_run.
If you're choosing between the two menu entries, take the non-Lite one and forget the other exists. If you're migrating a workflow from the old processor, rebuild the node rather than patching widgets - the removed pieces have no equivalent to map onto.
Inputs (19)
| Name | Type | Default | Description |
|---|---|---|---|
| text | STRING | Prompt using UmiAI syntax: __wildcards__, {a|b} choices, $variables, [if ...] conditionals, [neg: ...] negatives, <lora:...> tags. See SYNTAX.md. | |
| seed | INT | 00–18446744073709550000 | Same seed, template, wildcard files and settings reproduce the same expansion. Use the seed control's increment/randomize mode for new rolls; __~name__ cycles by seed. |
| modelopt | MODEL | Connect to load inline <lora:...> tags into the model. | |
| clipopt | CLIP | Connect together with model to load inline <lora:...> tags. | |
| lora_tags_behavioropt | COMBO | Append to Prompt | Where to inject LoRA trigger/activation tags into the prompt. |
| lora_cache_limitopt | INT | 50–50 | How many loaded LoRA weight sets to keep cached in RAM. 0 disables caching. |
| widthopt | INT | 102464–8192 | Default width output. Overridden by @@width=...@@ in the prompt. |
| heightopt | INT | 102464–8192 | Default height output. Overridden by @@height=...@@ in the prompt. |
| input_negativeopt | STRING | Optional incoming negative prompt. Wildcards/variables are expanded; extracted negatives are appended to it. | |
| bypass_phraseopt | STRING | — | |
| bypass_phrasesopt | STRING | Comma-separated phrases matched as whole words, ignoring case, against the processed prompt. Results come out of bypass_matches for Umi Bypass nodes. | |
| prompt_profileopt | COMBO | None | Model-family defaults and lint rules from prompt_profiles.yaml. |
| prompt_presetopt | COMBO | none | Named prompt fragment from prompt_presets.yaml applied to this prompt. |
| preset_placementopt | COMBO | append | How the selected preset combines with the prompt text. |
| section_orderopt | STRING | Comma-separated order for [section:name] blocks in the prompt. | |
| dry_runopt | BOOLEAN | false | Expand the prompt and report LoRA info without actually loading LoRAs. |
| _frozen_textopt | STRING | Set by the node's Pin button. When present, this exact expansion is reused instead of rolling. | |
| _frozen_negativeopt | STRING | Negative half of a pinned roll. | |
| _frozen_seedopt | STRING | Seed captured with a pinned roll. Empty means nothing is pinned. |
Outputs (13)
| Name | Type | Description |
|---|---|---|
| model | MODEL | — |
| clip | CLIP | — |
| text | STRING | — |
| negative_text | STRING | — |
| width | INT | — |
| height | INT | — |
| lora_info | STRING | — |
| input_text | STRING | — |
| input_negative | STRING | — |
| bypass_matches | STRING | — |
| explain_json | STRING | — |
| prompt_diff | STRING | — |
| artist_chain | STRING | — |