一张参考图 + 一句话,生成电影感动态视频
全程在 Claude Code 里完成,不用打开任何设计软件
演示:复古剪贴报风格。为「SpaceX 进入纳指100」一文生成,概念词「指数纳入」:巨手把火箭放进货架,规则只认块头。从想法到成片约 3 分钟
把下面的文件保存为:~/.claude/skills/motion/SKILL.md
然后在 Claude Code 里输入 /motion 即可使用。
---
name: motion
description: Motion风格动画生成:参考图 → Nano Banana 生成关键帧 → Kling/Seedance 图生视频。触发词:/motion、动画、把图动起来、motion动画、图生视频。
---
# Motion 动画流水线
把一张参考图变成 Motion 风格短视频(几秒钟的电影感动态视觉)。
## 输入
用户需提供:
1. **参考图**:本地图片路径(拖进终端即可得到路径)
2. **动作描述**:想让画面怎么动(如"镜头缓慢推近,头发被风吹动")
3. 可选:比例(横屏 16:9 / 竖屏 9:16)、时长(默认 5 秒)
缺参考图时也可以纯文字:让 Nano Banana 直接按描述生成首帧。
## 风格预设:复古剪贴报(推荐)
比 AI 电影感写实风更有记忆点。配方:
1. 高饱和纯色纸纹背景:砖红/钴蓝/墨绿
2. 主体 = 黑白半调网点(halftone)老照片剪贴,白色贴纸描边+投影
3. 一幕一个概念:用视觉双关表达一个概念词
4. 撕纸标签 + 粗黑概念词(生图用 pro 模型保证文字质量)
5. 少量几何装饰:黑三角/米白圆/锯齿线
6. 动效克制:元素依次贴上、定格动画式微抖、镜头完全固定
关键帧 prompt 骨架:
`Retro mid-century collage art, 1950s magazine cut-out style.
Solid [颜色] paper background with subtle paper grain.
Black-and-white halftone photograph cutouts with white sticker
borders and drop shadows: [概念隐喻场景]. Small geometric accents.
Torn paper label with bold black condensed characters "[概念词]".
Flat graphic composition, stop-motion paper collage aesthetic,
no photorealism.`
视频 prompt 骨架:
`Stop-motion paper collage animation, handmade cutout style.
[主体动作]. All paper cutout elements wobble subtly with
stop-motion jitter. Camera completely static. Flat 2D collage
aesthetic, no 3D depth, no camera movement.`
## 流程
### 第 1 步:生成关键帧(Nano Banana)
用 `mcp__nanobanana__gemini_generate_image`:
- `reference_images`: [用户参考图路径],保持风格/人物一致
- `prompt`: 描述首帧画面(英文写 prompt 效果更好)
- `aspect_ratio`: 与最终视频一致
- 需要更高质量时先 `set_model` 为 "pro"
如需首尾帧两张(动作幅度大的场景),再生成一张尾帧,
`use_image_history: true` 保持一致性。简单动作只要首帧一张即可。
生成后把图片路径发给用户确认,满意再进入下一步(视频要花积分,别浪费)。
### 第 2 步:上传帧到 Higgsfield
用 higgsfield 的 `media_upload` 拿到预签名 URL,curl PUT 上传本地图片,
再 `media_confirm` 确认,得到 `media_id`。
### 第 3 步:生成视频
用 `mcp__higgsfield__generate_video`:
- `model`: "kling3_0_turbo"(默认,性价比高。seedance_2_0 效果类似
但需要 Higgsfield Pro/Ultimate 套餐且价格约 3 倍,报 403 就是套餐不够)
- `medias`: [{ "value": 首帧media_id, "role": "start_image" }],有尾帧再加 end_image
- `prompt`: 动作/运镜描述(英文)
- `aspect_ratio` 与帧一致
- 先带 `get_cost: true` 预查积分,告诉用户花费,确认后再真正提交
- 如返回预设推荐(preset_recommendation),默认带 `declined_preset_id` 按原方案生成
提交后用 `job_status` 轮询(一般 1-3 分钟),完成后下载视频到用户指定目录。
如返回 `recovery_tool` 立即调用。
### 第 4 步(可选):增强
用户嫌糊时用 `mcp__higgsfield__upscale_video`(bytedance provider,需传源视频宽高)。
## 版权红线(每次生成前自检,一条都不许碰)
1. **不生成真人肖像**:任何可辨识的真实人物(名人/明星)。讲公司画产品/场景隐喻,不画老板的脸
2. **不出现品牌 logo/商标**:prompt 里写 "no logos, no brand marks",生成后肉眼复查
3. **不生成受版权保护的角色**:玩偶IP、迪士尼、动漫角色等一律用抽象隐喻替代
4. **参考作品只学配方不搬画面**:分析别人的视频可以,其中任何一帧都不得发布
5. 配乐提醒用户:用免版权音乐或无声,别配流行歌
## 规则
- 每一步产出先给用户看,确认再花积分
- prompt 用英文写给模型,跟用户交流用用户的语言
- 一次只生成 1 个视频(count=1),不满意再迭代
这套流程最早是我给女儿做有声故事书时搭起来的:插画是静态的,我想让画面里的小猫眨眼、树叶飘动,就一步步摸索出「生成关键帧 → 图生视频」这条链。后来发现它可以做任何 Motion 风格的动态视觉,就整理成了这个 skill 开源出来。