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
42 lines
2.3 KiB
YAML
42 lines
2.3 KiB
YAML
# Platform profile template. Copy to profiles_user/<your_id>.yaml and edit.
|
|
# Files starting with "_" are not loaded. Field reference: core/profiles/schema.py
|
|
# A profile in profiles_user/ with the same id as a shipped one replaces it.
|
|
|
|
id: my_model # dropdown value. Never rename once workflows use it.
|
|
name: "My Model"
|
|
developer: "Who makes it"
|
|
summary: "One line: what it is and how it likes to be prompted."
|
|
modality: image # image | edit | video
|
|
tasks: [t2i] # t2i, edit, t2v, i2v, flf2v, ref2v
|
|
encoder: "T5-XXL"
|
|
encoder_family: t5 # clip | t5 | llm
|
|
caption_style: prose # prose | tags | tags_prose | instruction | json | fields | bracket_prose
|
|
languages: [en]
|
|
target_words: [60, 150]
|
|
max_tokens: 512 # text encoder hard limit, 0 = unknown
|
|
negative: "yes" # "yes" | "no" | ignored | inline (quote yes/no: bare yes/no is a YAML boolean)
|
|
# inline = no separate field, but the vendor endorses exclusions written into the prompt
|
|
negative_default: "blurry, low quality"
|
|
quality_tokens: neutral # forbid | neutral | help | required
|
|
quoted_text: double # double | single | none
|
|
weights: false
|
|
hex_colors: false
|
|
structure: "Subject + action + setting + light + style"
|
|
rules:
|
|
- "Imperative sentences the LLM must follow."
|
|
avoid:
|
|
- "Things the LLM must not do."
|
|
# words_per_second: [35, 45] # video: when the clip length is known it sets the length instead of target_words
|
|
# suffix: "masterpiece, best quality" # like prefix, for models trained with quality tags at the END
|
|
# api_note: "Hosted model: what to set in the API call, e.g. how to switch the vendor's own prompt rewriting off."
|
|
# extends: other_profile_id # inherit everything, override what differs
|
|
# official: # vendor-published rewriter prompt, fetched once and cached
|
|
# - task: t2i
|
|
# url: "https://raw.githubusercontent.com/..."
|
|
# format: text # text | python_var | sections
|
|
# variable: "" # python_var: NAME or function.NAME ; sections: section name
|
|
sources:
|
|
- {url: "https://...", supports: "what this page proves", confidence: high}
|
|
checked: "2026-09-20"
|
|
confidence: medium
|