Files
olivv-cs-ComfyUI-FunPack/modules/conditioning/prompt_markup/__init__.py
T
digital-garbageandClaude Opus 5.5 9d028ccc92 feat(v5): prompt markup for H3 -- (word:1.5), [phrase@t0-t1], [a|b]
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>
2026-09-27 18:11:51 +03:00

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]