auto-save 2026-05-12 15:41 (+1, ~3)
This commit is contained in:
98
.memory/plan.md
Normal file
98
.memory/plan.md
Normal file
@@ -0,0 +1,98 @@
|
|||||||
|
# SKG TK 二创验证 — 初版 Plan
|
||||||
|
|
||||||
|
> intake 阶段 2026-05-12 输出,开发会话起点物。第一件事仍是跑 `/plan` 二次细化。
|
||||||
|
|
||||||
|
## 目标
|
||||||
|
|
||||||
|
跑通"TK 链接 → 带改写文案的成品视频"完整链路,验证 SKG AI 素材生产管线第二条思路的可行性。**不是产品化,是原型**——能跑、能看、能改一遍参数就够。
|
||||||
|
|
||||||
|
## 非目标(先不做)
|
||||||
|
|
||||||
|
- 不做用户系统 / 多人协作 / 权限
|
||||||
|
- 不做工单对接(验证完再谈合并主管线)
|
||||||
|
- 不做云端部署(本地 4290 端口跑)
|
||||||
|
- 不做批量 / 队列(单条手动触发)
|
||||||
|
- 不做产品信息库(产品信息每次手填或贴文本)
|
||||||
|
|
||||||
|
## 七步管线 — 原子任务拆解
|
||||||
|
|
||||||
|
### 步骤 1 — TK 视频下载
|
||||||
|
- [ ] 输入 TK 链接(TikTok 国际版,英文素材为主)
|
||||||
|
- [ ] `yt-dlp` 下载到本地临时目录,返回 mp4 路径 + 元数据
|
||||||
|
- [ ] 失败处理:限流 / 链接失效 / 私密视频,给明确报错
|
||||||
|
- 风险:TK 反爬可能要 cookie / 代理,本地验证阶段可先手动准备
|
||||||
|
|
||||||
|
### 步骤 2 — 视频/音频拆轨
|
||||||
|
- [ ] `ffmpeg` 拆音轨为 wav(16kHz 单声道,便于 ASR)
|
||||||
|
- [ ] 视频保留原 mp4,记录时长 / 帧率 / 分辨率
|
||||||
|
- [ ] 拆轨产物存 `temp/<jobId>/` 下,便于复用
|
||||||
|
|
||||||
|
### 步骤 3 — 关键帧抽取
|
||||||
|
- [ ] **自动**:均匀采样 + 场景切换检测(ffmpeg `select='gt(scene,0.4)'`),返回候选帧 ≥ 10
|
||||||
|
- [ ] **手动**:UI 时间轴拖动滑轨,预览缩略图,点击加入候选
|
||||||
|
- [ ] **去重 / 选满**:用户最多保留 10 张,已选满给提示
|
||||||
|
- [ ] 输出:10 张 jpg + 时间戳清单
|
||||||
|
|
||||||
|
### 步骤 4 — ASR + 实时翻译
|
||||||
|
- [ ] 音轨 → **Gemini** ASR(带时间戳分段)
|
||||||
|
- [ ] 英文原文逐段输出,旁边实时跑中文翻译流式输出
|
||||||
|
- [ ] UI:左右双栏(英 / 中),段落级时间戳可点击跳到对应视频时间
|
||||||
|
|
||||||
|
### 步骤 5 — 文案改写
|
||||||
|
- [ ] 输入区:**产品信息**(SKG 自家产品关键卖点,自由文本框)+ **改写指令**(保留原结构 / 重写 / 加 CTA 等几个 preset)
|
||||||
|
- [ ] **Gemini** 拿原英文转录 + 产品信息 → 输出改写后中文文案(或中英双版)
|
||||||
|
- [ ] 段落级 diff 视图:原文 vs 改写,可手动微调
|
||||||
|
|
||||||
|
### 步骤 6 — 关键帧 → 生图
|
||||||
|
- [ ] 关键帧勾选 1 张作为参考
|
||||||
|
- [ ] 生图入口二选一:**nano-banana-pro**(Gemini 3 Pro Image,默认)/ **GPT Image**
|
||||||
|
- [ ] prompt 自动从该帧的改写文案片段 + 产品信息合成,可手改
|
||||||
|
- [ ] 输出图片入画廊网格,可多次重生
|
||||||
|
|
||||||
|
### 步骤 7 — 生图 → 生视频 + 文案合成
|
||||||
|
- [ ] 单张图作为视频生成首帧 / 参考图
|
||||||
|
- [ ] **视频模型三选一**:Seedance / Kling / Veo3(API 抽象层,统一 prompt schema,key 配置文件切换)
|
||||||
|
- [ ] 生视频 prompt = 改写文案对应段落 + 镜头描述(preset:缓推 / 摇 / 静态)
|
||||||
|
- [ ] **文案合成**:生成的视频片段 + 改写文案做字幕 / 配音(TTS 用 Gemini?或先只做字幕)→ ffmpeg 合成最终 mp4
|
||||||
|
|
||||||
|
## 数据流 / 状态
|
||||||
|
|
||||||
|
每次跑一个 **Job**,状态机:
|
||||||
|
```
|
||||||
|
created → downloading → splitting → frames_extracted
|
||||||
|
→ transcribed → rewritten → image_generated
|
||||||
|
→ video_generated → composed → done | failed
|
||||||
|
```
|
||||||
|
|
||||||
|
状态 / 中间产物存 `jobs/<jobId>/state.json` + 文件落盘,刷新页面能恢复。
|
||||||
|
|
||||||
|
## 技术栈拍板
|
||||||
|
|
||||||
|
| 层 | 技术 | 备注 |
|
||||||
|
|---|---|---|
|
||||||
|
| 前端 | Next.js 16 + Tailwind 4 + shadcn/ui + Framer Motion | 风格库 04 同栈 |
|
||||||
|
| API | Next.js API routes(轻任务) + Python FastAPI(重任务:yt-dlp / ffmpeg / ASR) | 同机部署 |
|
||||||
|
| 任务编排 | 先同步阻塞 → 跑通后再上 BullMQ / Celery | 不预扩 |
|
||||||
|
| 模型接入 | Poe API 优先,OpenRouter 备用(按 `feedback_poe-api-priority.md`) | 单独 `lib/ai/` 抽象层 |
|
||||||
|
| 存储 | 本地文件系统 `jobs/<jobId>/` + SQLite 存元数据 | 验证阶段够用 |
|
||||||
|
|
||||||
|
## 关键风险 / 待澄清
|
||||||
|
|
||||||
|
1. **TK 下载合规** — 本地验证 OK,量产前需要法务点头
|
||||||
|
2. **Veo3 / Seedance / Kling 的 API 可用性** — Poe 上 Veo3 已知可调,另外两家要查
|
||||||
|
3. **生视频成本** — 单次 5-10 秒视频生成 $0.5-$2,验证阶段控量
|
||||||
|
4. **字幕烧录 vs 旁白配音** — 步骤 7 默认只做字幕,配音作为 P2
|
||||||
|
|
||||||
|
## 第一冲刺范围(MVP 最小可演)
|
||||||
|
|
||||||
|
只做 **步骤 1+2+3+4** 端到端:
|
||||||
|
- 输入 TK 链接 → 拿到视频 → 拆出 10 张关键帧 + 双语转录
|
||||||
|
- UI 用 04 风格起骨架(hero + 关键帧画廊 slider + 左右双语栏)
|
||||||
|
- **不做** 步骤 5/6/7,等 1-4 跑通再扩
|
||||||
|
|
||||||
|
## 开发会话第一句
|
||||||
|
|
||||||
|
```
|
||||||
|
按 CLAUDE.md + .memory/plan.md,先 /plan 二次细化第一冲刺范围(步骤 1-4),
|
||||||
|
然后 /ui-ux-pro-max --design-system 出 token,用 04 风格起 Next.js 骨架,端口 4290。
|
||||||
|
```
|
||||||
@@ -6,6 +6,13 @@
|
|||||||
"message": "项目创建: SKG AI 素材管线 - TK 二创验证",
|
"message": "项目创建: SKG AI 素材管线 - TK 二创验证",
|
||||||
"hash": "",
|
"hash": "",
|
||||||
"files_changed": 0
|
"files_changed": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"ts": "2026-05-12T15:37:36+08:00",
|
||||||
|
"type": "commit",
|
||||||
|
"message": "init: project scaffold",
|
||||||
|
"hash": "56d435f",
|
||||||
|
"files_changed": 7
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|||||||
28
CLAUDE.md
28
CLAUDE.md
@@ -19,3 +19,31 @@
|
|||||||
- 部署完成后,不允许在 `.project.json` 缺少最新公网链接的状态下结束任务
|
- 部署完成后,不允许在 `.project.json` 缺少最新公网链接的状态下结束任务
|
||||||
- 部署完成后,必须同步更新 `RULES.md` 的部署事实
|
- 部署完成后,必须同步更新 `RULES.md` 的部署事实
|
||||||
- 如果只更新了代码但没回写部署元数据,这个任务不算完成
|
- 如果只更新了代码但没回写部署元数据,这个任务不算完成
|
||||||
|
|
||||||
|
## 立项决策(2026-05-12 intake)
|
||||||
|
|
||||||
|
- **定位**:SKG AI 素材生产管线第二条思路的独立原型验证,不替代主管线(工单系统场景 1),跑通后再评估合并方式
|
||||||
|
- **端口**:4290
|
||||||
|
- **核心管线(7 步)**:TK 链接 → 拆视频/音频 → 关键帧抽取(自动 + 手动,≤10)→ Gemini ASR + 实时英中翻译 → 接产品信息改写文案 → nano-banana-pro / GPT Image 生图(单选)→ Seedance / Kling / Veo3 生视频(参考改写后文案)→ 合成带文案成品视频
|
||||||
|
- **模型分工**(key 走 Poe 优先 / OpenRouter 备用):
|
||||||
|
- 文字 / ASR / 翻译 / 文案改写 → Google Gemini
|
||||||
|
- 生图 → nano-banana-pro(Gemini 3 Pro Image)+ GPT Image 二选一
|
||||||
|
- 生视频 → Seedance + Kling + Veo3 三家可切,API 抽象层放 key
|
||||||
|
|
||||||
|
## 页面风格(已锁定)
|
||||||
|
|
||||||
|
- **主风格 → `04-Dark-Gallery-Ambient`**(暗色画廊·氛围光)
|
||||||
|
- 路径:`~/Projects/research/20260305-网页风格库/04-Dark-Gallery-Ambient.md`
|
||||||
|
- 技术栈:Next.js 16 + Tailwind 4 + Framer Motion + shadcn/ui
|
||||||
|
- 关键帧画廊用横向 slider + ambient glow,选中态从图片提主色调营造环境光
|
||||||
|
- 玻璃拟态卡片 `bg-white/5 backdrop-blur-sm border-white/10`,纯黑底 `#0a0a0a~#111111`
|
||||||
|
- Playfair Display serif 做标题
|
||||||
|
- **备选 → `13-Liquid-Glass`**(成品输出页 hero 可叠层用)
|
||||||
|
- 触发:开发会话里说 "用 04 风格" / "用暗色画廊风格"
|
||||||
|
|
||||||
|
## 开发流程(UI 项目标准)
|
||||||
|
|
||||||
|
1. `/plan` 拆 7 步管线为原子任务(下载层 / 拆轨层 / ASR / 翻译 / 改写 / 生图 / 生视频 / 合成 / UI 工作台)
|
||||||
|
2. `/ui-ux-pro-max --design-system` 出 design token
|
||||||
|
3. 对接风格库 04,跑骨架
|
||||||
|
4. `/review` + `/qa` 收尾
|
||||||
|
|||||||
9
RULES.md
9
RULES.md
@@ -1,7 +1,14 @@
|
|||||||
# SKG AI 素材管线 - TK 二创验证
|
# SKG AI 素材管线 - TK 二创验证
|
||||||
|
|
||||||
## 启动
|
## 启动
|
||||||
- `待补充` — 端口 4290
|
- 前端 dev:`cd web && pnpm dev`(Next.js 16,端口 4290)
|
||||||
|
- 后端 dev:`cd api && uvicorn main:app --port 4291 --reload`(FastAPI,端口 4291,重任务用)
|
||||||
|
- 说明:以上为规划脚手架,未实际生成;开发会话第一步起骨架时落地
|
||||||
|
|
||||||
|
## 立项决策快索引
|
||||||
|
- 详见 `CLAUDE.md` 立项决策段 + `.memory/plan.md` 七步管线拆解
|
||||||
|
- 风格:`04-Dark-Gallery-Ambient`(路径:`~/Projects/research/20260305-网页风格库/04-Dark-Gallery-Ambient.md`)
|
||||||
|
- 第一冲刺:步骤 1-4(下载 / 拆轨 / 关键帧 / ASR+翻译)
|
||||||
|
|
||||||
## 部署事实
|
## 部署事实
|
||||||
- 平台:待定
|
- 平台:待定
|
||||||
|
|||||||
Reference in New Issue
Block a user