10.1 成本核算


10.1 成本核算

本节摘要:不算账的流水线不知道自己的瓶颈在哪,也无法报价与复盘。本节建立五层成本模型:脚本 token(剧本与分镜的结构化生成)、生成秒数(视频模型按出片秒数计费,通常占大头)、TTS 字符(按配音字符计费)、算力时长(本地合成与转写的电费与折旧口径)、人工工时(审读与审核,常被漏算却最贵)。随后给出各层计价口径的量级示意(一律标注"以服务商现行价格页为准"),落到一张六十秒短剧的逐项核算示例表——合计约十美元量级,并指出重跑率与生成秒单价是最大的两个杠杆。记账实现为逐事件 JSONL 脚本,末尾给降本四招:缓存、预演、批量、错峰。

学习目标

  • 用五层模型拆解任意一条片的成本结构。
  • 区分变动成本与固定成本,并知道哪些层该精算、哪些该估算。
  • 读懂六十秒短剧的核算示例表并指出两个最大杠杆。
  • 实现逐事件记账与按阶段汇总输出。
  • 说清降本四招各自的适用条件与副作用。

一、为什么必须算账

三个场景都离不开成本数字:对外报价——客户问一条六十秒竖屏短剧多少钱,答不出成本就定不出价;对内复盘——本月生成费用翻倍,是废片多了还是涨价了,没有分层账就吵不清;优化排序——降本手段有限的时间,先打最大的成本层。成本核算的关键纪律是:金额一律写"约 X 美元"并注明口径日期,因为模型服务价格变动频繁,任何不带口径的精确数字都是伪精确。

二、五层成本模型

成本层 计件量 计价形态 成本量级印象
脚本 token 输入加输出 token 数 按百万 token 计价 小
生成秒数 成片用掉的生成视频秒数 按秒计费,分辨率分档 大(通常过半)
TTS 字符 送入配音的字符数 按百万字符计价 小
算力时长 本地合成、转写、烧录的时长 电费加折旧口径 中
人工工时 审读、审核、返工沟通 时薪口径 波动最大

三层为变动成本(随条数线性增长),算力与订阅类素材库为半固定,人工工时建议单独记账不折进单条成本——它是产能带宽的实测值(第 9.3 节),混进变动成本会掩盖真实瓶颈。

三、计价口径与核算示例表

以下示例表的量级为 2026 年 10 月的示意口径,实际以各服务商现行价格页为准:剧本层按主流大模型每百万 token 约二至八美元的档位取中值;生成层按云端视频模型每秒约零点一至零点三美元取中值;TTS 层按每百万字符约十五美元档。

行项 计件量 单价口径(示意) 小计(示意)
剧本与分镜结构化 约 60 千 token 约每百万 token 4 美元 约 0.24 美元
首轮镜头生成 8 镜头各 5 秒,共 40 秒 约每秒 0.2 美元 约 8 美元
重跑(废片率三成) 约 12 秒 同上 约 2.4 美元
TTS 配音 约 450 字符 约每百万字符 15 美元 约 0.01 美元
混音、转写、烧录 本地约 20 分钟 电费口径 约 0.1 美元
人工审核 约 30 分钟 不入单条变动成本 单列台账
合计(变动部分) — — 约 10.75 美元

读表要点:生成层占变动成本约八成,其中重跑贡献约两成;两个最大杠杆一目了然——生成秒单价(换档位、降分辨率)与废片率(第 10.2 节整节都在讲它)。TTS 与脚本层便宜到不值得优化,把精力花在它们上面是典型的优化错位。

四、逐事件记账

核算表是事后估算,真正可信的是逐事件流水:每次真实调用发生时落一行 JSONL,日终与条终各汇总一次。

# cost_log.py —— 成本事件记账与汇总(单价为示意口径,以价格页为准) import json, os LOG = "ledger/cost_events.jsonl" UNIT_COST = {"script_token_m": 4.0, "video_sec": 0.20, "tts_char_m": 15.0} def log(stage, unit, qty, note=""): os.makedirs(os.path.dirname(LOG), exist_ok=True) unit_cost = UNIT_COST[unit] amount = qty / 1_000_000 * unit_cost if unit.endswith("_m") else qty * unit_cost row = {"stage": stage, "unit": unit, "qty": qty, "unit_cost": unit_cost, "usd": round(amount, 4), "note": note} with open(LOG, "a", encoding="utf-8") as f: f.write(json.dumps(row, ensure_ascii=False) + "\n") return row def summary(): rows = [json.loads(line) for line in open(LOG, encoding="utf-8") if line.strip()] by_stage = {} for row in rows: by_stage[row["stage"]] = round(by_stage.get(row["stage"], 0) + row["usd"], 4) total = round(sum(by_stage.values()), 4) for stage, usd in sorted(by_stage.items(), key=lambda kv: -kv[1]): print(f"{stage:8s} 约 {usd:.2f} 美元") print(f"{'合计':8s} 约 {total:.2f} 美元(示意单价口径)") if __name__ == "__main__": log("script", "script_token_m", 60_000, "一句话到分镜全流程") log("clips", "video_sec", 52, "8 镜头首轮加 30% 重跑") log("voice", "tts_char_m", 450, "双角色加旁白") summary() ​

记账入口埋在第 8.1 节技能执行器里:每个技能执行完顺手 log 一行,成本数据与执行状态同源,不需要单独的记账遍历。日终把 cost_events 按条聚合,就是第 9.3 节账目表的 gen_cost_usd 列。

五、降本四招

第一招,缓存:相同提示词与参数的生成结果落盘复用,台词没改的句子不重配——第 8.3 节的幂等判据天然就是缓存命中。第二招,预演加成片:流程调试与分镜验证用低档模型低分辨率跑,定稿才用高档出片,等于把探索成本降一个数量级。第三招,批量与订阅:多数服务商对预付与批量有折扣档,日产能稳定后值得核算切换点。第四招,错峰与分档:非实时任务挪到低峰时段(部分服务分时定价);横屏转竖屏需求用一次高清生成加裁切,而不是两次生成。四招共同的副作用是可能增加复杂度或降低迭代速度——降本决策的准绳永远是核算表:省的钱要看得见。

以第二招算一笔账就明白杠杆在哪(单价与秒数均为示意值,以价格页为准):分镜探索期需要反复试错,若全程用出片档位跑三轮验证,花费约 24 美元;预演模式改用低档低分辨率跑两轮探索,定稿才上一轮高档出片,合计约 12 美元——省下的不是画质(成片档位没变),而是试错的价格:

迭代方式 生成轮次与秒数(示意) 花费(示意)
全程出片档位 三轮各 40 秒,约每秒 0.2 美元 约 24 美元
预演加定稿 低档两轮共 80 秒(约每秒 0.05 美元),高档一轮 40 秒 约 12 美元

注意对比的公平性:预演轮次里通过的镜头不能直接当成品用(分辨率与质感不达标),定稿轮必须重新生成——预演的价值是淘汰坏分镜,不是攒素材。

六、月度复盘走查:账怎么回答"为什么贵了"

单条核算回答"这条多少钱",月度复盘回答"这个月为什么贵了"。场景走查(数字均为示意值):十月末拉总账,生成层从上月的约 83 美元涨到约 131 美元,涨幅约五成多;条数没变(八条),涨价从何而来?四步拆解,每步都有明确的查账位置:

步骤 问的问题 查哪里 本例结论(示意)
一拆层 涨在哪个成本层 cost_events 按阶段汇总 生成层独涨,其余层持平
二拆价量 单价涨了还是用量涨了 单价字段均值对比生成秒数合计 单价没动,秒数涨约五成
三拆条数 条数多了还是单条变贵 按条聚合看单条秒数 条数持平,单条从约 52 秒涨到约 82 秒
四拆原因 多出的秒数花在哪 按镜头号关联第 10.2 节废片台账 新题材线首周重跑集中,废片率偏高

拆到第四步,结论落地:不是涨价、不是加量,是新题材的提示词模板还没沉淀,语义跑偏抬高了重跑。对策随之明确——给该题材建专属风格前缀与负面词基线(第 9.2 节),两周后再看周趋势验证。复盘的价值不在表格本身,而在"每一步都有台账可查":没有逐事件流水,第二步就断线,只能停在"感觉贵了"。

七、常见问题与排查

问题一:流水账和账单对不平。 先查口径三连:失败调用是否也计费、缓存命中是否计零、单价快照是否过期。服务商账单的原始导出月末留档对一次总账,偏差在约五个百分点内(示意值)先怀疑口径,超过再逐条核。

问题二:人工工时怎么折进成本。 不折。人工单独记台账,它是产能带宽的实测(第 9.3 节);折进单条变动成本会把最贵的资源藏起来,恰恰掩盖瓶颈。

问题三:订阅与买断素材怎么入账。 订阅按月分摊,记半固定成本;一次性买断的字体与素材按项目摊销。它们都不进单条变动成本,但都要出现在月度总账里——固定成本不会被规模摊没,只会被不记账掩盖。

问题四:价格页更新了,历史流水怎么办。 记账时把单价快照写进事件(unit_cost 字段就是干这个的),历史事件不回改;单价变更后新事件用新口径并在备注里注日期,两套口径在月报里分段呈现。

问题五:要不要降分辨率档位省钱。 回到核算表算净效果:降档省下的单价,可能被废片率上升吃回去——低档位语义跑偏更多,重跑更勤(第 10.2 节)。降档适合预演轮,出片轮慎用。

本节要点回顾

  • 五层模型:脚本 token、生成秒数、TTS 字符、算力时长、人工工时;人工单列。
  • 金额一律"约 X 美元"加口径日期,伪精确比不精确更有害。
  • 六十秒短剧变动成本约十美元量级,生成层占八成,重跑贡献两成。
  • 逐事件流水可信度高于事后估算,记账入口埋在技能执行器里。
  • 降本四招:缓存、预演加成片、批量订阅、错峰分档,以核算表验证效果。

成本账里最刺眼的那一行是重跑。重跑为什么发生、怎么少发生、发生几次该停手——下一节把废片率拆开揉碎。

作者与出处
原作者:灏天文库
整理人: 灏天文库整理
本站整理收录,版权归原作者/开源协议所有;欢迎通过原文链接访问源仓库。
发布者: 作者: 灏天文库 转发
评论区 (0)
U