Nodes/ComfyUI-MiniMax-H3-Guide/MiniMax H3 Apply Structured Prose (Plan v2)
ComfyUI Node

MiniMax H3 Apply Structured Prose (Plan v2)

Edit the enhanced prompt by hand without breaking the H3 structure

By ethanfel·Created 22 days ago·Updated 14 days ago· 207
MiniMax H3 Apply Structured Prose (Plan v2)
  • plan_context
  • h3_prompt
  • plan_context
  • validation_report
  • h3_length
  • canonical_editable_prose
editable_prose

There's a moment in every serious H3 workflow where you look at the enhanced prompt and think "that's 90% right, but I'd rephrase this one shot." The problem is that editing the final H3 document by hand is a trap - one wrong label, one shifted bracket, and the whole reference structure breaks, or worse, the model silently ignores a reference you thought was intact. Apply Structured Prose (Plan v2) is the safe way to do that manual edit.

The trick is where you're allowed to edit. This node does not take the finished H3 prompt. It takes the editable_prose - the descriptive JSON that the Structured Prompt Enhancer produced - and it accepts only that form. You tweak the descriptive text in the JSON, and the node's Python reconstructs the entire H3 document from the locked plan, restoring every structural field itself.

What it accepts (and rejects)

The editable_prose input is where you paste or connect the JSON. The node is strict in ways that will surprise you the first time:

  • Structural markers are rejected. No [Shot N], no H3 section names, no cut timestamps, no dialogue-tag markup, no speaker IDs.
  • Extra keys are rejected. It's a schema, not a suggestion box.
  • Changed Shot numbers or invalid labels are rejected. You can rephrase prose; you cannot renumber shots or relabel references.

So it's not really "edit the prompt" - it's "edit the prose, and let Python rebuild the prompt." That distinction is the entire point, and it's why this node pairs so naturally with the enhancer's editable_prose output.

Outputs that matter

  • h3_prompt - the recompiled final H3 prompt with every structural field restored by Python.
  • plan_context - the validated compiled plan, for routing or another edit pass.
  • validation_report - confirmation that the semantic locks survived, followed by the compiler report.
  • canonical_editable_prose - the normalized JSON after validation. The tooltip's advice is worth following literally: save and edit this going forward, not the final H3 structure.

Install

cd ComfyUI/custom_nodes
git clone https://github.com/ethanfel/ComfyUI-MiniMax-H3-Guide

Restart, browse MiniMax H3 → Plan v2. No extra dependencies, no model calls - this is pure Python recompilation. That's actually a big deal: unlike the enhancer, this node runs instantly and costs nothing, so you can iterate on prose edits as fast as you can type.

Gotchas

  • It's optional. The node's own description calls it an "optional manual-edit step." If you're happy with the enhanced prompt, wire enhanced_prompt straight to Apply Reference Plan and never touch this.
  • The JSON has to be the right shape. Pasting the final H3 prompt into editable_prose fails on purpose. Get the JSON from the enhancer's editable_prose output (or canonical_editable_prose from a previous pass).
  • Wrong plan = rejected pair. plan_context must match the JSON's source plan, same as everywhere else in this pack. Keep them paired.

For what it's worth, this is the node I'd reach for when a single shot's wording is bugging me and I don't want to re-run Qwen or trust myself to hand-edit a 400-line H3 document. It's a narrow job, and it does it exactly right.

CategoryMiniMax H3/Plan v2

Inputs (2)

NameTypeDefaultDescription
plan_contextMINIMAX_H3_PLAN_V2Connect compiled plan_context from Prompt Merge or the structured enhancer.
editable_proseSTRINGConnect/edit the enhancer's JSON output. Structural markers, extra keys, changed Shot numbers, or invalid labels are rejected.

Outputs (5)

NameTypeDescription
h3_promptSTRINGRecompiled final H3 prompt with every structural field restored by Python.
plan_contextMINIMAX_H3_PLAN_V2Validated compiled plan for later native routing or another edit pass.
validation_reportSTRINGConfirmation that semantic locks survived, followed by the compiler report.
h3_lengthINTNative 17k+5 frame length.
canonical_editable_proseSTRINGNormalized JSON after validation. Save or edit this instead of the final H3 structure.