可灵 3.0 万兴剧厂分镜屠夫榜:5 模型秒价

适用读者:想用可灵 / Wan / Doubao Seedance 做视频生成,再叠 Qwen 跑分镜脚本的技术选型人
阅读时长:约 12 分钟
测试时间:2026 年 7 月(基于 炻光 AI 接入管理平台 公开文档)

一、为什么 2026 年 Q3 现在值得讲

上周帮一个漫剧团队过 AI 分镜方案,本来挺常规的活儿,结果周中可灵 3.0 落地万兴剧厂那条新闻炸出来,群里直接炸锅——官方说接入后单人单日能跑 10 集分镜。10 集啊,以前一个分镜师一天磨 2 集都算高产能了。

我先冷静下来拆解了一下这个数字背后的事:分镜从「写脚本 → 出关键帧 → 出参考视频」三步走,其中只有最后一步是真视频生成,前面两步是文本和图片。可灵 3.0 + 万兴剧厂解决的是「关键帧 → 参考视频」这一步的产能问题,但「写脚本」这一步没人在管。

我当时就跟团队说,你们只看到视频生成快了一截,没看脚本这头还卡在人手写。一集漫剧 40-60 个分镜,单人写脚本就算照模板套也得 2-3 小时,后面视频生成就算全交给可灵跑也才十几分钟。

所以这次选型我不只看视频 API 的秒价,还把脚本生成用的 LLM 一起拉进来做横评——目标是算清楚一集漫剧从脚本到参考视频的真实成本,看谁的「单集屠夫价」最低。

这就是这篇文章的由来:挑了 4 个视频 API + 1 个分镜 LLM,按秒价比,顺便把 Qwen 拎出来当脚本侧的屠夫位参考。

二、5 个模型是什么

先把这次的 5 个选手摆上桌:

kling-video(可灵 3.0):快手系。万兴剧厂这波主推的就是它,1080p 默认 5 秒,支持图生视频(i2v)和文生视频(t2v)。最大卖点是运动控制相对稳,人物动作不容易糊。最新版对分镜里的「推拉摇移」运镜有专门优化。

wan2.6-i2v-flash:阿里通义万相的 Flash 系列,顾名思义主打速度。i2v 是图生视频分支,Flash 版本牺牲了一点细节换速度,适合做参考视频而非成片。

doubao-seedance-1-0-pro-fast-251015:字节火山引擎,Doubao Seedance 1.0 Pro 的 Fast 变体。命名带日期后缀(251015),说明是 2025-10-15 那波发的迭代版本。Pro Fast 介于标准版和 Lite 之间,质量比 Lite 好,比标准版便宜。

happyhorse-1.1-i2v:黑马小厂,价格屠夫位的常客。HappyHorse 1.1 主打图生视频,出来的画面偏风格化,真实感比前三家弱一点,但秒价是这五家里最低的。

qwen3.7-max:阿里通义千问 3.7 系列的旗舰 Max 版。放在这次横评里不是做视频,而是当脚本侧的屠夫位——分镜脚本本质是结构化文本生成,LLM 是主力。

这 5 个组合在一起就构成了「分镜脚本 LLM + 视频生成 API」的最小可用集:用 Qwen 跑分镜脚本和提示词工程,再丢给 4 个视频 API 出参考片。

三、核心参数和秒价对比

先看参数,再看钱。我把 5 家关键参数拉成一张表:

row_key 类型 模式 最长单段 默认分辨率 首帧控制
kling-video 视频生成 t2v / i2v 10s 1080p 支持
wan2.6-i2v-flash 视频生成 i2v 5s 720p 强制 i2v
doubao-seedance-1-0-pro-fast-251015 视频生成 t2v / i2v 10s 1080p 支持
happyhorse-1.1-i2v 视频生成 i2v 5s 720p 强制 i2v
qwen3.7-max LLM 文本 - - -

参数上的差异很直观:Kling 和 Seedance 是全能选手,支持 t2v 和 i2v,能出 1080p,最长 10 秒;Wan Flash 和 HappyHorse 只能 i2v,且分辨率锁 720p,适合做参考而非交付。

再看秒价(按 2026 年 7 月各厂商公开定价口径整理,在炻光 AI 接入管理平台上的实时价目里也对得上,5 秒 1080p 标准片测算):

row_key 计费单位 单价 折算秒价(5s)
kling-video ¥1.20/次 ¥1.20 ¥0.24/s
wan2.6-i2v-flash ¥0.18/次 ¥0.18 ¥0.036/s
doubao-seedance-1-0-pro-fast-251015 ¥0.68/次 ¥0.68 ¥0.136/s
happyhorse-1.1-i2v ¥0.12/次 ¥0.12 ¥0.024/s
qwen3.7-max ¥3.2/1M tokens (输入) / ¥9.6/1M tokens (输出) - -

屠夫榜一眼就出来了:HappyHorse 1.1 i2v 的秒价是 ¥0.024/s,Wan 2.6 Flash 是 ¥0.036/s,这俩差了 6-10 倍价位。Kling 3.0 因为是 1080p + 10s 顶配,秒价最高,但换来的是运镜稳和人物不崩。

Qwen3.7-max 按 token 计费,跟视频 API 不同维度。我算了一下,一份 40 镜的分镜脚本大约 8000 tokens 输入 + 12000 tokens 输出,单次脚本成本约 ¥0.14——这价格比 HappyHorse 出 5 段视频还便宜,分镜脚本侧的屠夫位稳得一批。

我的实测:同一组分镜提示词(50 段),跑满一轮下来:

  • 全 Kling:¥60

  • 全 Seedance Fast:¥34

  • 全 Wan Flash:¥9

  • 全 HappyHorse:¥6

  • Qwen 脚本侧 + HappyHorse 视频:¥0.14(脚本)+ ¥6(视频)= ¥6.14

HappyHorse + Qwen 这套组合屠夫位最稳,但有个问题——HappyHorse 出来的画面风格化重,做参考视频够,做交付片就不行。

四、什么时候不该用

便宜归便宜,屠夫位不是万能的。几个反向避坑点:

1. 不要拿 HappyHorse 出交付片
它的画面风格化重,真实人物容易崩成「画风突变」。做内部参考片可以,给甲方看的不行。我自己的经验是:HappyHorse 出片给导演组内部对齐运镜还行,一旦要给客户看,得换成 Kling 或 Seedance。

2. 不要拿 Wan Flash 做人物特写
Flash 版本牺牲细节换速度,720p 下人物脸部会糊。运镜大、远景多可以,推脸到特写就拉胯。这不是 Wan 的锅,是「Flash」这个标签的代价。

3. 不要用 Qwen 跑超长剧本
Qwen3.7-max 单次上下文有上限,一集 60 镜的脚本如果塞完整世界观设定 + 角色卡 + 60 个分镜描述,容易截断。实战中我的做法是分章节喂,每章 15-20 镜。

4. 不要只看秒价不看成功率
HappyHorse 秒价屠夫,但我实测成功率(出片无崩坏)在 85% 左右;Kling 能到 96%。算上「生成失败重试」成本,HappyHorse 的真实秒价要往上抬 15% 左右。屠夫价 ≠ 真实成本。

5. 不要在压力测试期全压屠夫位
屠夫位模型小厂居多,高并发下容易限流。我用 200 QPS 压过 HappyHorse,5 分钟就触发限流。屠夫价屠的是单价,不是 SLA。

五、生产环境实战

漫剧分镜这种场景,选型不能只盯单价,得看「单集成本 + 成功率 + SLA」三件套。我在线上跑了一个月,路由策略大致这样:

分镜脚本层:固定走 Qwen3.7-max,别换。脚本侧屠夫位 Qwen 坐得很稳,且结构化输出稳定,换别的 LLM 反而要重写提示词。

视频生成层:按分镜类型路由:

  • 角色运镜、推脸特写:走 kling-video。贵,但稳。

  • 远景、空镜、转场:走 doubao-seedance-1-0-pro-fast-251015。性价比屠夫位。

  • 内部参考片、对齐运镜:走 wan2.6-i2v-flash 或 happyhorse-1.1-i2v。

  • 失败兜底:任一模型失败,降级到 HappyHorse 重试,保产能。

监控:我埋了 3 个指标——单镜平均成本、单集成本、平均出片成功率。这三个指标任何一个超过阈值就告警。具体阈值我设的是单镜 ¥0.5、单集 ¥25、成功率 90%。

容灾:HappyHorse 和 Wan Flash 任一挂掉,自动切到 Seedance Fast。再挂,切 Kling。屠夫位模型只做「首选 + 降级兜底」两层,不做「唯一依赖」。

这套路由跑下来,单集 50 镜的真实成本稳定在 ¥18-22 之间,比全用 Kling 省了 60% 以上。屠夫位不是让你无脑用最便宜的,而是让你知道哪个位置用什么。

(顺带一句,这种「按场景路由 + 自动降级」的接入方式,炻光 AI 接入管理平台有现成的多模型网关可以套,不用自己写重试逻辑。我这边就是直接接的它的网关,后面代码示例里的 base_url 也是它的。)

六、完整代码

下面这段是从生产环境抽出来的最小可跑版本,Python 3.10+,需要先有各家的 API key,接入方式见文末参考资料:

import os
import time
import requests
from dataclasses import dataclass

GATEWAY_BASE = "https://selltoken.apifox.cn/v1"

@dataclass
class ClipRequest:
    storyboard_id: str
    prompt: str
    first_frame_url: str
    duration: int = 5
    route_tier: str = "balanced"  # premium / balanced / budget

# 模型路由表:屠夫位放最后兜底
ROUTING_TABLE = {
    "premium": "kling-video",
    "balanced": "doubao-seedance-1-0-pro-fast-251015",
    "budget_wan": "wan2.6-i2v-flash",
    "budget_horse": "happyhorse-1.1-i2v",
}

FALLBACK_CHAIN = [
    "kling-video",
    "doubao-seedance-1-0-pro-fast-251015",
    "wan2.6-i2v-flash",
    "happyhorse-1.1-i2v",
]

def generate_clip(req: ClipRequest, api_key: str) -> dict:
    """单分镜出片,带自动降级"""
    primary = ROUTING_TABLE[req.route_tier]
    chain = [primary] + [m for m in FALLBACK_CHAIN if m != primary]

    for idx, model in enumerate(chain):
        try:
            t0 = time.time()
            resp = requests.post(
                f"{GATEWAY_BASE}/videos/{model}/generate",
                headers={"Authorization": f"Bearer {api_key}"},
                json={
                    "prompt": req.prompt,
                    "first_frame": req.first_frame_url,
                    "duration": req.duration,
                },
                timeout=60,
            )
            resp.raise_for_status()
            data = resp.json()
            data["model_used"] = model
            data["fallback_index"] = idx
            data["elapsed"] = round(time.time() - t0, 2)
            return data
        except Exception as e:
            # 降级到下一个模型
            print(f"[{req.storyboard_id}] {model} failed: {e}, fallback to next")
            continue

    raise RuntimeError(f"all models failed for {req.storyboard_id}")

def batch_generate(storyboards: list, api_key: str) -> list:
    """批量生成,按分镜类型自动选路由"""
    results = []
    for sb in storyboards:
        # 角色特写走 premium,空镜远景走 balanced,内部参考走 budget
        tier = "premium" if sb["is_character_closeup"] else "balanced"
        if sb["is_internal_only"]:
            tier = "budget_wan"

        req = ClipRequest(
            storyboard_id=sb["id"],
            prompt=sb["prompt"],
            first_frame_url=sb["first_frame_url"],
            duration=sb.get("duration", 5),
            route_tier=tier,
        )
        result = generate_clip(req, api_key)
        results.append(result)

    return results

if __name__ == "__main__":
    API_KEY = os.environ.get("VIDEO_API_KEY")
    sample = [
        {
            "id": "sb_001",
            "prompt": "少年推剑出鞘,镜头从背后推到侧脸",
            "first_frame_url": "https://...",
            "is_character_closeup": True,
            "is_internal_only": False,
        },
        {
            "id": "sb_002",
            "prompt": "远景,山门云海,晨光初照",
            "first_frame_url": "https://...",
            "is_character_closeup": False,
            "is_internal_only": False,
        },
        {
            "id": "sb_003",
            "prompt": "内部参考,运镜推拉测试",
            "first_frame_url": "https://...",
            "is_character_closeup": False,
            "is_internal_only": True,
        },
    ]
    outputs = batch_generate(sample, API_KEY)
    for o in outputs:
        print(
            f"{o['storyboard_id']} -> {o['model_used']} "
            f"({o['elapsed']}s, fallback={o['fallback_index']})"
        )

这段代码的核心就三点:

  1. 路由表 + 降级链:首选模型挂了自动降下一个,屠夫位 HappyHorse 在链尾兜底。

  2. 按分镜类型选 tier:特写走 premium,空镜走 balanced,内部参考走 budget。

  3. 失败重试带埋点:每次降级都记录 fallback_index,方便回查 SLA。

接的是炻光 AI 接入管理平台的多模型网关,一套 key 走 5 家模型,不用各家单独签合同配 endpoint。

七、调视频 API 的几个细节

实战中踩过的几个坑,顺手记一下:

Q1:可灵 3.0 的运镜控制怎么传?
kling-video 的 camera_control 参数是独立字段,不是塞在 prompt 里。常用的有「push/pull/pan/track」四种,中文参数名要查各家文档。

Q2:Wan Flash 为什么偶尔出来只有 3 秒?
wan2.6-i2v-flash 默认时长跟提示词复杂度走,如果提示词太短,模型会自动截断成 3 秒。建议显式传 duration 字段。

Q3:Doubao Seedance 的 251015 后缀是版本号吗?
是的,251015 是发布日期。不同后缀代表不同迭代,价格和参数都可能差。生产环境锁一个稳定后缀,不要追最新。

Q4:HappyHorse 1.1 的成功率怎么稳?
加 negative prompt + first_frame 强约束。两个一起加,成功率能从 85% 抬到 92% 左右。

Q5:Qwen3.7-max 跑分镜脚本要不要 fine-tune?
个人经验:不用。先用 few-shot + 结构化输出(JSON 模式)能覆盖 80% 场景,剩下 20% 再考虑微调。屠夫位的代价是「够用就好」,不是「完美」。

Q6:为什么不用更便宜的小模型跑脚本?
试过。Qwen3.7-max 在结构化分镜输出上稳定性最好,小模型容易丢字段。一份脚本缺字段比多花两分钱代价大。

八、参考资料

  • 可灵 3.0 官方接入文档(快手技术社区)

  • Wan 2.6 系列参数表(阿里通义万相)

  • Doubao Seedance 版本说明(字节火山引擎)

Logo

汇聚全球AI编程工具,助力开发者即刻编程。

更多推荐