将约 5 秒口播文稿、观点句或抽象概念做成高级 editorial halftone paper-collage / 半调纸拼贴 B-roll。用户说"collage b-roll""纸拼贴 b-roll""半调拼贴""拼贴风格配画面""用这段文稿做拼贴动画",或希望把一句文稿转成拼贴视觉隐喻时,必须使用此 skill。强制采用三阶段审批:先只提视觉隐喻,用户确认后用 siliconflow-img-gen 生成彩色拼贴静帧,静帧再次确认后用公共 aigc-video-gen 技能(i2v 首尾帧插值)组装动画。视频生成走百炼 happyhorse-1.1-i2v 候选链(沿链 fallback)或火山 Seedance(视 env 配置)。
75
94%
Does it follow best practices?
Run evals on this skill
Adds up to 20 points to the overall score
View guide
Passed
No findings from the security scan
把一句约 5 秒的口播压成一个 sharp visual idea,再做成高级编辑风纸拼贴组装动画。
默认链路:
aigc-video-gen 生成视频并完成 QA(Gate 3)这两个确认闸门是工作流的一部分。它们让用户把注意力放在审美和方向上,同时避免错误隐喻或错误静帧直接消耗视频生成成本。
收到文稿后,先提视觉隐喻,不生成图片、不生成视频、不调用任何视频模型。
向用户交付每条的:
然后明确停下,等待用户回复"可以""通过""全部通过"或给出逐条修改意见。
如果用户只确认部分编号,只让通过的条目进入 Gate 2;未通过条目继续修改隐喻。
隐喻确认后,才写 visual spec 和 imagegen prompt,并用 siliconflow-img-gen 技能生成最终静帧。
把原图保存到项目目录,生成带编号的静帧 contact sheet,向用户展示并再次停下。此阶段仍然不调 aigc-video-gen,也不生成视频。
如果用户只确认部分静帧,只让通过的条目进入 Gate 3;需要修改的静帧先重生并重新确认。
静帧确认后,不再询问使用哪个视频模型,直接调公共 aigc-video-gen 技能走 i2v 首尾帧插值——默认走百炼 happyhorse-1.1-i2v(沿链 fallback 到 1.0 → wan2.7),百炼没配走火山 Seedance Fast → Normal → Mini。只有用户明确指定其他模型时才 aigc-video-gen --model <id> 覆盖。
aigc-video-gen 默认 audio: true,旁白/BGM/环境音写在 prompt 里)MP4路径契约——调用方指定了项目目录时(平台运营内容为 <platform>/outputs/<video-name>/)落在其下;否则落在 output_videos/ 下,名 <topic-en-slug>:
<project-dir>/ # 即 <platform>/outputs/<video-name>/ 或 output_videos/<topic-en-slug>/
├── brief.md # 文稿 + Gate 1 隐喻清单
├── visual-spec.json # Gate 2 视觉规格
├── imagegen-prompts.md # Gate 2 Seedream prompt 留档
├── gen-jobs.json # Gate 3 aigc-video-gen 批量调用清单
├── gate2-qa.md # 静帧 QA 结论
├── gate3-qa.md # 视频 QA 结论
├── still-contact-sheet.jpg # Gate 2 静帧总图
├── video-contact-sheet-all.jpg # Gate 3 全部成片逐秒抽帧
├── end-frame-comparison-all.jpg # 确认静帧 vs 视频末帧并排
├── 01-<concept-slug>/
│ ├── gen-prompt.txt # aigc-video-gen --prompt 内容(声画同出描述)
│ ├── frames/
│ │ ├── still.png # Gate 2 确认的完成帧(原图)
│ │ ├── last-frame.png # 统一裁到 720x1280 的尾帧
│ │ └first-frame.png # 纯色空首帧(同底色 hex)
│ └gen-runs/run-v01/
│ ├── final-5s.mp4 # aigc-video-gen 产物
│ ├── final-5s-noaudio.mp4 # 强制无声交付(拼贴动画无声)
│ ├── contact-sheet.jpg # 逐秒抽帧总图
│ └ video-last-frame.jpg
│ └ end-frame-comparison.jpg
└── 02-<concept-slug>/...先把文稿压成一个视觉命题。
提取:
不要把文稿逐字放进画面。默认一条文稿只做一个隐喻,控制在 3–6 个关键物件;元素过多会让语意变弱,也会让 i2v 组装不稳定。
批量隐喻优先形成前后叙事:例如先表现手工消耗与经验流失,再表现规范沉淀与人机分工。
1. 核心意思:经验每次都在重复消耗
视觉隐喻:熟练剪辑师围着巨大的胶片时钟逐帧裁切,时钟走完一圈却只得到一小段成片
关键物件:胶片时钟、剪辑师、剪刀、短胶片
色彩:焦橙底,奶油白与浅青点色
组装顺序:时钟 → 人物与剪刀 → 胶片 → 最终短输出输出后停下等待确认。
隐喻确认后,先写自包含的 visual-spec.json,再写 imagegen prompt。
{
"script_meaning": "",
"visual_metaphor": "",
"style_signature": "flat bold color field, mixed black-and-white halftone cut-outs and colored cardstock accents, crisp cut edges, cream keylines, soft paper shadows, editorial paper collage",
"aspect_ratio": "9:16",
"color_field": {
"background_hex": "",
"accent_colors": [],
"paper_grain": "fine uncoated-paper fiber"
},
"elements": [
{
"what": "",
"role": "",
"motion": "",
"placement": ""
}
],
"composition": {
"layout": "",
"negative_space": "",
"final_frame": ""
},
"motion_plan": "structure first, subject or cards second, action and result last",
"avoid": "typography, readable letters, numerals, logos, watermark, UI, subtitles, glossy 3D, photoreal environment"
}不要把 cobalt blue 当成唯一默认值。根据语意挑选强色场,并在一批作品中保持"同设计语言、不同底色":
主体可以黑白半调为主,但局部彩色纸张必须服务信息层级,不要为了彩色而彩色。
用 siliconflow-img-gen 技能(Seedream doubao-seedream-4.5,fallback doubao-seedream-5.0-lite):
siliconflow-img-gen --prompt "<下面整段>" --image-size 1600x2848 --out-dir <project>/01-<slug>/frames/Prompt 模板(英文,Seedream 对英文 prompt 响应更好):
Use case: ads-marketing
Asset type: final still frame for a 9:16 image-to-video B-roll clip
Primary request: Create a finished editorial paper-collage image expressing [一句话视觉命题].
Scene/backdrop: perfectly flat [颜色] paper field [hex] with subtle uncoated paper fiber.
Style/medium: premium editorial stop-motion paper collage; black-and-white halftone photographic cut-outs mixed with selective [点色] colored cardstock.
Composition/framing: vertical 9:16 locked poster frame; central subject within the middle 70 percent; generous clean color-field negative space; 3–6 large separable paper groups for later assemble-from-empty animation.
Materials/textures: visible printed halftone dots, crisp machine-cut edges, thin warm-cream paper keylines, soft low-opacity physical drop shadows.
Constraints: [本条隐喻必须一眼看懂的关系].
Avoid: no typography, no readable letters, no numerals, no logos, no watermark, no UI, no subtitles, no glossy 3D, no photoreal environment, no clutter.Seedream 不支持参考图锁定风格,所以"同设计语言"靠同一批用同一 style_signature 字串 + 同一 color_field 范围在 prompt 里复用,不靠参考图。
将通过 QA 的原图复制到 <item>/frames/still.png,生成带编号的静帧 contact sheet,展示给用户并停下等待 Gate 2 确认。静帧 QA 结论写入 <project>/gate2-qa.md。
如果用户要求重生部分静帧,重生后生成 still-contact-sheet-v2.jpg(后续轮次递增 v3、v4…),保留旧版 contact sheet 不覆盖,方便对比。
拼静帧 contact sheet 用 ffmpeg tile:
ffmpeg -y -pattern_type glob -i "<project>/*/frames/still.png" \
-vf "scale=270:480,tile=5x1" \
-frames:v 1 <project>/still-contact-sheet.jpg段数 > 5 时分多行(tile=5x2、5x3…)。
保留 imagegen 原图 still.png,再统一尾帧到 720x1280(aigc-video-gen i2v 收 720P/1080P,默认 720P):
ffmpeg -y -i <item>/frames/still.png \
-vf "scale=720:1280:force_original_aspect_ratio=increase,crop=720:1280" \
<item>/frames/last-frame.png首帧默认是与尾帧相同底色的纯色空纸面(assemble-from-empty 的核心——从空场开始组装):
ffmpeg -y -f lavfi -i color=c=0x<HEX>:s=720x1280 \
-frames:v 1 <item>/frames/first-frame.png如果用户明确要求不从完全空白开始,首帧才保留一个基础物件。
动作顺序默认采用:
基础结构 → 人物或关键卡片 → 连接件 → 动作 → 最终结果aigc-video-gen 的 --prompt 是声画同出描述(中文,happyhorse / Seedance 对中文响应好)。组装顺序与约束中文化写进 prompt:
aigc-video-gen 默认有声):"音频:纸片滑入的嗒嗰声 + 卡位时的咔嗒声 + 最终定格的短促 BGM 收尾"prompt 模板:
画面从纯色空场开始,依次滑入 [基础结构] → [人物/卡片] → [连接件] → [动作],最终定格在已确认的完成构图。固定机位,无切镜、无 zoom、无变形。画面无文字、无 logo、无水印、无 UI。音频:纸片滑入的嗒嗰声 + 卡位时的咔嗒声 + 最终定格的短促 BGM 收尾。每条 prompt 都要明确 --image first-frame.png 是空首帧、--last-frame last-frame.png 是确认过的完成帧。最终构图必须贴近 last-frame,不让模型自由改造尾帧。
创建 gen-jobs.json。每个 job 用首尾帧插值(i2v 模式):
{
"prompt": "<aigc-video-gen prompt 中文>",
"first_frame": "<item>/frames/first-frame.png",
"last_frame": "<item>/frames/last-frame.png",
"output": "<item>/gen-runs/run-v01/final-5s.mp4",
"ratio": "9:16",
"resolution": "720P",
"duration": 5
}逐条调公共 aigc-video-gen 走 i2v 模式(首尾帧插值):
aigc-video-gen --mode i2v \
--image <item>/frames/first-frame.png \
--last-frame <item>/frames/last-frame.png \
--prompt "<prompt>" \
--output <item>/gen-runs/run-v01/final-5s.mp4 \
--ratio 9:16 --resolution 720P --duration 5aigc-video-gen 内部已带候选链 fallback(百炼 happyhorse-1.1-i2v 沿链 1.1 → 1.0 → wan2.7,百炼没配走火山 Seedance Fast → Normal → Mini)+ decisions.log 落盘,agent 只需逐条调度。
如果出现 i2v 不收首尾帧的报错(aigc-video-gen 退出码非 0),检查 first-frame.png / last-frame.png 是否真存在、是否 720x1280——aigc-video-gen 要求相对路径在 output_videos/ 或 <platform>/outputs/ 下,调用时 workdir 必须是 workspace 根。
拼贴动画默认无声交付,但 aigc-video-gen 声画同出模式会出声。Gate 3 出片后用 ffmpeg 抽无声版交付:
ffmpeg -y -i <run>/final-5s.mp4 \
-map 0:v:0 -c:v copy -an \
<run>/final-5s-noaudio.mp4默认交付 final-5s-noaudio.mp4,保留原始 final-5s.mp4 作为中间产物。
如果用户明确要"带声"——拼贴动画的纸片嗰声 + BGM 是 aigc-video-gen 声画同出出的,可能挺贴——就不抽无声,直接交付 final-5s.mp4。但默认走无声。
不要只看尾帧,必须检查组装过程和最终落位。
ffmpeg -y -i <run>/final-5s-noaudio.mp4 \
-vf "fps=1,scale=270:480,tile=5x1" \
-frames:v 1 <run>/contact-sheet.jpg通过标准:
final-5s.mp4)或无声(final-5s-noaudio.mp4)、5 秒另外抽取视频末帧,与确认静帧并排生成 end-frame-comparison.jpg。批量项目再合并三张总览图:
video-contact-sheet-all.jpg:全部成片逐秒抽帧video-first-frame-all.jpg:全部成片实际首帧,验证真的从空色场开始end-frame-comparison-all.jpg:确认静帧与视频末帧并排对照逐条 QA 结论(含带瑕疵通过的判定理由)写入 <project>/gate3-qa.md。
视觉 QA(contact sheet 看组装过程与落位)完成后,必须再跑公共 video-review 技术自检闸门,verdict=pass 才进交付:
video-review <run>/final-5s-noaudio.mp4
# 或带声版:video-review <run>/final-5s.mp4video-review 查的是技术层硬伤(ffprobe 全字段 / 5 位抽帧黑帧扫 / 音频电平 / 时长分辨率一致性),与上面的视觉 QA(看隐喻是否一眼看懂、组装过程是否成立)互补不重叠——视觉 QA 评审美与语义,video-review 评技术合规。verdict=fail 按 critical 项修或重生对应 job,verdict=warn 向用户复述由其决定。详见 video-review 技能 SKILL.md。
拼贴动画默认无声交付时,
audio_absentwarning 是预期(final-5s-noaudio.mp4本就是抽音轨版),warn 可放行;带声版final-5s.mp4出audio_absent则 critical——aigc-video-gen声画同出模式该出声没出声是硬伤,退回重生成。
aigc-video-gen i2v 的 last-frame 权重高aigc-video-gen 退出码非 0):检查首尾帧是否 720x1280、是否真存在、workdir 是否 workspace 根向用户交付:
<item>/gen-runs/run-v01/final-5s-noaudio.mp4(或 final-5s.mp4 若用户要带声)如果成片问题来自 aigc-video-gen i2v 的生成限制(组装感弱 / 尾帧漂移),直接说明;只有需要精确图层控制时,才建议切换到其他方案(如 Manim 科学动画 → manim-explainer)。
| 脚本 | 文件名 | 用途 |
|---|---|---|
| Gate 3 批量调度 | scripts/run_gate3.py | 读 gen-jobs.json,逐条调公共 aigc-video-gen i2v 模式(首尾帧插值),落产物 + decisions.log |
visual-spec.json 生成、imagegen prompt 拼装、contact sheet 拼图、首尾帧 ffmpeg 处理——这些靠 agent 直接调 siliconflow-img-gen + ffmpeg 完成,不单独上脚本(agent 直接调更灵活,且避免脚本重复造轮子)。
72fd07a
If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.