- name
- luanru-yixia
- description
- 从 3–15 秒短视频中发现可被陌生人“乱入”的视觉接点,生成三条普通人能照着拍的无厘头合拍方案,并输出硬边界剪辑参数、连得上评分和下一棒接点。适用于抖音合拍、视频接龙、多模态视觉搜索、动作续拍与短视频创意辅助;当用户要求分析视频哪里能接、怎么拍、怎么拼或判断两个片段是否接得上时使用。
# 乱入一下
把视觉搜索从“这是什么”变成“这里还能被谁怎样接坏”。AI 只发现关系、给出拍摄合同并做对齐;笑点和表演由人完成。
## 执行总则
始终遵守四条:
1. 先从输入帧里找到真实接点,再生成创意;禁止凭空编造时间、位置或动作。
2. 每位参与者留在自己的画格;接缝持续可见;禁止抠人、扩图或生成共享背景。
3. 输出三条不同关系的候选:`catch`(接住)、`twist`(拐弯)、`continue`(继续乱)。只换道具不算不同。
4. 用户决定选哪条、怎么演、是否重拍和发布。不要替用户自动发布。
需要完整语法时读取 [无厘头硬边界语法](references/grammar.md);需要字段定义时读取 [输入输出结构](references/schema.md);需要判分或回归测试时读取 [评测规则](references/evaluation.md)。
## 工作流
### 1. 接入与拆解
验证输入是 3–15 秒视频或带时间戳的连续帧。提取:
- 主体和物件的跨帧轨迹;
- 手、脚、头、腰线等姿态关键点;
- 视线和头部朝向;
- 进入或离开画面边缘的轨迹;
- 遮挡窗口;
- 动作峰值、音频瞬态和台词停顿。
无法读取视频时,只能基于用户提供的帧和时间描述工作,并在 `analysis_mode` 标注 `frame_sequence`。
### 2. 发现 2–4 个真实接点
一个接点必须同时包含:
- `start_ms`、`key_ms`、`end_ms`;
- `edge`;
- `anchor_xy`;
- `source_action`;
- 至少一条可见证据;
- 至少一种兼容语法。
优先级:
1. 身体或物件在边缘被裁断;
2. 物件穿越边缘;
3. 稳定视线指向画外;
4. 推、拍、吹、敲等动作峰值;
5. 150–700ms 的强遮挡;
6. 含糊台词后的可读停顿。
若没有真实接点,输出 `NO_VALID_JOIN`,说明缺失哪项证据,不用低质量候选凑数。
### 3. 生成三条歪路
对用户选中的一个接点,固定时间、边、锚点和方向,再生成:
- `catch`:最直观地完成物理关系,一遍能拍成;
- `twist`:保留物理关系,改写结果、尺度或角色;
- `continue`:本棒笑点成立后,让动作、物件或视线从另一边离开。
每条候选必须:
- 引用真实 `port_id`;
- 只有一个主笑点;
- 一个人和至多一个常见道具可完成;
- 静音、无字幕仍能看懂;
- 关键动作允许普通人约 `±120ms` 的误差;
- 指定一个主语法;
- `continue` 提供新的时间、边、锚点和动作。
### 4. 编译一句拍摄合同
把选中候选压成不超过 32 个汉字的一句话:
> 第 `{拍}` 拍从画面 `{边}` 进,贴住 `{锚点}` 做 `{动作}`,再从 `{边/状态}` 结束。
只告诉用户何时、从哪边、做什么。毫秒、坐标、镜像和音量留在机器参数里。
### 5. 匹配用户实拍
从用户录制或已有视频中切出动作片段。根据以下顺序排序:
1. 指定边是否正确;
2. 锚点距离;
3. 进入方向;
4. 动作峰值与 `key_ms` 的误差;
5. 静音可读性;
6. 是否留下新接点。
不得用生成帧补齐用户没拍到的手、脚、物件或接触瞬间。
### 6. 输出硬边界剪辑方案
只允许:
- 左右、上下、十字或 L 型明确分屏;
- 各画格内裁切、缩放、平移和镜像;
- 时间裁切、音量调整、时间偏移;
- `0.90–1.10x` 轻微变速;
- 接缝处的短闪光、边线或节拍提示。
`edit_recipe.seam_visible` 必须为 `true`;`background_fusion` 必须为 `false`。
### 7. 判定连得上
按 [评测规则](references/evaluation.md) 逐项给出 `PASS/FAIL`。
- `CONNECTED`:总分至少 80,所有必要项通过,且无红线。
- `MISJOINED`:其他情况。
不要只给总分;必须返回失败项与可复核证据。
## 输出要求
只输出一份符合 [输入输出结构](references/schema.md) 的 JSON。顶层必须有:
```json
{
"status": "OK",
"analysis_mode": "video",
"openings": [],
"candidates": [],
"selected_candidate_id": null,
"capture_prompt": "",
"capture_guide": {},
"edit_recipe": {},
"evaluation": {},
"new_opening": null
}
```
输出后运行:
```bash
python3 scripts/validate_output.py <结果.json>
```
校验失败时,修正输出而不是跳过校验。
## 最小闭环示例
输入:讲师上半身位于画面上半格,说“保持镇定”,腰部被底边裁断。
输出核心:
- 接点:`2.40s / bottom / waist / body_extension`
- `catch`:补一双努力端坐的腿;
- `twist`:补一双突然疯狂逃跑的鸭脚蹼腿;
- `continue`:腿跑完向右踢出,给下一位留下接点;
- 用户指令:`她说“稳住”,你就从腰线下开始蹬。`
- 编辑:上下硬分屏、源片 2.40s 对用户片峰值、接缝可见;
- 判定:关键时机和腰线匹配后才允许 `CONNECTED`。
更完整的机器可读样例见 [示例输出](assets/example-output.json)。
## 人类确认点
在以下位置必须停下来让人选择:
1. 选择哪个接点;
2. 选择哪条歪路;
3. 拍摄、重拍或改用已有视频;
4. 接受哪份剪辑方案;
5. 是否发布和是否允许下一位继续合拍。
Ver en GitHub