<?xml version="1.0" encoding="UTF-8"?><rss version="2.0" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>Henry Jia</title><description>记录正在做的事，和做的时候在想什么。</description><link>https://henryjia.me/</link><language>zh-cn</language><item><title>一张 5090 把 MiniMax H3 跑到底</title><link>https://henryjia.me/posts/minimax-h3-on-one-5090/</link><guid isPermaLink="true">https://henryjia.me/posts/minimax-h3-on-one-5090/</guid><description>在 AutoDL 单张 RTX 5090 上把 MiniMax H3 开源版从装机跑到出片，七次实测、五个反直觉的发现，全程十块钱。</description><pubDate>Fri, 07 Aug 2026 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;MiniMax H3 是 2026-08-03 开源的视频生成模型，一次前向同时出画面和&lt;strong&gt;原生立体声&lt;/strong&gt;——人声、音效、配乐不是后期贴上去的，是和画面一起生成的。开源当天 ComfyUI 就给了原生支持。&lt;/p&gt;
&lt;p&gt;我在 AutoDL 租的&lt;strong&gt;单张 RTX 5090&lt;/strong&gt; 上，从零装机一路跑到出片。这篇是那一天的完整记录：&lt;strong&gt;七次实测的耗时与显存、五个和直觉相反的发现、以及一份「官方文档说的和实际对不上」的清单&lt;/strong&gt;。文末有完整数字表，你可以直接拿去估自己的机器。&lt;/p&gt;
&lt;p&gt;先说结论：&lt;strong&gt;能跑，而且比想象中宽裕。&lt;/strong&gt; 官方两个上限——1344×768 的原生画布、362 帧（15 秒）的训练范围上限——&lt;strong&gt;同时拉满也没爆显存&lt;/strong&gt;。整个摸底过程花了 &lt;strong&gt;¥10.15&lt;/strong&gt;，其中真正用来出片的只有 &lt;strong&gt;¥3.25&lt;/strong&gt;。&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&quot;为什么是单卡--comfyui&quot;&gt;为什么是「单卡 + ComfyUI」&lt;/h2&gt;
&lt;p&gt;MiniMax 官方推荐四种推理框架：SGLang、vLLM、diffusers、ComfyUI。前三条在这台机器上直接出局，原因不是显存，是&lt;strong&gt;主机内存&lt;/strong&gt;。&lt;/p&gt;
&lt;p&gt;SGLang 官方 cookbook 给了一份消费卡配方：2×RTX 5090，张量并行加逐层 offload，峰值显存只要 26.3 GiB——听起来很美，但它标注了一个条件：&lt;strong&gt;需要约 384 GiB 主机内存&lt;/strong&gt;。AutoDL 的 5090 实例只有 90 GB。&lt;/p&gt;
&lt;p&gt;于是只剩 ComfyUI 这条路。它是官方支持的，docs.comfy.org 有专页和三套模板，而且不设硬件门槛。代价是得用量化过的权重：官方模板指定的四件套一共约 &lt;strong&gt;39.6 GB&lt;/strong&gt;：&lt;/p&gt;
&lt;div class=&quot;table-scroll&quot; tabindex=&quot;0&quot;&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;文件&lt;/th&gt;
&lt;th&gt;作用&lt;/th&gt;
&lt;th&gt;大小&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;minimax_h3_fl2va_pruned_int8_convrot&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;主干（文生视频 / 首尾帧）&lt;/td&gt;
&lt;td&gt;19.53 GB&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;qwen3vl_32b_minimax_h3_nvfp4_awq&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;文本编码器&lt;/td&gt;
&lt;td&gt;14.61 GB&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;minimax_h3_video_vae_fp16&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;画面 VAE&lt;/td&gt;
&lt;td&gt;4.85 GB&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;minimax_h3_audio_vae_fp32&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;音频 VAE&lt;/td&gt;
&lt;td&gt;0.56 GB&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;
&lt;p&gt;这里有个容易吓退人的数字：模型仓库总大小 &lt;strong&gt;465 GB&lt;/strong&gt;。那是&lt;strong&gt;所有量化变体之和&lt;/strong&gt;，不是你要下的量。实际只需要上面这四个。&lt;/p&gt;
&lt;p&gt;顺带一提，H3 开源的是 768p 那颗芯。2K 需要 &lt;code&gt;H3-Regenerate-2K&lt;/code&gt;、提示词编译需要 &lt;code&gt;H3-Context-IR&lt;/code&gt;，这两个&lt;strong&gt;都没开源&lt;/strong&gt;，只有 API。&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&quot;一显存吃到-98不代表快-oom-了&quot;&gt;一、显存吃到 98%，不代表快 OOM 了&lt;/h2&gt;
&lt;p&gt;第一条基线跑完，我看到峰值显存 &lt;strong&gt;31804 MiB / 32607 MiB，97.5%&lt;/strong&gt;，当场在文档里写下一段推论：&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;出片档 1344×768 是它的 2.49 倍像素，激活显存大致同比例放大 ⇒ &lt;strong&gt;直接跑出片档几乎必然 OOM&lt;/strong&gt;。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;然后我跑了一条，&lt;strong&gt;一次就过&lt;/strong&gt;，峰值 32092 MiB——只比基线多 288 MiB。&lt;/p&gt;
&lt;p&gt;错在哪？我把「显存峰值」当成了&lt;strong&gt;因变量&lt;/strong&gt;去外推。但 ComfyUI 开着 DynamicVRAM，&lt;strong&gt;峰值是被摁住的&lt;/strong&gt;：画布变大、激活变大，它就把更多权重换出到主机内存，让峰值继续贴着显卡上限。真正随档位增长的是&lt;strong&gt;时间&lt;/strong&gt;，不是显存。&lt;/p&gt;
&lt;p&gt;七次生成，档位差了 8 倍，峰值显存全落在 26974–32094 MiB 之间：&lt;/p&gt;
&lt;p&gt;&lt;img alt=&quot;七次生成的峰值显存柱状图，全部贴近显卡上限&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; width=&quot;720&quot; height=&quot;440&quot; src=&quot;/_astro/vram-flat.DMsPe4vZ_UHHeb.svg&quot; srcset=&quot;&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;横轴七根柱子对应七次实测，画布从 864×480 到 1344×768、时长从 5 秒到 15 秒，峰值显存几乎是同一个数&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;这条经验可以带走：在有自适应 offload 的运行时上，别拿「显存占用率已经很高」去推「再加就会 OOM」&lt;/strong&gt;。先跑一条，比推一整段都便宜——那次实测代价是 274 秒，约两毛钱。&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&quot;二加画布加时长代价是时间而且是超线性的&quot;&gt;二、加画布、加时长，代价是时间，而且是超线性的&lt;/h2&gt;
&lt;p&gt;既然显存不动，代价就全在时间上。而时间的增长&lt;strong&gt;明显快于线性&lt;/strong&gt;：&lt;/p&gt;
&lt;p&gt;&lt;img alt=&quot;每步耗时随帧数变化的折线图，两条曲线都高于线性参考线&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; width=&quot;720&quot; height=&quot;430&quot; src=&quot;/_astro/sit-vs-frames.CF_Hfdrj_Z25iFlP.svg&quot; srcset=&quot;&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;灰色虚线是「若按帧数正比增长」的参考线。实测两条曲线都在它上方，说明代价是超线性的&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;拟合出来的指数：&lt;strong&gt;像素约 1.3 次方，帧数约 1.8 次方&lt;/strong&gt;。帧数那条更陡，因为时间注意力的开销随序列长度约二次增长。&lt;/p&gt;
&lt;p&gt;这个模型的用处是估时间。我在跑 15 秒那条之前用它预测过一次，实测 88.25，&lt;strong&gt;误差 4%&lt;/strong&gt;。&lt;/p&gt;
&lt;p&gt;一个附带的坑：帧数不能随便填。H3 走的是 &lt;strong&gt;17k+5 网格&lt;/strong&gt;，官方节点里的换算式是：&lt;/p&gt;
&lt;pre class=&quot;astro-code astro-code-themes github-light github-dark&quot; style=&quot;--shiki-light:#24292e;--shiki-dark:#e1e4e8;--shiki-light-bg:#fff;--shiki-dark-bg:#24292e; overflow-x: auto; white-space: pre-wrap; word-wrap: break-word;&quot; tabindex=&quot;0&quot; data-language=&quot;python&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;--shiki-light:#24292E;--shiki-dark:#E1E4E8&quot;&gt;n &lt;/span&gt;&lt;span style=&quot;--shiki-light:#D73A49;--shiki-dark:#F97583&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;--shiki-light:#005CC5;--shiki-dark:#79B8FF&quot;&gt; max&lt;/span&gt;&lt;span style=&quot;--shiki-light:#24292E;--shiki-dark:#E1E4E8&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;--shiki-light:#005CC5;--shiki-dark:#79B8FF&quot;&gt;5&lt;/span&gt;&lt;span style=&quot;--shiki-light:#24292E;--shiki-dark:#E1E4E8&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;--shiki-light:#005CC5;--shiki-dark:#79B8FF&quot;&gt;round&lt;/span&gt;&lt;span style=&quot;--shiki-light:#24292E;--shiki-dark:#E1E4E8&quot;&gt;(seconds &lt;/span&gt;&lt;span style=&quot;--shiki-light:#D73A49;--shiki-dark:#F97583&quot;&gt;*&lt;/span&gt;&lt;span style=&quot;--shiki-light:#005CC5;--shiki-dark:#79B8FF&quot;&gt; 24&lt;/span&gt;&lt;span style=&quot;--shiki-light:#24292E;--shiki-dark:#E1E4E8&quot;&gt;))&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;--shiki-light:#24292E;--shiki-dark:#E1E4E8&quot;&gt;length &lt;/span&gt;&lt;span style=&quot;--shiki-light:#D73A49;--shiki-dark:#F97583&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;--shiki-light:#24292E;--shiki-dark:#E1E4E8&quot;&gt; n &lt;/span&gt;&lt;span style=&quot;--shiki-light:#D73A49;--shiki-dark:#F97583&quot;&gt;+&lt;/span&gt;&lt;span style=&quot;--shiki-light:#24292E;--shiki-dark:#E1E4E8&quot;&gt; (&lt;/span&gt;&lt;span style=&quot;--shiki-light:#005CC5;--shiki-dark:#79B8FF&quot;&gt;5&lt;/span&gt;&lt;span style=&quot;--shiki-light:#D73A49;--shiki-dark:#F97583&quot;&gt; -&lt;/span&gt;&lt;span style=&quot;--shiki-light:#24292E;--shiki-dark:#E1E4E8&quot;&gt; (n &lt;/span&gt;&lt;span style=&quot;--shiki-light:#D73A49;--shiki-dark:#F97583&quot;&gt;%&lt;/span&gt;&lt;span style=&quot;--shiki-light:#005CC5;--shiki-dark:#79B8FF&quot;&gt; 17&lt;/span&gt;&lt;span style=&quot;--shiki-light:#24292E;--shiki-dark:#E1E4E8&quot;&gt;)) &lt;/span&gt;&lt;span style=&quot;--shiki-light:#D73A49;--shiki-dark:#F97583&quot;&gt;%&lt;/span&gt;&lt;span style=&quot;--shiki-light:#005CC5;--shiki-dark:#79B8FF&quot;&gt; 17&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;所以 5 秒是 124 帧、10 秒是 &lt;strong&gt;243&lt;/strong&gt; 帧、15 秒是 362 帧。我一开始按「秒 × 24」凑了个 236，那个数根本不在网格上。&lt;strong&gt;别自己凑，用官方式子现算。&lt;/strong&gt;&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&quot;三sageattention-的提速不是一个常数&quot;&gt;三、SageAttention 的提速不是一个常数&lt;/h2&gt;
&lt;p&gt;SageAttention 是清华 thu-ml 出的注意力加速库，用低精度量化重写 attention 那一步。ComfyUI 官方文档写着「roughly double the generation speed with minimal quality loss」。&lt;/p&gt;
&lt;p&gt;装它比想象中麻烦，因为&lt;strong&gt;官方的两条安装说法都不能照抄&lt;/strong&gt;（详见第四节）。最后只有一条路走得通：clone 到 tag &lt;code&gt;v2.2.0&lt;/code&gt; 自己编译。&lt;/p&gt;
&lt;pre class=&quot;astro-code astro-code-themes github-light github-dark&quot; style=&quot;--shiki-light:#24292e;--shiki-dark:#e1e4e8;--shiki-light-bg:#fff;--shiki-dark-bg:#24292e; overflow-x: auto; white-space: pre-wrap; word-wrap: break-word;&quot; tabindex=&quot;0&quot; data-language=&quot;bash&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;--shiki-light:#D73A49;--shiki-dark:#F97583&quot;&gt;export&lt;/span&gt;&lt;span style=&quot;--shiki-light:#24292E;--shiki-dark:#E1E4E8&quot;&gt; CUDA_HOME&lt;/span&gt;&lt;span style=&quot;--shiki-light:#D73A49;--shiki-dark:#F97583&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;--shiki-light:#24292E;--shiki-dark:#E1E4E8&quot;&gt;/usr/local/cuda PATH&lt;/span&gt;&lt;span style=&quot;--shiki-light:#D73A49;--shiki-dark:#F97583&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;--shiki-light:#24292E;--shiki-dark:#E1E4E8&quot;&gt;$CUDA_HOME/bin:$PATH&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;--shiki-light:#D73A49;--shiki-dark:#F97583&quot;&gt;export&lt;/span&gt;&lt;span style=&quot;--shiki-light:#24292E;--shiki-dark:#E1E4E8&quot;&gt; TORCH_CUDA_ARCH_LIST&lt;/span&gt;&lt;span style=&quot;--shiki-light:#D73A49;--shiki-dark:#F97583&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;--shiki-light:#005CC5;--shiki-dark:#79B8FF&quot;&gt;12.0&lt;/span&gt;&lt;span style=&quot;--shiki-light:#6A737D;--shiki-dark:#6A737D&quot;&gt;   # sm_120，显式指定就不需要 GPU 在场&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;--shiki-light:#6F42C1;--shiki-dark:#B392F0&quot;&gt;git&lt;/span&gt;&lt;span style=&quot;--shiki-light:#032F62;--shiki-dark:#9ECBFF&quot;&gt; clone&lt;/span&gt;&lt;span style=&quot;--shiki-light:#005CC5;--shiki-dark:#79B8FF&quot;&gt; --depth&lt;/span&gt;&lt;span style=&quot;--shiki-light:#005CC5;--shiki-dark:#79B8FF&quot;&gt; 1&lt;/span&gt;&lt;span style=&quot;--shiki-light:#005CC5;--shiki-dark:#79B8FF&quot;&gt; --branch&lt;/span&gt;&lt;span style=&quot;--shiki-light:#032F62;--shiki-dark:#9ECBFF&quot;&gt; v2.2.0&lt;/span&gt;&lt;span style=&quot;--shiki-light:#032F62;--shiki-dark:#9ECBFF&quot;&gt; https://github.com/thu-ml/SageAttention.git&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;--shiki-light:#005CC5;--shiki-dark:#79B8FF&quot;&gt;cd&lt;/span&gt;&lt;span style=&quot;--shiki-light:#032F62;--shiki-dark:#9ECBFF&quot;&gt; SageAttention&lt;/span&gt;&lt;span style=&quot;--shiki-light:#24292E;--shiki-dark:#E1E4E8&quot;&gt; &amp;amp;&amp;amp; &lt;/span&gt;&lt;span style=&quot;--shiki-light:#6F42C1;--shiki-dark:#B392F0&quot;&gt;pip&lt;/span&gt;&lt;span style=&quot;--shiki-light:#032F62;--shiki-dark:#9ECBFF&quot;&gt; install&lt;/span&gt;&lt;span style=&quot;--shiki-light:#032F62;--shiki-dark:#9ECBFF&quot;&gt; .&lt;/span&gt;&lt;span style=&quot;--shiki-light:#005CC5;--shiki-dark:#79B8FF&quot;&gt; --no-build-isolation&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;我原本最担心的是版本：官方仓最后推送是 2026-01-17，而这台机器是 torch 2.12 + CUDA 13.0，都是那之后才有的东西。结果&lt;strong&gt;编过了&lt;/strong&gt;，sm_120 的 kernel 正常产出。&lt;/p&gt;
&lt;p&gt;真正有意思的是效果。官方说「约翻倍」，但实测&lt;strong&gt;它不是常数&lt;/strong&gt;：&lt;/p&gt;
&lt;div class=&quot;table-scroll&quot; tabindex=&quot;0&quot;&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;&lt;/th&gt;
&lt;th&gt;5 秒 / 124 帧&lt;/th&gt;
&lt;th&gt;15 秒 / 362 帧&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;每步耗时&lt;/td&gt;
&lt;td&gt;12.44 → &lt;strong&gt;6.59&lt;/strong&gt;（1.89×）&lt;/td&gt;
&lt;td&gt;88.25 → &lt;strong&gt;37.61&lt;/strong&gt;（&lt;strong&gt;2.35×&lt;/strong&gt;）&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;总耗时&lt;/td&gt;
&lt;td&gt;274 秒 → 193 秒&lt;/td&gt;
&lt;td&gt;1842 秒 → &lt;strong&gt;829 秒&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;峰值显存&lt;/td&gt;
&lt;td&gt;省 3.0 GB&lt;/td&gt;
&lt;td&gt;省 &lt;strong&gt;5.1 GB&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;
&lt;p&gt;&lt;strong&gt;片子越长，收益越大。&lt;/strong&gt; 机制说得通：attention 开销随序列长度约二次增长，其他算子线性，所以序列越长 attention 占总开销的比重越大，而 Sage 削的正是这块。旁证是上面那张图里的指数——&lt;strong&gt;从 1.83 被压到 1.62&lt;/strong&gt;，超线性那截确实被削掉了一段。&lt;/p&gt;
&lt;p&gt;所以第三条经验：&lt;strong&gt;别拿短片测出的提速比去估长片，会低估&lt;/strong&gt;。我按 1.89× 预测 15 秒要 974 秒，实测 829 秒。&lt;/p&gt;
&lt;p&gt;至于画质——官方说「损失极小」，我没法用数字证明。同 seed 逐帧比出来 PSNR 只有 17.51 dB，但这&lt;strong&gt;不是画质变差的证据&lt;/strong&gt;：换掉 attention kernel 就改变了数值路径，20 步扩散会把微小差异逐步放大，&lt;strong&gt;同 seed 也会出不同的片&lt;/strong&gt;。PSNR 只回答了「是不是同一条片」（不是），回答不了「哪条更好看」。这一层只能人看。&lt;/p&gt;
&lt;p&gt;两条都放在这儿，出片档 1344×768 · 5 秒，同 seed 同 20 步，你自己看：&lt;/p&gt;
&lt;p&gt;&lt;video controls preload=&quot;metadata&quot; src=&quot;https://media.henryjia.me/minimax-h3-on-one-5090/compare-no-sage-274s.mp4&quot;&gt;&lt;/video&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;无 SageAttention，总耗时 274 秒&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;video controls preload=&quot;metadata&quot; src=&quot;https://media.henryjia.me/minimax-h3-on-one-5090/compare-sage-193s.mp4&quot;&gt;&lt;/video&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;挂了 SageAttention，总耗时 193 秒。同 seed，但不是同一条片&lt;/em&gt;&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&quot;四官方文档说的和实际对不上的五处&quot;&gt;四、官方文档说的，和实际对不上的五处&lt;/h2&gt;
&lt;p&gt;这是我觉得最值得留下来的一节。我给自己定的规矩是「只认官方与正规社区，个人博客的实测数字不作权威」——这条规矩没错，但它是&lt;strong&gt;来源门槛，不是免检通行证&lt;/strong&gt;。一天下来攒了五处：&lt;/p&gt;
&lt;div class=&quot;table-scroll&quot; tabindex=&quot;0&quot;&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;官方怎么说&lt;/th&gt;
&lt;th&gt;实况&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;T2V 模板时长 &lt;strong&gt;2 秒&lt;/strong&gt;（模板内部节点确实写着 &lt;code&gt;2&lt;/code&gt;）&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;5 秒 / 124 帧&lt;/strong&gt;——那个 2 是子图内部的陈旧值，被父节点覆盖了&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;全质量要把 Megapixels 提到&lt;strong&gt;约 1.0&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;1.0 落在 1376×768，&lt;strong&gt;超过模型像素上限 2.4%&lt;/strong&gt;；原生画布对应 &lt;strong&gt;0.98&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;从 SageAttention &lt;strong&gt;releases 取匹配 wheel&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;官方 releases 只有一个 release、&lt;strong&gt;零个资产&lt;/strong&gt;，从不发预编译 wheel&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;pip install sageattention==2.2.0&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;PyPI 上最新只有 1.0.6&lt;/strong&gt;，2.2.0 只存在于 git tag&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;R2V 模板提示词里用 &lt;code&gt;&amp;lt;Audio 1&amp;gt;&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;那个模板&lt;strong&gt;根本没有音频参考输入&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;
&lt;p&gt;第一条最坑：ComfyUI 新版模板用了&lt;strong&gt;子图&lt;/strong&gt;（subgraph），子图内部节点的值是陈旧的，会被父节点暴露出来的控件经连线覆盖。&lt;strong&gt;读模板必须从父节点读&lt;/strong&gt;。我按内部值读，错了将近一周。&lt;/p&gt;
&lt;p&gt;发现它的方式不是灵光一现，是两条旁证对不上：5 秒换算出来的 124 帧&lt;strong&gt;正好等于&lt;/strong&gt;官方节点源码里的默认值；而 2 秒只有 56 帧，&lt;strong&gt;低于官方 tooltip 写的训练范围下限（124–362 帧）&lt;/strong&gt;——官方不会把出厂值设在自己没测过的区间。&lt;/p&gt;
&lt;p&gt;第二条最阴险：源码里确实有个按像素上限缩放的函数，但它&lt;strong&gt;只用于参考图适配&lt;/strong&gt;，用户填的宽高是&lt;strong&gt;原样&lt;/strong&gt;送进去的。填超了不报错、不自动缩，只会静默送进模型没训过的画布。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;五处的共同点是：照着官方字面做会踩空，而动手复核一遍就能发现。&lt;/strong&gt;&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&quot;五r2v一直缺的那块能力&quot;&gt;五、R2V：一直缺的那块能力&lt;/h2&gt;
&lt;p&gt;H3 开源了两个不同的主干。前面所有测试用的是 FL2VA（文生视频 / 首尾帧），另一个是 &lt;strong&gt;Ref2VA&lt;/strong&gt;——给它一组参考图，生成的视频保持这些参考的样子。ComfyUI 里叫 Reference to Video，通俗说就是「&lt;strong&gt;全能参考&lt;/strong&gt;」。&lt;/p&gt;
&lt;p&gt;它对我特别重要：这块能力在别的地方要么开不了（需要账户余额），要么额度很小且很快到期。&lt;strong&gt;本地版没有额度概念&lt;/strong&gt;——最多 9 张参考图，另可挂 3 段视频、3 段音频，跑多少条只看机时。&lt;/p&gt;
&lt;p&gt;官方模板一个参数不改跑第一条，&lt;strong&gt;79 秒&lt;/strong&gt;（预览档 864×480 · 5 秒 · 两张参考图）。产物逐帧核过：124 帧、24fps、32 kHz 立体声。&lt;/p&gt;
&lt;p&gt;先看它拿到的两张参考图，官方模板自带，我一个字没改：&lt;/p&gt;
&lt;p&gt;&lt;img alt=&quot;R2V 参考图一：红衣男孩&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; width=&quot;1600&quot; height=&quot;900&quot; src=&quot;/_astro/r2v-ref-1-red-boy_Z204fNO.webp&quot; srcset=&quot;&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;img alt=&quot;R2V 参考图二：机甲龙&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; width=&quot;1368&quot; height=&quot;768&quot; src=&quot;/_astro/r2v-ref-2-mecha-dragon_ZjAN4W.webp&quot; srcset=&quot;&quot;&gt;&lt;/p&gt;
&lt;p&gt;然后是成片：&lt;/p&gt;
&lt;p&gt;&lt;video controls preload=&quot;metadata&quot; src=&quot;https://media.henryjia.me/minimax-h3-on-one-5090/r2v-first-take.mp4&quot;&gt;&lt;/video&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;R2V 首条，预览档 864×480 · 5 秒，79 秒出片。判据不是「好不好看」，是「片子里那个角色，是不是参考图里的那个」&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;这里踩了一个值得写下来的坑。参考图输入在 ComfyUI 里是「自动增长」类型（autogrow），它在 API 格式里的字段名&lt;strong&gt;不是&lt;/strong&gt;直觉上的 &lt;code&gt;ref_image_0&lt;/code&gt;，而是&lt;strong&gt;带点的完整嵌套路径&lt;/strong&gt;：&lt;/p&gt;
&lt;pre class=&quot;astro-code astro-code-themes github-light github-dark&quot; style=&quot;--shiki-light:#24292e;--shiki-dark:#e1e4e8;--shiki-light-bg:#fff;--shiki-dark-bg:#24292e; overflow-x: auto; white-space: pre-wrap; word-wrap: break-word;&quot; tabindex=&quot;0&quot; data-language=&quot;python&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;--shiki-light:#032F62;--shiki-dark:#9ECBFF&quot;&gt;&quot;ref_images.ref_image_0&quot;&lt;/span&gt;&lt;span style=&quot;--shiki-light:#24292E;--shiki-dark:#E1E4E8&quot;&gt;: [&lt;/span&gt;&lt;span style=&quot;--shiki-light:#032F62;--shiki-dark:#9ECBFF&quot;&gt;&quot;137&quot;&lt;/span&gt;&lt;span style=&quot;--shiki-light:#24292E;--shiki-dark:#E1E4E8&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;--shiki-light:#005CC5;--shiki-dark:#79B8FF&quot;&gt;0&lt;/span&gt;&lt;span style=&quot;--shiki-light:#24292E;--shiki-dark:#E1E4E8&quot;&gt;],&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;--shiki-light:#032F62;--shiki-dark:#9ECBFF&quot;&gt;&quot;ref_images.ref_image_1&quot;&lt;/span&gt;&lt;span style=&quot;--shiki-light:#24292E;--shiki-dark:#E1E4E8&quot;&gt;: [&lt;/span&gt;&lt;span style=&quot;--shiki-light:#032F62;--shiki-dark:#9ECBFF&quot;&gt;&quot;139&quot;&lt;/span&gt;&lt;span style=&quot;--shiki-light:#24292E;--shiki-dark:#E1E4E8&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;--shiki-light:#005CC5;--shiki-dark:#79B8FF&quot;&gt;0&lt;/span&gt;&lt;span style=&quot;--shiki-light:#24292E;--shiki-dark:#E1E4E8&quot;&gt;],&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;写成裸名会在执行时报 &lt;code&gt;unexpected keyword argument&lt;/code&gt;。权威出处是模板里那个节点的 &lt;code&gt;inputs[].name&lt;/code&gt; 字段——&lt;strong&gt;遇到这类动态输入，别猜命名规则，去读模板&lt;/strong&gt;。&lt;/p&gt;
&lt;p&gt;好消息是猜错不花钱：&lt;strong&gt;0.19 秒就报错退出，GPU 一点没动。&lt;/strong&gt;&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&quot;完整数字&quot;&gt;完整数字&lt;/h2&gt;
&lt;p&gt;单张 RTX 5090 32GB，ComfyUI 0.30.0，官方模板与官方权重，全部一个参数不改或只动一个变量。&lt;strong&gt;自测数据，单卡没有官方基准可对照。&lt;/strong&gt;&lt;/p&gt;
&lt;div class=&quot;table-scroll&quot; tabindex=&quot;0&quot;&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;模式&lt;/th&gt;
&lt;th&gt;画布 · 时长&lt;/th&gt;
&lt;th&gt;每步&lt;/th&gt;
&lt;th&gt;总耗时&lt;/th&gt;
&lt;th&gt;峰值显存&lt;/th&gt;
&lt;th&gt;卡钱&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;T2V&lt;/td&gt;
&lt;td&gt;864×480 · 5 秒&lt;/td&gt;
&lt;td&gt;2.71&lt;/td&gt;
&lt;td&gt;127 秒&lt;/td&gt;
&lt;td&gt;31804（97.5%）&lt;/td&gt;
&lt;td&gt;¥0.10&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;T2V&lt;/td&gt;
&lt;td&gt;1344×768 · 5 秒&lt;/td&gt;
&lt;td&gt;12.44&lt;/td&gt;
&lt;td&gt;274 秒&lt;/td&gt;
&lt;td&gt;32092（98.4%）&lt;/td&gt;
&lt;td&gt;¥0.21&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;T2V&lt;/td&gt;
&lt;td&gt;1344×768 · 10 秒&lt;/td&gt;
&lt;td&gt;41.66&lt;/td&gt;
&lt;td&gt;886 秒&lt;/td&gt;
&lt;td&gt;31710（97.2%）&lt;/td&gt;
&lt;td&gt;¥0.68&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;T2V&lt;/td&gt;
&lt;td&gt;1344×768 · 15 秒&lt;/td&gt;
&lt;td&gt;88.25&lt;/td&gt;
&lt;td&gt;1842 秒&lt;/td&gt;
&lt;td&gt;32094（98.4%）&lt;/td&gt;
&lt;td&gt;¥1.42&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;T2V ⚡&lt;/td&gt;
&lt;td&gt;1344×768 · 5 秒&lt;/td&gt;
&lt;td&gt;6.59&lt;/td&gt;
&lt;td&gt;193 秒&lt;/td&gt;
&lt;td&gt;29082（89.2%）&lt;/td&gt;
&lt;td&gt;¥0.15&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;T2V ⚡&lt;/td&gt;
&lt;td&gt;1344×768 · 15 秒&lt;/td&gt;
&lt;td&gt;37.61&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;829 秒&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;26974（82.7%）&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;¥0.64&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;R2V ⚡&lt;/td&gt;
&lt;td&gt;864×480 · 5 秒&lt;/td&gt;
&lt;td&gt;2.08&lt;/td&gt;
&lt;td&gt;59 秒&lt;/td&gt;
&lt;td&gt;30280（92.9%）&lt;/td&gt;
&lt;td&gt;¥0.05&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;
&lt;p&gt;⚡ ＝ 挂了 SageAttention。帧数按 24fps 的 17k+5 网格取整：5 秒 ＝ 124 帧、10 秒 ＝ 243 帧、15 秒 ＝ 362 帧。
采样器 &lt;code&gt;res_multistep&lt;/code&gt;、调度 &lt;code&gt;simple&lt;/code&gt; 20 步，全部为官方模板默认值。卡价按 ¥2.78/时折算。&lt;/p&gt;
&lt;h3 id=&quot;钱花在哪了&quot;&gt;钱花在哪了&lt;/h3&gt;
&lt;div class=&quot;table-scroll&quot; tabindex=&quot;0&quot;&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;&lt;/th&gt;
&lt;th&gt;&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;七次生成合计&lt;/td&gt;
&lt;td&gt;4210 秒 ＝ 1.17 小时 ⇒ &lt;strong&gt;¥3.25&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;带卡在线总时长&lt;/td&gt;
&lt;td&gt;约 3.65 小时 ⇒ &lt;strong&gt;¥10.15&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;差额约 ¥6.9&lt;/td&gt;
&lt;td&gt;编译 SageAttention、下 19.5 GB 权重、读源码排错、&lt;strong&gt;空转&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;
&lt;p&gt;&lt;strong&gt;空转和试错占了七成&lt;/strong&gt;。所以如果要省钱，省的是「开着卡干不吃卡的活」——编译、下载、读文档这些根本不需要 GPU。可惜这台机器一旦关机就不保证还能开回来（按量计费不预留 GPU），所以这笔钱有一部分是买保险。&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&quot;几条经验不限于-h3&quot;&gt;几条经验，不限于 H3&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;占用率高不等于快溢出&lt;/strong&gt;。在有自适应调度的运行时上，很多「资源指标」是被系统摁住的常量，不是反映压力的变量。拿它做外推会错。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;官方文档要采信，但要复核&lt;/strong&gt;。五处不一致全都是「照字面做会踩空、动手一试就发现」。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;做性能对照时，先确保只有一个变量在动&lt;/strong&gt;。我判断多线程下载有没有用时，一度在两个下载互相竞争的状态下测总带宽，看到数字没涨就得出了「多线程无用」的错误结论——让它独占跑才看出真实差距。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;看到「快得不合理」，先怀疑缓存&lt;/strong&gt;。有一次补测显存，我只改了输出文件名就重跑，9 秒返回、峰值 272 MiB——上游节点全部命中缓存，根本没算。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;采样值全都一样，是坏了，不是稳&lt;/strong&gt;。监控脚本写在远程命令行里，命令替换被外层 shell 提前展开了一次，于是每轮打的都是启动瞬间那个陈旧值，看起来像「显存非常平稳」。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;最后一条是给自己的：&lt;strong&gt;这一天里最值钱的产出不是那七个数字，是那五处「官方说的和实际不一样」&lt;/strong&gt;。数字换台机器就得重测，而「别照字面信文档」这条不会过期。&lt;/p&gt;
</content:encoded><category>xianying</category><category>ai</category></item></channel></rss>