移植自 mac-agent-os 的 mediacrawler_adapter:不起子进程、不开页面,用浏览器里那份
登录态直接调抖音 Web 接口。产物键名照抄 store/douyin,所以 ingest 那条链路一个字不用改。
**目前能用的(真环境实测,非推断)**:
profile/other : 200, 7075 字节 —— 博主主页指标(粉丝/获赞/作品数/昵称)
aweme/detail : 200, 45425 字节 —— 单条作品详情(含点赞/评论/收藏/分享)
**目前不能用的:作品列表 `aweme/post`。** 两个互相独立的原因:
1. 这个接口被抖音单独升级成了真校验:不带 x-tt-argus 回 403「Uifid Not Found」,
带上 dummy 值回 200 + **空 body**。也就是说「头在不在」骗得过,「真校验」过不了。
同一套头打 profile/other 和 aweme/detail 都是通的 —— 抖音是挑着接口加保护的,
挑中的恰好是「批量拉作品列表」这个最敏感的动作。
2. 改走页面截获也不行:CDP 浏览器打开博主主页会落到「验证码中间页」(当天大量探测的
代价,过几小时要重测)。
所以现在的边界是:**已知作品的指标刷新能做,自动发现新作品做不了**。
**排查中控住变量后得到的两条事实**(都写进注释了):
· `Accept` / `Accept-Language` / `Referer` 才是主页接口能返回真数据的原因 —— 只有
UA+client hints+Cookie 时是 200 但仅 121 字节的空壳,补上这三个头变 7074 字节。
(我先前猜的 sec-ch-ua 不是关键。)
· 因此 UA 与 client hints 必须**成套地取自同一个浏览器**,所以 BrowserIdentity 一次
从 CDP 取齐 cookie + UA + hints,而不是各自写死。
「200 + 空 body 必须当场报错」也是刻意写死的:放过去它会在下游变成「这个博主没作品」,
把一次失败伪装成一条正常结果 —— 爬虫那条路正是这么栽的,还被翻译成「账号被封」。
测试 +11:cookie 解析、请求头成套性(含 uifid 缺失/回退)、产物键名与 store 对齐、
以及 _get 的三条失败路径(空 body / 403 带网关原话 / 正常返回)。
194 lines
8.0 KiB
Markdown
194 lines
8.0 KiB
Markdown
# 写实感指南(去 AI 感 · 自拍 Vlog)
|
||
|
||
> 2026-10-03 建立 · 来源:外部方法论学习(`cclank/lanshu-awesome-ai-video-kit` 21 篇方法论 + `smixs/visual-skills`)
|
||
> 用途:调提示词、改导演规则、做拍法预设时的**对照规范**
|
||
|
||
---
|
||
|
||
## 一、三条最容易踩的坑(我们已实测踩中)
|
||
|
||
### 坑 1:图生视频却重描述视觉 ✗✗✗
|
||
|
||
**可灵官方守则**:图生视频时"**只描述运动,不重描述视觉**"——Kling 会重画图中已有内容,
|
||
你再描述一遍 = 给它两套冲突指令 → 画面被"重画" → AI 感。
|
||
|
||
```
|
||
❌ A red sports car with chrome wheels on a wet road... the car starts moving
|
||
✅ The headlights blaze on and the engine roars to life.
|
||
The rear tires spin, spraying water across the wet asphalt.
|
||
```
|
||
|
||
**判定**:镜头有参考图(`image_path` 存在)→ 提示词应**只含动作演化**。
|
||
|
||
### 坑 2:矛盾约束(写了等于没写)
|
||
|
||
| ❌ 矛盾组合 | 原因 |
|
||
|---|---|
|
||
| `胶片感 / film grain` + `4K超清 / ultra sharp` | 胶片感本身是模糊+颗粒 |
|
||
| **`电影感` + `纪实手持` 都强写** | 风格相互拉扯(**我们踩过**) |
|
||
| `慢动作` + `高速动作` | 速度矛盾 |
|
||
| 同时指定多个艺术家风格(>2) | 模型随机取一个 |
|
||
| **`画面稳定` + `手持晃动`** | 稳定=三脚架语言(**我们踩过**) |
|
||
|
||
### 坑 3:抽象情绪词
|
||
|
||
```
|
||
❌ 【情绪目标】紧张 / 好奇 / 悲伤
|
||
✅ 手指无意识地攥紧衣角,眼神闪躲,呼吸急促
|
||
```
|
||
|
||
**原则**:视频模型看不懂抽象形容词,**必须外化为身体细节**;每镜只写 1-2 个关键动作(多了稀释焦点)。
|
||
|
||
---
|
||
|
||
## 二、写实人像 5 段公式(Dan Kieft / 5M+ 播放教学)
|
||
|
||
```
|
||
① Subject 谁 —— 年龄/种族/妆/服装(具体,不堆形容词)
|
||
② Pose 姿态 —— candid shot / 坐着 / 侧看 / 微笑
|
||
③ Camera ★ 相机 —— Fujifilm X100V · 35mm · 景深 · bokeh ← 杀手锏
|
||
④ Skin ★ 皮肤 —— 真实纹理 · 自然瑕疵 · 不过度磨皮 · 毛孔可见
|
||
⑤ Aesthetic 调性 —— Instagram 风 · 暖调 · 自然光 · 城市背景
|
||
```
|
||
|
||
**完整示例(原文)**:
|
||
```
|
||
Beautiful 20-year-old East Asian woman, minimalist makeup, wearing beige streetwear
|
||
jacket, candid moment sitting at a cafe table, looking sideways with soft smile.
|
||
Shot on Fujifilm X100V, 35mm film, realistic lighting, natural skin texture,
|
||
unfiltered, pores visible, soft background bokeh, Instagram aesthetic,
|
||
professional urban street photography, warm tones.
|
||
```
|
||
|
||
**要点**:
|
||
- **相机型号是杀手锏** —— 触发模型的"真实摄影"先验(`Fujifilm X100V` / `Leica Q3` / `iPhone 前置`)
|
||
- **`unfiltered` + `pores visible`** 是反 AI 塑料感的直接解药
|
||
- `Same woman` / 角色名重复 → 锚定同一人物(跨场景一致性)
|
||
|
||
---
|
||
|
||
## 三、情绪外化表(10 种,可直接抄)
|
||
|
||
| 抽象情绪 | 外化为动作与细节 |
|
||
|---|---|
|
||
| 悲伤 | 低头、肩膀微微颤抖、眼眶泛红、手指无意识攥紧衣角、泪水打转却没落下 |
|
||
| 喜悦 | 嘴角抑制不住上扬、眉眼舒展、脚步轻快、哼小曲、忍不住原地转圈 |
|
||
| 紧张/焦虑 | 频繁看表、手指敲桌面、呼吸急促、眼神闪躲、无意识啃指甲 |
|
||
| 愤怒 | 双拳紧握、下颌线紧绷、胸口起伏、眼神锐利、从牙缝挤话 |
|
||
| 释然 | 长舒一口气、肩膀放松、淡淡微笑、抬头望向远方 |
|
||
| 恐惧 | 瞳孔放大、后退半步、抓住身边物体、屏息、嘴唇发抖 |
|
||
| 疲惫 | 揉太阳穴、靠墙、眼皮下沉、长呼气、动作迟缓 |
|
||
| 专注 | 眉头微皱、眼神锁定一点、嘴唇抿紧、身体前倾、手稳定不动 |
|
||
| 犹豫 | 张嘴又闭上、视线游移、手悬在半空、踱步、欲言又止 |
|
||
| 惊喜 | 眼睛瞬间睁大、嘴巴张开成 O 形、双手捂嘴、向前一步、笑容缓缓绽放 |
|
||
|
||
**写法对照**:
|
||
```
|
||
❌ 她终于轻松下来了。
|
||
✅ 她长长地舒了一口气,紧绷的肩膀完全放松下来,脸上浮起淡淡的微笑,抬头望向远方。
|
||
```
|
||
|
||
---
|
||
|
||
## 四、特殊字符规范(结构化标注)
|
||
|
||
| 信息类型 | 符号 | 示例 |
|
||
|---|---|---|
|
||
| 音乐 | `( )` | `(背景播放着舒缓的爵士钢琴)` |
|
||
| 音效 | `< >` | `<远处传来狗叫声>` |
|
||
| 台词 | `{ }` | `她轻声说{好久不见}` |
|
||
| 字幕 | `【 】` | `【第二章:重逢】` |
|
||
|
||
**语言规范**:台词语言统一,外语需标注语种 → `用日语说道{こんにちは}`
|
||
|
||
> ⚠️ 这是给**支持音频生成的模型**用的(Seedance 2.5 等)。我们当前是"先出画面再配音",
|
||
> 此规范可用于**分镜脚本阶段的标注**,便于后续 TTS 分段与音效铺底。
|
||
|
||
---
|
||
|
||
## 五、约束词三件套(护栏)
|
||
|
||
**必加基础**:`不要水印` · `不要 Logo` · `不要字幕`
|
||
|
||
**画面稳定**:`人物面部稳定不变形` · `动作连贯自然不僵硬` · `无穿模无卡顿无闪烁`
|
||
|
||
**主体一致性(防"双胞胎")**:
|
||
```
|
||
视频全程禁止出现外形、着装、配饰完全一致的人物
|
||
禁止生成同款分身、双胞胎效果
|
||
同一画面中仅保留单个对应人物,不出现人物重复复刻
|
||
```
|
||
|
||
**镜头**:`镜头平稳` / `固定机位` / `避免突然变焦`(**注意与手持风格二选一**)
|
||
|
||
---
|
||
|
||
## 六、可灵专属守则(我们用可灵,重点)
|
||
|
||
1. **中文理解业界最强** → **推荐纯中文提示词**(避免中英混用)
|
||
2. **图生视频极强** → 有参考图时**只写动作**(见坑 1)
|
||
3. **用 active verbs**:`rockets upward` / `slams into` / `erupts`(不是 `moves`/`goes`)
|
||
4. **写时序流**:`抬起刀 → 一刀劈下 → 刀锋反光 → 竹子滑落`(箭头 = 时间节点)
|
||
5. **用具体光源**代替笼统词:`闪烁的日光灯管` / `霓虹灯` / `烛光` / `黄金时刻`
|
||
(❌ `dramatic lighting` / `自然光,光源有画面依据`)
|
||
6. **加触感细节**(tactile details)
|
||
7. **原生支持音画同步 + 角色定向发声**("角色A说X,角色B说Y")—— ⚠️ 我们尚未使用
|
||
8. 时长:15s(智能分镜可达 2 分钟)—— 我们目前限制 5/10s,可放宽
|
||
|
||
---
|
||
|
||
## 七、自拍 Vlog 专项包(核心诉求)
|
||
|
||
自拍 vlog 的"真",靠这 5 层同时成立:
|
||
|
||
**① 设备锚点**
|
||
```
|
||
iPhone 15 Pro 前置摄像头,竖屏 9:16,近距离广角
|
||
轻微桶形畸变(前置镜头的特征)
|
||
```
|
||
|
||
**② 手持特征**(⚠️ 不能同时写"画面稳定")
|
||
```
|
||
手持自拍(手臂长度)、轻微呼吸起伏、偶尔微调构图
|
||
```
|
||
|
||
**③ 生活光**(真实光源 > 形容词)
|
||
```
|
||
窗光从左侧打在脸上、室内顶灯偏暖、手机屏幕的光在镜片上有反光
|
||
背景比人脸暗一档(室外过曝的窗户)
|
||
```
|
||
|
||
**④ 微瑕疵**(AI 最不会自发生成的东西)
|
||
```
|
||
对焦偶尔漂移、曝光随移动变化、轻微噪点、头发有几缕没梳顺
|
||
说话时自然眨眼、吞咽、鼻翼微动、视线偶尔离开镜头
|
||
```
|
||
|
||
**⑤ 声音层**
|
||
```
|
||
房间混响、远处车流、衣服摩擦声、说话时的换气声
|
||
```
|
||
|
||
---
|
||
|
||
## 八、落地清单(改系统时对照)
|
||
|
||
| 位置 | 改什么 |
|
||
|---|---|
|
||
| `composer/pipeline.py: build_shot_prompt` | 图生视频分支**删视觉重描述**;加写实锚点包(相机型号/皮肤/反塑料感) |
|
||
| 同上 | **矛盾自检**:`稳定 vs 手持`、`电影感 vs 纪实` 等成对冲突检测 |
|
||
| `directors/*.py` | 情绪**必须外化**(内建情绪外化表);光源必须具体 |
|
||
| 拍法预设 | 新增 📱 **自拍 Vlog**(一键带全 5 层锚点) |
|
||
| 全局 | 每镜自动附加约束词三件套 |
|
||
| 可选 | 试可灵原生音画同步(角色定向发声)替代"事后配音" |
|
||
|
||
---
|
||
|
||
## 附:资料存档位置
|
||
|
||
- 抓取的 7 篇方法论原文:`/tmp/aivideo_kb/`(临时,重启会清)
|
||
- `04-情绪外化表.md` · `06-约束词清单.md` · `07-特殊字符规范.md`
|
||
- `08-避坑12问.md` · `09-kling-公式.md` · `20-realistic-character-consistency.md`
|
||
- `02-进阶公式.md` · `smixs-README.md`
|
||
- 上游仓库:`cclank/lanshu-awesome-ai-video-kit`(411 prompts / 21 篇方法论)
|