MiniMax H3 Enhancer Visual Reference (Legacy)
The legacy picture/video reference for Qwen's prompt-writing context
- media
- previous_context
- role_bindings
- reference_context
- h3_media
- routing_report
Before this pack's Plan v2 workflow existed, the enhancer pipeline worked differently: you built a prompt with the old Prompt Guide, fed reference media into Qwen's writing context through a chain of Visual Reference nodes, and a separate Prompt Enhancer node rewrote the prose. Enhancer Visual Reference (Legacy) is one of those chain nodes. It's still registered so old workflows load, but the pack's own docs are unambiguous: new projects should use Plan v2, where Image Reference and Video Reference do this job inside the typed plan.
Since it's a legacy node, let me be direct about when you should care: if you have an existing workflow using the Prompt Guide + Prompt Enhancer path, this node is what keeps it running. If you're starting fresh, use Plan v2 and don't build on this. The migration doc in the pack covers the move.
What it does
It adds one picture or reference-video frame batch to Qwen's prompt-writing context while passing native-ready H3 media through. Chain Visual Reference nodes to order media; the reference_context output feeds both the Prompt Guide's and Prompt Enhancer's reference_context inputs so their labels, roles, grouping, retention, and mode stay identical.
Inputs that matter
media- exactly one image for "Picture," or the full video frame batch for "Video frames."media_type- Picture or Video frames. Picture can be an exact first/last endpoint or a Ref2VA picture; Video frames is always Ref2VA.reference_role- the single-role compatibility setting, with 14 choices (exact first frame, exact last frame, identity/appearance, object/prop, scene, style, keyframe, storyboard, motion, camera, source-to-edit...). The default is "Unassigned - choose a reference role", and that default stops execution rather than inventing a role. Leave it unassigned and the node refuses to run - that's the guardrail doing its job.notes- role notes (single-role path) or media-wide notes whenrole_bindingsis connected.source_fps- video only; the input batch is resampled to native H3's fixed 24 FPS.analysis_fpsandmax_analysis_frames- video only; control the generic-Qwen evidence rate (default 1 FPS, cap 16 frames). MiniMax's native tokenizer gets a separate fixed 2-FPS sample regardless.analysis_long_edge- max long edge for both private Qwen analysis copies (default 768). Small media is never enlarged.h3_length- recommended for videos: connect the H3 target length so the node mirrors native truncation/alignment before Qwen analysis. Don't feedh3_lengthbackward from a Prompt Guide that also consumes thisreference_context- that creates a graph cycle.
Outputs
reference_context- the chain value; fan the final one to both the Guide and the Enhancer.h3_media- the native-ready 24 FPS,17k+5-aligned media (or the original picture).routing_report- exact semantic labels, mode family, native input routes, and effective duration.
Install
cd ComfyUI/custom_nodes
git clone https://github.com/ethanfel/ComfyUI-MiniMax-H3-Guide
Restart, look under MiniMax H3/Prompting. No extra dependencies. This is the old pipeline, so it also wants the legacy Prompt Guide and Prompt Enhancer nodes present, which ship in the same pack.
The honest take
The legacy enhancer path had the same ambition as Plan v2 - let Qwen write richer prose without destroying structure - but the structure was held by system-prompt discipline instead of a typed, validated plan. It worked, and the "unassigned role stops execution" behavior shows the care that went into it. But Plan v2's Image Reference is the strict upgrade: roles are enums the compiler validates, and media routing is deterministic instead of described. Keep this node for your old graphs; don't start new ones with it.
Inputs (11)
| Name | Type | Default | Description |
|---|---|---|---|
| media | IMAGE | For Picture, connect exactly one image. For Video frames, connect the full batch and set its real FPS; the node creates separate generic and native MiniMax analysis samples plus an H3-ready 24-FPS pass-through. | |
| media_type | COMBO | Picture | Picture can be an exact first/last endpoint or a Ref2VA picture. Video frames is always Ref2VA. Labels and socket routes are assigned from the role bindings. |
| reference_role | COMBO | Unassigned - choose a reference role | Single-role compatibility setting. Choose a role explicitly, or connect role_bindings below to replace this value with a repeatable role chain. The unassigned default stops execution and never invents a Subject or endpoint. |
| notes | STRING | For the single-role path, these are role notes. With role_bindings connected, this becomes a media-wide note while each role keeps its own notes. | |
| source_fps | FLOAT | 24.0001–240 | Video only: actual FPS represented by the input batch. h3_media is resampled to native H3's fixed 24 FPS. Ignored for Picture. |
| analysis_fps | FLOAT | 1.000.25–2 | Video only: configurable evidence rate for a complete generic Qwen. MiniMax's native tokenizer receives a separate fixed 2-FPS sample regardless of this value. |
| max_analysis_frames | INT | 162–32 | Video only: cap for generic-Qwen evidence. Native MiniMax evidence remains fixed at 2 FPS, up to 30 samples for a 15-second source. |
| analysis_long_edge | INT | 768256–1536 | Maximum long edge of both private Qwen analysis copies. Aspect ratio is kept approximately after 32-pixel size rounding, and small media is never enlarged; H3 routing uses a separate copy. |
| previous_contextopt | MINIMAX_H3_ENHANCER_REFERENCE_CONTEXT | Connect reference_context from the preceding Visual Reference node. This chains media entries; it is separate from the per-media role chain. | |
| role_bindingsopt | MINIMAX_H3_VISUAL_ROLE_CHAIN | Optional: connect the final Visual Reference Role chain for this media. It replaces reference_role and supplies repeatable role-specific metadata. | |
| h3_lengthopt | INT | Recommended for videos: connect MiniMax H3 Target Timing.h3_length. Native H3 first truncates each reference video to this target length, then aligns it downward to 17k+5; this node mirrors that behavior before Qwen analysis. Do not feed Prompt Guide.h3_length backward when this reference_context also feeds the Guide, because that would create a graph cycle. |
Outputs (3)
| Name | Type | Description |
|---|---|---|
| reference_context | MINIMAX_H3_ENHANCER_REFERENCE_CONTEXT | Chain into the next Visual Reference. Fan the final context out to both Prompt Guide.reference_context and Prompt Enhancer.reference_context so their labels, roles, grouping, retention, and mode remain identical. |
| h3_media | IMAGE | Original endpoint/reference picture, or video resampled and aligned to native H3's 24-FPS 17k+5 contract. Follow routing_report for the exact destination socket. |
| routing_report | STRING | Exact semantic labels, mode family, native input routes, and effective video duration after native alignment/truncation. |