Files
EricRollei-Local_LLM_Prompt…/profiles/image/flux2_dev.yaml
T
Eric HissandClaude Fable 5.1 4459af9ea6 V2.0.0: wildcard engine, platform profiles, MiniMax H3 default, API models
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
2026-09-21 00:28:58 -07:00

62 lines
3.3 KiB
YAML

id: flux2_dev
name: "FLUX.2 [dev]"
developer: "Black Forest Labs"
summary: "32B model read through Mistral-Small-3.2-24B. Prose or structured JSON, exact hex colours, strong text rendering, text-to-image and reference editing in one model."
modality: image
tasks: [t2i, edit]
encoder: "Mistral-Small-3.2-24B-Instruct (512 tokens)"
encoder_family: llm
caption_style: prose
languages: [en]
target_words: [40, 110]
max_tokens: 512
negative: "no"
quality_tokens: forbid
quoted_text: double
weights: false
hex_colors: true
structure: "Subject + action or pose + style or medium + context or setting + lighting + technical. Word order matters: earlier = stronger."
rules:
- "Front-load the subject; FLUX.2 pays most attention to what comes first."
- "Always describe the light: source, direction, quality, colour temperature. It is the biggest quality lever."
- "For photorealism give camera, lens, aperture and film stock rather than words like 'realistic'."
- "Anything that would carry text in reality (signs, labels, screens) needs explicit quoted text, or the model writes gibberish."
- "30-80 words suits most ideas; go past 80 only for complex multi-subject scenes."
avoid:
- "Negative phrasing: 'no glasses' becomes 'clear face, eyes visible'"
- "Keyword soup ('woman, portrait, beautiful, 8k, detailed')"
- "A hex code that is not bound to an object"
- "Prompt weights"
task_rules:
edit:
target_words: [30, 80]
structure: "One instruction: what changes, then what stays the same (face, lighting, composition)."
validator: edit_instruction
rules:
- "One concise instruction, 50-80 words, about 30 for a brief request."
- "Analytical language; no decorative words such as 'whimsical' or 'cascading'."
- "Say what changes AND what stays the same."
- "Refer to real elements of the source image; refer to several inputs as 'image 1', 'image 2'."
- "Turn negatives into positives: 'don't change X' becomes 'keep X'."
- "Make abstractions concrete."
replace_rules: true
official:
- task: t2i
url: "https://raw.githubusercontent.com/black-forest-labs/flux2/main/src/flux2/system_messages.py"
format: python_var
variable: SYSTEM_MESSAGE_UPSAMPLING_T2I
- task: edit
url: "https://raw.githubusercontent.com/black-forest-labs/flux2/main/src/flux2/system_messages.py"
format: python_var
variable: SYSTEM_MESSAGE_UPSAMPLING_I2I
note: "BFL's edit prompt contains the line 'Keep content PG-13' (their hosted-service policy). It is left as published; add a drop_lines pattern in a profiles_user copy to remove it."
tailoring: |
Length: 30-80 words for most ideas, up to about 110 for complex scenes. Describe the light source and direction in every prompt.
When exact colours matter, bind a hex code to the object and announce it with the word "color": "a scarf in color #C4725A".
sources:
- {url: "https://docs.bfl.ml/guides/prompting_guide_flux2", supports: "structure, lengths, JSON schema, hex colours, no negatives, typography", confidence: high}
- {url: "https://raw.githubusercontent.com/black-forest-labs/flux2/main/src/flux2/text_encoder.py", supports: "512-token limit, encoders", confidence: high}
- {url: "https://raw.githubusercontent.com/black-forest-labs/flux2/main/src/flux2/system_messages.py", supports: "official upsampling prompts", confidence: high}
checked: "2026-09-20"
confidence: high