Nodes/ComfyUI-MAINodes/H3 Plan Settings (alpha)
ComfyUI Node

H3 Plan Settings (alpha)

Pull a plan's execution settings out as typed wires, so the graph can't drift

By matlowai·Created 17 days ago·Updated about 17 hours ago· 112
H3 Plan Settings (alpha)
    • inject
    • steps
    • seed
    • prompt
    • width
    • height
    • output_prefix
    • expand_to_end
    • report
    plan_path
    plan_json
    ignore_uncompiled_lanesfalse

    Alpha, and the "other half" of H3 Drawn Plan. That node turns a plan document into compiled geometry - hold maps, window bounds, splice maps. H3 PlanSettings turns the same plan into the settings a graph needs wired: the knobs a retiming run is supposed to execute with. The point is anti-drift: wire these outputs into H3 Inject Schedule, Random Noise, the conditioning node and Save Video instead of retyping the values, and the graph physically cannot drift from the plan it came from.

    What it outputs

    • inject (FLOAT) - for H3 Inject Schedule.
    • steps (INT) - for the sampler.
    • seed (INT) - for Random Noise.
    • prompt (STRING) - for the conditioning node.
    • width / height (INT) - for the conditioning / latent setup.
    • output_prefix (STRING) - for Save Video.
    • expand_to_end (BOOLEAN) - the one you must NOT re-apply (below).
    • report (STRING) - what the plan asked for and what got wired.

    Inputs: plan_path (required) and optional plan_json (pasted, wins over plan_path) and ignore_uncompiled_lanes.

    The one trap: expand_to_end

    This output exists to be read, not wired. The plan asked for end-expansion; the compiler has already applied it to the map it produced. So expand_to_end here reports what the plan asked for, but you must leave H3 Temporal Insert's expand_to_end at False - wiring this output into that toggle would apply the expansion twice. The node's description says it plainly: "wiring this output into that toggle would apply it twice." This is the kind of footgun the pack usually guards against with a report warning, and here it just trusts you to read the docstring.

    How it fits

    The timeline surface is the pack's "write a plan, mint a graph" workflow: H3 Timeline Analyze turns oracle profiles into a plan document, H3 Timeline Render mints the graph, and H3 PlanSettings + H3 Drawn Plan are how a minted graph stays faithful to the plan. If you're hand-building that chain, this node is what keeps your executed graph honest. If you're not using the timeline surface, you probably don't need it - it's a fidelity utility, not a render node.

    Install

    cd ComfyUI/custom_nodes
    git clone https://github.com/matlowai/ComfyUI-MAINodes
    

    or ComfyUI Manager → ComfyUI-MAINodes, restart. Category latent/minimax/timeline.

    Common gotchas

    Same family as H3PlanEstimate: a plan with uncompiled lanes is refused by default (ignore_uncompiled_lanes off), which is the safe behavior. And the anti-drift promise only holds if you actually wire the outputs rather than copying the numbers - that's the whole contract.

    Categorylatent/minimax/timeline

    Inputs (3)

    NameTypeDefaultDescription
    plan_pathSTRINGpath to a plan.json written by the editor, the oracle node or the CLI
    plan_jsonoptSTRINGthe plan document itself, pasted; wins over plan_path
    ignore_uncompiled_lanesoptBOOLEANfalsea plan may carry lanes this backend cannot compile yet (pins, regions). OFF: refuse, so nothing is silently dropped. ON: compile the density lane anyway and name every lane that was skipped

    Outputs (9)

    NameTypeDescription
    injectFLOAT
    stepsINT
    seedINT
    promptSTRING
    widthINT
    heightINT
    output_prefixSTRING
    expand_to_endBOOLEAN
    reportSTRING