返回顶部
v

videogen

视频号AI短视频自动化生产流水线(v2)。用户说"做视频"、"生成视频"、"短视频制作"、"视频混剪"时触发。支持三种内容模式自动切换(Mode A纯干货 / Mode B剧情+科普 / Mode C漫剧型)。使用 MiniMax Hailuo AI 生成视频片段,配合 FFmpeg 混剪,输出适合视频号发布的完整短视频。

作者: admin | 来源: ClawHub
源自
ClawHub
版本
V 2.2.0
安全检测
已通过
154
下载量
0
收藏
概述
安装方式
版本历史

videogen

# videogen v2 — 视频号 AI 短视频自动化生产流水线 ## ⚠️ 重要前置说明 ### API 体系 | API Key 类型 | 开头 | 支持能力 | |-------------|------|---------| | MiniMax Key | `sk-cp-` | TTS (speech-2.8-hd) ✅、Hailuo 视频生成 ✅、Music ❌ | | IMA Key | `ima_` | SeeDream 生图、Wan/Kling 视频(数字分身必需) | **每日额度**:`usage limit exceeded` (2056) 报错表示当日 Hailuo 视频额度耗尽,需次日恢复。当前 key 不支持 music-2.5+。 ### API 错误处理规范 ``` 错误码 含义 处理 ───────────────────────────────────────────────────────────── 2056 usage limit exceeded 跳过该片段继续后续步骤 其他异常 未知错误 记录错误,换策略继续,不卡死 ``` --- ## 三种内容模式 系统根据**选题自动判断**最优内容模式(可手动指定覆盖): ### Mode A — 纯干货型 **适用**:财经分析、技术教程、行业报告、数据解读、科普讲解 **结构**:开场痛点(3s) → 核心要点×3(各12s) → 金句收尾(9s) **视觉**:PPT/图表为主,AI点缀关键帧(数字动画、光芒效果) ``` 开场 → 数据页 → 讲解页 → 数据页 → 讲解页 → 数据页 → 讲解页 → 金句 ``` ### Mode B — 剧情+科普型 ✨ 新版主打 **适用**:职业发展、认知升级、社会洞察、励志干货 **结构**:剧情钩子(8s) → 问题拆解(15s) → 干货×2(各12s) → 升华收尾(10s) **视觉**:剧情画面 + 干净科普画面混合,兼顾情感共鸣与信息密度 ``` 剧情开场(困境) → 问题拆解 → 剧情演绎+干货 → 剧情演绎+干货 → 升华+关注引导 ``` ### Mode C — 漫剧/剧情型 **适用**:人生转折、励志逆袭、情感故事、人情冷暖 **结构**:起(8s) → 承(12s) → 转(20s) → 合(8s) + 金句收尾 **视觉**:角色全程驱动,强戏剧冲突,色调/情绪变化明显 ``` 建立(平凡) → 转折(至暗) → 挣扎 → 行动序列×3 → 蜕变(成功) → 金句 ``` --- ## 增强版分镜字段 ```json { "panel_number": 1, "scene_type": "剧情场景 | 知识讲解 | 数据展示 | 过渡页", "shot_type": "特写 | 近景/中景 | 中景 | 全景 | 远景/建立景 | POV主观视角", "camera_move": "固定镜头 | 推进 | 拉出 | 左摇 | 右摇 | 上摇 | 下摇 | 移动摄影 | 跟随", "description": "画面文字描述(供PPT/绘图AI使用)", "video_prompt": "Hailuo视频生成Prompt(镜头控制+主体+氛围+动态+风格)", "narration": "旁白/台词", "duration": 5, "transition": "硬切 | 淡入淡出 | 溶解 | 滑入" } ``` **Video Prompt 公式**(参考《AIGC短视频策划与制作》): ``` 镜头描述 + 镜头运动 + 主体内容 + 动态元素 + 风格 + 9:16竖屏 ``` --- ## 使用方式 ### 方式一:直接对话(推荐) 直接告诉我选题或发链接,我来判断模式并执行完整流水线: ``` python scripts/v2/run_pipeline.py gen "选题内容" python scripts/v2/run_pipeline.py gen "https://mp.weixin.qq.com/s/xxx" # 微信文章 python scripts/v2/run_pipeline.py gen "https://zhuanlan.zhihu.com/p/xxx" # 知乎文章 ``` ### URL 内容提取 支持自动识别并提取以下来源的正文内容: | 来源 | 支持状态 | 提取内容 | |------|---------|---------| | 微信公众号文章 | ✅ 完整支持 | 标题、作者、正文 | | 知乎文章/回答 | ✅ 完整支持 | 标题、作者、发布时间、正文 | | 通用网页 | ✅ 支持(BS4) | 标题、正文(trafilatura 更优)| ```bash # 单独测试 URL 提取 python scripts/v2/url_extractor.py "https://mp.weixin.qq.com/s/xxx" python scripts/v2/url_extractor.py "https://zhuanlan.zhihu.com/p/xxx" --summarize # 提取 + 生成摘要 + 生成分镜(管道) python scripts/v2/url_extractor.py "URL" --summarize -o extracted.json ``` ### 方式二:分步执行 ```bash # Step 1: 分析选题(自动检测模式) python scripts/v2/run_pipeline.py analyze "AI将取代哪些职业" # Step 2: 生成分镜(可指定模式) python scripts/v2/run_pipeline.py storyboard "失业后的逆袭之路" --mode auto # Step 3: 完整流水线 python scripts/v2/run_pipeline.py gen "选题" --mode auto --duration 60 ``` ### 方式三:旧版快速模式(兼容) ```bash bash skills/videogen/scripts/build_composite.sh [slide_video] [output] [clips...] ``` --- ## 完整流水线(v2) ``` 选题 → [自动模式检测] → 分镜生成 → TTS配音 → AI视频片段 → FFmpeg混剪 → 最终视频 ``` ### Step 1: 选题分析 自动检测三要素: - **剧情关键词**:失业/逆袭/情感/故事/第一人称经历 → Mode C - **混合关键词**:职场/认知/赚钱/成长 → Mode B - **干货关键词**:教程/数据/科普/技术/行业报告 → Mode A ### Step 2: 增强分镜生成(参考 waoowaoo 多阶段架构) - **Phase 1**:结构规划(镜头数量、景别、场景类型) - **Phase 2**:运镜+表演(cinematography + acting 并行) - **Phase 3**:细节补充 + video_prompt 生成 ### Step 3: TTS 配音(v2 — Harness 模式) **Harness 核心思路**:在 TTS 这个不确定节点外面套「校验 → 修复 → 循环」控制环,让输出趋向收敛。 **四个组件**: | 组件 | 作用 | |------|------| | **Chunk 化** | 按句子切分(≤200字/段),改一个词只重做该 chunk | | **约束系统(Rules)** | TTS 前规范化文本(英文品牌名隔断、数字转中文、连字符转空格等) | | **双层评估** | L1 确定性预检(文件/时长/语速)+ L2 Whisper X 语义校验 | | **跨轮记忆** | `normalize_patches.json` — 修复确认后写入,下期自动加载 | **默认启用 Harness**(`--no-harness` 可关闭): ```bash # Harness 模式(默认) python scripts/v2/run_pipeline.py gen "选题" --mode auto --duration 60 # 关闭 Harness(快速旧版) python scripts/v2/run_pipeline.py gen "选题" --no-harness # 单独测试 TTS Harness python scripts/v2/tts_harness.py "配音文本" --output minimax-output # 指定音色 python scripts/v2/run_pipeline.py gen "选题" --voice female-yujie ``` **自动修复机制**: - 确定性预检未通过 → 自动修复文本 → 重新生成(最多 3 轮) - 超过 3 轮 → 标记 `needs_human=True`,人工处理 - 语义校验(Whisper)未通过 → 标记人工处理 **Whisper 语义校验**(可选,需安装): ```bash pip install openai-whisper # 重新运行 Harness 时自动启用 ``` ### Step 4: AI 视频片段(Hailuo) ```bash # t2v(文生视频)— 知识/剧情场景 python skills/minimax-multimodal/scripts/video/generate_video.py \ --mode t2v \ --prompt "medium shot, slow push-in, ... modern cinematic, 9:16 vertical" \ --duration 6 \ --output minimax-output/clips/clip_01.mp4 # i2v(图生视频)— 关键帧动画化 python skills/minimax-multimodal/scripts/video/generate_video.py \ --mode i2v \ --prompt "subtle character movement, natural breathing..." \ --first-frame minimax-output/slides/slide_NN.png \ --duration 6 \ --output minimax-output/clips/clip_NN.mp4 ``` ### Step 5: FFmpeg 混剪 ```bash # overlay 模式(AI片段嵌入PPT视频) ffmpeg -y \ -stream_loop 1 -i minimax-output/video_pure_slides.mp4 \ -i minimax-output/clips/clip_01.mp4 \ -i minimax-output/clips/clip_02.mp4 \ -filter_complex " [0:v][1:v] overlay=0:0:enable='between(t,0,5.875)' [v1]; [v1][2:v] overlay=0:0:enable='between(t,15,20.875)' [vout] " -map "[vout]" -c:v libx264 -crf 18 -preset fast -t 60 \ minimax-output/video_complete.mp4 # concat 模式(纯视频片段拼接) ffmpeg -y -f concat -safe 0 \ -i <(for f in minimax-output/clips/*.mp4; do echo "file '$f'"; done) \ -c:v libx264 -crf 22 -preset fast \ minimax-output/video_concat.mp4 ``` ### Step 6: 添加配音 ```bash ffmpeg -y \ -i minimax-output/video_complete.mp4 \ -i minimax-output/voiceover.mp3 \ -c:v copy -c:a aac -b:a 192k -shortest \ minimax-output/video_final.mp4 ``` --- ## 数字分身(方案B,需IMA Key) ```bash # ① 生成数字人形象 python skills/ima-all-ai/scripts/ima_create.py \ --task-type text_to_image \ --model-id doubao-seedream-4.5 \ --prompt "A professional Asian male/female tech speaker, sleek dark suit, confident" \ --output minimax-output/digital_host.png # ② S2V-01 图生视频 python skills/minimax-multimodal/scripts/video/generate_video.py \ --mode ref \ --prompt "Person turns to camera, nods slightly, speaks with confidence, natural movement" \ --subject-image minimax-output/digital_host.png \ --duration 6 \ --output minimax-output/digital_host.mp4 # ③ FFmpeg overlay ffmpeg -y \ -i minimax-output/video_complete.mp4 \ -i minimax-output/digital_host.mp4 \ -filter_complex "[0:v][1:v] overlay=W-w-40:H-h-40:enable='between(t,0,59)'" \ -c:v libx264 -crf 18 -preset fast \ minimax-output/video_with_host.mp4 ``` --- ## 输出目录 ``` minimax-output/ ├── storyboard.json # ✅ v2 新增:增强版分镜 JSON ├── script.md # 脚本/台词 ├── voiceover.mp3 # TTS 配音(Harness 模式为合并后结果) ├── presentation.html # 乔布斯风 HTML 演示稿 ├── slides/ # 幻灯片图片序列 ├── video_pure_slides.mp4 # 纯PPT视频 ├── clips/ # ✅ v2:AI视频片段 │ ├── clip_01.mp4 │ ├── clip_02.mp4 │ └── ... ├── chunks/ # ✅ Harness:TTS chunk 音频 │ ├── chunk_01.mp3 │ └── ... ├── normalize_patches.json # ✅ Harness:跨轮记忆 patches ├── video_complete.mp4 # AI片段嵌入后 └── video_final.mp4 # 最终版(配音+画面) ``` --- ## Remotion 动画渲染引擎(v2 新增) Remotion 适合**精确动画/流程图/字幕同步**类内容,比 Hailuo 更适合科普动画。 ### 快速使用 ```bash # Step 1: 生成 Remotion 项目代码 python scripts/v2/remotion_generator.py gen \ --scene-names "开场|Agent Loop|MCP" \ --timings "20|50|35" \ --narrations "旁白1||旁白2" \ --visuals "terminal|ring|hub" \ --output /path/to/video-project # Step 2: 安装依赖 cd /path/to/video-project && npm install # Step 3: 渲染视频(两阶段,解耦 timeout 问题) # 阶段1:渲染帧序列 npx remotion render Video --output=out/frames --sequence Justice # 阶段2:ffmpeg 独立编码(不被 timeout 中断) ffmpeg -framerate 30 -i out/frames/element-%04d.png \ -c:v libx264 -crf 23 -preset fast -pix_fmt yuv420p -r 30 out/video_raw.mp4 # Step 4: 合并配音 ffmpeg -y -i out/video_raw.mp4 -i voiceover.mp3 \ -map 0:v -map 1:a -c:v copy -c:a aac -b:a 128k -shortest video_final.mp4 ``` ### 竖屏字号规范(视频号 · 9:16 · 1080×1920) > ⚠️ **视频号竖屏字体最小底线 20px**。14-16px 在手机上看基本不可读。 #### 固定字号标准 | 元素 | 字号 | 字重 | 说明 | |------|------|------|------| | **主标题** | 72px | Semibold (600) | 前三秒抓眼球 | | **二级标题/节点** | 32px | Medium (500) | 竖屏最佳阅读尺寸 | | **注释/标签/来源** | 20px | Regular (400) | 视频号最小可读底线 | #### 配色标准(Apple 高级科技风) | 用途 | 色值 | 说明 | |------|------|------| | 背景 | `#111111 → #1c1c1e` | 深空黑渐变 | | 主文字 | `#FFFFFF` | 纯白 | | 强调色 | `#007AFF` | Apple 蓝(唯一强调色) | | 次要文字 | `#8E8E93` | 浅灰 | | 边框/卡片 | `#3a3a3c` / `#2c2c2e` | — | > ⚠️ 只用黑白+一个强调色,科技类最忌颜色杂乱。 #### 安全区规范 ``` 上下左右各留 60px,避免被账号头像、进度条遮挡 ``` #### 布局常量 ```tsx export const SAFE = { top: 60, bottom: 60, left: 60, right: 60, titleTop: 80, // 主标题 top contentTop: 280, // 内容区 top bottomPos: 0.88, // 底部标签位置 }; ``` #### 字号配置(固定值,不缩放) ```tsx // 主标题:72px Semibold <div style={{ fontSize: 72, fontWeight: 600, ... }}>标题</div> // 二级标题/节点:32px Medium <div style={{ fontSize: 32, fontWeight: 500, ... }}>节点</div> // 注释/标签:20px Regular <div style={{ fontSize: 20, fontWeight: 400, color: "#8E8E93", ... }}>标签</div> ``` ### Apple 风格模板 技术干货/源码解读类内容推荐使用 Apple 风格模板,已内置可复用组件: ``` templates/apple/ ├── AppleShared.tsx # Apple 风格组件库(含 13 个组件) └── README.md # 使用文档 ``` 详见 [templates/apple/README.md](templates/apple/README.md)。 ### 竖屏安全布局规范 竖屏视频必须考虑系统 UI 遮挡,所有内容不得超出安全区域: ```tsx // 每个场景顶部必须定义安全边距 const safeTop = 80; // 顶部安全区(标题区) const safeBottom = 100; // 底部安全区(系统 UI + 进度条) // 内容区域可用高度 const availableH = height - safeTop - safeBottom; // 列表类内容的总高度 const ITEM_H = 80; // 每个卡片固定高度 const GAP = 14; // 间距 const TOTAL_H = items.length * ITEM_H + (items.length - 1) * GAP; // 垂直居中于安全区内 const stackTop = safeTop + Math.max(0, (availableH - TOTAL_H) / 2); // 统一宽度(不出屏) <div style={{ width: 640, height: ITEM_H, /* ... */ }}> ``` **布局三原则:** 1. **固定高度**:每张卡片用固定 `height`,不用 padding 撑开,防止内容溢出 2. **统一宽度**:同一场景所有卡片用同一 `width`,视觉更整洁 3. **垂直居中**:`stackTop` = `safeTop + (availableH - TOTAL_H) / 2`,内容始终在屏幕中央 ### Apple 风格设计规范(推荐) 适用于**技术干货/源码解读/知识科普**类内容,参考 Apple 发布会的视觉风格。 #### Apple 设计 Token(精简版) ```tsx // 背景:深空黑渐变 const bg = "linear-gradient(180deg, #111111 0%, #1c1c1e 100%)"; // 精简色板(只有一种强调色) const ACCENT = "#007AFF"; // Apple 蓝(唯一强调色) const TEXT = "#FFFFFF"; // 主文字 const MUTED = "#8E8E93"; // 次要文字 const BORDER = "#3a3a3c"; // 边框 const CARD = "#2c2c2e"; // 卡片背景 // 字体:Inter + -apple-system fallback const font = "Inter, -apple-system, sans-serif"; ``` #### Apple 风格动画规范 ```tsx // 所有动画必须用 useCurrentFrame() 驱动,禁止 CSS transition/animation import { useCurrentFrame, interpolate } from "remotion"; // fade-up(主标题) const opacity = interpolate(frame, [start, start + 14], [0, 1], { extrapolateRight: "clamp" }); const translateY = interpolate(frame, [start, start + 14], [30, 0], { extrapolateRight: "clamp" }); // scale(节点出现) const scale = interpolate(frame, [start, start + 16], [0.4, 1], { extrapolateRight: "clamp" }); // translateX(列表项依次出现) const tx = interpolate(frame, [start + i * 12, start + i * 12 + 12], [-24, 0]); // stagger:每项 delay += 12~16 帧 ``` #### Apple 风格图表组件(内置于 `AppleShared.tsx`) | 组件 | 用途 | 关键参数 | |------|------|---------| | `AppleBg` | 深空黑渐变背景 | — | | `SceneTag` | 左上角场景标签 | text, startFrame, color | | `HeroTitle` | 页面大标题 | text, startFrame, size, color | | `LayerStack` | 分层堆栈(四层框架) | layers[{label, sub, color}], startFrame | | `FlowNode` | 流程图节点圆 | label, x, y, color, startFrame, size | | `ArrowSVG` | 箭头连接线 | x1, y1, x2, y2, color, startFrame | | `NineGrid` | 九宫格 | items[], startFrame | | `PipelineFlow` | 横向管线流 | steps[{label, sub, color}], startFrame | | `FuseSteps` | 熔断器步骤列表 | startFrame | | `ToolGrid` | 工具网格 | tools[], startFrame | | `EngineSpin` | 引擎旋转 SVG | startFrame | | `TagGroup` | 标签组 | tags[{text, color}], startFrame | | `TagPill` | 单个标签 | text, color | #### Apple 风格布局模板 ```tsx import React from "react"; import { AbsoluteFill } from "remotion"; import { AppleBg, HeroTitle, SceneTag, TagGroup, LayerStack, FlowNode, ArrowSVG, NineGrid, PipelineFlow, FuseSteps, ToolGrid, EngineSpin } from "../components/AppleShared"; // 示例:双路径对比(微压缩) export const 微压缩: React.FC = () => ( <AppleBg> <SceneTag text="第一层 · 微压缩" startFrame={0} color="#0A84FF" /> {/* 标题区 */} <div style={{ position: "absolute", top: "8%", left: 0, right: 0, textAlign: "center" }}> <HeroTitle text="两条路径处理 Prompt Cache" startFrame={5} size={28} /> </div> {/* 左路径:卡片堆叠 */} <div style={{ position: "absolute", top: "26%", left: "5%", right: "52%" }}> {/* 节点1 */} <NodeCard label="连续对话" sub="Cache 有效" color="#0A84FF" startFrame={10} /> <ArrowDown color="#0A84FF" startFrame={18} /> {/* 节点2 */} <NodeCard label="Cached Micro Compact" sub="精细清理" color="#0A84FF" startFrame={22} /> </div> {/* 中间分割线 */} <div style={{ position: "absolute", top: "20%", bottom: "20%", left: "50%", width: 1, background: "linear-gradient(180deg, transparent, #2C2C2E, transparent)" }} /> {/* 右路径 */} <div style={{ position: "absolute", top: "26%", left: "53%", right: "5%" }}> {/* 类似结构 */} </div> {/* 底部标签 */} <div style={{ position: "absolute", bottom: "10%", left: 0, right: 0 }}> <TagGroup startFrame={48} tags={[{text:"主线程隔离",color:"#48484A"},...]} /> </div> </AppleBg> ); ``` #### 竖屏布局安全区参考 ``` ┌────────────────────────────────────┐ │ ██ 顶部 UI 遮挡区 (~120px) ██ │ ← SceneTag 放这里 ├────────────────────────────────────┤ │ top: 8% 页面大标题 │ │ │ │ top: 24-26% 主体内容 │ │ (图表/卡片/架构图) │ │ │ │ bottom: 10-12% 标签组 │ ├────────────────────────────────────┤ │ ██ 底部 UI 遮挡区 (~100px) ██ │ └────────────────────────────────────┘ ``` ### 列表类场景设计模式:全部可见 + 当前高亮 对于「N 层结构」「N 个问题」类内容,推荐: ```tsx // 全部 N 项同时渲染,当前项高亮,其余淡化 const activeIdx = findActiveIndex(progress); LAYERS.map((l, i) => { const isActive = activeIdx === i; const isDormant = activeIdx !== undefined && !isActive; const alpha = isDormant ? 0.25 : 1; // 淡化非当前项 return ( <div style={{ opacity: isDormant ? 0.25 : 1, backgroundColor: isActive ? l.color + "28" : l.color + "0e", border: isActive ? `2px solid ${l.color}` : `1px solid ${l.color}33`, }}> {/* 当前层进度条 */} {isActive && <ProgressBar progress={...} color={l.color} />} </div> ); }); ``` **优势:** - 观众始终能看到整体结构,有全局感 - 当前层高亮 + 进度条提供局部焦点 - 切换时视觉过渡自然,不会有「突然出现/消失」的感觉 ### 场景节奏设计规范 每个场景必须包含**分阶段动画**,避免内容停驻感: ``` Phase timeline(0.0-1.0 进度): 0.00-0.10: 标题淡入 0.10-0.40: 第一组内容 0.40-0.70: 第二组内容 0.70-0.90: 全家桶叠显/总结 0.90-1.00: 收尾 每个卡片底部加进度条: width: ${cardProgress * 100}% 切换节奏:每块内容停留 ≤ 12 秒(30fps ≈ 360帧) ``` ### 标准工作流(Remotion + TTS 同步) ```bash # Step 1: 生成 TTS,测时长 python scripts/v2/tts_harness.py "完整旁白" --output=minimax-output/video ffprobe -show_entries format=duration -of csv=p=0 minimax-output/video/voiceover.mp3 # → e.g. 95 秒 # Step 2: 计算总帧数,分配场景 # total_frames = duration_sec * 30 # 分配比例(示例): # 开场 14% / 四层 25% / 天花板 20% / 架构 28% / 结尾 13% # Step 3: 渲染 + 编码(两阶段) # Step 4: 合并配音 → 压缩 → 发送 ``` ### 视频号平台规范 | 参数 | 要求 | 当前项目设置 | |------|------|------------| | 时长 | 15秒~10分钟(推荐60秒干货型,5分钟深度内容) | **5分钟** | | 封面 | 3:4 或 16:9,第一帧即封面 | 自动取开场帧 | | 比例 | **9:16 竖屏**(1080×1920)或 16:9 横屏 | **1080×1920** | | 字幕 | 必须有,底部居中 | Remotion 渲染含字幕 | | 文件大小 | ≤ 5MB(视频号)/ ≤ 10MB(B站) | 微信 CDN 上传限制约 5MB,超出会报 500 错误 | | 字体大小 | 竖屏最小 36px(正文)/ 72px(标题) | **正文 48-72px / 标题 96-144px** | | BGM | 剪映音乐库 / 无版权音乐 | 自行添加 | | 标签 | 3-5个:1垂类+1热点+1账号标签 | — | > ⚠️ **字体规范**:竖屏 9:16 视频中,1080px 宽度下: > - 标题/金句:**96-144px**(约 2.5-3.7cm 实际宽度) > - 正文/旁白:**48-72px**(约 1.2-1.8cm) > - 底部字幕:**40-48px** > - 所有组件已按此比例放大(相比原始 Remotion 模板) --- ## 发送前压缩(微信 CDN 限制) 微信视频号上传有文件大小限制(约 5MB),直接发送过大的 MP4 会报 CDN 500 错误。 ```bash # 推荐参数(竖屏 1080×1920,目标 ≤ 5MB) ffmpeg -y -i input.mp4 \ -c:v libx264 -crf 24 -preset fast \ -c:a aac -b:a 96k \ -movflags +faststart \ output_compressed.mp4 # 目标文件大小参考: # 视频号/抖音:≤ 5MB(保险) # B站/油管: ≤ 10MB # 微信直接发送:≤ 5MB(实测 3.6MB 正常,7.5MB 报 500) ``` ## 视频号发布检查清单 - [ ] 时长 15秒~3分钟 - [ ] 封面有标题/话题感,第一帧抓眼球 - [ ] 字幕已添加(剪映AI字幕) - [ ] BGM 热门且不侵权 - [ ] 话题标签 3-5个 - [ ] 视频比例符合目标平台 - [ ] 结尾有关注引导 --- ## v2 新增功能索引 | 功能 | 位置 | 说明 | |------|------|------| | TTS Harness | `scripts/v2/tts_harness.py` | chunk + 规范化 + 双层评估 + 跨轮记忆 | | TTS 语速控制 | `scripts/v2/tts_harness.py` | `--speed 1.5` 支持 MiniMax API 直传倍率参数 | | chunk 合并修复 | `scripts/v2/tts_harness.py` | 强制 AAC 128kbps 转码 + concat muxer fallback | | Remotion 渲染 | `scripts/v2/remotion_generator.py` | 生成 TypeScript 场景组件(动画/流程图) | | Remotion 两阶段渲染 | `scripts/v2/remotion_generator.py` | 帧序列输出 → ffmpeg 独立编码,防 timeout | | 竖屏字号规范 | `SKILL.md` | 9:16 1080×1920 正文 48-72px / 标题 96-144px | | 场景节奏设计规范 | `SKILL.md` | 分阶段动画 + 进度条,每块 ≤ 12 秒 | | TTS + Remotion 同步工作流 | `SKILL.md` | 先生成音频 → 测时长 → 分配场景帧数 | | Whisper 语义校验 | `tts_harness.py::evaluate_semantic` | L2 评估:词汇级转写比对 | | 选题自动分析 | `scripts/v2/topic_analyzer.py` | 关键词驱动三模式判断 | | 增强分镜生成 | `scripts/v2/storyboard_generator.py` | 丰富字段 + 多阶段架构 | | 统一流水线 | `scripts/v2/run_pipeline.py` | analyze/storyboard/gen 三个入口 | | Video Prompt 公式 | `storyboard_generator.py::build_video_prompt` | 镜头控制 + 主体 + 氛围 + 动态 + 风格 | | 多模式结构 | `SKILL.md` Mode A/B/C | 自动切换内容风格 | --- --- ## 七、v3 更新记录 ### 已安装依赖 skills - `remotion-video-toolkit` — Remotion 完整工具手册 - `animations` — Web 动画规范(GPU 加速属性、timing functions) ### 模板文件 - `templates/apple/AppleShared.tsx` — Apple 风格可复用组件库(13个组件) - `templates/apple/README.md` — Apple 模板使用文档 ### 本次优化改动 | 改动 | 文件 | 说明 | |------|------|------| | TTS 合并 bug 修复 | `scripts/v2/tts_harness.py` | shutil/os 移到文件顶部统一导入 | | Apple 风格模板 | `templates/apple/` | 深空黑渐变 + Apple 色板 + 大字标题 | | 竖屏字体规范更新 | `SKILL.md` | 节点标题 22-28px / 标签 14-16px | | Apple 设计规范 | `SKILL.md` | 设计 Token + 动画规范 + 图表组件 | | 竖屏安全布局 | `SKILL.md` | top:8% 标题 / top:24% 内容 / bottom:10% 标签 | ### Apple 风格组件(13个) `AppleBg` · `SceneTag` · `HeroTitle` · `LayerStack` · `FlowNode` · `ArrowSVG` · `NineGrid` · `PipelineFlow` · `FuseSteps` · `ToolGrid` · `EngineSpin` · `TagGroup` · `TagPill`

标签

skill ai

通过对话安装

该技能支持在以下平台通过对话安装:

OpenClaw WorkBuddy QClaw Kimi Claude

方式一:安装 SkillHub 和技能

帮我安装 SkillHub 和 videogen-1776021793 技能

方式二:设置 SkillHub 为优先技能安装源

设置 SkillHub 为我的优先技能安装源,然后帮我安装 videogen-1776021793 技能

通过命令行安装

skillhub install videogen-1776021793

下载 Zip 包

⬇ 下载 videogen v2.2.0

文件大小: 369.73 KB | 发布时间: 2026-4-13 12:29

v2.2.0 最新 2026-4-13 12:29
视频号竖屏字体规范:72px标题/32px节点/20px标签 + 精简配色(#007AFF单一强调色) + 60px安全区

Archiver·手机版·闲社网·闲社论坛·羊毛社区· 多链控股集团有限公司 · 苏ICP备2025199260号-1

Powered by Discuz! X5.0   © 2024-2025 闲社网·线报更新论坛·羊毛分享社区·http://xianshe.com

p2p_official_large
返回顶部