关于 viral-hook
viral-hook 是用于为视频设计场景化开场动作和标题的技能,并通过渲染工具生成开场片段及拼接后的成片。
主要功能
- 01按场景选择开场动作
- 02涵盖四类开场设计
- 03提供可选标题与字体指导
- 04生成开场片段和拼接视频
适用场景
- 01为视频添加简短戏剧化开场
- 02利用视频中的物件或场景结构设计钩子
MCP 相关
该技能调用 Pika MCP 工具,包括 `generate_viral_hook`,用于分析媒体并渲染开场片段和成片。
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ pika-labs/ pika-plugins --skill viral-hook安装后在 Claude Code 中输入/viral-hook确认已加载。
详细介绍
病毒式钩子
在用户的视频前添加一个极端、无对白、约 4 秒的钩子——一个闯入用户自身场景、令人瞩目的事件,并可选择在下三分之一处叠加精心设计的标题——然后硬切到未经处理的片段。
generate_viral_hook 一次调用即可完成整个渲染,并同时返回钩子和拼接后的最终视频。这项技能的作用是做出工具无法完成的创意判断:读懂场景,从菜单中挑选钩子动作,并撰写标题。
钩子规则(决定你为 hook_action 撰写的内容)
- 一定要迅速抓住注意力。 在约 2 秒内制造极端且不容忽视的效果,优先于合理性或与视频主题的相关性。
- 闯入用户自己的场景。 保持同一人物、地点和光线——工具会以最佳视觉锚点帧为基准:可用时选 0 秒,否则选首个检测到人脸的帧。描述事件进入那个空间,而不是另一个场景。
- 利用场景的真实空间结构。 通过有纵深的门口进入,利用人物身后的墙面,以及头顶空间。
- 不要对白。 不含人声(仅环境音/冲击音效)——不要在
hook_action中写台词。
钩子超类别菜单
共四种超类别。同一片段/会话的每次运行都要轮换超类别——如果不轮换,重新生成的内容就会趋同于车辆/爆炸/生物。原型只是起点,并非封闭列表;可在类别内自由创作。
A. 破坏性闯入——外力猛烈闯入并破坏场景
| 原型 | 发生的情况 | 场景条件 |
|---|---|---|
| 来袭车辆 | 汽车/卡车/公交车撞穿墙壁或门口,朝镜头冲来 | 背景纵深或后方墙面 |
| 山洪/巨浪 | 墙壁爆裂,水流朝镜头汹涌而来 | 走廊/后方墙面 |
| 建筑结构坍塌 | 天花板/墙壁/货架塌陷,碎片如雨落下 | 头顶空间/墙壁 |
| 爆炸/冲击波 | 火球在人物身后爆发,冲击波和碎片向前席卷 | 背景表面 |
| 生物袭击 | 动物/怪物从画面外扑来或突然闯入 | 画面边缘有开阔空间 |
| 荒诞闯入者 | 恐龙、大象、UFO、巨手从人物身后进入 | 背景空间 |
| 自然灾害 | 龙卷风/流星/闪电/地陷 | 户外或宽敞空间 |
B. 物理异常——物理定律被打破,呈现写实效果;场景和人物保持不变,运动规律却出现异常
| 原型 | 发生的情况 | 场景条件 |
|---|---|---|
| 重力向上翻转 | 人物、松散物品和灰尘向上飘落至天花板 | 任意室内场景 |
| 人物周围时间冻结 | 其他所有物体都定格在空中,只有人物继续移动 | 有松散/运动物体的场景 |
| 天花板磁力牵引 | 头发、衣物、首饰和小物件猛地向上扯起,仿佛天花板上的磁铁启动 | 室内场景+松散道具 |
| 房间旋转 90° | 墙壁和地板围绕站直的人物旋转,直到原本的“下方”变成墙壁 | 可见墙壁和地板的封闭空间 |
| 物体环绕 | 所有松散的小物件升起,像龙卷风一样环绕人物 | 表面上有道具的场景 |
| 颜色反相闪变 | 场景短暂反转为负片色调,然后恢复,犹如故障闪烁 | 任意场景 |
C. 内容元素超大化——片段中的元素变得和建筑一样大,撞进画面
从场景解读(步骤 2)中提取元素——主角产品、宠物、饮料、手机、徽标。
| 原型 | 发生的情况 | 来源元素 |
|---|---|---|
| 巨型主角产品 | 展示的产品以 10 倍大小出现,撞穿墙壁 / 天花板 | 片段中的产品 |
| 建筑级宠物 | 主体的宠物出现在窗户 / 门口,高度堪比建筑 | 片段中的宠物 |
| 巨型饮料 | 杯子 / 罐子 / 瓶子变得和建筑一样大,倾倒砸向房间 | 片段中的饮料 |
| 巨型手机 | 主体的手机放大到占满后墙,屏幕发光 | 片段中的手机 |
| 巨型徽标 | 墙上 / 衬衫上 / 包装上的品牌标志变大,覆盖整个后墙 | 片段中的任意徽标 |
D. 内容元素飞射——片段中的相关物体高速飞向主体
从场景解读中提取。
| 原型 | 发生的情况 | 来源元素 |
|---|---|---|
| 主角物品猛击 | 展示的产品高速飞向他们的脸 | 主角产品 |
| 食物 / 饮料飞溅 | 他们的食物或饮料猛冲向他们,四处飞溅 | 片段中的食物或饮料 |
| 群物袭击 | 许多小物体(运动鞋 / 药丸 / 罐子)的复制品如冰雹般砸向他们 | 可重复出现的小物体 |
| 道具鞭击 | 表面上的物体(马克杯、台灯、书)猛然飞起并砸向他们 | 任何可见的重型道具 |
标题规则(用户需要标题时)
- ≤7 个词,全大写,一行有力短句。 标题要同时呼应钩子动作和片段的 实际内容。例如:巨型运动鞋飞射 + 运动鞋开箱 → “这双新鞋来势汹汹。”
- 可选——无标题钩子可省略。
- 排版默认采用粗体、做旧的展示字体,并加粗黑色描边。用户可通过
type_style(自由格式的样式字符串)覆盖此设置,或粘贴brand.md——只提取 排版要求(字体、字重、处理方式),忽略徽标 / 配色 / 语气。提醒用户,纤细 / 无描边的样式在 4 秒内可能会抖动。
工作流
步骤 0 — 输入(参数为空)
如果未提供视频,原样打印以下菜单并停止——不要调用任何工具:
你想为哪段视频制作病毒式钩子? 可粘贴以下任一内容:
- 本地视频路径——例如
/Users/me/Desktop/clip.mp4- mp4 的 https URL
- 路径 + 标题——例如
clip.mp4 — "YOUR PROMPTS WON'T SAVE YOU"- 路径 + “surprise me”——由 Agent 选择钩子动作和标题
等待下一条消息。不要猜测输入内容。
步骤 1 — 获取 URL
如果输入是本地文件,则调用 upload_asset 上传,并使用返回的
public_url。如果输入已经是 https URL,则直接使用。任何格式都可以——此处无需
转码或探测。
步骤 2 — 解读场景
调用 analyze_media(video_url) → 记录主体和构图、室内 / 室外及场景、
光照、写实或风格化美学,以及主题 / 核心内容。还要记录主角
物品(产品、宠物、饮料、手机、徽标),包括每个物品是否在开场附近可见,
还是仅在后面出现——这是超类别 C 和 D 的必需信息。此解读将原样传入 scene 参数。
步骤 3 — 选择钩子动作
相对于该片段上一次运行的超类别进行轮换;尽可能选择不同类别。
选择场景几何结构最适合的原型(A/B),或最突出的主角
物品(C/D)。用一句生动的话写出具体钩子动作——进入方向 + 运动 + 尺度 + 峰值。
这就是 hook_action。对于 C/D,要明确指出具体的主角物品,让工具将其与片段关联起来。如果主角物品在片段后面才出现,而不是在开场附近出现,
要明确写出第一帧钩子:“从第一帧起,主体就拿着 / 使用[主角物品]”。
第 4 步 — 标题 + 样式
询问用户是否需要标题。如果需要,提出一行不超过 7 个词的全大写标题,将钩子动作与主题联系起来,征求用户确认,并在渲染前提供字体排版选项:默认、自定义方向或 brand.md。如果用户没有偏好,使用默认选项并说明这一点。如果用户不需要标题,则跳过——钩子会以无标题形式渲染。
第 5 步 — 渲染
调用 generate_viral_hook({ video_url, scene, hook_action, title?, type_style? })。
如果它返回 {task_id, status},则持续快速循环调用 task_status(task_id) 进行轮询,直到任务结束,然后读取结果。如果状态为 failed,则说明错误——不要盲目重试。
第 6 步 — 交付
呈现两个片段:
- 仅钩子:
[[video:<hook_url>]] - 拼接后的最终视频:
[[video:<final_url>]]
不要做的事
- 不要在技能中重新实现渲染。 不要在这里使用 extract_frame / generate_image / edit_concat / transcode——
generate_viral_hook会处理所有这些操作。如果钩子效果不佳,请修改hook_action/title文本,而不是处理流程。 - 不要传入 seed。 变化应来自
hook_action、title或type_style。 - 不要将标题烘焙到原始视频中。 标题只属于钩子。
- 不要自动修改已获批准的标题。 如果需要改写,请先询问。