Prompt Markup strips it before the encoder; Apply Prompt Markup puts weights and timed windows on attention and blends on the conditioning. Where the words sit is the H3 module's (text_tokenizer, prompt_rows, video_time_rows). Wired into both H3 presets. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
30 lines
1.2 KiB
Python
30 lines
1.2 KiB
Python
"""Prompt markup -- (word:1.5), [phrase@2-4], [a|b]. A node-only module.
|
|
|
|
Two nodes, because the markup has to be split around the encoder: it must come
|
|
OUT before the encoder sees the text (Qwen reads "(word:1.5)" as punctuation in
|
|
your sentence), and it can only be applied AFTER, once there is a conditioning
|
|
to find the words in and a model to bias.
|
|
|
|
text -> Prompt Markup -> clean -> (any H3 encode node) -> positive
|
|
-> markup ---------------------> Apply Prompt Markup
|
|
(+ model, clip, latent)
|
|
|
|
Where the words sit, and how seconds map to rows, is the MODEL's business: model
|
|
modules announce `text_tokenizer`, `prompt_rows` and `video_time_rows`. With
|
|
none that recognise the encoder, the markup is stripped and said to be unused --
|
|
never silently ignored.
|
|
|
|
The weight is an attention BIAS, and SLA runs any biased call dense, so a run
|
|
with weights or timed phrases runs dense attention.
|
|
"""
|
|
|
|
from .nodes import FunPackApplyPromptMarkup, FunPackPromptMarkup
|
|
|
|
ID = "conditioning_prompt_markup"
|
|
TITLE = "Prompt markup"
|
|
STAGE = "conditioning"
|
|
CATEGORY = "conditioning"
|
|
STATUS = "proven"
|
|
|
|
NODES = [FunPackPromptMarkup, FunPackApplyPromptMarkup]
|