SKILL.md 17 KB


name: beauty-talk-science-video-script description: 生成「美业口播科普视频脚本」并直出视频的通用技能。面向阿里云百炼 wan3(万相3.0)文生/参考生视频,把选题/人设/画幅/时长/场景/服装/造型/画质/穿插/字幕/配乐等元素参数化;人物五视角图、制服细节图、立体LOGO、音色四项固定素材来自技能素材包(assets/brand/)或公网URL(config.brand_assets)并锁定作生成输入;据其生成人物完整形象照、门店内景(含LOGO)、插画供用户确认,确认后的物料作为参考图提交 wan3;口播转为口语化;整段视频一个片段、≤30秒;确认后调用 scripts/generate_video.py 提交 wan3 异步任务、轮询、下载本地;修改即整段重发(不支持二次创作)。

agent_created: true

美业口播科普视频脚本生成技能(百炼 wan3 直出版)

Overview

面向阿里云百炼 · 万相 3.0(wan3.0-video),把"美业口播科普短视频"从零散需求沉淀为一份带固定素材、可直接调用 wan3 生成视频的结构化脚本。核心约束来自用户硬性要求:

  1. 人物必须用指定的(素材包 assets/brand/character_5view.* 或公网 URL config.brand_assets.character_5view.url)人物五视角图(固定锁定)。
  2. 制服必须参考指定的(素材包或 URL)制服细节图(可换款式/颜色,胸牌绝对不变)。
  3. 门店内景前台或某场景必须有指定的(素材包或 URL)怡呵美立体 LOGO(合成进参考图)。
  4. 音色必须用指定的(素材包或 URL)音色文件作 reference_audio。
  5. 口播文案由用户内容转换为口语化适合口播的文案。
  6. 整段视频一个片段、≤30 秒;超 30 秒则反馈用户精简、循环直到满足。
  7. 确认后调用 百炼 wan3 API 发起生成、轮询完成、存储本地、给用户确认。
  8. 不支持二次创作:每次修改都重新组装完整脚本重发 wan3(不用编辑/延长模式)。

跨团队复用说明

  • 技能品牌/人设/视频工具三层解耦:可变项参数化在 references/elements.md;固定品牌素材放在 assets/brand/(本地兜底)或 scripts/config.json 的 brand_assets 段(公网 URL,推荐);视频工具锁定百炼 wan3,工程要点全在 references/wan3-workflow.md。
  • 分发:本技能为「暨北内部 - 朵朵」专用锁定版,OSS 素材 URL、百炼 base_url、workspace_id 均已固定在 scripts/config.json;其他同事把 git 仓库 clone 到 ~/.workbuddy/skills/beauty-talk-science-video-duoduo/(个人级)或项目 .workbuddy/skills/(团队级),复制 .env.example 为 .env 填入自己的 DASHSCOPE_API_KEY 即可启用,无需改任何配置。详见 docs/暨北内部-朵朵口播视频专用技能.md。

凭证准备(首次运行前必做)

百炼 wan3 视频生成需要 北京地域的 DashScope / 百炼 API Key(以 sk- 开头)。你之前看到的 sk-xxx 只是占位符,必须替换成在控制台创建的真实 Key。操作如下:

  1. 获取真实 Key:登录阿里云百炼控制台(Model Studio 或 DashScope 控制台)→ 右上角头像 → API Key 管理 / API-KEY → 切换地域到 北京(cn-beijing) → 创建 API Key(权限选"全部",归属工作空间默认)→ 复制 sk- 开头的串(只显示一次,立即保存)。
    • ⚠️ 每个地域的 Key 独立、不能跨地域使用;你的工作空间在 cn-beijing,必须创建北京地域的 Key,否则调用直接失败。
  2. 填入 Key(脚本自动识别,二选一):
    • 方式 A(单次,推荐调试):运行生成脚本的命令前加前缀,例如 DASHSCOPE_API_KEY=sk-真实key python scripts/generate_video.py ...(仅本次进程生效,适合 WorkBuddy 终端环境)。
    • 方式 B(持久):复制 scripts/.env.example 为 scripts/.env,写入一行 DASHSCOPE_API_KEY=sk-真实key;脚本优先读环境变量、其次读 .env。
    • ⚠️ .env 含密钥,严禁提交 git 或随技能 zip 分发;重新打包技能前请删除本地 .env。
  3. 确认地域一致:config.json 的 region=cn-beijing 与 Key 地域必须一致,workspace_id=gxuwdo0w0g13zbax 已填好。

何时使用

  • "帮我做一条美业口播视频(给 wan3/百炼)" / "出个护肤科普短视频脚本并生成"
  • 用户上传/指定人物五视角图、制服细节图、LOGO、音色,或要求生成可直出的视频脚本与物料

资源引用

  • references/elements.md — 全部可参数化元素与可选项(含门店风格/插画风格/整体色调)。
  • references/wan3-workflow.md — 百炼 wan3 端点/鉴权/参考映射/单段 prompt 范式/LOGO 合成/不二次创作。
  • references/asset-collection.md — 固定 4 项素材包清单 + 自动生成门店3/插画2确认 + LOGO 合成 + 物料登记 + wan3 映射。
  • assets/script-template.md — 单段结构化 Markdown 脚本骨架(含物料清单与 wan3 请求段),填充后即为交付物。
  • scripts/generate_video.py — 解析素材(公网URL直传 / 本地图base64直传)→建任务→轮询→下载本地。
  • scripts/config.json — region / workspace_id / model / resolution / ratio / output_dir(密钥走环境变量)。

执行流程

Step 1 — 收集基础输入(提示词优先,缺失交互补全)

  1. 解析用户提示词,提取已指定元素:选题/口播素材、画幅、平台、人设、目标人群、场景、机位、运镜、造型、画质、穿插类型、字幕、配乐、情绪、品牌露出、门店/插画/色调风格、自带素材包路径。
  2. 对照 references/elements.md,将未指定的基础元素用一次交互式问答(AskUserQuestion,批量提问,每题给可选项+默认标注)补全;具体值不在可选项内时以用户值为准。

Step 2 — 文字版风格问卷(流程最前端)

生成任何图之前,用一次交互式问答询问用户对以下元素风格的文字偏好(选项见 references/elements.md):

  • 门店/场景风格(元素 22)|插画风格(元素 23)|整体色调(元素 24)|画质质感(元素 15)|情绪基调(元素 20)

  • 用户逐条给出 → 后续按这些风格自动生成物料图。

  • 用户答"无特别要求/你定" → 进入自动模式,按默认风格生成示例图,让用户在看图时再挑(见 Step 4)。

Step 3 — 锁定固定品牌素材(URL 优先,本地文件兜底,校验存在)

按 references/asset-collection.md 第一节,逐项解析并校验 4 个固定素材(它们在本流程中是"生成输入",用于生成最终确认物料,默认不直接提交 wan3):

  • 每项优先读 scripts/config.json 的 brand_assets.<key>.url(公网 URL,调用 wan3 时固定素材可直接透传);若留空则回退读取 assets/brand/ 本地文件。
  • 人物五视角(character_5view)、制服细节(uniform_detail)、立体 LOGO(logo_3d)、音色(voice_ref,≤15s)。
  • 每项都必须有来源(URL 或本地文件),二者皆无 → 主动提示用户填 URL 或放文件,不进入后续生成。
  • 锁定后:人物五视角 + 制服细节用于生成「人物完整形象照」、LOGO 用于生成「门店内景照片」、音色直接作 Audio 1;胸牌样式在锁定时即标注"不可变更"。

Step 4 — 生成最终确认物料(人物形象照 + 门店内景 + 插画)并确认

按 references/asset-collection.md 第二节,用图像生成工具基于锁定素材生成并展示,请用户确认后才作为 wan3 参考图:

  1. 人物完整形象照 — 1 张(可生成 2–3 张供选):以 character_5view 为人物参考、uniform_detail 为制服参考,合成「人物身穿制服的完整形象照」;胸牌样式与 uniform_detail 完全一致、不可变更。→ 确认后作为 Image 1。
  2. 门店内景照片(含怡呵美 LOGO)— 3 张位置供选:以 logo_3d 为 LOGO 参考生成门店内景(位置1 面诊桌正对面 / 位置2 前台侧含 LOGO / 位置3 产品护理区),确保前台出现立体 LOGO。→ 用户确认采用哪张作为主场景,记为 门店_内景_采用.jpg,作为 Image 2。
  3. 内容插入插画参考图 — 2 张(抽象可视化风格启发,无真人皮肤/血液/文字)→ Image 3 / Image 4。

展示后请用户逐类挑选/确认;若用户未做任何选择 → 系统自动随机指定一组(记录"已自动随机指定")继续。确认后的物料登记进脚本「物料清单」。

Step 5 — 处理口播文案(转口语化 + 30 秒硬卡)

  • 用户自带内容/口播 → 转换为口语化、适合口播的文案(自然亲和、带 / // 停顿符号、科普准确)。
  • 用户只给选题/知识点 → 技能生成口语化口播文案。
  • 30 秒硬卡循环:按"30 秒 ≈ 120–150 字"估算字数;若 >150 字 → 反馈用户精简,等用户回精简版后重新估算,循环直到 ≤150 字(对应 ≤30 秒)才继续。绝不为凑时长拆分片段。

Step 6 — 确认口播文案(用户确认后才进下一步)

  • 把 Step 5 产出的口语化口播文案(含字数校验)单独呈现给用户,请用户确认或修订。
  • 用户未明确确认(或提出修改)→ 回到 Step 5 重做,循环直到用户确认。
  • 此步确保「口播文案已确定」,是 Step 7 插画插入点确认的两大前置之一(另一前置是 Step 4 已确认插画)。

Step 7 — 确定插画插入点(插画 + 口播都确认后)

  • 前置:Step 4 已确认插画(Image 3/4)、Step 6 已确认口播文案。两者缺一不进本步。
  • 请用户确定:插画(抽象可视化)从口播文案的哪一句话开始融入画面作为起始点。
    1. 把已确认的口播文案按停顿(/ 短停、// 长停)切分为带编号的分句,逐句列出(① / ② / ③ …)供用户点选。
    2. 询问用户:插画从哪一句开始?(若有多张插画 Image 3 / Image 4,可一并确认各自对应哪一句;默认从同一句起连续融入)。
    3. 用户选定第 N 句 → 记录「插画起始句:第 N 句「原文」」写入脚本「插画插入点」字段(见 assets/script-template.md 第四节补)。
    4. 用户无偏好 → 系统按语义建议一个起始句(通常选「讲到核心知识点那句」),标注"已自动建议"并请用户最终确认,不默认静默落定。
  • 该插入点直接决定 Step 8 单段 Prompt 中"画面融入插画"的时机,必须显式写进 prompt。

Step 8 — 组装单段 30 秒脚本(编导分镜级)

用 assets/script-template.md 填充,产出单份结构化 Markdown: 一、角色定义 → 二、固定品牌素材 → 三、自动生成素材 → 四、口播文案(口语化,字数校验)→ 四-补、插画插入点 → 五、单段视频 Prompt(整段 30 秒,编导分镜版,含 Image 1–5 / Audio 1 引用)→ 六、保留分析 → 七、硬性禁令 → 八、AI 口令(wan3 请求:命令 + JSON)。

  • 第五节单段 Prompt 必须按 wan3-workflow.md 第四节「编导分镜版」范式写,像专业编导一样覆盖四块:
    1. 人物行为动线(元素 25):30 秒单段内 ≤2 个动作切换,且方向不反向("走动→落座"则落座后不再起身;"坐姿→起身走动"则走动后不再落座);口播时不设计"整理产品"等手部摆弄动作,手部只用自然手势 / 点头;全程在门店场景里与场景互动,绝不全程正对镜头站桩。
    2. 运镜组合(元素 12):每条约 2–3 种手法按时间轴穿插(跟随 / 推近 / 拉远 / 横移 / 手持微晃),随机组合、不全程单一机位。
    3. 插画展示方式(元素 26):在「插画插入点」处触发,随机选用全屏铺盖 / 圆形画中画 / 顶部或底部条状画中画 / 侧边 PiP,同一视频多次出现可轮换方式,不固化一种。
    4. 门店丰富元素(元素 27):在门店场景里随机点缀 2–3 个道具 / 人物(前台 / 美容床 / 沙发 / 桌椅 / 其他店员虚化走过),增加景深与真实感。
  • 口播全文直接写进 prompt 作对白;在「插画插入点」指定句处明确写"讲到[第 N 句:原文]时,画面以[某展示方式]融入 Image 3 / Image 4 风格的抽象可视化";音色用 Audio 1 引用。
  • 引用的是确认后的生成物料:Image 1 = 人物完整形象照、Image 2 = 门店内景照片(含 LOGO)、Image 3/4 = 插画;LOGO 已在 Step 4 生成门店内景时落位,无需单独合成。

Step 9 — 逐步确认后交付(贴合"逐步确认"习惯)

  1. 呈现「已确定元素清单」+「口语化口播文案(含字数校验)」+「插画插入点:第 N 句」+「固定素材(URL/本地,生成输入)」+「生成并确认的最终物料(人物完整形象照 / 门店内景照片 / 插画,含自动随机指定的项)」+「单段 Prompt / wan3 请求」。请用户确认或修正。
  2. 用户确认后,将完整脚本写入工作区(如 美业口播科普视频脚本_[主题].md)并 present;参考物料图一并随交付提供。
  3. 确认无误后再进入 Step 10 实际调用 API(避免浪费生成额度)。

Step 10 — 调用百炼 wan3 生成视频 + 下载 + 确认

  1. 确保 DASHSCOPE_API_KEY 环境变量(或同目录 .env)已设置;scripts/config.json 的 workspace_id / base_url / brand_assets URL 为固定预填(暨北内部朵朵专用),无需改动。
  2. 执行 scripts/generate_video.py(参数见脚本模板第八节):提交确认后的生成物料(人物完整形象照 / 门店内景照片 / 插画,本地图编码 base64 直传;音色 voice_ref 按 URL 直传或本地 base64 直传)→ 建任务 → 轮询 → 下载到 output_dir。
  3. 捕获脚本 stdout 的 VIDEO_PATH=...,把生成的视频 present 给用户确认。
  4. 若生成失败/不满意 → 回到 Step 8 修改脚本,整段重发(见 Step 11)。

Step 11 — 修改即整段重生成(不支持二次创作)

  • 任何元素变更(口播、服装颜色、场景、插画风格、插画插入点等)→ 重新组装完整脚本(Step 8)→ 重新确认(Step 9)→ 重新调用 wan3(Step 10)。
  • 严禁使用 wan3 的视频编辑/延长模式(对应第 8 条)。每次都是一条全新的整段生成。

关键约束(贯穿全程)

  • 固定 4 项永远锁定(作生成输入):人物五视角/制服细节/LOGO/音色来自素材包(assets/brand/)或公网 URL(config.brand_assets),不可被自动生成覆盖;制服胸牌样式绝对不可变。
  • 提交的是确认后的生成物料:wan3 实际接收 Image 1=人物完整形象照、Image 2=门店内景照片(含 LOGO)、Image 3/4=插画、Audio 1=音色;原始 4 项仅用于生成这些物料,不直接提交。
  • 风格先确认后出图:发起任务先文字版问风格,再生成「人物完整形象照 + 门店内景(含 LOGO)+ 插画」示例图供确认。
  • 单片段 ≤30 秒:口播超 150 字必须反馈精简、循环直到满足;不拆分片段。
  • LOGO 必现:在生成门店内景照片时以 logo_3d 为参考落位(Image 2),确保成片前台有怡呵美立体 LOGO。
  • 原生音视频:口播写进 prompt 作对白,音色作 reference_audio,wan3 一次性生成画面+对白+口型+环境音。
  • 插画插入点确认:插画与口播文案都确认后,必须请用户指定插画从口播哪一句开始融入,再组装 prompt(见 Step 7);不静默默认。
  • 编导分镜(不站桩):单段 Prompt 必须像专业编导覆盖四块——人物行为动线(按内容长短设计走动/坐/起/落座,不全程正对镜头)、运镜组合(2–3 种随机穿插)、插画展示方式(全屏/圆形PiP/条状PiP/侧边PiP 随机混用不固化)、门店丰富元素(前台/美容床/沙发/其他人物虚化走过随机点缀);详见 wan3-workflow.md 第四节与 elements.md 元素 12/25/26/27。
  • 口型对齐由 wan3 原生完成,脚本只保证口播文案与停顿完整。
  • 硬性禁令优先级最高,必须写入脚本第七节,口播文字绝不转化为屏幕文字(LOGO 视觉露出除外)。
  • 真实质感:避免卡通化、塑料皮肤、夸张嘴型、场景跳变、AI 痕迹过重。