Update README_zh.md
English · 中文
Minimax H3 视频生成专用 Latent 神经网络放大节点 学习型 · 高保真 · 2D 与 3D 双版本
minimax_h3_latent_upscaler_2d_conv_v1
scale by multiplier
target dimensions
megapixels
rocm
force_unload
align
chunked
single pass
MMH3 Temporal Split Params
MMH3 Spatial Split Params
MMH3 Split Upscale
seam_denoise
soft_empty_cache
.contiguous()
enable_chunking
enable_temporal_chunking
fp32
fp16
bf16
一个 ComfyUI 自定义节点,用训练好的神经网络(而非简单插值)对 Minimax H3 的 VAE latent (24 通道)进行放大。它的主要目的是加速高分辨率视频的生成,并提升画质:
同时,它避免了直接对 latent 插值(双线性/双三次)带来的鬼影、重影问题,作用类似于 LTX2.3 中的 latent 放大模型。
⚠️ 它节省的是时间,不是显存 —— 精修阶段仍在目标分辨率下运行,峰值显存与直接高清生成接近, 收益纯粹是更快出片。
提供两个节点变体,均注册在 video/MinimaxH3 分类下,参数几乎一致(2D 多一个 sharpness,时间分块在 2D 是下拉、在 3D 是开关):
video/MinimaxH3
sharpness
*_2d_conv_v1
*_3d_conv_v1
权重与节点主干必须匹配:2D 节点加载 2D 权重,3D 节点加载 3D 权重。选错时加载器会直接报 结构不匹配,而不是静默出错误结果。
两个节点都内置三种缩放模式:
scale
width
height
1.2
target dimensions 与 megapixels 两种模式会按可配置的像素网格对齐输出,并自动反推等效倍率, 因此 1.0×–4.0× 之间任意目标都能用。
两个节点均只支持放大(等效 scale >= 1.0)。scale = 1.0 返回输入原样;等效倍率小于 1.0 会报错。
scale >= 1.0
scale = 1.0
带档位通道的权重暴露一个 Sharpness 参数(1–6):
Sharpness
旧权重不含档位通道时该参数被静默忽略(按 1 处理),控制台会打印一行提示。
锐度档位目前只存在于 2d_conv_v1 权重:3d_conv_v1 实测没有可调锐度,其输出锐度等价于 2D 的 t1 档。
2d_conv_v1
3d_conv_v1
来源: 该组合是在 Comfyui-MMH3-UltimateUpscale 项目基础上拆解优化而来。原本的单节点被拆成三个可组合节点(时间切分 / 空间切分 / 主放大), 并在原有分块逻辑之上,针对拼接稳定性、色彩一致性、时间连续性、易用性与轻量化做了系统性增强。
一套独立的三节点组合,在扩散采样器内部做分块式「高清重采样」放大(而非用预训练放大网络)。 它接收 H3 的 AV latent(嵌套:视频 24 通道 + 音频 32 通道),沿时间切块、沿空间分块, 对每一块单独跑采样器,再用缝降噪、两级颜色匹配与时间锚点把结果无缝拼接回去,避免出现接缝和鬼影。 两个 * Split Params 节点负责配置切分方式,并喂给主节点 MMH3 Split Upscale(两者均可选—— 不连接即为整段/整帧单次处理)。它需要 model + conditioning + sampler/sigmas,即会在更高 分辨率上重新跑一遍采样。
* Split Params
model
conditioning
sampler
sigmas
相比原版主要增强(拆解优化点):
seam_polish
grade_pin
frame-0 锚
motion 锚
identity 锚
negative
新增 / 优化的模块(相对于原项目):
overlap
fade
视频放大对比
图像放大对比
2D 与 3D 逐倍率对比:完整的 36 档 MSE / PSNR / 锐度 / 时序图表见 examples/3D_Conv_v1_vs_2D_Conv_v1.html。
examples/3D_Conv_v1_vs_2D_Conv_v1.html
Comfyui_Minimax_h3_latent_Upscaler/ ├── examples/ │ ├── Minimax_h3_latent_Upscaler_001.mp4 │ ├── Minimax_h3_latent_Upscaler_002.jpg │ └── 3D_Conv_v1_vs_2D_Conv_v1.png # 2D vs 3D 全倍率 MSE 曲线 ├── workflow_templates/ │ └── minimax_h3_r2v_Latent Upscaler example workflow.json # ComfyUI 模板示例工作流 ├── nodes/ │ ├── __init__.py # 合并 2D/3D/组合节点映射 │ ├── minimax_h3_latent_upscaler_2d.py # 2D 主干 + 时序卷积(三模式 + 锐度档位 + 时间分块) │ ├── minimax_h3_latent_upscaler_3d.py # 纯 3D 卷积,支持 3 种缩放模式 │ └── MMH3_Split_Upscale.py # MMH3 Split Upscale 组合(基于 Comfyui-MMH3-UltimateUpscale 拆解优化) ├── README.md ├── README_zh.md └── __init__.py
模型权重不随仓库提供,请按下方「模型放置」说明放入 ComfyUI 模型目录。
.safetensors
.pth
upscaler.
cuda
cpu
推理时强制关闭注意力(attn=False)以提升速度与稳定性;已加载模型按 (名称, 设备, 精度) 缓存,重复调用开销很低。
attn=False
(名称, 设备, 精度)
将仓库克隆到 ComfyUI 的 custom_nodes 文件夹:
custom_nodes
cd ComfyUI/custom_nodes git clone https://github.com/LBH-123-AI/Comfyui_Minimax_h3_latent_Upscaler.git
所需依赖(torch、einops、safetensors)在标准 ComfyUI 环境中已自带,无需额外安装。
torch
einops
safetensors
重启 ComfyUI。
节点从这里扫描并加载权重:
ComfyUI/models/latent_upscale_models/
把你的 Minimax H3 latent 放大模型权重(.safetensors 或 .pth)放进该目录,节点下拉框会自动列出。 支持放在子目录里,下拉框会带上子目录名。
预训练权重可在此下载: huggingface.co/LBH-123-AI/Minimax_h3_latent_Upscaler
每个版本都提供 fp32 / fp16 / bf16 三档精度,按显卡与工作流选一档即可:
minimax_h3_latent_upscaler_3d_conv_v1
推荐默认 fp16:与 fp32 数值上几乎无差;bf16 给没有 fp16 快速路径的显卡(同体积、精度略低); fp32 是参考权重,用于转换与逐位校验。
加载器会自动识别结构(通道数、块数、时序配置、是否带锐度档位通道等)。两个版本结构不同、不能互换:2d_conv_v1 只接 2D 节点,3d_conv_v1 只接 3D 节点。
同一套验证集(2,500 对冻结验证)上,两个版本的实测差异:
全 36 个倍率的 raw latent MSE(越低越好)
灰 = 三线性,蓝 = 2D_Conv_v1(t1),橙 = 3D_Conv_v1。2D 全程贴底、几乎是一条平线,36 个倍率都稳定在三线性的 11%–15%;3D 只在训练过的 2×/2.25×/2.5×/4× 处短暂低于 2D,其余倍率明显反弹——1.1× 处几乎与三线性重合(0.133 vs 0.138),1.3×、2.2× 的改善也只有 30%–45%。这张图就是“2D 赢覆盖面、3D 赢特定倍率”最直观的说明。
2D_Conv_v1
3D_Conv_v1
3D 占优的四个倍率(统一口径:相对三线性的改善)
读法:换成「相对三线性改善」这个统一口径后,两者都是 83%–89% 的量级,3D 只多 1.0–3.3 个百分点 (绝对差 0.004–0.024)。表里最后一列的 7.5%–30.5% 是在这层残差上算的相对差,不是“画质差三成”。
时序一致性明细(latent 域帧间差比值;1.000 = 帧间动态与真值一致,<1 = 比真值更“静”、 细节或运动被抹平,>1 = 更“抖”、闪烁被放大):
读法:三个方案的平均值都低于 1,也就是输出都比真值“静”一些(细节/运动被抹平一点)。3D 的 0.867 比 2D 的 0.850 更接近 1,差距在 4× 时最明显(0.805 vs 0.761),1.5×–3× 基本在 0.01 以内、 肉眼看不出。所以“时序更强”只在 4× 高倍率下才有实际意义。 (2× 那栏三线性 0.869 反而最靠近 1,但那是插值振铃把帧间噪声一起放大造成的,并不代表更真实。)
从 video/MinimaxH3 菜单中添加所需节点,连入一个 LATENT,选择模型、设置缩放模式/参数,再解码即可。
LATENT
典型流程:
[Minimax H3 Latent] → [H3 Latent Upscaler] → [VAE 解码]
[低清 Latent] → [H3 Latent Upscaler] → [二次采样重绘/精修] → [VAE 解码]
相比「[Latent] → [VAE 解码] → [像素放大] → [VAE 编码] → …」这种朴素做法,直接在 latent 空间 放大跳过了昂贵的 VAE 解码/编码往返。Minimax H3 的约 5B 参数 VAE 让解码与再编码都明显偏慢,时间 主要就省在这里。同时也避免了直接对 latent 插值(双线性/双三次)造成的鬼影 / 重影问题。
⚠️ 显存预期: 本节点只省时间——精修仍在目标分辨率下跑,峰值显存与直接高清生成接近;长视频请用 Temporal Chunking 压峰值。
Temporal Chunking
latent
model_name
latent_upscale_models/
mode
temporal_chunking
chunk_frames
device
precision
输出: LATENT — 放大后的 latent,可直接送 VAE 解码。
输出: LATENT — 放大后的 latent。
选哪个节点? 默认走 2D:覆盖 1.1×–4.0× 全倍率、低倍率优势大、体积只有一半、锐度可调。 只有固定跑 2×(或 2.25×/2.5×/4×)想要更高精度时才换 3D——这几个倍率的 latent MSE 比 2D 再低 7.5%–30.5%(绝对差 0.004–0.024;换成相对三线性的改善口径,2D 约 85%、3D 约 87%,只差 1–3 个百分点), 时序一致性也只是微弱领先。 具体数据见上文「选哪份权重:2D 还是 3D?」。
一套分块式「高清重采样」的 H3 视频放大方案,在 Comfyui-MMH3-UltimateUpscale 项目基础上拆解优化而来。和 2D/3D 节点(用预训练放大网络)不同,这套组合会在 latent 的更高分辨率版本上重跑扩散采样器,并切块以适配显存。它操作的是 H3 的 AV latent (嵌套:视频 24 通道 + 音频 32 通道),需要 model + conditioning + sampler/sigmas。
MMH3 Temporal Split Params — 沿时间怎么切(对齐 H3 原生的 5+17·m 帧/token 网格):
temporal_overlap_frames
anchor_strength
motion_anchor_frames
identity_anchor_frames
输出:temporal_split_param(自定义类型,喂给主节点)。
temporal_split_param
MMH3 Spatial Split Params — 每帧怎么切瓦片:
tile_width
tile_height
overlap_ratio
fade_ratio
min_tile_size
输出:spatial_split_param(自定义类型)+ grid_preview(字符串,显示计算出的瓦片/重叠网格)。
spatial_split_param
grid_preview
MMH3 Split Upscale — 主调度节点:
noise
cfg
color_match
输出: LATENT — 放大后的 H3 AV latent,可直接送 VAE 解码。
注意: 两个 * Split Params 节点都可不接(即为整段/整帧单次处理,不做时间/空间切分)。 该组合会在更高分辨率上重跑采样器,因此以额外算力换取长视频 / 高分辨率下的显存余量。
x + f(x)
in_channels
in_blocks
out_blocks
channels
state_dict
temporal_every=2
temporal_kernel=5
channels=640
channels=512
learned_upsample_ks
训练语料共 约 16 万个独立配对(一份低分辨率 latent 配一份高分辨率目标,不含锐度副本): 其中 146,945 对用于主干(倍率)训练,13,967 组独立语料专门训练锐度档位—— 这 13,967 组每组再配 1–6 六个锐度档位的 HR,共 83,802 对。
按缩放倍数(占主干训练量,实测):
其中 2.0×(32,624 对,22.2%)、2.5×(15,000 对,10.2%)、4.0×(10,500 对,7.2%)、 1.5×(11,150 对,7.6%)、3.0×(10,824 对,7.4%) 是五个主力倍数,其余 0.25 步进的档位多为 2–3 千对(每档约 2.25%)。除了固定档位,还包含 1.0×–4.0× 之间的任意小数倍率,用于提升对连续 scale 值的泛化能力,避免只在几个固定档位上表现好。
本节点沿用了 Ttl 提出的「神经网络 latent 放大」思路 (ComfyUi_NNLatentUpscale, https://github.com/Ttl)。本项目模型架构同时参考借鉴了 LTX 2.3 Spatial Upscaler (ltx-2.3-spatial-upscaler-x2-1.1.safetensors)。感谢这些开源工作为本项目奠定基础。
ltx-2.3-spatial-upscaler-x2-1.1.safetensors
版权所有:中国计算机学会技术支持:开源发展技术委员会 京ICP备13000930号-9 京公网安备 11010802047560号
English · 中文
ComfyUI Minimax H3 Latent Upscaler
Minimax H3 视频生成专用 Latent 神经网络放大节点 学习型 · 高保真 · 2D 与 3D 双版本
📰 更新动态
minimax_h3_latent_upscaler_2d_conv_v1**:新权重为 2D 卷积主干(Conv2d)+ 穿插时序卷积(Conv1d),参数量 1.82 亿(3D 版 3.45 亿,约为一半),fp16 权重约 364 MB(3D 版约 691 MB)。在全部 36 个倍率上,latent MSE 相对三线性降低 **84.7%**(3D 版 61.1%);1.1×–1.4× 低倍率仍有约 80% 的改善(3D 版此时只有 28%);像素域平均 PSNR 30.47 dB(3D 版 29.30 dB)。同时支持 6 档锐度(3D 版无可调锐度),并覆盖 1.1×–4.0× 全倍率。3D 版只在它训练过的 2×/2.25×/2.5×/4× 上略有优势,且幅度有限:按统一口径「相对三线性的改善」,这四个倍率 2D 是 **83.0%–86.4%**、3D 是 **84.7%–89.1%**,只差 1.0–3.3 个百分点(绝对 MSE 差 0.004–0.024)——「3D 比 2D 低 7.5%–30.5%」是在这层很小残差上算的相对差,不是量级差距。时序一致性也略强(帧间差比值 0.867 vs 0.850,偏离真值 13.3% vs 15.0%),差距同样很小。明细见下方「选哪份权重」对比表。完整对比见对比报告。scale by multiplier/target dimensions/megapixels)、rocm后端、force_unload显存卸载、像素网格align对齐,新增 Sharpness 锐度档位(1–6)与 Temporal Chunking 时间分块(chunked/single pass)。MMH3 Temporal Split Params、MMH3 Spatial Split Params、MMH3 Split Upscale),对 H3 视频做分块式「高清重采样」放大。该组合是在 Comfyui-MMH3-UltimateUpscale 项目基础上拆解优化而来——把 AV latent 沿时间切块、沿空间分块,逐块重采样后再无缝拼接;相比原版主要增强:更稳的拼接(seam_denoise+ probe 门控二道缝修补)、颜色零漂移(空间+时间两级颜色匹配 + 首块/每 chunk 钉源)、三重时间锚(frame-0 / motion / identity)、更易用(空间参数简化为重叠率/渐变率百分比并自动吸附网格)、更轻量(移除内置放大模型,改接外部预放大 latent)。soft_empty_cache与显式.contiguous(),降低加载与推理期间的显存/内存峰值;推理后卸载到 CPU 改为可选开关force_unload(默认开启);enable_chunking更名为enable_temporal_chunking,分块有效帧数由 24 提升至 32;模型文件现可放入子目录(PR #30);target dimensions与megapixels上限分别放宽到 8192 像素与 16 MP。enable_chunking开关(短片段可关闭,使用全上下文推理);修复时间分块边缘伪影——采用 Replicate Padding 与重叠区域加权融合,消除末尾帧闪烁;新增 ROCm(AMD 显卡)后端支持,设备选项新增rocm。align网格(默认 32),修复底部光带问题;归一化/反归一化由原地操作改为标准运算,保留时间分块以支持长视频。scale by multiplier、target dimensions、megapixels)合并进单一节点;修复特定模式下造成的比例不统一,修复各类特定尺寸造成的边缘伪影;新增示例工作流供参考。fp32/fp16/bf16推理。一个 ComfyUI 自定义节点,用训练好的神经网络(而非简单插值)对 Minimax H3 的 VAE latent (24 通道)进行放大。它的主要目的是加速高分辨率视频的生成,并提升画质:
同时,它避免了直接对 latent 插值(双线性/双三次)带来的鬼影、重影问题,作用类似于 LTX2.3 中的 latent 放大模型。
⚠️ 它节省的是时间,不是显存 —— 精修阶段仍在目标分辨率下运行,峰值显存与直接高清生成接近, 收益纯粹是更快出片。
提供两个节点变体,均注册在
video/MinimaxH3分类下,参数几乎一致(2D 多一个sharpness,时间分块在 2D 是下拉、在 3D 是开关):*_2d_conv_v1,支持 6 档锐度。*_3d_conv_v1。两个节点都内置三种缩放模式:
scale by multiplier:经典scale倍数(1.0×–4.0×)。target dimensions:直接填目标像素width/height。megapixels:填目标总像素(百万像素,例如1.2),保持原宽高比。target dimensions与megapixels两种模式会按可配置的像素网格对齐输出,并自动反推等效倍率, 因此 1.0×–4.0× 之间任意目标都能用。Sharpness 锐度档位(仅 2D 权重)
带档位通道的权重暴露一个
Sharpness参数(1–6):旧权重不含档位通道时该参数被静默忽略(按 1 处理),控制台会打印一行提示。
MMH3 Split Upscale(组合节点)
一套独立的三节点组合,在扩散采样器内部做分块式「高清重采样」放大(而非用预训练放大网络)。 它接收 H3 的 AV latent(嵌套:视频 24 通道 + 音频 32 通道),沿时间切块、沿空间分块, 对每一块单独跑采样器,再用缝降噪、两级颜色匹配与时间锚点把结果无缝拼接回去,避免出现接缝和鬼影。 两个
* Split Params节点负责配置切分方式,并喂给主节点MMH3 Split Upscale(两者均可选—— 不连接即为整段/整帧单次处理)。它需要model+conditioning+sampler/sigmas,即会在更高 分辨率上重新跑一遍采样。相比原版主要增强(拆解优化点):
seam_denoise)+ probe 门控的二道缝修补(seam_polish),消除接缝与鬼影;在高降噪 + 快速运动下,运动物体也不再被切断(”断肢”)。grade_pin),彻底解决块间闪烁、左上角发青等问题。frame-0 锚+motion 锚+identity 锚三重时间锚,高降噪时自动兜底身份一致性,人物不漂移。negative紧跟conditioning布局,连线更直观。新增 / 优化的模块(相对于原项目):
grade_pin)——保证各瓦片、各时间块之间的色彩与亮度一致,杜绝块间闪烁与局部发青。seam_denoise上限——在高降噪 + 快速运动下,缝邻域以中等降噪续写邻居内容,防止运动物体被切断(”断肢”);配合 probe 门控的二道缝修补,接缝与鬼影一并消除(建议 0.5–0.8;1.0 = 关闭)。seam_polish)——每个瓦片获得正确作用域的条件/关键帧,去缝门控不再过度或不足。overlap/fade改为百分比参数(重叠率 / 渐变率,与分辨率无关),替代原来的绝对像素值,并自动吸附 latent 网格;negative紧跟conditioning,布局更直观。📸 示例
视频放大对比
图像放大对比
2D 与 3D 逐倍率对比:完整的 36 档 MSE / PSNR / 锐度 / 时序图表见
examples/3D_Conv_v1_vs_2D_Conv_v1.html。📁 项目结构
🚀 核心特性
2d_conv_v1覆盖全倍率、体积减半、锐度可调;3d_conv_v1在 2×/2.25×/2.5×/4× 上更准,时序一致性只微弱领先(帧间差比值 0.867 vs 0.850)。按场景选,节点与权重一一对应。scale by multiplier/target dimensions/megapixels,均带像素网格对齐与宽高比锁定。chunked分块推理压低显存峰值,single pass整段一次前向;旧工作流自动兼容。.safetensors与.pth;自动 FP8→FP16;兼容合并权重中的upscaler.前缀。cuda/rocm/cpu与fp32/fp16/bf16选项。推理时强制关闭注意力(
attn=False)以提升速度与稳定性;已加载模型按(名称, 设备, 精度)缓存,重复调用开销很低。📦 安装
将仓库克隆到 ComfyUI 的
custom_nodes文件夹:所需依赖(
torch、einops、safetensors)在标准 ComfyUI 环境中已自带,无需额外安装。重启 ComfyUI。
🤖 模型放置
节点从这里扫描并加载权重:
把你的 Minimax H3 latent 放大模型权重(
.safetensors或.pth)放进该目录,节点下拉框会自动列出。 支持放在子目录里,下拉框会带上子目录名。预训练权重可在此下载: huggingface.co/LBH-123-AI/Minimax_h3_latent_Upscaler
每个版本都提供 fp32 / fp16 / bf16 三档精度,按显卡与工作流选一档即可:
minimax_h3_latent_upscaler_2d_conv_v1(2D 主干)minimax_h3_latent_upscaler_3d_conv_v1(3D 主干)推荐默认 fp16:与 fp32 数值上几乎无差;
bf16给没有 fp16 快速路径的显卡(同体积、精度略低);fp32是参考权重,用于转换与逐位校验。加载器会自动识别结构(通道数、块数、时序配置、是否带锐度档位通道等)。两个版本结构不同、不能互换:
2d_conv_v1只接 2D 节点,3d_conv_v1只接 3D 节点。选哪份权重:2D 还是 3D?
同一套验证集(2,500 对冻结验证)上,两个版本的实测差异:
全 36 个倍率的 raw latent MSE(越低越好)
3D 占优的四个倍率(统一口径:相对三线性的改善)
读法:换成「相对三线性改善」这个统一口径后,两者都是 83%–89% 的量级,3D 只多 1.0–3.3 个百分点 (绝对差 0.004–0.024)。表里最后一列的 7.5%–30.5% 是在这层残差上算的相对差,不是“画质差三成”。
时序一致性明细(latent 域帧间差比值;1.000 = 帧间动态与真值一致,<1 = 比真值更“静”、 细节或运动被抹平,>1 = 更“抖”、闪烁被放大):
读法:三个方案的平均值都低于 1,也就是输出都比真值“静”一些(细节/运动被抹平一点)。3D 的 0.867 比 2D 的 0.850 更接近 1,差距在 4× 时最明显(0.805 vs 0.761),1.5×–3× 基本在 0.01 以内、 肉眼看不出。所以“时序更强”只在 4× 高倍率下才有实际意义。 (2× 那栏三线性 0.869 反而最靠近 1,但那是插值振铃把帧间噪声一起放大造成的,并不代表更真实。)
🧩 使用方法
从
video/MinimaxH3菜单中添加所需节点,连入一个LATENT,选择模型、设置缩放模式/参数,再解码即可。典型流程:
[Minimax H3 Latent] → [H3 Latent Upscaler] → [VAE 解码][低清 Latent] → [H3 Latent Upscaler] → [二次采样重绘/精修] → [VAE 解码]相比「[Latent] → [VAE 解码] → [像素放大] → [VAE 编码] → …」这种朴素做法,直接在 latent 空间 放大跳过了昂贵的 VAE 解码/编码往返。Minimax H3 的约 5B 参数 VAE 让解码与再编码都明显偏慢,时间 主要就省在这里。同时也避免了直接对 latent 插值(双线性/双三次)造成的鬼影 / 重影问题。
⚠️ 显存预期: 本节点只省时间——精修仍在目标分辨率下跑,峰值显存与直接高清生成接近;长视频请用
Temporal Chunking压峰值。节点参数 — 2D
latentmodel_namelatent_upscale_models/中的模型modescale by multiplierscale by multiplier/target dimensions/megapixelsscalemode为scale by multiplier时使用widthtarget dimensions使用)heighttarget dimensions使用)megapixelsmegapixels使用),保持宽高比sharpnessaligntemporal_chunkingchunkedchunked/single passsingle pass为整段一次前向(最费显存)chunk_frameschunked下出现。每块实际前向帧数 = 该值 + 48(时间感受野上下文),放得下就别调太小force_unloaddeviceprecision输出:
LATENT— 放大后的 latent,可直接送 VAE 解码。节点参数 — 3D
latentmodel_namelatent_upscale_models/中的模型modescale by multiplierscale by multiplier/target dimensions/megapixelsscalemode为scale by multiplier时使用widthtarget dimensions使用)heighttarget dimensions使用)megapixelsmegapixels使用),保持宽高比alignenable_temporal_chunkingforce_unloaddeviceprecision输出:
LATENT— 放大后的 latent。节点参数 — MMH3 Split Upscale(组合)
一套分块式「高清重采样」的 H3 视频放大方案,在 Comfyui-MMH3-UltimateUpscale 项目基础上拆解优化而来。和 2D/3D 节点(用预训练放大网络)不同,这套组合会在 latent 的更高分辨率版本上重跑扩散采样器,并切块以适配显存。它操作的是 H3 的 AV latent (嵌套:视频 24 通道 + 音频 32 通道),需要
model+conditioning+sampler/sigmas。MMH3 Temporal Split Params— 沿时间怎么切(对齐 H3 原生的 5+17·m 帧/token 网格):chunk_framestemporal_overlap_framesanchor_strengthmotion_anchor_framesidentity_anchor_frames输出:
temporal_split_param(自定义类型,喂给主节点)。MMH3 Spatial Split Params— 每帧怎么切瓦片:tile_widthtile_heightoverlap_ratiofade_ratiomin_tile_sizeseam_denoise输出:
spatial_split_param(自定义类型)+grid_preview(字符串,显示计算出的瓦片/重叠网格)。MMH3 Split Upscale— 主调度节点:modelconditioningnegativelatentnoisesamplersigmascfgtemporal_split_paramMMH3 Temporal Split Paramsspatial_split_paramMMH3 Spatial Split Paramsseam_polishcolor_match输出:
LATENT— 放大后的 H3 AV latent,可直接送 VAE 解码。🧪 模型与架构
x + f(x)(带 1×1 跳连或恒等映射),但主干整体没有全局残差:网络输出完全由卷积预测给出, 不叠加插值/输入基座,不会出现“神经网络只学残差、基座靠插值”的情况。in_channels/in_blocks/out_blocks/channels/ 时序配置 / 卷积核大小 / 是否带 CoordConv、SE、大核、学习型上采样、锐度档位通道,全部从state_dict的形状和键名反推,不需要手动配置。两个版本都是 12+12 块、temporal_every=2、temporal_kernel=5、attn=False;2D 版channels=640(1.82 亿参数),3D 版channels=512(3.45 亿参数)。learned_upsample_ks,即 PixelShuffle 分支)则启用 学习上采样;否则回退到特征插值——2D 节点双线性,3D 节点三线性。控制台会打印实际走的路径。sharpness编码成 32 维条件,与倍率条件一起送入主干; 档位通道零初始化,所以旧权重 / 不带档位时行为与之前逐位一致。📊 训练数据
训练语料共 约 16 万个独立配对(一份低分辨率 latent 配一份高分辨率目标,不含锐度副本): 其中 146,945 对用于主干(倍率)训练,13,967 组独立语料专门训练锐度档位—— 这 13,967 组每组再配 1–6 六个锐度档位的 HR,共 83,802 对。
按缩放倍数(占主干训练量,实测):
其中 2.0×(32,624 对,22.2%)、2.5×(15,000 对,10.2%)、4.0×(10,500 对,7.2%)、 1.5×(11,150 对,7.6%)、3.0×(10,824 对,7.4%) 是五个主力倍数,其余 0.25 步进的档位多为 2–3 千对(每档约 2.25%)。除了固定档位,还包含 1.0×–4.0× 之间的任意小数倍率,用于提升对连续
scale值的泛化能力,避免只在几个固定档位上表现好。🙏 致谢
本节点沿用了 Ttl 提出的「神经网络 latent 放大」思路 (ComfyUi_NNLatentUpscale, https://github.com/Ttl)。本项目模型架构同时参考借鉴了 LTX 2.3 Spatial Upscaler (
ltx-2.3-spatial-upscaler-x2-1.1.safetensors)。感谢这些开源工作为本项目奠定基础。