做 AI 视频这一年,我被问得最多的一句话不是「哪个模型效果好」
发布时间:2026/10/31 2:53:39 锦皓数字建站

做 AI 视频这一年我被问得最多的一句话不是「哪个模型效果好」而是「哥我充了 200怎么跑了 3 条就没了」这问题背后是同一个原因大家只比效果没人算计价。而这两件事的计价逻辑恰好是完全相反的。这篇是我最近三周的真实记录。同一个需求、同一套提示词喂给 Seedance 2.0 和 MiniMax H3一共跑了 6 组、87 块钱。结论有点反直觉我尽量把数据和坑都摊开写。声明本文是个人测试记录不含任何邀请码、返利链接。价格和规格以官方页面为准我测的时间点是 2026 年 10 月。一、先说结论赶时间的看这段Seedance 2.0MiniMax H3计价逻辑按 token≈按时长×分辨率按秒按分辨率分档一次出片4~15 秒4~15 秒分辨率480P / 720P / 1080P4K 存疑见下文768P 原生2K 需二次再生成音频需另接 TTS / 音效原生 32kHz 立体声带对白和音效失败计费审核失败不计费失败不扣点数强项主体还原、多模态参考、视频编辑与延长长镜头一次成型、音画同步、文字与品牌标识渲染弱项无声、时长上限 15 秒2K 要跑两遍多花钱、贵在「秒数」我最后用它做电商产品短镜头、素材铺量带台词的口播、需要声音的一镜到底一句话总结Seedance 2.0 更像「一次买一张票」MiniMax H3 更像「按公里计价打车」。前者逼你把一次调用压到信息密度最高后者逼你把时长压到刚好够用。二、重点把两家的计费方式拆开算这部分是我花时间最多的地方也是本文最值钱的一段。2.1 Seedance 2.0按 token公式是公开的火山引擎文档给了完整公式方舟模型价格页token 用量 ≈ (输入视频时长 输出视频时长) × 输出宽 × 输出高 × 帧率 / 1024 费用 token 单价 × token 用量关键点token 用量和「宽×高×帧率」成正比。也就是说分辨率翻倍成本大致翻 4 倍面积。文档里还有一句很关键的只有成功生成的视频计费审核失败的不要钱。这条对批量跑的人太重要了。一份第三方按官方单价做的测算生成一条 15 秒纯原创视频消耗约30.888 万 tokens折合 14.2 元即约1 元/秒雪球相关测算。所以我看到「5 元/次」这种说法时的第一反应是这大概率不是 15 秒满档的价格。要么是短时长档要么是平台套餐折算要么是活动价。这不是黑是提醒——下单前一定看清单次时长和分辨率上限不然你以为买了 15 秒实际只能出 5 秒。2.2 MiniMax H3按秒按分辨率分三档官方定价页写得非常清楚MiniMax 定价概览模型分辨率输出视频元/秒MiniMax-H3画质优先2K¥0.80768P¥0.50H3-Highspeed质量与速度兼顾768P¥0.40H3-Lite低成本批量768P¥0.26480P¥0.16几个极其容易被忽略的细节我挨个踩过输入也要钱。输入视频按时长×分辨率计费输入图前 5 张免费超出 ¥0.20/张。图片输入不收钱的人跑图生视频会莫名多花钱。2K 不是免费的。架构是H3-Base出 768P再由H3-Regenerate-2K重新生成 2K再生成的钱单独收而且还要重新计一遍输入素材。视频资源包不支持 H3。页面上明写的买错了不退。这条我朋友踩过。H3-Context-IR建议必须接。官方说它「对最终输出质量非常重要」跳过它直接调 Base指令遵循会明显掉档。2.3 价格对照同一条 15 秒谁便宜假设都是 1080P/768P 这个量级、都是一条 15 秒方案计算花费Seedance 2.0官方 token 测算≈1 元/秒 × 15≈14~15 元MiniMax H3 768P0.50 × 157.5 元MiniMax H3 Lite 480P0.16 × 152.4 元MiniMax H3 2K含再生成0.80 × 15 再生成≥12 元起结论跟我一开始想的完全相反如果只看单位时长H3 的 768P 大概是 Seedance 的一半左右但 H3 一旦上 2K、还要接 IR成本就追上来了。这里我想抛个问题给大家讨论按秒计费看起来「公平」但它有个隐蔽的问题——你为「前 3 秒没抓住人」的那些秒也付了钱。一条 15 秒没人看完的视频按次和按秒都亏但按秒亏得更直观。你们做投放的是按秒买还是按条买三、6 组同题实测测试设置同一批提示词两边各跑 3 次取最好那条同一台机器、同一网络评判只看 3 个硬指标主体一致性 / 动作是否自然 / 能不能直接用不用返工#场景时长达标主体稳定动作自然可直接用1电商产品旋转特写两者✅Seedance ✅都得 2 次Seedance 2/3H3 1/32人物口播带台词两者✅接近H3 ✅音画同步H3 3/3Seedance 0/3无声3品牌 Logo 动画两者✅Seedance 略优平手H3 3/3文字渲染准Seedance 1/34一镜到底运镜两者✅平手H3 ✅长镜头更稳各 2/35手部动作 / 教学示意两者✅Seedance ✅Seedance 优Seedance 3/3H3 1/3615 秒带音效的产品广告两者✅平手平手H3 3/3Seedance 需后期配音第 2 组是我态度转变的地方。Seedance 2.0 画面其实更干净但它不出声——我得再去找 TTS、再对音效、再卡点原本 5 分钟的事变成 40 分钟。H3 是一段视频里直接带对白和立体声我听完只调了一次音量就用了。第 5 组反过来。手部精细动作H3 偶尔会多出手指或者让手指糊成一团Seedance 稳得多。一个具体的提示词对比这组最有说服力只有主体描述失败版一个咖啡杯在桌子上旋转光线很好画质清晰结果杯子转着转着变形了桌面反光乱飞6 次里只有 2 次勉强能用。四段式成功版【镜头】85mm 中近景缓慢横移浅景深 【主体】哑光黑咖啡杯在胡桃木桌上缓慢旋转 30°杯中液体无飞溅 【环境光】左侧窗光色温 5000K桌面右侧一盏暖色补光形成轮廓光 【质感】数码直出轻微运动模糊无胶片颗粒结果6 次里 5 次可用。同一模型、同一主体只是把「镜头/光/质感」写明可用率从 2/6 涨到 5/6。为什么有用因为这两家的 tokenizer 都把「画面描述」拆成结构化条件去遵循。你写「画质清晰」这种空词等于什么都没说你写「85mm」「5000K」「浅景深」它是真的能对上号。【图 1 位置】左右并排两张截图左边是「四段式」输入框右边是「只有主体描述」的输入框用红框标出差异段落。图注同一模型、同一主体右边这版废片率是左边的三倍。【图 2 位置】四条成片的首帧拼图用下面的命令就能拼不用装剪辑软件。图注左二那条杯子已经变形了。ffmpeg-iinput.mp4-vfselecteq(n\,0)eq(n\,48)eq(n\,96),scale480:-1,tile3x1-frames:v1shot.png四、代码一个函数同时接两家还顺手记成本单个镜头手点没问题跑 30 条就是折磨。更折磨的是月底看账单不知道钱花哪儿了。下面这段我实盘在用核心是三件事统一入口、失败降级、成本入账。 双模型跑批 成本记账 用法python run.py 注意BASE_URL / 模型标识请以官方文档为准这里用占位 importasyncio,hashlib,json,os,timefromdecimalimportDecimalimporthttpx BASEos.environ[ZL_BASE_URL]KEYos.environ[ZL_API_KEY]HDR{Authorization:fBearer{KEY},Content-Type:application/json}# ---------- 计价模型这是整段代码的灵魂 ----------SEEDANCEseedance-2.0H3minimax-h3PRICE{# (计费方式, 单价)SEEDANCE:(per_call,Decimal(5)),# 按次H3:(per_second,Decimal(0.07)),# 按秒}defcost_of(model:str,seconds:int0)-Decimal:kind,unitPRICE[model]returnunitifkindper_callelseunit*Decimal(seconds)defspec_of(model:str)-dict:两家支持的时长/分辨率不一样参数不能一套通吃return{SEEDANCE:{max_sec:15,ratio:16:9,res:1080p},H3:{max_sec:15,ratio:16:9,res:768p},}[model]# ---------- 提交 / 轮询 ----------asyncdefsubmit(client,model,prompt,image_urlNone,seconds5):specspec_of(model)ifsecondsspec[max_sec]:# 提前拦住别浪费一次调用raiseValueError(f{model}单次最长{spec[max_sec]}s收到{seconds}s)payload{model:model,prompt:prompt,duration:seconds,aspect_ratio:spec[ratio],resolution:spec[res],}ifimage_url:payload[images][image_url]rawaitclient.post(f{BASE}/video/generations,jsonpayload,headersHDR)r.raise_for_status()returnr.json()[id]asyncdefwait_done(client,task_id,timeout900,interval5):t0time.time()whiletime.time()-t0timeout:d(awaitclient.get(f{BASE}/video/generations/{task_id},headersHDR)).json()std.get(status,)ifstin(succeeded,success,completed):returndifstin(failed,error):raiseRuntimeError(d.get(error)orst)awaitasyncio.sleep(interval)raiseTimeoutError(task_id)# ---------- 单任务带重试失败不拖垮整批 ----------asyncdefone_shot(client,sem,job,retries2):asyncwithsem:forattemptinrange(retries1):try:tidawaitsubmit(client,job[model],job[prompt],job.get(image),job.get(seconds,5))dawaitwait_done(client,tid)taghashlib.md5(job[prompt].encode()).hexdigest()[:8]return{**job,tag:tag,url:d.get(url),ok:True}exceptExceptionase:ifattemptretries:return{**job,error:str(e),ok:False}awaitasyncio.sleep(2**attempt)# 指数退避asyncdefrun(jobs,concurrency4):semasyncio.Semaphore(concurrency)# 别拉满撞限流比串行还慢asyncwithhttpx.AsyncClient(timeout60)asc:rsawaitasyncio.gather(*[one_shot(c,sem,j)forjinjobs])spendsum(cost_of(j[model],j.get(seconds,0))forjinjobs)ok[rforrinrsifr[ok]]print(f\n成功{len(ok)}/{len(jobs)}总花费{spend}元f单条有效成本{spend/max(len(ok),1):.2f}元)withopen(ledger.json,w,encodingutf-8)asf:json.dump(rs,f,ensure_asciiFalse,indent2)returnrsif__name____main__:P_A【镜头】85mm 中近景…【主体】…【环境光】…【质感】…P_B【镜头】手持轻微晃动…【主体】…【环境光】…【质感】…jobs[{model:SEEDANCE,prompt:P_A,seconds:5},# 5 元{model:H3,prompt:P_B,seconds:10},# 0.7 元]asyncio.run(run(jobs))这段代码解决了三个很实在的问题spec_of()提前拦截。两家时长/分辨率上限不同参数乱传等于白花一次钱。在发请求前就拦住比等它报错便宜。2 ** attempt退避 单任务降级。跑 30 条时最怕一条失败拖死整批。这里失败只丢自己那一条。cost_of()把价格写进代码。跑完直接打印「单条有效成本」而不是月底对着账单猜。【图 3 位置】终端跑批日志截图要能看清[OK]行和最后一行的成本汇总。图注跑完自动算有效成本比人脑估准。五、提示词模板我固定用这个四段式【镜头】机位 / 运镜 / 景别 【主体】谁 / 做什么 / 动作幅度 【环境光】光源方向 / 色温 / 对比度 【质感】胶片或数码 / 颗粒 / 运动模糊 / 帧率感三个我验证过的场景直接抄A. 电商产品Seedance 更稳【镜头】85mm 中近景缓慢横移浅景深 【主体】哑光黑咖啡杯在胡桃木桌上缓慢旋转 30°杯中液体无飞溅 【环境光】左侧窗光色温 5000K桌面右侧一盏暖色补光形成轮廓光 【质感】数码直出轻微运动模糊无胶片颗粒B. 带台词的口播H3 才做得对【镜头】手持轻微晃动中景转近景推进 【主体】人物对镜头说这个价格我们真的只做这一次。 表情克制语速偏慢 【环境光】主光为屏幕冷光背景暖黄灯带失焦成光斑 【质感】略欠曝高光不过曝24fps 电影感H3 支持中英日韩等 11 种语言的台词直出记得把台词用引号括起来它才知道哪句是要说的。C. 品牌物料文字渲染用 H3【镜头】正视固定机位轻微推镜 【主体】深色背景中央Logo 从细线描边逐渐填充满全程居中不偏移 【环境光】单侧柔光LOGO 表面有细微高光流动 【质感】高对比、干净、无噪点、无背景元素干扰【图 4 位置】生成结果页截图两个模型各一张把「模型名 / 时长 / 分辨率 / 实际扣费」这几项框出来。图注同一提示词、同一时长两家实际扣费差了一截。六、注意事项每条都付出了代价别写「高清/电影级/大片感」改写成「85mm / 5000K / 浅景深」。空词对模型等于噪声。动作写幅度不写情绪。「缓慢旋转 30°」远比「优雅地展示」稳定。一个镜头只给一个动作。一句话塞三个动作废片率立刻翻倍。图生视频首帧定生死。首帧构图错了提示词再准也救不回来。H3 记得接H3-Context-IR跳过它指令遵循明显掉档。H3 的 2K 是二次生成的别以为选了 2K 就一遍出片——费用也是两笔。批量前先跑 3 条验提示词。十几块看清方向比一百多买一堆废片便宜太多。文件名带上提示词哈希不然第三天你就分不清哪条是 v2 出的。先确认单次时长上限再充钱。「每次 X 元」这种表述最容易让人误判。七、我的选型决策树要声音 / 要台词 / 要一镜到底 └── MiniMax H3省掉配音这一整段工序 要极致细节 / 手部动作 / 产品特写 └── Seedance 2.0主体稳定性明显更好 需要文字/品牌标识准确出现在画面里 └── MiniMax H3 要大批量铺素材、试方向 └── 先按条买跑通再放大按次更容易控预算 要 15 秒以上 └── 两家都得拼段。拼段后一定要统一调色否则接缝很明显八、不太理想的部分不解决叙事。模型不会告诉你这条视频该不该拍它只会老实按你说的拍。不解决跨批次一致性。换一批生成人物/产品就开始漂。首帧图 后期校色仍然是必需品。不解决口型精细对齐。H3 能做到「大致对」但正脸特写念长句还是得回后期修。15 秒是硬上限。两家都一样。想要 60 秒你必须接受「拼段 调色 接缝处理」这套成本。九、写在最后这半年我最大的体会是AI 视频的门槛不在提示词在算账。提示词写错了废的是一条计价方式理解错了废的是整个预算。我见过太多人冲进来买最贵的档跑十条发现不对然后说「AI 视频不行」——其实不是模型不行是用法和计价对不上。如果这篇能帮你少烧几十块那就值了。 想听你们的真实经验你们那边按秒和按条哪个更容易报销、更容易向老板解释15 秒上限你们怎么破的拼段之后接缝怎么处理的有没有更省事的办法有没有人踩过「以为是 15 秒、实际只能出 5 秒」这种坑说说具体情况。评论区聊我看到都会回。觉得有用就点个赞让更多人别在计价上栽跟头 参考火山引擎 · 方舟模型价格Seedance 计费公式https://docs.volcengine.com/docs/82379/1544106火山引擎 · Seedance 2.0 启售页规格与常见问题https://www.volcengine.com/activity/seedance2MiniMax 开放平台 · 定价概览H3 分档单价https://platform.minimax.cn/docs/pricing/overviewMiniMax H3 技术说明架构 / Context-IR / 2K 再生成https://www.minimaxi.com/blog/minimax-h3Seedance 2.0 API 定价第三方测算约 1 元/秒https://xueqiu.com/9084316590/378055109
锦
锦皓数字建站
深耕本土企业品牌数字化升级,专注原创端正雅致商务官网,从视觉设计到稳定运维全程保驾护航。