Every node id, input name and existing widget position is unchanged, so saved
workflows load; new inputs are appended only.
Wildcards
- core/wildcards: Dynamic Prompts / Impact Pack grammar, tag queries, variables,
conditionals, concept / verbatim / loose bindings, reproducible seeds.
Wired into every enhancer node; reads ComfyUI/models/wildcards.
- New nodes: Wildcard Processor, Semantic Variation (direction axes),
Concept Survival Check. Starter lists in wildcards/.
- Random choices use a private generator; global random state is untouched.
Platform profiles
- core/profiles + profiles/*.yaml: one file per model (format, length,
negative prompt or none, quality tokens, text and dialogue syntax, vendor
rewriter prompt fetched once and cached). profiles_user/ overrides by id.
- New node: Platform Prompt Rewriter (prose, tags, edit instructions, JSON,
MiniMax H3 fields, Hailuo brackets), with validators for each format.
- Text-to-Image and Image-to-Image read profiles through platforms.py;
corrected facts for FLUX, Kontext, Chroma, Wan, AuraFlow, Kolors, NoobAI,
Qwen-Image, HunyuanImage. Negative prompt is empty for models without one.
- Hosted / API models: Seedream 5, Nano Banana, GPT Image, Midjourney V8,
FLUX.2 pro, Ideogram 3, Recraft V4, Seedance 2.0 / 2.5, Kling 3.0, Veo 3.1,
Gemini Omni Flash, Runway, Wan 3.0, Luma, hosted H3, Grok, Vidu, PixVerse.
Reports say how to switch the vendor's own prompt rewriting off.
- Illustrious: spaced tags, quality tags last, 25-80 words (OnomaAI paper).
Video nodes
- target_model and duration_seconds appended to the three video expanders.
Default target is MiniMax H3; wan22_video is the original path, unchanged.
A workflow saved earlier loads with the default until the input is set.
Also included: the Alice, Ideogram Magic Prompt and prompt-database nodes that
were already registered in __init__.py but had not been committed.
Fixes: v1 {animal} / {label:a|b} wildcards were inert in the video nodes;
Image-to-Video save_to_file raised NameError; T2I padded short-prompt models.
.gitattributes added (text=auto) so CRLF working files stop showing as
whole-file changes. prompt_database.db and the cached Ideogram prompt are
git-ignored.
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_019VpCi6nw5UECMdZ7ayYJvN
2.1 KiB
Wildcard lists
These are the lists that ship with Eric's Prompt Enhancers. Your own packs do not go here.
Where packs live
Put downloaded packs in ComfyUI/models/wildcards. Every node in this package reads that folder,
and any wildcards: entry in extra_model_paths.yaml, without configuration. Dynamic Prompts and
Impact Pack packs (.txt, nested .yaml) work as they are.
Folders are searched in this order, and when a name exists in more than one, the first one wins:
- a node's
extra_pathsinput ComfyUI/models/wildcardswildcards:folders fromextra_model_paths.yaml"wildcard_paths": ["D:/more/packs"]in this package'sconfig.json- this folder
So a pack's animal.txt replaces the shipped animal.txt; it is not mixed into it.
A pack written for a folder called look still resolves (__look/styles__) when it was unzipped
as theLookWildcards_v10, as long as the real folder name contains the expected one and only one
such folder exists.
Run python_embeded\python.exe custom_nodes\video_prompter\dev\scan_wildcard_packs.py for a
report on everything found: unreadable files, names defined twice, references to packs you do not
have, and syntax from other tools.
| Use | Syntax |
|---|---|
| One entry from a file | __animal__, __light/setups__ |
| Any file under a folder | __camera/**__, __objects/**__ |
| Entries by tag | __objects[metal AND handheld]__, __spaces[empty AND NOT natural]__, __[hollow AND antique]__ |
| Several entries | {2$$__color__}, {1-3$$ and $$__objects/kitchen__} |
| Pick once, reuse | ${who=!__person__} ... ${who} |
| Exact words must survive the LLM rewrite | __=name__, `{=a |
| Inspiration only | __?emotion__, `{?a |
.txt: one entry per line, # comment lines ignored, optional weight prefix 3::common entry.
.yaml: keys form the wildcard path; items are strings or {text, tags, weight}. See objects.yaml.
The entries are deliberately specific and physical ("a barn owl", "soft north-window light from the left") because image models render concrete nouns and real lighting far better than adjectives.