# lbh-123-ai/comfyui_minimax_h3_latent_upscaler architecture

> Architecture diagram of the GitHub repository lbh-123-ai/comfyui_minimax_h3_latent_upscaler, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-09-28). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/lbh-123-ai/comfyui_minimax_h3_latent_upscaler
- Repository: https://github.com/lbh-123-ai/comfyui_minimax_h3_latent_upscaler

## Overview

This repository is a ComfyUI custom-node package for upscaling Minimax H3 video latents. Users either apply a learned 2D or 3D upscaler to latent video, or use the separate split-upscale combo to re-sample AV latents in temporal chunks and spatial tiles. The 3D variant supports multiplier, target-dimension, and megapixel sizing; the combo provides split-parameter nodes and seam/color/temporal consistency handling. The graph reflects documented capabilities, but sampled excerpts are partial, so internal wiring beyond explicit registration and the shown split-upscale flow is omitted.

Main entry points: [`nodes/MMH3_Split_Upscale.py`](https://github.com/lbh-123-ai/comfyui_minimax_h3_latent_upscaler/blob/main/nodes/MMH3_Split_Upscale.py) (Split upscale), [`nodes/__init__.py`](https://github.com/lbh-123-ai/comfyui_minimax_h3_latent_upscaler/blob/main/nodes/__init__.py) (Node registry), [`nodes/minimax_h3_latent_upscaler_2d.py`](https://github.com/lbh-123-ai/comfyui_minimax_h3_latent_upscaler/blob/main/nodes/minimax_h3_latent_upscaler_2d.py) (2D latent node), [`nodes/minimax_h3_latent_upscaler_3d.py`](https://github.com/lbh-123-ai/comfyui_minimax_h3_latent_upscaler/blob/main/nodes/minimax_h3_latent_upscaler_3d.py) (3D latent node)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_registration["Node registration"]
  node_package["Package exports<br/>[__init__.py]"]
  node_registry["Node registry<br/>[__init__.py]"]
end

subgraph group_learned["Learned upscalers"]
  node_up2d["2D latent node"]
  node_model2d["2D resizer"]
  node_up3d["3D latent node"]
  node_model3d["3D resizer"]
  node_weights["Upscaler weights"]
end

subgraph group_split["Split resampling"]
  node_temporal["Temporal params"]
  node_spatial["Spatial params"]
  node_combo["Split upscale"]
end

node_user(("ComfyUI user"))
node_sampler["ComfyUI sampler"]
node_avlatent["H3 AV latent"]
node_upscaled["Upscaled latent"]

node_user -->|"loads nodes"| node_package
node_package -->|"exports mappings"| node_registry
node_registry -->|"registers"| node_up2d
node_registry -->|"registers"| node_up3d
node_registry -->|"registers"| node_combo
node_user -->|"provides latent"| node_up2d
node_up2d -->|"runs inference"| node_model2d
node_weights -->|"loads weights"| node_model2d
node_model2d -->|"returns latent"| node_upscaled
node_user -->|"provides latent"| node_up3d
node_up3d -->|"runs inference"| node_model3d
node_weights -->|"loads weights"| node_model3d
node_model3d -->|"returns latent"| node_upscaled
node_user -->|"configures chunks"| node_temporal
node_user -->|"configures tiles"| node_spatial
node_temporal -->|"split settings"| node_combo
node_spatial -->|"tile settings"| node_combo
node_user -->|"provides AV latent"| node_combo
node_avlatent -->|"input latent"| node_combo
node_sampler -->|"sampling inputs"| node_combo
node_combo -->|"dispatches sampling"| node_sampler
node_combo -->|"stitches latent"| node_upscaled

click node_package "https://github.com/lbh-123-ai/comfyui_minimax_h3_latent_upscaler/blob/main/__init__.py"
click node_registry "https://github.com/lbh-123-ai/comfyui_minimax_h3_latent_upscaler/blob/main/nodes/__init__.py"
click node_up2d "https://github.com/lbh-123-ai/comfyui_minimax_h3_latent_upscaler/blob/main/nodes/minimax_h3_latent_upscaler_2d.py"
click node_model2d "https://github.com/lbh-123-ai/comfyui_minimax_h3_latent_upscaler/blob/main/nodes/minimax_h3_latent_upscaler_2d.py"
click node_up3d "https://github.com/lbh-123-ai/comfyui_minimax_h3_latent_upscaler/blob/main/nodes/minimax_h3_latent_upscaler_3d.py"
click node_model3d "https://github.com/lbh-123-ai/comfyui_minimax_h3_latent_upscaler/blob/main/nodes/minimax_h3_latent_upscaler_3d.py"
click node_weights "https://github.com/lbh-123-ai/comfyui_minimax_h3_latent_upscaler/blob/main/nodes/minimax_h3_latent_upscaler_3d.py"
click node_temporal "https://github.com/lbh-123-ai/comfyui_minimax_h3_latent_upscaler/blob/main/nodes/MMH3_Split_Upscale.py"
click node_spatial "https://github.com/lbh-123-ai/comfyui_minimax_h3_latent_upscaler/blob/main/nodes/MMH3_Split_Upscale.py"
click node_combo "https://github.com/lbh-123-ai/comfyui_minimax_h3_latent_upscaler/blob/main/nodes/MMH3_Split_Upscale.py"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_package,node_registry,node_user,node_sampler toneBlue
class node_up2d,node_model2d,node_up3d,node_model3d,node_weights toneAmber
class node_temporal,node_spatial,node_combo toneMint
class node_avlatent,node_upscaled toneIndigo
```

## Components

### Node registration

- [Package exports](https://github.com/lbh-123-ai/comfyui_minimax_h3_latent_upscaler/blob/main/__init__.py): `__init__.py`
- [Node registry](https://github.com/lbh-123-ai/comfyui_minimax_h3_latent_upscaler/blob/main/nodes/__init__.py): `nodes/__init__.py`

### Learned upscalers

- [2D latent node](https://github.com/lbh-123-ai/comfyui_minimax_h3_latent_upscaler/blob/main/nodes/minimax_h3_latent_upscaler_2d.py): `nodes/minimax_h3_latent_upscaler_2d.py`
- [2D resizer](https://github.com/lbh-123-ai/comfyui_minimax_h3_latent_upscaler/blob/main/nodes/minimax_h3_latent_upscaler_2d.py): `nodes/minimax_h3_latent_upscaler_2d.py`
- [3D latent node](https://github.com/lbh-123-ai/comfyui_minimax_h3_latent_upscaler/blob/main/nodes/minimax_h3_latent_upscaler_3d.py): `nodes/minimax_h3_latent_upscaler_3d.py`
- [3D resizer](https://github.com/lbh-123-ai/comfyui_minimax_h3_latent_upscaler/blob/main/nodes/minimax_h3_latent_upscaler_3d.py): `nodes/minimax_h3_latent_upscaler_3d.py`
- [Upscaler weights](https://github.com/lbh-123-ai/comfyui_minimax_h3_latent_upscaler/blob/main/nodes/minimax_h3_latent_upscaler_3d.py): `nodes/minimax_h3_latent_upscaler_3d.py`

### Split resampling

- [Temporal params](https://github.com/lbh-123-ai/comfyui_minimax_h3_latent_upscaler/blob/main/nodes/MMH3_Split_Upscale.py): `nodes/MMH3_Split_Upscale.py`
- [Spatial params](https://github.com/lbh-123-ai/comfyui_minimax_h3_latent_upscaler/blob/main/nodes/MMH3_Split_Upscale.py): `nodes/MMH3_Split_Upscale.py`
- [Split upscale](https://github.com/lbh-123-ai/comfyui_minimax_h3_latent_upscaler/blob/main/nodes/MMH3_Split_Upscale.py): `nodes/MMH3_Split_Upscale.py`

### Other components

- **ComfyUI user**
- **ComfyUI sampler**
- **H3 AV latent**
- **Upscaled latent**

## Connections

- ComfyUI user → Package exports: loads nodes
- Package exports → Node registry: exports mappings
- Node registry → 2D latent node: registers
- Node registry → 3D latent node: registers
- Node registry → Split upscale: registers
- ComfyUI user → 2D latent node: provides latent
- 2D latent node → 2D resizer: runs inference
- Upscaler weights → 2D resizer: loads weights
- 2D resizer → Upscaled latent: returns latent
- ComfyUI user → 3D latent node: provides latent
- 3D latent node → 3D resizer: runs inference
- Upscaler weights → 3D resizer: loads weights
- 3D resizer → Upscaled latent: returns latent
- ComfyUI user → Temporal params: configures chunks
- ComfyUI user → Spatial params: configures tiles
- Temporal params → Split upscale: split settings
- Spatial params → Split upscale: tile settings
- ComfyUI user → Split upscale: provides AV latent
- H3 AV latent → Split upscale: input latent
- ComfyUI sampler → Split upscale: sampling inputs
- Split upscale → ComfyUI sampler: dispatches sampling
- Split upscale → Upscaled latent: stitches latent
