诗词成片

一首古诗变成一部由代码绘制的竖屏水墨短片:简短的背景序幕,每句诗一个按诗人心境选定的镜头,匹配转场,最后是整首诗的立轴。

诗词成片

一首古诗变成一部竖屏水墨短片,画面全部由代码绘制。开头用一段简短的背景序幕交代诗人为什么写这首诗,之后每句诗一个镜头,镜头按诗人当时的心境来定;镜头之间用匹配转场衔接(印章化作太阳、云卷、俯冲进地图、山石、落叶或飞雪擦屏、水波扩散、以月为锚的转场),最后以整首诗的立轴和印章收尾。不用任何图像或视频模型:每一帧都在无头 Chrome 里用 Canvas 2D 画出来。

使用方法

  1. 规划 2~3 拍的背景序幕、每句一个按心境选定远中近景的镜头、匹配转场和立轴收尾

  2. 基于共享画笔库和一个风格包(青绿、浅绛、雪景、木版年画或边塞,也可以用项目自带的 styles/ 风格包)写 poem.json、timeline.json 和镜头代码

  3. 检查规则、看静帧,用代码合成配乐(或通过 SandBase 加一段可选的 MiniMax 器乐),在 Chrome 里配合 FFmpeg 渲染 1080 × 1920 成片

常见问题

配乐要花钱吗?

默认配乐由代码合成,不花钱:早发白帝城用的是最初的拨弦配乐(类古琴的拨弦、猿啼、风声、落叶、江水和鼓),静夜思用的是 0.3.1 的环境音配乐(水声、虫鸣、风声、类似箫的气声长音,每句一小段古琴)。audio.mjs --music minimax 会先列出计划,只有加 --confirm 才发起一次付费调用:通过 SandBase 调用 MiniMax Music 2.6 生成一段器乐,约 $0.15,叠在代码音效下面,登高、江雪、山居秋暝和水调歌头用的是这种。--music file 可以混入你已有的器乐。从 0.3.1 起每条配乐都归一到 −16 LUFS、−3.0 dBTP。

为什么不给诗人拍特写?

诗人在山水里做动作(作揖、举杯、张开双臂、拄杖登高),情绪由景来带。诗的关键动作是人物动作时,方法优先用道具或相关部位的近景(针线、酒杯、踏歌的脚步);只有人物能画好时才用中景,任何时候都不做面部特写。

为什么「万里」「百年」这类数字不在画面上计数?

古诗里的数字大多是虚指:万里是极远,百年是一生。片子用画面表现距离和时间;除非 poem.json 给出了真实数字的出处(比如《水经注》记载白帝到江陵「千二百里」),check.mjs 会拒绝计数器和数字标签。

诗里有生僻字怎么办?

自带的霞鹜文楷子集覆盖约 9,300 个常用字。check.mjs 会列出字体缺的字,用 --font 指定完整的 TTF 就能渲染。

和 Chronicle Scroll 有什么不同?

Chronicle Scroll 把一个题材(历史人物、地标、地方或动物)做成核对过史实的 2~3 分钟水墨知识短片;诗词成片从一首诗出发:背景序幕、每句一个按诗人心境选定的镜头、片尾写出整首诗,不配旁白。