Prompt composer phrasing #9

Closed
opened 2026-10-06 03:55:53 +00:00 by crowmaki · 2 comments
Owner

Part of #1
Blocked by: #4

Question

What exact prompt structure does the composer emit for Ref2VA? Cover subject definitions and preservation entries (full vs partial) from structured attributes, positional Atlas phrasing, Board labelling (blocking/camera only), timestamped Keyframe phrasing, location angle, props, voice references and Performance audio labelling. Where does the user's free-text action description go?

Part of #1 Blocked by: #4 ## Question What exact prompt structure does the composer emit for Ref2VA? Cover subject definitions and preservation entries (full vs partial) from structured attributes, positional Atlas phrasing, Board labelling (blocking/camera only), timestamped Keyframe phrasing, location angle, props, voice references and Performance audio labelling. Where does the user's free-text action description go?
Author
Owner

From "Board paint tool and Notation" (#6): the Annotation layer is structured. Each Notation symbol has a "means" phrase, character symbols carry a subject, and path symbols carry a direction. Together these produce read-back lines such as "MARK moves right", "the camera pushes in" and "ANNA enters frame from the left", which the composer should use. Freehand arrows have no meaning and add nothing to the prompt. By default the Annotation layer is also composited onto the Board image, and a per-Shot toggle sends the clean sketch only. Multi-panel Boards are tiled in panel order, so the phrasing should label them as a sequence.

From "Board paint tool and Notation" (#6): the Annotation layer is structured. Each Notation symbol has a "means" phrase, character symbols carry a subject, and path symbols carry a direction. Together these produce read-back lines such as "MARK moves right", "the camera pushes in" and "ANNA enters frame from the left", which the composer should use. Freehand arrows have no meaning and add nothing to the prompt. By default the Annotation layer is also composited onto the Board image, and a per-Shot toggle sends the clean sketch only. Multi-panel Boards are tiled in panel order, so the phrasing should label them as a sequence.
Author
Owner

Resolution

The composer emits H3's six-field prompt format. Grounded in the owner's SEEDHUNTER workflow examples and the H3 Singularity prompt writing spec.

Guiding principle: the prompt describes the result of a creative choice, never the reference that shows it. The storyboard is never named in detailed_description. Its Notation read-backs appear as literal directions ("The camera pushes in on <Subject 1>."). Repeating what an image already shows is deliberate, because repetition focuses attention.

Skeleton

subject_definitions, summary, retention_analysis, detailed_description, overall_soundscape, non_diegetic_music. All six are always emitted in that order, with exact names, and N/A when empty. There is no id= header and exactly one [Shot 1] per prompt (internal cuts are out of scope).

Tags

  • <Subject N>: Characters, numbered by first appearance in the Shot.
  • <Prop N>: Props, numbered by attachment order to the Setup.
  • <Environment>: the Location.
  • <Picture N> / <Audio N> / <Video N>: slots, numbered in wired order after the slot budget is filled, so a dropped reference is never named.
  • Character names never reach the prompt (they bias the model and carry no actionable information). Pronouns are avoided by repeating the tag.

subject_definitions

  • Character: identity fields (age and build, which includes gender; face; hair; eyes; distinctive features). The Character holds defaults, and a Look overrides only the fields that differ. Wardrobe text comes from the Look (default outfit) or the selected Wardrobe item.
  • Positional phrasing: "<Subject 1>'s appearance is shown in the top row of <Picture 2> (face close-up, front, side and back views)." Row names (top/middle/bottom) appear only when the Atlas holds more than one Look. The views listed follow the Look's Parity.
  • Partial Preservation: "... wearing a yellow raincoat. <Subject 1>'s identity is shown in the top row of <Picture 2>; the raincoat is shown on the mannequin in <Picture 4>."
  • <Environment>: the Location's description (architecture, layout, fixed objects) plus the lighting note of the Location's Reference set for the Scene's Lighting. That note defaults from a project-wide phrase per Lighting. Ends with "It is shown in ."
  • <Prop N>: one description field (appearance, material, marks) plus "It is shown in ."
  • Voice reference: appended to the definition: "... and uses as their speaking voice timbre reference."
  • Heard-only speakers (O.S./V.O. with no Look in the Setup): " is a character who is heard but not seen[, and uses ...]."
  • A subject with no picture (heard-only, or Atlas dropped by the budget) keeps its full text definition minus the "shown in" clause.

summary

[reference generation], or [reference generation + audio reference] when any audio slot is filled, followed by the Shot's editable summary field. It is pre-filled from the first sentence of the action text, or falls back to "A scene of <Subject 1> and <Subject 2> in ."

retention_analysis

Input Entry
Look, default wardrobe <Picture N> top row -> <Subject N>: fully_preserved - face, hair, eyes, physique and clothing.
Look + Wardrobe item Atlas row: partially_preserved - face, hair, eyes and physique only; clothing is not inherited. Mannequin: attribute_transfer - the <item> is worn by <Subject N>; the mannequin does not appear.
Location angle fully_preserved - architecture, layout, fixed objects and lighting; the camera angle may differ. (not a first frame)
Prop fully_preserved - shape, material, wear and markings.
Board weak_reference (confirmed as the best strength): a rough storyboard of N panels read left to right, top to bottom, showing the shot's progression; used only for staging, composition and camera movement; sketch style, line art and figures are not reproduced and carry no identity; arrows and symbols are directions, not objects. One-slot-per-Panel Shots number Panels as consecutive Pictures.
Keyframe fully_preserved - first frame at 00:00.000; the shot opens exactly on this image. / last frame at <target duration, ms>. Only here; adding a timestamp to detailed_description is future work if needed.
Voice reference <Audio N>: reference - its vocal timbre guides the vocal delivery of <Subject N> without copying the original signal.
Performance slice <Audio N>: fully_copy - the dialogue of this shot; every spoken line, its timing and delivery are reproduced exactly, lip-synced to the speaking subjects. When a Performance is present, Voice references are dropped.
Subject without picture <Subject N>: newly_generated - no visual reference; appearance follows the description only.

detailed_description

[Shot 1] contains, in order:

  1. The Setup's framing note.
  2. Notation read-back sentences in panel order, with no "storyboard" or "panel" wording.
  3. The Shot's action text.
  • Action text is a Shot field, pre-filled from the covered action Lines. Characters and Props are @-mentions written out as tags. Capitalised Character names and tagged Props become mentions on pre-fill.
  • Moment-specific sounds go in the action text ("the door loudly slams shut"), never in the soundscape.
  • Dialogue Lines are chips inside the action text, placed in script order. The user can type around them and move them, but cannot reorder them relative to each other, because the Cut and Line marks depend on that order.
  • Each chip expands to <Subject N> says: <d>[Language] <bitter> It's fine. <beat> Really.</d>. The language is the Project's spoken language, and SUBTITLE Lines use their hand-entered language and text. Parentheticals go inline as angle-bracket tags at their position.
  • A parenthetical that names a Character ("(to ANNA)") moves out of the quote into an action sentence before the Line ("<Subject 1> turns to <Subject 2>.") and is flagged in the editor for rewording.
  • Cue extensions: O.S./O.C. becomes "says from off-screen:", V.O. becomes "says in voice-over:", CONT'D is dropped.
  • Dual dialogue: "<Subject 1> and <Subject 2> speak at the same time." followed by both quoted lines.

overall_soundscape

Steady background sound only: the Location's Ambience (e.g. "Interior ambience, refrigerator hum, distant traffic") plus the Scene's optional Ambience addition ("steady rain against the window"). It lives on the Scene, not the Shot, so the sound bed matches across cuts.

non_diegetic_music

Always N/A, and there is no field for it. Score is editorial and is added in Resolve.

Prompt override

The composed prompt is a jumping-off point. Hand-tuning is critical because generation is nondeterministic and tuned prompts beat generated ones.

  • Fork: a Shot has an optional override, forked by editing the read-only preview. It stores the composed text it forked from (the fork base).
  • Composer changes: when the composed prompt later changes, the Shot shows only an unobtrusive "composer changed" marker. A three-way reconcile (old composed, new composed, user edit; hunk-by-hunk, keep, or reset) opens only when the user chooses to reconcile. Queuing does not prompt.
  • Broken tags: every slot tag in an override is validated against the current slot assignment. A tag pointing at an empty or reassigned slot blocks queuing.
  • Takes: each Take records the exact text it was sent and whether it was overridden. "Same inputs, new seed" reuses that Take's text.

Glossary

CONTEXT.md gains Ambience, and Look now states that it inherits the Character's identity description and overrides only what differs.

Out of scope

Takes with internal cuts ([Shot 2] At ... blocks, intercuts) are out of scope. Shots stay aligned with their real-world equivalent, and intercuts are a separate effort.

## Resolution The composer emits H3's six-field prompt format. Grounded in the owner's SEEDHUNTER workflow examples and the [H3 Singularity prompt writing spec](https://huggingface.co/WarmBloodAban/Minimax-h3_Singularity/blob/main/MiniMax_H3_Singularity_Prompt_Writing_Specification_Enhanced_EN.md). **Guiding principle:** the prompt describes the *result* of a creative choice, never the reference that shows it. The storyboard is never named in `detailed_description`. Its Notation read-backs appear as literal directions ("The camera pushes in on <Subject 1>."). Repeating what an image already shows is deliberate, because repetition focuses attention. ### Skeleton `subject_definitions`, `summary`, `retention_analysis`, `detailed_description`, `overall_soundscape`, `non_diegetic_music`. All six are always emitted in that order, with exact names, and `N/A` when empty. There is no `id=` header and exactly one `[Shot 1]` per prompt (internal cuts are out of scope). ### Tags - `<Subject N>`: Characters, numbered by first appearance in the Shot. - `<Prop N>`: Props, numbered by attachment order to the Setup. - `<Environment>`: the Location. - `<Picture N>` / `<Audio N>` / `<Video N>`: slots, numbered in wired order after the slot budget is filled, so a dropped reference is never named. - Character names never reach the prompt (they bias the model and carry no actionable information). Pronouns are avoided by repeating the tag. ### subject_definitions - **Character:** identity fields (age and build, which includes gender; face; hair; eyes; distinctive features). The Character holds defaults, and a Look overrides only the fields that differ. Wardrobe text comes from the Look (default outfit) or the selected Wardrobe item. - **Positional phrasing:** "<Subject 1>'s appearance is shown in the top row of <Picture 2> (face close-up, front, side and back views)." Row names (top/middle/bottom) appear only when the Atlas holds more than one Look. The views listed follow the Look's Parity. - **Partial Preservation:** "... wearing a yellow raincoat. <Subject 1>'s identity is shown in the top row of <Picture 2>; the raincoat is shown on the mannequin in <Picture 4>." - **`<Environment>`:** the Location's description (architecture, layout, fixed objects) plus the lighting note of the Location's Reference set for the Scene's Lighting. That note defaults from a project-wide phrase per Lighting. Ends with "It is shown in <Picture N>." - **`<Prop N>`:** one description field (appearance, material, marks) plus "It is shown in <Picture N>." - **Voice reference:** appended to the definition: "... and uses <Audio N> as their speaking voice timbre reference." - **Heard-only speakers (O.S./V.O. with no Look in the Setup):** "<Subject N> is a character who is heard but not seen[, and uses <Audio N> ...]." - **A subject with no picture** (heard-only, or Atlas dropped by the budget) keeps its full text definition minus the "shown in" clause. ### summary `[reference generation]`, or `[reference generation + audio reference]` when any audio slot is filled, followed by the Shot's editable **summary** field. It is pre-filled from the first sentence of the action text, or falls back to "A scene of <Subject 1> and <Subject 2> in <Environment>." ### retention_analysis | Input | Entry | |---|---| | Look, default wardrobe | `<Picture N> top row -> <Subject N>: fully_preserved - face, hair, eyes, physique and clothing.` | | Look + Wardrobe item | Atlas row: `partially_preserved - face, hair, eyes and physique only; clothing is not inherited.` Mannequin: `attribute_transfer - the <item> is worn by <Subject N>; the mannequin does not appear.` | | Location angle | `fully_preserved - architecture, layout, fixed objects and lighting; the camera angle may differ.` (not a first frame) | | Prop | `fully_preserved - shape, material, wear and markings.` | | Board | `weak_reference` (confirmed as the best strength): a rough storyboard of N panels read left to right, top to bottom, showing the shot's progression; used only for staging, composition and camera movement; sketch style, line art and figures are not reproduced and carry no identity; arrows and symbols are directions, not objects. One-slot-per-Panel Shots number Panels as consecutive Pictures. | | Keyframe | `fully_preserved - first frame at 00:00.000; the shot opens exactly on this image.` / `last frame at <target duration, ms>`. Only here; adding a timestamp to `detailed_description` is future work if needed. | | Voice reference | `<Audio N>: reference - its vocal timbre guides the vocal delivery of <Subject N> without copying the original signal.` | | Performance slice | `<Audio N>: fully_copy - the dialogue of this shot; every spoken line, its timing and delivery are reproduced exactly, lip-synced to the speaking subjects.` When a Performance is present, Voice references are dropped. | | Subject without picture | `<Subject N>: newly_generated - no visual reference; appearance follows the description only.` | ### detailed_description `[Shot 1]` contains, in order: 1. The Setup's framing note. 2. Notation read-back sentences in panel order, with no "storyboard" or "panel" wording. 3. The Shot's **action text**. - **Action text** is a Shot field, pre-filled from the covered action Lines. Characters and Props are @-mentions written out as tags. Capitalised Character names and tagged Props become mentions on pre-fill. - **Moment-specific sounds** go in the action text ("the door loudly slams shut"), never in the soundscape. - **Dialogue Lines are chips inside the action text**, placed in script order. The user can type around them and move them, but cannot reorder them relative to each other, because the Cut and Line marks depend on that order. - **Each chip expands to** `<Subject N> says: <d>[Language] <bitter> It's fine. <beat> Really.</d>`. The language is the Project's spoken language, and SUBTITLE Lines use their hand-entered language and text. Parentheticals go inline as angle-bracket tags at their position. - **A parenthetical that names a Character** ("(to ANNA)") moves out of the quote into an action sentence before the Line ("<Subject 1> turns to <Subject 2>.") and is flagged in the editor for rewording. - **Cue extensions:** O.S./O.C. becomes "says from off-screen:", V.O. becomes "says in voice-over:", CONT'D is dropped. - **Dual dialogue:** "<Subject 1> and <Subject 2> speak at the same time." followed by both quoted lines. ### overall_soundscape Steady background sound only: the Location's **Ambience** (e.g. "Interior ambience, refrigerator hum, distant traffic") plus the Scene's optional **Ambience addition** ("steady rain against the window"). It lives on the Scene, not the Shot, so the sound bed matches across cuts. ### non_diegetic_music Always `N/A`, and there is no field for it. Score is editorial and is added in Resolve. ### Prompt override The composed prompt is a jumping-off point. Hand-tuning is critical because generation is nondeterministic and tuned prompts beat generated ones. - **Fork:** a Shot has an optional override, forked by editing the read-only preview. It stores the composed text it forked from (the fork base). - **Composer changes:** when the composed prompt later changes, the Shot shows only an **unobtrusive** "composer changed" marker. A three-way reconcile (old composed, new composed, user edit; hunk-by-hunk, keep, or reset) opens only when the user chooses to reconcile. Queuing does not prompt. - **Broken tags:** every slot tag in an override is validated against the current slot assignment. A tag pointing at an empty or reassigned slot **blocks** queuing. - **Takes:** each Take records the exact text it was sent and whether it was overridden. "Same inputs, new seed" reuses that Take's text. ### Glossary `CONTEXT.md` gains **Ambience**, and **Look** now states that it inherits the Character's identity description and overrides only what differs. ### Out of scope Takes with internal cuts (`[Shot 2] At ...` blocks, intercuts) are out of scope. Shots stay aligned with their real-world equivalent, and intercuts are a separate effort.
Sign in to join this conversation.
No description provided.