关于 blank-page
blank-page 是用于将简短草稿整理成生成式创作简报的技能,主要面向 Stewdio 的动态、3D、着色器和影像创作,也适用于其他创意简报。它通过视觉与动态参考、编号节拍和明确的转折来组织提示词,并规定输出格式与长度。
主要功能
- 01识别简报、批量、修改等草稿类型
- 02为视觉与动态内容搜集参考
- 03将创意组织为编号节拍与转折
- 04按模板生成提示词及待确认选项
- 05使用脚本搜索参考并制作联系表
适用场景
- 01把简短创意草稿扩展为创作简报
- 02为一组视觉方案整理共同约束
- 03根据截图反馈编写逐项修改说明
- 04为带时间节点的动态序列组织节拍
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ playful-design/ router --skill blank-page安装后在 Claude Code 中输入/blank-page确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
LICENSEagents/openai.yamlreferences/examples.mdfinding-references.mdpatterns.mdvocabulary.mdscripts/find_refs.py详细介绍
空白页
将简短草稿改写成作者本来会写出的创作简报。草稿通常是 Stewdio 的合成作品(动态、3D、着色器、镜头素材);这种方法适用于任何生成式简报。
**好的简报由参考素材和节拍构成。**创意寄托在所指的事物上(recreate this <mp4>、in the texture of embroidery <img>),而节拍说明事物如何转变:确定一种外观、复制一个动作、呈现一个真实事物,以及一次转折。不要增加更多文字或数字。文风使用小写、祈使句和编号,不加废话。新的简报在 refs: 上方不超过约 150 词;修改说明不超过约 50 词。超过上限时,先删掉可选内容(真实感、参数、重复默认值的帧说明),再精简措辞,绝不删掉节拍或转折。
references/ 中的文件:
finding-references.md:角色、边界、are.na 种子与循环、Pinterest、Sketchfab、审核。第 2 步前阅读。vocabulary.md:作者按槽位整理的用词。写作时借用。examples.md:真实会话中的修改前/后示例。不确定格式时阅读。patterns.md:规则背后的语料证据和过往失败案例。可选阅读。
流程
-
判断草稿类型。
模式 信号 输出形式 简报 “create”、“recreate”、一个新的合成作品或场景 美学描述 + 编号节拍 + 帧说明 + refs + 素材 批量 “create N comps”、“variations”、“fill the gaps” 简报 + 每项一行说明 + 去重规则 + 共用约束 增量修改 “make X more/less Y”、“get rid of”、“fix”、“move to” 目标 + 改动 + 幅度 + 方向 + 保留条件 图像反馈 附有截图/联系表 每条观察各占一行,并注明对应帧或时间 序列 “at Ns”、“after the X exits”、跨时间的节拍 每个节拍都带时间锚点的简报,并设时长上限 杂项 重命名、推送、导出、“check the render” 保持原样;补充准确的格式或目标 简报、批量和序列按第 2 至第 8 步处理。增量修改和图像反馈直接跳到第 6 步;仅当改动引入新的外观或动作时才搜索。
-
**确定外观:先找五张图,再写任何节拍。**选定一种美学,整理成图板,并从中挑选五张各有用途的静帧:整体外观、配色、材质或表面、构图、细节或图案。绝不混合两种美学;如果另一种美学总是胜出,就彻底改用它。其名称写在提示词的第一行。
- 没有边界(草稿没有提及外观):浏览他的伞状分类和 CARI 命名的美学,选择引人注目的,而不是迎合草稿中的用词。
- 有边界(草稿提到风格、品牌或媒介,或附有参考素材):这个词就是 are.na 查询词,选择其中最合适的实例,绝不能换成另一种美学,也不能用它的截图。边界限制配色、材质、字体和组件,不限制布局、比例、镜头或动作。第一行要写出用户所提词语的一个子类别(
in stripe-gradient dark)。如何解读和查询,以及查询结果都是垃圾时该怎么做:参阅finding-references.md中的 “The fence”。
-
**确定动态:找三个动态参考素材。**从动态频道中找 gif / mp4,每个都应包含值得复制的动作(“他会把这个放进 mo-graph 吗?”),分别覆盖三个用途:主要机制、转折、退出动作或镜头运动。如果找了三个频道后仍没有合适的退出动作或镜头运动,m3 再找一个节拍,并用文字描述镜头运动。**边界不适用于动态。**之后,根据节拍需要,为任何可识别对象(真实 UI、产品、艺术作品、Sketchfab 模型)添加复制参考或素材,并为界面添加 UI 参考。用户提供的附件可以填补对应槽位。每个候选项都要先查看,再赋予用途。
-
确定每个参考的用途,然后写出节拍。 对全部 8 个参考,说明它对应哪个节拍,以及具体取用了什么(
a3 的湿石纹理用作画布表面、m1 0.0-1.6s 是节拍 1,速度放慢至 1.5 倍,并将主体替换为卡片)。没有对应节拍的参考就删掉。动态参考决定节拍的顺序和时长;每张图片放在最能体现其特质的节拍上。加入转变:一个揭示某物、改变媒介、拉远镜头以展现更大的整体,或让某物变成别的东西的节拍(画作散开成一根线,线又变成奔跑的剪影)。仅仅进场、动画、停留还不够。若草稿已经包含转变(突然变成、以……的形态回来),这个动词就是转变:让它成为最大的节拍,不要再加第二个比喻。≤ 5 s 的片段只表达一个想法(多余的想法放进素材和镜头中,而不是情节里),并让动作贯穿整个片段:结尾停留不超过 1 s;如果转变在 1.6 s 前完成,就说明节拍过于紧凑或缺少后半段。 -
添加想法。 对内容单薄的草稿,通常应加入:能让主体更具体的道具、真实素材、与揭示内容相呼应的镜头运动,以及回应第一个节拍的第二个节拍。将它们写成节拍;用
[? ...]标出一两个真正需要选择的分支。 -
填充各项(见下方清单)。若可从文件、上一版合成、附件或对话中推断出,就不必说明。缺少且需要创意判断的内容:在提示词中用
[? 最佳默认值]占位。缺少但属于常规项(时长、宽高比、文件):直接采用默认值,不加标记;未指定文件名时,使用in stewdio, new file <topic>,。 -
按规定格式重写(见下方模板),保留作者已有的措辞。
-
只输出以下三项,不要输出其他内容:用围栏代码块括起的提示词;一个“待补充项”列表(最多 3 个创意分支,每项写明所选方案和一个值得考虑的替代方案;不要包含时长、循环或宽高比);以及一行指向
.context/refs/<topic>/的内容,说明其中有联系表,供用户否决所选参考。<topic>是描述主题的 2 至 3 个单词组成的 kebab 格式短语(coffee-menu)。若需要但未提供真实素材(用户自己的应用、产品、徽标),在提示词上方用一行说明,并注明使用的替代素材。不要提供技巧或建议。
槽位清单
先填写开场槽位;它们决定结果。之后再填写编辑循环槽位。
| 槽位 | 询问内容 | 固定格式 |
|---|---|---|
| 位置 | 工具、文件、组件;对于序列,填写其对应的时间或节拍 | in stewdio, <file>, <comp>, at 3.5s: / after the sticker exits: |
| 风格 | 一种来自 a1 的明确美学风格;若用户给出了风格词,则选其子类 | in frutiger aero style / everything in riso |
| 媒介 / 技术 | 照片或视频、3D 重建、矢量、着色器、真实模型 | using threejs or 3d framework / real 3d texture and train models |
| 动作 | 动态参考中的机制,替换主体 | recreate this animation, but make it nyc subway |
| 主体 | 按名称指明真实事物及其来源 | the famous ukiyo-e painting <img> |
| 节拍 | 按编号排列;每个节拍 = 主体 + 动作 + 揭示或变成的内容 | 2. then at around 2s, a big wave splats across the screen, turning the entire screen into a new texture |
| 转折 | 揭示 / 变形 / 拉远 / 媒介切换 | the camera zooms out to reveal that ... |
| 真实感 | 需要时注明保真度要求 | it should be very realistic / loyal to the og |
| 摄像机 | 移动 + 缓动 + 最终落点 | camera zooms fast into the pupil, steep quadratic ease-in / camera stays still |
| 节奏 | 用用户的措辞描述感觉;秒数仅用于标记锚点 | very snappy, ease-in-out / one continuous motion from the start |
| 画面 | 仅在不同于默认值时填写背景、宽高比、时长、循环 | white bg, 1:1, ~5s loop |
| 参数 | 组件需要调整时,注明要公开的参数 | expose params for plumpness, sheen, glow |
| 保留 | 编辑:注明哪些内容不得更改 | keep the old entrance speed / keep the rest the same |
| 幅度 + 方向 | 编辑:倍率、相位、轴和方向 | 2x faster at top speed / 30 degree clockwise |
| 范围 | 编辑:此次更改影响哪些组件 | only for 23 / unrelated: also ... |
固定默认值,无需写出:白色背景(数学图表系列使用黑色背景); 无淡入淡出、投影、圆角、注释文字、UI 装饰或辅助线;社交帖子使用 1:1, 图表和轮播系列使用 16:9;循环约 5 秒,插入节拍为 3–4 秒,序列不超过 15–20 秒;对于可识别的物体,使用真实素材,并在其上添加风格化处理。风格优先级高于这些默认值:若美学风格自带背景(纸张材质、柜台、深色模式的海军蓝),则在画面行中用它替代白色背景;属于该风格的光线效果(例如掠过纸面的光)不算投影。
模板
简要说明
in stewdio, <file>, [<comp>,] [at <N>s / after <beat>,] create the following, in <aesthetic from a1>[, using <technique>]:
1. <subject (c1 / asset), its state at 0s> <enters like m1: mechanic>
2. <main action from m1, subject swapped> [at ~<N>s]
3. <the turn: reveals / turns into / zooms out to show ...>
4. <exit or end state>
<realism demand if it matters>; <camera if it moves>; <pace in his words>
<frame only where it differs from the defaults>; the whole thing ~<N>s
[expose params for <list>]
refs:
- a1 <path>: look, <what it sets: overall look, framing of beat 1> (<url>, channel <slug>)
- a2 <path>: palette, <used where> (<url>, channel <slug>)
- a3 <path>: material, <which surface in which beat> (<url>, channel <slug>)
- a4 <path>: composition, <which beat's frame> (<url>, channel <slug>)
- a5 <path>: detail, <which element, which beat> (<url>, channel <slug>)
- m1 <path>: motion, beat <n>: <mechanic, time range taken, scale factor>, subject swapped, not the look (<url>, channel <slug>)
- m2 <path>: motion, beat <n>[ (the turn)]: <what is taken> (<url>, channel <slug>)
- m3 <path>: motion, beat <n>[ (the turn)]: <what is taken> (<url>, channel <slug>)
- u1 <path>: ui, <ui type> layout + components, brand-neutral (<url>, channel <slug>)
- c1 <path>: copy, <subject>, one-to-one (<url>)
assets:
- <path or url>: use as-is for <what>
- <sketchfab page> (<author>, <licence>, <faces>): <object>, one-to-one, <parts that must move> [? download]
节拍中内嵌引用句柄(2. the sticker peels from the lower-left corner like m1, on a3's wet stone);refs: 中的每个句柄都必须出现在某个节拍中。动态句柄按节拍顺序编号,为转折提供素材的句柄标记为 (the turn)。如果区块有来源,在频道后添加 orig <url>。用户附件也放在同一列表中。
批量
in <file>, create <N> <things>, <one-line shared description>, using <channel> as reference:
1. <item: mechanic + orientation + layout>
2. ...
for all of them: <shared constraints>; keep each ~<N>s
no overlap with <existing set>; a valid variation changes the mechanic, orientation, layout or treatment, not just direction or mirror
name them "<Prefix>: [<k> word description]"
增量更改:每行一项更改;有多项时编号,并为每项注明目标;
unrelated: 用于标记不同的组件。
[for <comp>,] make <element> <change> <magnitude> [<direction with axis>] [at <N>s]
[get rid of <element>]
keep <what must stay>
图像反馈:<所指帧或时间>: <一项量化观察>,每项单独一行。
规则
- 追求质量,不要只看匹配度。 最能承载主题的精彩动作或视觉效果,胜过只展示正确物体的关键词匹配结果。
- 要像电影画面,而不是网页。 关键时刻,主视觉元素的高度至少占画面高度的 40%;在 1080p 下,最小字号至少为 24 px;不要按 1:1 浏览器比例重建任何内容。以缩略图大小评估设计稿。
- 一个参考素材,只承担一项工作。 动态媒体用于动作,静态图用于视觉效果;动态参考意味着要替换主体。同一文件用于两个角色时,列出两次,并分别注明用途范围。
- 使用素材,参考素材只用于参考。 使用真实影像、真实 GLB、真实 UI、真实绘画,并在其上进行风格化;事先说明保真度,绝不重新诠释上传的素材。程序化生成仅用于基本几何体、球体、团块、挤出形状、噪声场,以及必须生长或变形的对象。
- 把每个东西都当成一套精巧装置。 为其专属机制制作动画(盖子合上、信封封口、复选框打勾),而不是默认的绘制显现效果。变形应是过程中的形态变化,而不是拆掉后重建。
- 描述机制,不要只用形容词。“编辑式翻页拖动”最终被做成了滑入效果;“当前图像从一个角落被揭起,露出早已铺在下面的新图像”一开始就做对了。
- 他用数字时,就写上数字。 锚点和时长用秒,剪辑用倍数和角度,只有当颜色本身是重点时才写十六进制值(klein blue #002FA7)。开场不要写毫秒级错开或像素偏移。
- 剪辑要说清轴向、方向感和阶段。“反过来”不是方向;“入场快 5 倍”还需要说明“这是我们做过最快的入场,之后保持恒定速度”。
- 保留原有语气。“去掉”“不过”“约 5 秒”“拜托”都可以。提示词中不要有问候语、理由或标题。
脚本
scripts/find_refs.py:are.na 频道/集合/联系表、Pinterest 图钉、Sketchfab 搜索与下载、文件下载、视频联系表。不带参数运行即可查看命令列表。