竞品拆解 · 07-07 发布
Topview 新功能主张一件事:光靠写 prompt,镜头你控不住。它让你在生成视频前,先在 3D 里把角色、道具、机位摆好,再交给模型。这页拆它怎么做的,以及我们能不能照着落地。
"少猜一点,少重跑几遍,镜头更可预测 —— 去导演,别只是描述。"
你想要"低角度环绕、主角站在画面左三分之一"。可这话写进 prompt,模型每次都在赌一个。位置、景别、机位全靠它猜。多跑几遍才碰上一个对的,钱和时间都烧在重跑上。
Topview 的解法:在生成前加一层可视化摆位。你把主体和相机摆好,这套构图变成给模型的"硬约束",出来的画面就贴着你摆的样子走。
Topview 已经有个 Photo Angle Editor,是这套东西的静图版:浏览器里拖一个虚拟相机滑块,靠 3D 相机控制加 AI 深度补全,生成真实的新视角 —— 不是把图拉扁那种。3D Shot Composer 相当于把这套本事,从"改一张图的角度",接到了"驱动一段视频怎么生成"。
学术里对应这类做法:把相机位姿当条件喂给视频扩散模型 — MotionCanvas · 3D camera control in video DiT · 深度引导相机控制。
好消息:核心那条链路,我们后端其实已经能跑。看 build_video_payload(),该有的参数位都在。
# backend/services/agent_v2/generation_payloads.py input_payload["prompt"] = prompt input_payload["aspect_ratio"] = aspect_ratio input_payload["image_url"] = list(image_urls) # 收列表 → 首帧/尾帧/多参考图 input_payload["camera_fixed"] = bool(camera_fixed) # 已有的锁机位开关 _apply_common_input_overrides(input_payload, extra_kwargs) # 通用透传口子
| 能力 | Topview 怎么做 | 我们现状 | 够不够 |
|---|---|---|---|
| 构图静帧 | 3D 摆位渲成一张构图图 | image_url 已收列表当首帧;generate_image + analyze_media 已能产出并校验单主体图(story-designer 在用) |
够 · 零改动 |
| 锁机位 | 钉死相机不漂 | camera_fixed 参数位已在 payload 里 |
够 · 现成 |
| 运镜轨迹 | 3D 相机路径 → 时序条件 | 看 Seedance / Kling 有没有开这个入参;有的话走 extra_inputs 透传,不动 builder |
看 provider |
| 3D 摆位界面 | 浏览器里实时 3D 编辑器 | Canvas 是 2D(Excalidraw/tldraw),没有 3D 场景引擎 | 要新前端 |
不用复刻那个 3D 编辑器,也能拿到八成价值。Topview 真正值钱的不是那个界面,是"用一张构图静帧钉死镜头,再驱动视频生成"这条路。这条路我们已经能走 —— 缺的只是把"构图长啥样"这一步结构化生成出来,而这一步纯写一个 SKILL.md 就够,后端一行不用改。
Shot Composer 的每一块,我们几乎都有对应件。差的只是把它们串成一条明摆着的流程。
| Topview 概念 | 我们的对应件 |
|---|---|
| 分镜 / 场景规划 | story-designer + storyboard-prompts(角色确认 → 分镜大纲) |
| 主体一致 | story-designer 的角色图流程(单主体校验:生成 → 分析 → 回修) |
| 构图静帧 | generate_image(text_to_image / image_edit) |
| 静帧转视频 | Seedance / Kling passthrough,image_url 当首帧 |
| 运镜措辞 | advance_video_prompt(video_prompt_guidance) |
| 迭代 / 比较 | agent-v2 preferences/scope + Canvas 多变体并排 |
新写一个 shot-framer 的 SKILL.md,把现有工具编排一下,后端一行不碰:
1. ask_user_question 问清镜头意图:景别 / 机位角度 / 主体站位 2. generate_image(text_to_image) 出一张构图静帧(主体在指定位置) 3. analyze_media 校构图(单主体?机位对不对) → 不对就 image_edit 回修 4. 静帧当 首帧 传进视频生成,prompt 只写动作 + 运镜方向 5. camera_fixed=true 锁机位,减少漂移
立刻拿到"先定构图再生成、少重跑"的核心体验,跟 story-designer 天然接得上。
先查 Seedance 2.5 / Kling 3.0 有没有开 camera trajectory 或 motion-control 入参。有的话,走 extra_inputs 透传(参考仓库里现成的 seedance generic passthrough,commit fd5f558),让 skill 能下发结构化运镜:推 / 拉 / 摇 / 环绕 + 速度。
改动就是 payload 白名单加个 camera schema,前端不用动。
真做 3D 编辑器要上前端 3D 引擎(three.js / R3F)加深度重建。投入大,护城河也在这。建议先用阶段 1、2 验证有没有人真需要,再决定。很可能一个"2.5D 摆位板"(在 Canvas 上拖主体框 + 画机位箭头)就够用,成本比全 3D 低一大截。
@TopviewAIhq · 2026-07-07 12:50 UTC · LA · 认证号
主张文本 prompt 精度不够,3D Shot Composer 让你在生成前把角色 / 道具摆好、把相机取景定好,承诺更少重试、结果更可预测。收尾一句 "Start directing" —— 去导演镜头,别只是描述。
标签 #TopviewAI #AIVideo #3DShotComposer · 媒体是一条 42s 1080p 演示视频 · ~600K 播放 / 300 赞 / 74 转 / 86 评
注:推文本体要登录(HTTP 402),文案经 fxtwitter 镜像还原;演示视频逐帧内容没取到。