File size: 9,663 Bytes
bc50ea0 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 | # Scene authoring
## Plan structure
The Plan node provides a visual editor and stores ordinary JSON underneath.
Put shared instructions in `prompt_prefix`; each scene should describe what
changes.
```json
{
"prompt_prefix": "Keep the same performer, wardrobe and visual language.",
"defaults": {"duration_seconds": 15, "steps": 20},
"shots": [
{"id": "intro", "prompt": "Instrumental opening in the elevator.", "seed": 123},
{"id": "street", "prompt": "Continue outside into the rain.", "seed": 456}
]
}
```
Prompts may be multiline strings or arrays of lines. Seconds are rounded up to
H3's valid `17k+5` frame grid. Use `length` when exact raw frames matter.
The [complete format guide](../H3_CHAIN_FORMAT_GUIDE.md) documents every Plan
and per-scene field, raw versus delivered length, prompt structure, seeds, and
timing.
## Chapter resolution
Click the chapter marker in **Plan Studio** to choose **Inherit from Plan** or
**Chapter resolution**, with Width and Height in multiples of 32. Each chapter
has one size; the next chapter inherits the Plan default, not the previous
chapter's override. Wire **Current Shot** width/height to conditioning so its
latent and reference preparation match the active chapter. The combined
**Current Tagged Ref2VA Scene** node already handles this internally.
The existing scene lock also pins a chapter to its locked saved scenes' size.
For example, lock Chapter 1's saved scenes, then change the Plan default or set
Chapter 2's resolution. Chapter 1 stays at its saved size. A conflicting explicit
size for Chapter 1 is rejected until its saved scenes are unlocked. Locking an
ungenerated slot cannot pin a size. Locks do not bypass prompt/model identity,
artifact-integrity, or native latent compatibility checks.
Different-sized chapters need an independent video boundary: set the new
chapter's first scene's video context to zero for AV masking or latent Guide.
Export each chapter separately with **Chapter Delivery**. Whole-run assembly
cannot combine different sizes automatically.
Saved media is never resized; recovery snapshots retain the resolved chapter size.
In Plan JSON the optional field is, for example:
```json
{"id":"chapter_2","title":"Chapter 2","start_scene_id":"scene_08",
"resolution":{"width":1344,"height":768},"text":""}
```
Omit `resolution` (or set it to `null`) to inherit. Chapter titles and notes
remain editorial only and do not change generation identity.
## Per-scene LoRA routes
Each scene has a **Scene LoRA route** selector: Base or LoRA A-D. Connect
Current Shot `state` to **MiniMax H3 Scene LoRA Scheduler**, connect the normal
base MODEL to `base_model`, and connect MODEL outputs from ordinary ComfyUI
LoRA loaders to the A-D inputs. The scheduler only routes those prepared
models; it never chooses a file or applies a LoRA.
One route can contain a stack of ordinary LoRA loaders. The same LoRA at two
strengths can be represented by two branches. Inputs are lazy, so a connected
branch is not evaluated until a scene selects it. Put patches shared by every
scene after the scheduler. When using Drift-Control, send the scheduled MODEL
through Chain Context's MODEL input/output before the sampler.
## Scene Prompt Editor
Connect Plan to **MiniMax H3 Scene Prompt Editor** for a large synchronized
textarea. It edits the selected scene's real `shots[n].prompt`; there is no
second prompt copy.
- Arrow buttons or `Alt+Left/Right` change scenes.
- Typing `@` offers the connected Picture/Video/Audio aliases. In Tagged mode,
inserting an inactive alias activates it; scheduled references remain limited
to the selected scene.
- Typing `#` offers valid dedicated Semantic Picture Anchors (and legacy
Tagged Picture compatibility anchors) only.
- Typing `<` offers H3 subjects, dialogue tags, and available native reference
labels, plus `<scenetrans>` and `<|cutoff|>` dialogue-flow markers. Typing
`[` filters 12 shot markers, multilingual dialogue markers, and canonical
summary-intent combinations; for example, `[re` lists the supported
reference-generation combinations. Typing `(S` offers stable speaker IDs.
- Typing the start of an H3 section name at the beginning of a line completes
`subject_definitions:`, `integrated_multimodal_description:`, and the other
standard sections. `Ctrl+Space` (`Cmd+Space` on macOS) opens the full H3
completion catalog. Use arrows to select and `Enter` or `Tab` to insert.
- **@ Reference** remains available for browsing connected media previews.
- **Dialogue** wraps a selection in `<d>` tags.
- Choose **Auto schema**, T2VA, I2VA, FL2VA, L2VA, or Ref2VA, then open
**Sections** to inspect the exact required order, jump to a category, insert
a missing category, or normalize the mode's keyframe-alignment line.
Diagnostics cover section spelling/order, shot numbering and timestamps,
Ref2VA task directives and definitions, dialogue/language/flow balance, and
connected native references. FL2VA/L2VA expose duration and final-shot
controls for their exact alignment sentence.
- Live word/character counts stay in the footer. Both dedicated editors can
switch between the ordinary prompt source and rich H3 token presentation;
this changes presentation only, never Plan text.
- `#picture` adds an untimed Qwen-only semantic Picture when the picture is
supplied through Semantic Anchor Bundle. Add a time as
`#picture[2.50s]` for a scene-local Qwen checkpoint; with the Bundle set to
`picture_storyboard`, the time becomes an approximate prompt instruction.
Neither form consumes a native H3 reference slot.
- `A−` and `A+` change persistent type size.
- The node may sit inline before Loop Start or on an editor-only branch.
The reference tray discovers downstream Scheduled Ref2VA, core Ref2VA, and core
Image to Video nodes without introducing an execution socket or graph cycle.
Hovering a loader-backed reference previews its image, video, or audio; computed
tensors remain usable even when no browser-playable source file can be found.
The schema inspector and completion catalog are shared by the focused Scene
Prompt Editor and the optimizer-enabled Rich Scene Prompt Editor. They are
backported from the standalone
[H3 Prompt IDE](https://github.com/ethanfel/ComfyUI-H3-Prompt-IDE), while these
nodes retain Motion Context Plan synchronization, revisions, `@tags`,
semantic anchors, and optimizer integration.
### Editor interactions
Click a Subject, speaker, dialogue, lyrics, caption or flow token to replace
or remove it. Pasted tokens become interactive immediately. Connected media
references keep their existing reference/syntax/time popup and previews.
Ctrl/Cmd-click an ordinary `[Shot N]`, language, task directive or retention
marker to change it without replacing the surrounding sentence.
Inside `retention_analysis:`, completion offers visual or audio retention
values according to the reference kind, including known `@aliases` and
`#picture` anchors. Inside `detailed_description:`, typing
`[Shot N] At` offers `At 00:00.000, `, selecting the seconds/milliseconds
for immediate editing. Ctrl/Cmd+Space also offers the timestamp after a plain
`At` in that section.
ComfyUI **Settings → MiniMax H3 Context Loop → Prompt editor** controls the
default Rich/Plain presentation, automatic suggestions, optional trailing
spaces, and the new marker replacement menus. Saved per-node presentation
choices win. Trailing spaces are off by default to preserve existing typing
behavior; semantic anchors never receive an inserted space before their time.
Turning off automatic suggestions still allows Ctrl/Cmd+Space.
Ctrl/Cmd+S saves the workflow while the editor is focused. Ctrl/Cmd+Z remains
scene-local. Token diagnostics flag malformed lyrics/caption pairs, incorrect
special-token case, and legacy `<cutoff>`; they do not rewrite saved prompts
or change generation. No task-aware Edit templates or new node sockets are
introduced by this port.
## Prompt revisions
The compact `‹ Active current / total ›` selector below the editor activates a
prompt version in the Plan; it is not a read-only history browser. Each version
is labeled **Active draft**, **Active executed**, **Draft history**, or
**Executed history**. Typing updates one active draft rather than creating a
revision per keystroke. When Current Shot executes, that exact prompt becomes
immutable; typing from it creates a child draft. Activating an older version
explicitly replaces the selected scene prompt in the Plan.
History is stored outside Plan JSON and loaded only for the selected scene:
```text
output/h3_chains/<run_name>/prompt_history/<scene_id>/
```
The Plan retains only the active prompt, keeping workflow JSON readable and
load time independent of old revisions.
## Seeds and bounded runs
Set a scene seed explicitly when repeatability matters. If omitted, Plan derives
a deterministic seed from `base_seed` and scene identity.
Loop Start's `scene_range` accepts one continuous selection:
| Value | Result |
|---|---|
| blank | `start_clip` through the end |
| `3` | scene 3 only |
| `3:8` | scenes 3 through 8, inclusive |
A range starting above scene 1 requires the preceding checkpoint. Disjoint
selections are rejected because skipped scenes would break the motion chain.
## Prompt Assistant status
The embedded Prompt Assistant is currently dormant so the editor retains its
compact manual workflow. Use the `comfyui-mcp` sidebar Agent panel for Codex or
Hermes assistance. The implementation, safety model, and future console-agent
design are preserved in the
[Prompt Assistant study](../AGENT_PROMPT_ASSISTANT_STUDY.md).
|