古诗文本意境短视频生成

SKILL前端设计

原名 qingfeng-video-poem

前端设计 未标注权限 许可证不明确
安装这个技能

给出诗名、全诗或一段叙事文本,自动拆解分镜、生成国风分镜图与动态镜头,配上朗诵和背景音乐合成短视频。

一句话选型结论

按资料字段整理

古诗文本意境短视频生成是前端设计类的 Agent Skill,安装方式未标注,权限级别未标注,许可证不明确,有可直接复制的安装命令。技能本质是给模型读的说明书,效果取决于模型与客户端;装完先用一个小任务验证,再放进正式流程。

分类前端设计 安装方式未标注 权限级别未标注权限 许可证许可证不明确
累计安装 未标注 本周 未标注
GitHub 星标 未标注 仓库 未标注
下载量 未标注 技能市场下载数
权限级别 未标注权限 安装前请确认风险范围
许可证 许可证不明确 未说明

安装

未标注
在支持 Skills 的客户端里执行,装完问一句「你有哪些技能」验证
skillhub install user_b1971978/qingfeng-skills-02
  1. 1
    确认客户端支持

    确认你的客户端支持 Skills(Claude、Codex、Cursor 等),并升级到较新的版本。

  2. 2
    拿到技能文件

    执行上面的命令安装;也可以把仓库里的 SKILL.md 手动放进客户端的 skills 目录。

  3. 3
    刷新技能列表

    重新打开客户端,或刷新技能列表,让新放进来的技能被加载。

  4. 4
    验证是否生效

    问一句「你有哪些技能」,确认列表里出现它,再拿一个小任务试跑。

技能档案

前端设计
字段来自技能仓库与公开索引,中文说明由本站标注
作者 / 维护方user_b1971978仓库 未标注 · 版本 未标注
宿主客户端未标注技能可被这些客户端加载
安装方式未标注安装包 community
权限级别未标注权限安装前请确认风险范围
许可证未说明许可证不明确,商用前请自行确认条款
仓库可用性available技能仓库当前是否可访问
最近核验2026-11-06上游最后核验时间 · 数据更新 2026-11-06
正文体量18.4 KBSKILL.md 原文大小,越大说明说明书写得越细

能做什么

0 项能力
上游给出的能力概览与适用场景
古诗配视频叙事文案做视频游记文本成片

典型使用场景

3 类
按分类整理的常见用法,具体以 SKILL.md 为准
出页面与组件

按描述生成页面结构和组件草稿。

调整样式与布局

改间距、配色与响应式布局。

生成设计说明

把设计稿整理成开发能接的说明。

选择建议

装之前先看这几条
按条目字段给出的判断,不替你决定用不用

值得选的地方

  • 有可直接复制的安装命令,不用自己翻文档找入口。

先想清楚的地方

  • 没有标注权限级别,实际能做什么要装好后确认。
  • 许可证不明确,商用或二次分发前先到仓库确认条款。
  • 没有做站内核验,内容以作者仓库为准。
  • 技能只是说明书,实际效果取决于模型与客户端,装完先用小任务试一遍。

更适合

  • 需要在前端设计场景里给模型补一套做法的人。
  • 愿意先读一遍 SKILL.md、确认它会让模型做什么的人。

不太适合

  • 对许可证要求很严、必须明确可商用的人。
  • 只想装完就自动变强、不打算看说明书的人。

同类对比

6 个同类
同分类里挑最接近的几条,字段以各自详情页为准
技能权限级别安装方式累计安装宿主客户端安装命令
古诗文本意境短视频生成当前 未标注权限 未标注 未标注 未标注 有
前端设计 只读 GitHub 仓库 882.3 万 Codex、Claude、Cursor 有
Vercel 组合模式 联网访问 GitHub 仓库 385.9 万 Codex、Claude、Cursor 有
Vercel React native skills 前端 只读 GitHub 仓库 246.9 万 Codex、Claude、Cursor 有
adapt 搜索 浏览器控制 GitHub 仓库 202.7 万 Codex、Claude、Cursor 有
使用我的浏览器 浏览器控制 GitHub 仓库 184.8 万 Codex、Claude、Cursor 有

SKILL.md 全文

18.4 KB
模型实际读到的说明书原文,来自技能仓库

古诗视频导演(qingfeng-video-poem)

把一首诗(只需给诗名,或给全文)自动变成一段画面精致、剧情连贯、音画同步的竖屏短视频。
主打差异化:专业脚本导演 + 高精度水墨/国风/写实画面,区别于普通模板化 AI 视频。

与原技能的关系

原技能(ancient-poem-video-generator)依赖 image-generation-super + sora-video-generation + minimax-tts + ffmpeg 四个外部 API。
本技能将其重写为本地可跑、零外部 API 成本的工作流:
- 画面:默认用 WorkBuddy 内置 ImageGen 出分镜首帧、VideoGen(last_image) 做首尾帧插值(真正的 AI 动态,替代原 sora/ffmpeg 假动画)。但技能在阶段 0.5 支持更换为其他已安装的图像/视频技能(如 QClaw、Seedance 等通用技能),做到模型可插拔。
- 朗诵:用 gen_tts.py(edge-tts 免费中文神经语音,Windows 有 SAPI 兜底),并输出 timeline.json 精确时间轴
- BGM:gen_bgm.py 按诗情绪本地程序化生成(五声音阶,无 API)
- 合成:compose_video.py 以朗诵时间轴为主时钟,严格音画同步

何时使用

  • 用户说「给首诗/诗名做视频」「把《XX》做成短视频」「古诗视频」
  • 用户已有一首诗想可视化
  • 用户给一段叙事文本(散文/小说片段/故事/游记/文案),想做成短视频
  • 需要批量把若干古诗变成短视频

环境前置(一次性)

  • ffmpeg / ffprobe:本机已具备
  • Python 包:edge_tts、numpy、scipy(安装在隔离 venv,见下方命令)
    C:/Users/chenw/.workbuddy/binaries/python/envs/default/Scripts/python.exe -m pip install edge_tts numpy scipy
  • Windows 中文字体(楷体 simkai.ttf 等)已具备

全流程(6 阶段)

阶段 0:解析输入 + 理解先行(统一产出 script.json)

本技能输入有三种,阶段 0 末尾都产出 <workdir>/script.json,阶段 1–5 只认它(结构见 references/script-schema.md):

A. 只给诗名(没给全文) —— 检索本地诗库(技能自带库 + 工作目录缓存库合并查询):

python <skill>/scripts/resolve_poem.py --name "<诗名>" --user-db <workdir>/poems_user.json --out <workdir>/script.json
  • 命中(技能库或缓存库任一):得到 title/author/dynasty/lines/mood/style/imagery/scene_desc/n_scenes。
  • 未命中:技能库约 41 首,缓存库按需累积。由你联网检索全文、确认作者朝代,用 --append 写入工作目录缓存库(绝不写技能自带库),再重试:
python <skill>/scripts/resolve_poem.py --append --user-db <workdir>/poems_user.json \
  --entry '{"title":"...","author":"...","dynasty":"...","lines":["..."],"mood":"serene","style":"ink","imagery":["..."],"scene_desc":"..."}'
  • 或请用户直接粘贴全诗(走路径 B)。

B. 用户已给全诗:跳过检索,用诗句作 --lines,mood 默认 serene、style 默认 ink,据意境调整,直接写 script.json。

C. 任意叙事文本(散文/小说片段/故事/游记等):不查诗库。由你(大模型)按"理解先行"分析文本、拆解分镜,直接产出 script.json:
- 按语义断点把文本切成镜头 segments(建议 ≤ 8 镜;封面镜 + 每 segment 一镜,n_scenes = len(segments)+1);
- 每个 segment 填 text(该镜旁白)/mood/style/imagery/scene_desc/action_start/action_end;
- 顶层填 consistency_brief(角色表 characters + 风格锁 style_lock + 场景锚 setting),保证跨镜人设/画风一致——叙事类重点;
- mood 取整体调性(nostalgic/serene/melancholy/heroic/joyful),style 由调性推断(ink/gongbi/realistic/guofeng);旁白默认用原文句子。

> ⚠️ 铁律一(理解先行):生成任何图像前,必须先吃透输入的含义、语境与意图。
> - 古诗:推敲逐句字面含义、创作背景、画面转译、动作设计(见下 4 步)。
> - 自由文本:先判叙事主线/人物/场景/情绪走向,再分镜;禁止不假思索把关键词塞进模板就调用 ImageGen。
> 每镜生图前必完成:①字面/语义含义 ②语境与意图 ③画面转译(人物姿态/动作/景物/光影/构图)④动作设计(首帧→尾帧真实动作差)。
> 1. 字面/语义含义:这句/这段在描述什么场景、动作或信息?
> 2. 语境与意图:何时何地?叙述者/诗人心境?要传递什么情绪?
> 3. 画面转译:应呈现什么具体画面?含哪些元素(人物姿态/动作/景物/光影/构图角度)?
> 4. 动作设计:该镜首帧→尾帧设计什么真实动作?(人物姿态改变 / 物体位移 / 光影变化)
>
> 禁止不假思索地把文本关键词塞进模板就调用 ImageGen——那会导致「床前明月光」只出一张床、「举头望明月」是张静止图这类错误。

镜头规划:封面镜 1 个 + 每 segment/每句 1 个(n_scenes = 镜头单元数 + 1)。封面镜用 scene_desc 的意象。
对每个镜头,须预先设计首帧画面与尾帧画面的动作差异(见阶段 1)。

阶段 0.5:选择生图 / 生视频模型(模型可插拔)⚠️ 每次新项目先确认

不同用户的技能环境不同,生图/生视频用的可能是别的已安装图像/视频技能,
并不一定是 WorkBuddy 内置的 ImageGen/VideoGen。因此在真正生图、生视频之前,必须先梳理
用户环境里可用的生图/生视频能力,让用户自己选(确认环节)。

0.5.1 梳理可用能力(inventory)

  • 生图候选:
  • WorkBuddy 内置 ImageGen(默认·推荐,总是可用,支持文生图+图生图尾帧)
  • 其他已安装的图像生成技能:从当前会话可用技能列表筛选名字/描述含「图像生成 / 文生图 / 图生图」的(如 qclaw-generate-image)
  • 生视频候选:
  • WorkBuddy 内置 VideoGen(默认·推荐,支持 last_image 首尾帧插值,保证人物真动作)
  • 其他已安装的视频生成技能:如 seedance-director(先 Skill 加载确认其首尾帧接口)
  • ffmpeg 兜底(无模型,脚本 gen_scene_video.py,首尾帧交叉淡入 / Ken Burns)
  • 梳理方式:查看当前可用技能列表,挑出相关的图像/视频技能;内置工具始终列入候选。

0.5.2 让用户选择(AskUserQuestion)

  • 用 AskUserQuestion 分别问生图模型与生视频模型两个独立问题,把 0.5.1 梳理出的候选作为选项,
    内置 ImageGen/VideoGen 标记为「(推荐)」。
  • 若某类候选超过 4 个,按相关性截取前 4 个(用户仍可用「其他」自填技能名)。

0.5.3 保存选择(model_config.json)

把选择写入两处,避免每次都问:
- <workdir>/model_config.json(本次项目)
- <skill>/model_config.json(全局默认,下次直接沿用)

{ "image_provider": "builtin_imagen", "video_provider": "builtin_videogen", "updated_at": "YYYY-MM-DD" }
  • 若全局默认已存在且用户未要求更换,直接沿用并提示「沿用上次选择:生图=… 生视频=…」;
    用户说「换模型」时再重新选。
  • 若用户选了某个技能型 provider:先 Skill 加载该技能,按其 SKILL.md 的准确接口调用(见 references/model-providers.md 调度表)。

> 各 provider 的具体调用方式与参数差异、能力受限时的退化方案,见 references/model-providers.md。

阶段 1:生成分镜首帧图 + 尾帧图(用所选生图模型,每镜两张)

读取 <workdir>/script.json 的 segments / consistency_brief / style / imagery。
使用 model_config.json 中的 image_provider 生成(默认内置 ImageGen;若选了其他技能,按 references/model-providers.md 调度表调用)。
对「封面镜 + 每 segment/每句」逐一生成首帧与尾帧共 2 × n_scenes 张图:

> 一致性注入(叙事类重点):把 consistency_brief 的内容作为固定前缀拼进每一张首/尾帧 prompt——具体是 style_lock(画风+色调+质感)+ setting(时间/地点/光影)+ 每个出场人物的 characters[].appearance(固定外貌)。这样跨镜人设与画风保持一致,避免"每镜一个人设、画风漂移"。古诗若无具体人物,characters 可空,仅用 style_lock/setting。

首帧(img_ii_first.png)——动作起点

  • size: 竖屏用 "1024x1536",横屏用 "1536x1024"
  • style: 依 script.json 的 style 传对应词(见 prompt-templates.md 画风映射)。推荐 工笔画(精细写实)优于宽松水墨
  • prompt: 用 references/prompt-templates.md 中对应画风的「分镜提示词」模板,把理解先行分析结果(阶段 0 铁律一)填进去。必须包含:
  • 具体场景描述(不是泛泛关键词,而是「唐代旅舍卧房 interior、小格窗、月光照地」这种精确画面)
  • 人物的起始姿态/动作
  • 建筑/道具比例准确的约束(如「比例真实的小格窗,非落地大窗」)
  • 时间/光线/氛围

尾帧(img_ii_last.png)——动作终点(图生图,保证背景一致)

  • image: 该镜首帧 img_ii_first.png(必须传数组格式 ["path"])
  • input_fidelity: "0.82"(锁死背景机位,仅允许人物姿态变化;过低会导致机位漂移被模型当成旋转假动)
  • prompt: 描述同一场景的后续瞬间——人物从首帧姿态变为尾帧姿态,景物有相应位移/光影变化
  • size / style: 与首帧保持一致

> ⚠️ 铁律二:每镜必须出首帧+尾帧,用 VideoGen 的 last_image 做真实动作插值。
> - 尾帧与首帧之间必须有真实的动作差异(人物姿态改变 / 物体位移 / 光影流动),不能只是"同一画面的微调"
> - 禁止只出一张首帧就让 VideoGen 单图生视频——那只能产生镜头推移/缩放等假动态,人物不会有真实动作
> - 典型动作设计示例:
> - 「床前明月光」:首帧=半卧 → 尾帧=坐起
> - 「疑是地上霜」:首帧=低头看地 → 尾帧=前倾伸手
> - 「举头望明月」:首帧=低头 → 尾帧=抬头望月(核心动作!)
> - 「低头思故乡」:首帧=仰望 → 尾帧=低头沉思

> 画质优先:竖屏单图约 5–10 积分/张。每镜 2 张共约 10–20 积分。若想省积分,封面镜可只出首帧(用 ffmpeg Ken Burns 兜底),但诗句镜必须首尾双帧。

阶段 2:生成动态镜头(用所选生视频模型,首尾帧插值——必选)

使用 model_config.json 中的 video_provider 生成(默认内置 VideoGen;若选了其他技能,按 references/model-providers.md 调度表调用)。
首尾帧插值是本技能「真动作」的核心——所选视频模型须支持「首帧 + 尾帧/关键帧」(内置 VideoGen 用 last_image,Seedance 等用关键帧);若不支持,见 model-providers.md 退化方案。
对第 i 个镜头调用所选生成器(默认即 VideoGen):
- image: 该镜首帧 img_ii_first.png
- last_image: 该镜尾帧 img_ii_last.png(必传!这是实现真实人物动作的核心)
- seconds: 默认 5(compose 会按朗诵时长变速/定格,不必严守)
- 不要传 aspect_ratio(当前 VideoGen 后端不支持该参数,会报 400);画面比例由输入首帧图自动推断(竖图→竖屏),所以首帧务必用竖图 1024x1536
- resolution: "720P"(竖屏成片足够;要更高清用 "1080P")
- prompt: 用 prompt-templates.md 的「动态提示词」模板(固定机位、画面内运动)。应描述从首帧到尾帧的完整人物动作过程 + 物体自然运动 + 光影渐变(如「头部从低垂缓缓抬起,仰脸望向明月;帘幕轻拂、烛火摇曳」)。严禁写任何运镜/旋转/推拉摇移词——那会诱导相机旋转假动。
- watermark: 建议 false
- 把生成结果重命名为 <workdir>/scene_ii.mp4(与镜头顺序一致,compose_video.py 按 scene_*.mp4 顺序扫描)

> 若所选视频模型不可用 / 不支持首尾帧:用 gen_scene_video.py 以首帧+尾帧做 ffmpeg 交叉淡入兜底(见脚本帮助),但效果远不如 AI 首尾帧插值。

阶段 3:生成朗诵音频 + 时间轴(gen_tts.py)

python <skill>/scripts/gen_tts.py \
  --lines "句1" "句2" "句3" "句4" \
  --outdir <workdir> \
  --voice zh-CN-YunxiNeural \
  --title-line "<题名> <朝代> <作者>"
  • --lines 只放旁白正文(来自 script.json 的 lines),不要包含题名;题名用 --title-line 单独播报(会作为第 0 句,在封面镜期间显示)
  • 固定输出 <workdir>/voice_full.mp3 与 <workdir>/timeline.json(含每句精确起止,供合成对齐)
  • 音色预设见脚注;语速默认 -22% 更从容

阶段 4:生成 BGM(gen_bgm.py)

python <skill>/scripts/gen_bgm.py --duration <成片时长> --mood <script.mood> --sections <镜头单元数> --output <workdir>/bgm.mp3
  • --duration 取略大于 timeline.json 的 total_duration(如 27,compose 会用 aloop 循环,不严格也可)
  • --sections 取镜头单元数(= n_scenes);mood 取 script.json 的 mood(nostalgic/serene/melancholy/heroic/joyful)
  • 输出到 --output 指定路径(如 <workdir>/bgm.mp3)

阶段 5:合成成片(compose_video.py)

python <skill>/scripts/compose_video.py \
  --workdir <workdir> \
  --timeline timeline.json \
  --bgm bgm.mp3 \
  --title-text "<script.json 的 title> · <dynasty> · <author>" \
  --size 720x1280 --output <题名>.mp4
  • 以 timeline.json 为主时钟,自动把每个 scene_*.mp4 适配到对应诗句时长(变速/定格),xfade 转场,字幕按绝对时间烧录
  • scene_01.mp4 … 必须位于 <workdir> 根目录(VideoGen 可能把视频输出到子目录,需先移到根目录,或改用 --scenes 显式列出路径);timeline.json / voice_full.mp3 / bgm.mp3 默认在 <workdir> 内自动查找
  • 默认竖屏 720x1280;横屏改 --size 1280x720
  • 产出 <workdir>/<题名>.mp4 即最终成片;sync_offset 应 ≤ 0.6s

阶段 6:交付

  • 用 present_files 把 <题名>.mp4 交给用户预览
  • 提示可微调项:画风 --style、音色 --voice、BGM --mood、转场 --transition、分辨率 --size

关键设计点

  • ⚠️ 铁律一(诗意先行):生成任何图像前,必须先推敲每句诗的字面含义、创作背景、画面转译和动作设计。禁止不假思索地把诗句关键词塞进模板就调用 ImageGen——那会导致构图失真、动作缺失。
  • ⚠️ 铁律二(首尾帧真动):每个镜头必须生成首帧+尾帧两张图,用 VideoGen 的 last_image 做首尾帧插值。尾帧与首帧之间必须有真实的人物姿态变化或物体位移。禁止单图生视频(只能产生镜头推移等假动态)。
  • ⚠️ 铁律三(动态合理、禁运镜):动态镜头必须「固定机位、画面内运动」,禁止任何镜头旋转/推拉/摇移。动态要符合场景物理逻辑并服务于诗意(人物动作 + 物体自然运动 + 光影渐变三层设计),不是为动而动。尾帧 input_fidelity 须用 0.82 锁死机位,避免机位漂移被模型当成旋转。
  • 音画严格同步:先有朗诵时间轴,再以它为「主时钟」反推每个镜头时长,字幕按绝对时间换算相对时间烧录——这是与原技能「固定镜头秒数」的本质区别。
  • 封面镜模式:scenes == 句数 + 1 时,首镜为独立封面,避免首句画面被拉伸定格覆盖。
  • 零外部 API:edge-tts + 本地 BGM + ffmpeg,全链路可离线(仅 ImageGen/VideoGen 为内置工具)。
  • ⚠️ 模型可插拔:生图/生视频模型不写死。运行前在「阶段 0.5」梳理用户环境里的可用能力(内置工具 + 已安装技能),用 AskUserQuestion 让用户自选,选择写入 model_config.json(本次项目 + 全局默认)。外部技能型 provider 先 Skill 加载其文档再调用,参数以该技能为准。
  • 统一中间表示(script.json):诗与任意叙事文本都先归一成 <workdir>/script.json(见 references/script-schema.md),阶段 1–5 只认它,故两种来源完全复用同一套视频管线;新增文本类型无需改下游。库外诗写入工作目录缓存库(poems_user.json),技能自带 poems.json 保持只读、可分发包不受影响。

文件清单

  • SKILL.md:本流程
  • references/prompt-templates.md:画风前缀 + 分镜/动态提示词模板
  • references/model-providers.md:生图/生视频模型调度表(各 provider 调用要点 + 退化方案)
  • model_config.json:用户选择的生图/生视频模型(全局默认存于 <skill>/,本次项目另存一份到 <workdir>/)
  • references/script-schema.md:统一中间表示 script.json 结构 + 叙事文本分镜规范(agent 直出依据)
  • scripts/resolve_poem.py:按诗名检索诗库(技能库 + 工作目录缓存库合并查询),输出 script.json;--append 把库外诗写入工作目录缓存库
  • scripts/poems.json:技能自带精选诗库(约 41 首,只读,运行期绝不修改);库外诗存 <workdir>/poems_user.json
  • scripts/gen_tts.py:edge-tts 朗诵 + timeline.json
  • scripts/gen_bgm.py:程序化 BGM(按 mood)
  • scripts/gen_scene_video.py:ffmpeg 兜底分镜(首尾帧交叉淡入 / Ken Burns)
  • scripts/compose_video.py:时间轴驱动的合成器

脚注:edge-tts 音色预设

  • zh-CN-YunxiNeural 男·温润(默认)
  • zh-CN-YunjianNeural 男·沉稳
  • zh-CN-YunyangNeural 男·讲述
  • zh-CN-XiaoxiaoNeural 女·清亮
  • zh-CN-XiaoyiNeural 女·温柔

常见问题

5 问
答案由本站依据条目字段整理
古诗文本意境短视频生成怎么安装?

在支持 Skills 的客户端里执行:skillhub install user_b1971978/qingfeng-skills-02。安装方式为未标注。装完刷新技能列表或重开客户端。

古诗文本意境短视频生成支持哪些客户端?

资料没有标注宿主客户端,但只要客户端支持 Skills(Claude、Codex、Cursor 等),一般都能加载。

古诗文本意境短视频生成权限高吗,安全吗?

权限级别为未标注权限。安装前先看它会读取或写入哪些内容。

古诗文本意境短视频生成收费吗?

本站不代收费用,也没有标注具体价格。是否收费取决于技能本身和所用的模型或客户端,正式使用前按作者说明确认。

古诗文本意境短视频生成用什么许可证?

许可证标注为 未说明(许可证不明确)。商用或二次分发前请到仓库确认条款原文。

热门专题

按场景挑技能
全部专题 →

技能内容以作者仓库为准;分类、权限级别与许可证状态的中文说明为中文整理,最近核验 2026-11-06。