Save MiniMax H3 AV Latent
The node that keeps your H3 latent from crashing Save Latent
- samples
- samples
Run a MiniMax H3 workflow long enough and you'll hit it: you finish a generation, you want to stash the latent instead of re-rolling, you wire up ComfyUI's built-in Save Latent, and it dies with 'NestedTensor' object has no attribute 'contiguous'. That's not you doing something wrong - it's the built-in node not knowing how to handle an H3 latent. Save MiniMax H3 AV Latent exists to fix exactly that.
Why the built-in node chokes
MiniMax H3 is MiniMax's open-weight multimodal video model, and its latents are not plain tensors. Each one is a NestedTensor - a container holding two separate latent members, one for video and one for audio. ComfyUI's stock Save Latent calls methods like .contiguous() straight on the object, which a NestedTensor doesn't have. This is a known family of pain: other video workflows hit the same wall ('NestedTensor' object has no attribute 'clone', anyone?). This node is the H3-specific patch.
What it actually does
It takes your LATENT, splits it into its members, and writes them as a single safetensors file with the .h3latent extension into ComfyUI's output folder. The format is dead simple - each member is stored separately as latent_0 (video) and latent_1 (audio), alongside a tensor_count and a small format header. It also embeds the workflow prompt and any extra PNG info as metadata, same as the built-in save does, so you can reconstruct what produced the file later. If your latent has only one member it saves that too; the matching Load MiniMax H3 AV Latent node reads it back either way.
The two inputs that matter
- samples (
LATENT) - wire this from wherever your H3 latent comes out. Nothing else to configure here. - filename_prefix - defaults to
latents/MiniMaxH3. ComfyUI auto-appends a zero-padded counter, so you getoutput/latents/MiniMaxH3_00001_.h3latent, then_00002_, and so on. Change the prefix if you want files organized by project.
There's one output, samples, which is just the input passed straight through - handy if you want to save and keep going in the same graph without a copy node. And since it's an output node, it stamps the file into the workflow's output list like any other saver.
Installing it
No extra Python packages, no model downloads, no API key - the pack's dependency list is empty. Just the node code plus a ComfyUI build new enough to have comfy.nested_tensor (any recent version, and obviously one that runs H3 at all). Either:
- ComfyUI Manager → search "MiniMax H3 Latent" → Install, then restart ComfyUI.
- or the manual route:
cd ComfyUI/custom_nodes
git clone https://github.com/JerryZRic/comfyui-minimax-h3-latent
Then restart ComfyUI. You'll find both nodes under the model/latent/minimax category.
Gotchas worth knowing
First, this pack is brand new - the initial commit landed mid-2026 - so treat it as a young tool; if you run into weirdness, check the repo for updates. Second, remember the save and load nodes use different folders: saves go to output, loads come from input. Third, if you plan to reload what you saved, note the Load node's file picker only lists .h3latent files sitting directly in the input folder - subfolders won't show up in the dropdown. Keep your saved latents at the top level and you're fine.
Inputs (2)
| Name | Type | Default | Description |
|---|---|---|---|
| samples | LATENT | — | |
| filename_prefix | STRING | latents/MiniMaxH3 | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| samples | LATENT | — |