免费 AI 成片创作工作流(yrns-video-studio)
一、技能简介
「一句话创意,一部成片」:把短视频/微课制作拆成 8 个可视化步骤,从创意立项一路走到成品合成,无需剪辑基础。
- 自研 8 步工作流:创意立项 → 剧情大纲 → 要素设定 → 形象出图 → 镜头编排 → 首帧画面 → 动态镜头 → 成品合成。
- 视频由 Agnes 免费档生成,当前免费、不计量、不扣费;高峰期队列满时自动排队抢位。
- 三端形态:网页版(任意浏览器)、桌面本地守护(本机落盘 + 合成)、服务端合成(手机也能出片)。
- 隐私优先:Agnes 密钥仅保存在使用者本机浏览器、仅向 Agnes 官方直连,绝不上传任何第三方;无摄像头/定位调用,无第三方埋点。
- 设计:张兴焕(山东省中小学优秀班主任工作室)。版本:86。
二、使用场景
- 教师微课、公开课视频素材快速产出
- 短视频、宣传片从脚本到成片一条龙
- 课堂故事化教学(如《西游记·水帘洞》10 秒短片)
- 无剪辑基础、不想装专业软件的个人创作者
三、架构须知(重要)
本技能交付的是「网页工作流 + 后端服务 + 部署说明」,不是单一 exe。三者各司其职:
- 网页版前端(
assets/yrns-video-studio.html):浏览器打开即用,8 步流程、分镜生成、合成、资产库全部在页面内完成。纯静态文件,可托管在任何静态服务器/CDN。 - 桌面本地守护(您自己机器上的 EXE / 守护进程,监听
127.0.0.1:3210):把分镜视频落盘到本机、在本机合成成片;密钥与素材不出本机,最适合作者自用与离线制作。 - 服务端合成(
assets/merge_server.js/merge_server.py):部署到您的服务器后,手机等公网设备也能合成成片——专门解决手机轻量 WebView 跑不动 ffmpeg.wasm、跨域直链被拦截导致合不成的问题。
> 关键点:视频内容由 Agnes API 生成。Agnes 密钥(免费档)由使用者自行在页面填写,只存浏览器 localStorage,只向 Agnes 官方直连;公网部署时服务器永远拿不到访客密钥。
四、环境要求
- 部署端(任选其一):Node.js 18+ 或 Python 3.8+;系统须装
ffmpeg(含 libx264,服务端合成必需)。 - 使用端:任意现代浏览器(推荐 Chrome / Edge / Safari;避开百度等轻量 WebView,其本地存储不持久、定时器会被节流)。
- 本地守护(可选):Windows 环境,EXE 或启动脚本。
五、部署(一键化,零操作)
将本技能 assets/ 内的文件按以下三步上线(以 CloudStudio / 任意支持 Node 或 Python 的托管为例):
- 前端:把
assets/yrns-video-studio.html作为站点首页(或index.html)托管,对外提供https://您的域名/。 - 后端:任选 Node 或 Python 运行合成服务,并用反向代理把以下路径同源暴露(避免新跨域):
-/api/download、/api/upload-merged、/api/merge、/api/merge/health(来自merge_server.js/.py)
- 可选匿名统计:/api/usage、/api/stats、/stats.html(来自usage_server.js/.py) - ffmpeg:
sudo apt-get install -y ffmpeg(必须含 libx264)。
> 不想额外起进程?把 merge_server / usage_server 的函数按您现有后端栈合并即可(详见 assets/FRONTEND_PATCH.md 末尾说明)。
六、快速开始
- 浏览器打开
https://您的域名/,首次在设置里填入您的 Agnes 免费档 API Key(默认密码框掩码,仅存本机)。 - 第 1 步填创意 → 依次「下一步」,系统自动生成大纲、要素、形象图、镜头脚本、首帧。
- 第 7 步「🎥 生成全部分镜视频」(单镜头也可逐条生成);队列满时自动排队,无需守着。
- 第 8 步「合成成片」;完成后务必点「⬇ 下载成片 mp4」落盘——网页资产库仅在当前浏览器,换设备/清缓存即失效,下载才是真备份。
- (可选)桌面端启动本地守护,分镜与成片自动落本机
outputs/、media/,跨设备隔离。
七、八步成片流程对照表
| 步 | 环节 | 产出 | 说明 |
|---|---|---|---|
| 1 | 创意立项 | 一句话主题 | 输入题材/主旨 |
| 2 | 剧情大纲 | 分镜剧本 | AI 扩写叙事结构 |
| 3 | 要素设定 | 角色/场景卡 | 统一视觉要素 |
| 4 | 形象出图 | 角色/场景图 | 图生图保持一致性 |
| 5 | 镜头编排 | 镜头列表 | 时长/景别/运镜 |
| 6 | 首帧画面 | 每镜首帧 | 定构图与人物 |
| 7 | 动态镜头 | 分镜视频 | Agnes 生成,可单条/一键 |
| 8 | 成品合成 | 成片 mp4 | 服务端或本机 ffmpeg 拼接 |
八、参数与配置
- Agnes Key:页面设置填写,仅存本机;可随时改/清空。
- 画幅与时长:每镜头支持 9:16 / 16:9 等比例与自定义时长。
- 服务端合成开关:部署
merge_server后,前端会自动探测/api/merge/health,手机/公网版即走服务端合成(零算力、不受 CORS)。 - 匿名统计开关:部署
usage_server后,仅记录匿名使用量(随机 id + 事件 + 浏览器类型),不含任何个人信息;不部署则完全不发送。
九、故障排查
| 现象 | 处理 |
|---|---|
| 手机合不成片 | 服务端合成未部署,或手机用了轻量 WebView;改用真 Chrome 并已部署 merge_server |
| 资产库空白 | 换了浏览器/设备/清了缓存;回当初合成的浏览器查看,或重新下载落盘 |
| 一键生成点了没反应 | v2.86 已加 try/finally 锁保护;若仍卡,刷新页面重点,避免用 WebView |
| 一直「云端已满·排队」 | 高峰限流(免费档约同时 1 任务);过 23:00 更宽松,或点按钮手动催一次 |
| 前端报错/白屏 | 确认托管的是 assets/yrns-video-studio.html(v2.86 最终版),非旧版 |
十、隐私与安全
- 密钥不外泄:仅
localStorage本机;带密钥的/api/config有hasLocal守卫,公网不发送;后端接口均不接收密钥。 - 无敏感权限:无摄像头/定位/麦克风调用(
camera字样均为影视"运镜"术语)。 - 无第三方埋点:无 GA/百度/sendBeacon 第三方;仅同源匿名
/api/track(可选)。 - 品牌如实归因:Agnes 为如实标注其 API;UI 不冒用任何官方背书。
- 数据自持:统计落本机
usage_data.json,不上云、不回传第三方。
十一、边界与注意
- 免费档有并发与排队限制,不适合大规模批量生产。
- 本机守护生成的
127.0.0.1媒体路径换设备不可见,需用下载落盘或拷贝文件解决。 - 网页资产库是临时索引,下载成片 mp4 才是可靠备份。
- 轻量 WebView(百度/部分手机浏览器)本地存储不持久、定时器被节流,尽量用真浏览器。
十二、文件清单
yrns-video-studio/
├── SKILL.md 本说明(13 节骨架)
├── README.md 面向使用者的快速上手
├── slug.json SkillHub 发布元数据
├── _meta.json 发布元数据(含 ownerId/version)
├── requirements.txt 后端依赖与环境说明
├── _check.py 发布前一致性校验(13 节骨架 + 合规红线,零依赖)
└── assets/
├── yrns-video-studio.html 前端最终版(v2.86:一键锁修复 + 署名合规 + 免费档表述)
├── merge_server.js 服务端合成(Node 版,零依赖 express)
├── merge_server.py 服务端合成(Python/Flask 版)
├── usage_server.js 匿名使用统计(Node 版)
├── usage_server.py 匿名使用统计(Python/Flask 版)
├── FRONTEND_PATCH.md 前端改动逐条说明(版本漂移时可手动合并)
└── PUBLISH_COMPLIANCE.md 对外发布合规自查清单(SkillHub/公众号/物料)
十三、合规与发布须知
- 署名:统一为「设计:张兴焕(山东省中小学优秀班主任工作室)」,已去除过宽的"版权"主张。
- 免费表述:使用"免费档 / 当前免费、不计量、不扣费",不对第三方服务做长期免费的绝对化承诺。
- 不点名竞品:对外发布(SkillHub 简介、公众号、物料)不得出现任何竞品名称或"仿/同款/平替"等关联表述;本包全文件已扫描为 0 处竞品字样。
- 不假称官方关系:不对本工具与任何平台的关系做未经证实的官方化背书表述。
- 发布前请照
assets/PUBLISH_COMPLIANCE.md逐条打勾,并运行其"一键文本自检"命令确认无违规字样。 - 本包自带
python3 _check.py一致性校验(13 节骨架 + 红线字样 + 无硬编码密钥),发布前跑一遍应全绿。