MiniMax H3 Context Loop Export PNG Sequence + Audio
Render your whole accepted chain to a lossless PNG sequence
- manifest
- video_vae
- audio_vae
- video
- state
- output_directory
- frame_count
- status
- audio_path
- video
MiniMax H3 Contex Loop Export PNG Sequence is the "I need actual frames, not a compressed MP4" node. Assembly gives you a single H.264 file; this gives you a continuous, lossless PNG sequence of every delivered frame across every accepted scene - trimmed of the repeated context overlap, numbered continuously, and written to disk without ever holding the whole production in memory.
Why would you want that? Because H.264 is lossy, and if your next step is an external tool - an interpolator, an editor, a photogrammetry pass, a VAE decode you want bit-exact - you want the cleanest possible source. Also, a long chain at 2K is genuinely too big to hold as one IMAGE tensor; this node exists precisely so the export doesn't blow up your RAM.
How it works
Unlike Assemble, which stream-copies the saved H.264 segments, this node re-decodes each checkpoint latent with the VAE you used for the original render. The tooltip on video_vae is worth quoting: decode precision and VAE settings determine whether regenerated pixels exactly match the first decode. So the PNGs come from the latent, not the compressed preview - that's the point.
Inputs: manifest (completed or partial, from Loop End or Manifest Load - the H.264 segments are not used), video_vae (the same VAE as the original render), export_name (folder name under output/h3_chains/<run>/frames; an existing folder is never overwritten, you get a numbered sibling), first_frame_number (default 1; frames continue across scene boundaries without resetting), png_compression (0–9, default 4; 0 is fastest and largest, 9 is slowest and smallest - it does not change pixels), and embed_workflow (default true: embeds the archived workflow, API graph, effective plan and chain manifest in the first PNG, plus per-scene prompt metadata in each scene's first frame).
Outputs: output_directory (the folder with the sequence plus export.json), frame_count, and status.
The honest read
The embed_workflow default is a small act of genius for provenance - your exported frames literally carry the Plan that made them, which is exactly what you want if you're sending a sequence to a client or revisiting it months later. On the flip side, if you just need quick preview frames, this is overkill; Assemble's MP4 is faster to generate and fine for review. Reach for PNG export when fidelity or external tooling matters.
Installing it
Part of ComfyUI-MiniMaxH3-Contex-Loop (ComfyUI Manager: "MiniMax H3 Contex Loop"), or:
cd ComfyUI/custom_nodes && git clone https://github.com/ethanfel/ComfyUI-MiniMaxH3-Contex-Loop.git
Restart ComfyUI. Standing requirements: H3 weights, current ComfyUI with native Add Guide (PR #15439). No ffmpeg needed here - this is pure VAE decode plus PNG write.
Common issues
The big one is the VAE mismatch: use a different video_vae than the render and your "regenerated" pixels differ from the first decode - subtle color drift you'll chase for hours. Keep the exact same VAE. And a partial manifest exports only what's contiguous and saved; check status for the scene count before you assume you got everything.
Inputs (14)
| Name | Type | Default | Description |
|---|---|---|---|
| export_name | STRING | png_sequence | Folder name under the Run frames folder, or the selected Chapter frames folder. Chapter exports reuse unchanged scenes and append new ones. Changed content creates a numbered sibling, preserving the earlier export. |
| first_frame_number | INT | 10–999999999 | Number used by the first exported file. Frames then continue across scene boundaries without resetting. |
| png_compression | INT | 10–9 | Lossless PNG compression effort. 0 is fastest and largest; 9 is slowest and smallest. It does not change pixels. |
| embed_workflow | BOOLEAN | true | Embed the archived ComfyUI workflow, API graph, effective plan, and chain manifest in the first PNG. Scene prompt metadata is embedded in the first frame of every scene. |
| manifestopt | H3_CHAIN_MANIFEST | Latent-export mode: completed or partial manifest from Loop End/Manifest Load. Leave disconnected in VIDEO passthrough mode; connect video and state inside the scene loop instead. | |
| video_vaeopt | VAE | Connect the original MiniMax H3 video VAE to export PNG frames. Leave it disconnected for an audio-only WAV export. | |
| audio_vaeopt | VAE | Connect the original MiniMax H3 audio VAE to decode and export one frame-locked audio.wav. It can be used with or without video_vae. | |
| save_workersopt | INT | 00–64 | Parallel PNG writers. 0 selects up to 8 CPU workers automatically; 1 forces serial saving. |
| checkpoint_verificationopt | COMBO | cached | Cached verifies each immutable checkpoint with SHA-256 once, then trusts matching size and modification time on later exports. Strict re-hashes every checkpoint on every export. In VIDEO mode this verifies existing PNGs: cached checks size/mtime, strict re-hashes; the incoming VIDEO is always hashed. |
| reuse_existingopt | BOOLEAN | true | For Chapter manifests, keep verified unchanged PNGs and append newly generated scenes. Changed takes, trims or settings create a new folder. VIDEO mode reuses exact saved scenes and appends the next scene; different takes/settings automatically create _2, _3, etc. sequence folders. Turn off after changing VAE weights or decode settings, or to force a fresh export. Whole-Run exports always create a new folder. |
| videoopt | VIDEO | Pixel-export mode: final file-backed RAW VIDEO before MP4 compression. Writes one scene at a time and passes the same VIDEO through to Segment Save and Loop End. No VAE needed. | |
| stateopt | H3_CHAIN_UPSCALE_STATE | Current pixel-upscale scene state. Required with VIDEO for scene identity, RAW overlap trimming and sequence numbering. | |
| output_folderopt | STRING | VIDEO mode: chosen subfolder inside ComfyUI output (relative or absolute). Empty uses this upscale profile's frames/export_name folder. Conflicts create numbered siblings (_2, _3, etc.); all later scenes in this pass use the same selected folder. Existing PNGs are never overwritten. | |
| png_bit_depthopt | COMBO | 8 | 8-bit RGB (existing default) or 16-bit RGB. 16-bit preserves the RGB16 file-backed VIDEO precision and uses more disk space. Applies to both video and latent export. |
Outputs (5)
| Name | Type | Description |
|---|---|---|
| output_directory | STRING | Absolute folder containing the selected deliverables and export.json. |
| frame_count | INT | Total PNG frames available, including reused frames; zero in audio-only mode. |
| status | STRING | Export folder, generated deliverables, scene count, and duration. |
| audio_path | STRING | Absolute audio.wav path when audio_vae is connected; blank otherwise. |
| video | VIDEO | Unchanged VIDEO after this scene's PNGs are saved. Connect to Segment Save and Loop End. None in latent-export mode. |