← 返回首页ai798Lab 公开知识库

AIGC工作流

用Hypit复刻一切爆款视频

2026年9月18日整条链路其实只有三件事:装好 Skill → 配好 key → 让它开始复刻。中间所有环节(拆片、写脚本、生成素材、渲染成片)都由 AI 完成,你只需要做决定。

整条链路其实只有三件事:装好 Skill → 配好 key → 让它开始复刻。中间所有环节(拆片、写脚本、生成素材、渲染成片)都由 AI 完成,你只需要做决定。

一、实操

第一步:装 Skill

Hypit 不是一个网页应用,它是一份给 Coding Agent(Claude Code / Codex)用的 Skill。所以你不用敲任何终端命令,把这句话原样发给 AI:

https://github.com/hypit-ai/hypit 帮我装好这个skill,全局生效

AI 会自己把 Skill 装到全局目录并回报。之后任意目录开新会话,打 / 就能在斜杠菜单里看到 hypit。

只要这一句话。AI 自己去查全局 Skill 目录、clone 仓库、装好,全程不用你碰终端。
只要这一句话。AI 自己去查全局 Skill 目录、clone 仓库、装好,全程不用你碰终端。

第二步:搞定配置

配置只有两件事:拿 key,以及把 key 发给 AI。依赖怎么装、配置怎么写,全交给 AI。

先看这张表:这是我实际用的配置

#

干什么

用哪个

Key 来源

1

理解需求、编排流程

DeepSeek V4.1 Flash

不用,Agent 自带

2

分析参考视频

DeepSeek V4.1 Flash(带视觉)

不用,Agent 自带

3

人物及主要图片

Seedream 5.0 Lite · 文生图

火山方舟

4

界面与卡片

Seedream 5.0 Lite · 文生图

火山方舟

5

补充图片

Seedream 5.0 Lite · 文生图

火山方舟

6

图片精修、换材质换场景

Seedream 5.0 Lite · 图生图

火山方舟

7

人物讲话视频

Seedance 2 Mini

火山方舟

8

产品操作短片

Seedance 2 Mini

火山方舟

9

统一声音参考

MiMo V2.5 VoiceDesign

小米 MiMo

10

识别口播、对齐字幕

WhisperX

不用,本地

11

绘制字幕、排版、图形

本地代码组件

不用,本地

12

合成、导出

HyperFrames + FFmpeg

不用,本地

拿火山方舟的 Key

  • 注册登录火山引擎,进入 火山方舟 控制台
  • 先充值:火山方舟需要预充值 ¥200 才能开通模型服务
  • 在「开通管理」里分别开通 Seedream(图片)和 Seedance(视频)
  • 到「API Key 管理」创建一个 Key。只显示一次,当场复制
左上「创建 API Key」新建;建好后点列表里的复制图标当场存下来,Key 只完整显示那一次。
左上「创建 API Key」新建;建好后点列表里的复制图标当场存下来,Key 只完整显示那一次。

拿小米 MiMo 的 Key

  • 进入小米 MiMo 开放平台,完成账号注册与实名
  • 先充值:预充值 $3 就够了
  • 在控制台创建一个 API Key,当场复制

一个必须知道的细节:MiMo VoiceDesign 没有持久的音色 ID,每次调用都按描述重新造一个声音。所以想让多条视频用同一个嗓子,唯一的办法是把第一次生成的那段音频存下来当参考复用。我两条案例共用一个主播声音就是这么做的。

右上「新建 API Key」创建。这是回看时的样子:只显示首尾几位,中间自动打码。
右上「新建 API Key」创建。这是回看时的样子:只显示首尾几位,中间自动打码。

把配置和 key 一起发给 AI

两个 key 拿到手之后,连同上面那张配置表一起发给 AI,这段就是配置的全部内容。它读完之后会自己把依赖装掉、把供应商接上、把环境验通,然后告诉你「可以开工了」。

下面这段可以直接复制。表格用 Markdown 写,AI 读起来最准。

换模型只改这张表。想换更贵的视频模型出 1080p、或者把声音换成别家,改表格里对应那一行重新发一次就行,视频源码一个字都不用动。

整段发过去之后,它会先摸清环境现状(可执行文件、Profile、现有凭据),再自己把能装的装掉。两个 key 记得打码,这里是为了截图才涂掉的。
整段发过去之后,它会先摸清环境现状(可执行文件、Profile、现有凭据),再自己把能装的装掉。两个 key 记得打码,这里是为了截图才涂掉的。

第三步:开始复刻

配置好了,一句话开工:

/hypit 复刻这个视频:/path/to/reference.mp4

接下来 AI 会自己走完剩下的路:

  • 拆解参考片:下载、词级转写、逐帧读图,读懂它为什么抓人
  • 写 Source:用它自创的视频语言 SVML,把这条片子写成可以重跑的源码
  • 报价:先列出这次要发哪些付费请求、单价多少(这一步不花钱)
  • 构建:生成素材、渲染成片
  • 给你看片:你提意见,它改,再跑一遍
一个 /hypit 斜杠命令 + 参考片链接,Agent 就开始加载 Skill、读参考片、拆解画面,你只需要说清楚要改成什么。
一个 /hypit 斜杠命令 + 参考片链接,Agent 就开始加载 Skill、读参考片、拆解画面,你只需要说清楚要改成什么。

返工几乎不花钱。改字幕、改排版、改画幅、改抠图算法全是本地计算,0 元;已经生成的图和口播视频,由 Agent 在运行文件里点名复用,不会重复付费(原理见下文 Q4)。只有换台词、换语言、换人,才需要重新生成。

二、原理拆解

先对齐一个事实:它和现在两种主流做法的区别在哪。

让 AI 操作剪辑软件

让 AI 直接写动画代码

Hypit

动效

贴图还行,动效难:要么让 AI 在时间轴上标二十几个时间点,烧掉几十万 token;要么让视频模型直出,效果不稳,样式也改不了

想怎么做就怎么做

一样自由:底层渲染用的就是 HyperFrames

做下一条

从头再贴一遍

几千行代码再抄一遍

组件照用,只换参数

稿子一改

时间点全部重标

时间点全部重算

画面跟着词走,时间点一个不用动

Hypit 不是第三条路。它走的就是写代码这条路,只补了两层:一层管时间,让画面挂在词上;一层管复用,把动效做成组件。下面五个问题,按你用它时会碰到的顺序往下拆。

Q1 复刻,复刻的到底是什么?

是关系:每一次画面变化,在回应哪句话、哪个词。人、产品、台词都可以换,关系留下。

Skill 交给 Agent 的第一件事是读片:一边看逐帧画面,一边看带时间的逐词转写,找出每一次切镜、出图、揭晓、音效在回应什么,再在新台词上把同样的关系搭回去。Skill 里的原话是:参考片的秒数只用来定位证据,新片的时间由新的表演提供。

参考片:说到 cognac,右边配饰换成干邑色
参考片:说到 cognac,右边配饰换成干邑色
我的复刻:主体换成手机,还是卡在 cognac 上换
我的复刻:主体换成手机,还是卡在 cognac 上换

读片读出的关系

写进新稿子的方式

配饰卡在颜色词上出现:说到 silver,右边亮出银鞋

每组拆成 lead 和 color 两段,配饰从 color 段开始出现

左边主体先出,右边配饰后出

主体从 lead 段就在,一直留到这组结束

屏幕上一次只亮一个词

词与词之间写 ||,每个词单独成一屏字幕

每组最后一个形容词带星芒

写成 <✦expensive✦ | expensive>,左边给字幕看,右边给配音念

案例 2 复刻版的稿子,第一组(为排版折了行):

<HOST>@{phone-a-lead} A || black || phone || with || a @{/phone-a-lead} ||
      @{phone-a-color} clear || case || is || the || safe || choice @{/phone-a-color}
      @{phone-b-lead} but || with @{/phone-b-lead} ||
      @{phone-b-color} cognac || leather || it || looks || far || more || <✦expensive✦ | expensive> @{/phone-b-color}

画面、品类、台词全换了,这四条关系一条没丢,这就是复刻。反过来,拆片时漏读一条关系,成片就形似神不似,所以实操里说这一步最致命。

Q2 「动效绑在词上」,是怎么做到的?

稿子里只有词,没有一个秒数。时间是在配音生成之后,从真实的声音里量出来的。

环节

做什么

成本

01 写稿

只写要说的话。要跟着话走的画面,就在词上打锚点:一段话用 @{名字} 和 @{/名字} 包起来,一个瞬间用 @{名字!}。

不花钱

02 表演

让模型把稿子说出来:Seedance 生成口播视频,或者配音模型生成声音。

花钱

03 对齐

WhisperX 拿着稿子去听这段声音,给每个字标出它落在第几帧。

本地 0 元

04 排时间线

各段表演首尾接好,锚点跟着自己挂的词拿到全片帧号。时间线到这一步才出现。

本地 0 元

05 渲染

字幕、榜单、抠像按帧号出场,HyperFrames 用无头 Chrome 逐帧画出来,再编码成 MP4。

本地 0 元

点一下:同一套锚点,怎么跟着词走
<HOST>今天的@{reveal!}第一名,就是@{product}Hypit,一起看看。@{/product}
秒
配音里的词
今天的第一名就是Hypit一起看看
锚点
@{reveal!}@{product}
画面
榜单翻开产品图
榜单翻开落在 0.62 秒,正是「第一名」开口那一刻;产品图占 1.45 到 2.80 秒,正是「Hypit,一起看看」这一句。这些秒数源码里一个都没写,全是对齐之后算出来的。

组件那一侧,只认锚点的名字(节选):

<ranking:TopThreeItem label="Hypit" at={story.moment.reveal}/>
<media-track:Item image={product.image} … during={story.selection.product}/>

所以时间线不是写出来的,是量出来的:稿子怎么改、配音换成谁,画面都跟着词走。反过来也成立,台词一改,这段表演就得重新生成,因为时间来自它。

Q3 动效为什么能写一次、反复用?

因为组件只管「怎么动」。内容、时间、位置、样式四样东西,全从外面传进去。

直接写动画代码时,这四样是写死在同一个文件里的:「第 3.2 秒,左上角,这行字,这样飞进来」。下一条视频四样全变,只能重写。Hypit 把它们拆成组件的参数,拿官方的榜单组件举例:

<ranking:Column frame={board-frame} style={board-style} …>
  <ranking:ColumnItem rank="1" label="Hypit" icon={icon-hypit}
    during={story.selection.hypit-reveal}/>
</ranking:Column>

参数

归哪一类

管什么

rank="1" label="Hypit" icon={icon-hypit}

内容

排第几、叫什么、配哪张图

during={story.selection.hypit-reveal}

时间

挂在稿子的哪段话上

frame={board-frame}

位置

放进画面上的哪个框

style={board-style}

样式

颜色、字号、动效节奏,写在 .svs 样式表里,写法像 CSS

组件的代码只负责剩下那件事:条目怎么进场、怎么排到自己的位置。下一条视频换掉这四样参数,代码一行不动。

现成的和现写的,是同一套接口。官方已经带了逐词高亮字幕、榜单、卡片堆、评论贴纸、文字层、画中画与 B-roll、11 种全屏特效。没有的效果,Agent 按同一套接口现写一个项目组件(本质是一段 HTML/CSS 程序),这个项目以后接着用。

Q4 返工为什么几乎不花钱?

作品写在一份文件里,「这一次跑什么」写在另一份里。花过钱的产物都留着,下次点名就能接着用。

文件

是什么

里面写什么

.svml

作品本身

稿子、要生成哪些素材、用哪些组件、成片怎么拼

.svs

样式与配方

颜色、字号、动效参数、提示词配方,写法像 CSS

.svrun

这一次

这次要产出什么,哪些沿用以前的结果

每次 build 的产物都存进项目的 .hypit/results/。改字幕时,Agent 在 .svrun 里写明「口播视频用上次那两段」,plan 就把对应的生成请求剪掉,剩下的对齐和渲染都在本地跑。这是案例 2 真实的运行文件:

<!-- 两段口播已由 Seedance 生成并付费:显式复用,重跑只做本地工作 -->
<build-record id="kept-part-one"
  build="bld_20260917T154106043Z_BD20FF7B3B" output="part-one-take.video"/>
<satisfy output="part-one-take.video" candidate="kept-part-one"/>

没有「自动复用」这回事。官方文档原话是「Hypit 没有隐式缓存」:prompt 没变也不会自己复用,必须在 .svrun 里点名。好处是 plan 里看得见哪些请求被省掉,不会悄悄重复扣钱,也不会把改过的素材错当成旧的。

想改什么

改哪一处

要不要重新生成

字幕样式、颜色、字体

.svs 样式表

不用,本地重新渲染

画面上的文字、榜单条目

组件参数

不用

某个动效挂在哪个词上

挪锚点

不用,本地重新对齐

只改字幕显示的字,配音不变

Dual Text 的左边

不用

台词、语言

稿子

要:口播重新生成,时间来自它

人物、产品、场景

生成请求的 prompt 或参考图

要:只重生成改动的那几个

换模型、换供应商

Runtime Profile 的绑定

视频源码不动,按新服务计费

花钱之前还有一道闸:只有 build 会真正发出请求。plan 先列出这次要发哪些付费请求,pricing 读出对应单价。中途失败也不白花,这次 Build 结束,已经完成的产物留在结果里,下一次点名接着用。

Q5 换模型,为什么不用改视频?

视频源码只写「要什么」,「找谁要」写在另一份配置里。

源码里写的是 Model,比如「要一段 Seedance 2 Mini 的口播视频」。执行时,hypit.runtime.json 把每一种能力绑到一个服务入口:哪家服务、哪个 Key、开几路并发。真正去调 API 的是 Provider 包。这是我这套配置的真实绑定:

"bindings": {
  "@hypit/seedream@1#seedream-5-lite":              "framelab.ark",
  "@hypit/seedance@1#seedance-2-mini":              "framelab.ark",
  "@hypit/mimo-speech@1#mimo-v2.5-tts-voicedesign": "framelab.mimo",
  "@hypit/whisperx@1#whisperx-alignment":           "whisperx.local",
  "@hypit/render-hyperframes@1#render-visual":      "hyperframes.local"
}

左边是要什么,右边是找谁要:ark 是火山方舟,mimo 是小米 MiMo,local 是本机。你在第二步 发给 AI 的那张表,最后就变成了这几行。换供应商改的是右边,视频源码一个字不动。

官方没接的服务,也能现接。火山方舟不在官方内置的供应商里,这里的 framelab 是这个项目自己写的一个 Provider 包(在 packages/provider-framelab),用来接火山方舟和小米 MiMo。另外,生成模型本身也是可选的:一条片子可以完全由组件画出来,不调任何模型,模型费用就是 0。

三、它做不到什么

  • 台词一改,口播就得重新生成。时间来自表演,这笔钱省不掉。
  • 像不像,看 Agent 读片细不细。我第一版每 2 秒取一帧,漏了逐词字幕和「左先右后」的入场,返工了一整轮。
  • 好不好看,看生成模型当天的发挥。Hypit 管组织,不训练模型,也不替你抽卡。
  • 没有口播的纯动画,没有词可挂。节奏得自己用秒或帧来写。
  • 协议是改过的 Apache 2.0。自家业务、给客户做片都能商用;做多租户 SaaS 或拿它转售,要另买商业授权;做出来的成片归你。
  • 本机不轻。要 Node 22.15 以上;本地 WhisperX 和逐帧渲染吃 CPU 和内存,嫌重可以换官方托管的 HypiHub。