dream-to-video
当用户提供一段梦境文字素材、日记片段、或口述梦境内容,并希望生成视频时触发。触发词包括:"梦到"、"梦见"、"做了个梦"、"梦境素材"、"帮我生成视频"、"转成视频"、"dream to video"。也适用于用户直接粘贴一段梦境描述并期望获得视频文件的场景。此技能会将文字转化为视频提示词,自动提交到即梦平台生成,并下载视频文件。
Best use case
dream-to-video is best used when you need a repeatable AI agent workflow instead of a one-off prompt.
当用户提供一段梦境文字素材、日记片段、或口述梦境内容,并希望生成视频时触发。触发词包括:"梦到"、"梦见"、"做了个梦"、"梦境素材"、"帮我生成视频"、"转成视频"、"dream to video"。也适用于用户直接粘贴一段梦境描述并期望获得视频文件的场景。此技能会将文字转化为视频提示词,自动提交到即梦平台生成,并下载视频文件。
Teams using dream-to-video should expect a more consistent output, faster repeated execution, less prompt rewriting.
When to use this skill
- You want a reusable workflow that can be run more than once with consistent structure.
When not to use this skill
- You only need a quick one-off answer and do not need a reusable workflow.
- You cannot install or maintain the underlying files, dependencies, or repository context.
Installation
Claude Code / Cursor / Codex
Manual Installation
- Download SKILL.md from GitHub
- Place it in
.claude/skills/dream-to-video/SKILL.mdinside your project - Restart your AI agent — it will auto-discover the skill
How dream-to-video Compares
| Feature / Agent | dream-to-video | Standard Approach |
|---|---|---|
| Platform Support | Not specified | Limited / Varies |
| Context Awareness | High | Baseline |
| Installation Complexity | Unknown | N/A |
Frequently Asked Questions
What does this skill do?
当用户提供一段梦境文字素材、日记片段、或口述梦境内容,并希望生成视频时触发。触发词包括:"梦到"、"梦见"、"做了个梦"、"梦境素材"、"帮我生成视频"、"转成视频"、"dream to video"。也适用于用户直接粘贴一段梦境描述并期望获得视频文件的场景。此技能会将文字转化为视频提示词,自动提交到即梦平台生成,并下载视频文件。
Where can I find the source code?
You can find the source code on GitHub using the link provided at the top of the page.
SKILL.md Source
# Dream-to-Video 梦境素材全自动视频生成
你负责将用户提供的梦境文字素材转化为视频提示词,并通过自动化工具链提交到即梦平台生成视频、下载到本地。用户只需要给你文字,你最终返回视频文件。
---
## 零、首次环境配置
> 当用户首次使用此 Skill 时,按以下流程自动配置环境。每一步执行后检查结果,全部通过后再告知用户可以开始使用。
### 路径约定
本文档中 **`{W}`** 代表本仓库的 clone 路径(即 `dream_to_video/` 目录的父级)。
- 项目目录:`{W}/dream_to_video/`
- Skill 资源目录:`{W}/skills/dream-to-video/`
执行命令时,将 `{W}` 替换为实际路径。
### 自动执行(无需用户操作)
**Step 0-0:克隆项目仓库**
询问用户希望把项目放在哪个目录,然后执行:
```bash
cd "<用户指定的目录>" && git clone https://github.com/mediastormDev/dream-to-video-skill.git && cd dream-to-video-skill
```
clone 完成后的 `dream-to-video-skill` 目录即为 `{W}`。
如果用户说"就在当前目录",则在当前目录下 clone。
**Step 0-1:检查 Python**
```bash
python --version
```
要求 Python ≥ 3.10。如果未安装或版本过低,**停下来提示用户**:
> 请先安装 Python 3.10 或更高版本:https://www.python.org/downloads/
> 安装时勾选「Add Python to PATH」。
**Step 0-2:安装 Python 依赖**
```bash
cd "{W}/dream_to_video" && pip install -r requirements.txt
```
**Step 0-3:安装 Playwright 浏览器**
```bash
playwright install chromium
```
这会下载 Chromium 浏览器引擎(约 150MB),用于自动操控即梦平台。
**Step 0-4:创建必要目录**
```bash
cd "{W}/dream_to_video" && mkdir -p output data auth/browser_profile reference_images/室内 reference_images/室外
```
**Step 0-5:部署参考图素材**
仓库内置参考图位于 `skills/dream-to-video/reference_images/`,自动复制到项目运行目录:
```bash
cp -n "{W}/skills/dream-to-video/reference_images/室内/"*.jpg "{W}/dream_to_video/reference_images/室内/" 2>/dev/null; cp -n "{W}/skills/dream-to-video/reference_images/室外/"*.jpg "{W}/dream_to_video/reference_images/室外/" 2>/dev/null; echo "reference images deployed"
```
> `-n` 不覆盖已存在的文件。如果用户有自己的公司环境照片,可以额外放入对应目录。
### 需要用户操作
**Step 0-6:即梦平台登录**
```bash
cd "{W}/dream_to_video" && python main.py login
```
执行后浏览器会打开即梦网站并显示登录二维码。提示用户:
> 请用手机抖音/即梦 App 扫描浏览器中的二维码完成登录。登录成功后程序会自动保存凭证,后续无需重复登录。
### 自检清单
所有步骤完成后,依次运行以下检查,全部 ✅ 才算配置成功:
```bash
# 检查 1:Python 版本
python --version
# 期望:Python 3.10+
# 检查 2:核心依赖
python -c "import playwright; import cv2; import numpy; print('deps OK')"
# 期望:输出 deps OK
# 检查 3:Playwright 浏览器
python -c "from playwright.sync_api import sync_playwright; b=sync_playwright().start(); br=b.chromium.launch(headless=True); br.close(); b.stop(); print('browser OK')"
# 期望:输出 browser OK
# 检查 4:目录结构
python -c "from pathlib import Path; dirs=['output','data','auth/browser_profile']; ok=all((Path('{W}/dream_to_video')/d).is_dir() for d in dirs); print('dirs OK' if ok else 'dirs MISSING')"
# 期望:输出 dirs OK
# 检查 5:登录状态
cd "{W}/dream_to_video" && python main.py verify
# 期望:显示登录有效
```
**全部通过后,告知用户:**
> 环境配置完成!你现在可以直接给我梦境素材,我会自动生成视频。
**如果某项失败,针对性提示用户如何修复,不要继续后续步骤。**
---
## 一、完整工作流程
```
用户给梦境素材 → 你按规则转化为 Prompt → 提交到队列 → Worker 自动生成+下载 → 通知用户
```
### 每次收到素材后,你必须按以下步骤执行:
**步骤 1:转化 Prompt**
按下方「二、视频提示词生成规则」将用户的梦境素材转化为视频提示词。直接输出完整 Prompt 文本。
- 检查规则 9(容貌标识):是否有主角以外的可见人物?有则标注。
- 检查规则 10(参考图前缀):是否有公司/工作场所**物理环境**描写?有则追加 `参考图中环境;` 前缀。
**步骤 2:提交到队列**
```bash
cd "{W}/dream_to_video" && python -u main.py add "你生成的完整Prompt"
```
这条命令瞬间完成,返回 task_id。
**步骤 3:确保 Worker 在运行**
检查是否有正在运行的 worker 后台任务。如果没有,启动一个:
```bash
cd "{W}/dream_to_video" && python -u main.py worker
```
以后台模式运行(`run_in_background: true`)。Worker 会自动:
1. 检测 Prompt 是否带有 `参考图中环境;` 前缀
2. 如果有 → 自动选参考图、切换「全能参考」模式、上传图片、在 ProseMirror 编辑器中通过 `@图片1` 引用参考图输入提示词
3. 如果没有 → 直接在 textarea 中输入提示词
4. 配置生成设置(Seedance 2.0 / 16:9 / 15s)→ 点击生成 → 监控进度 → 下载 → 后处理特效
**步骤 4:告知用户**
告诉用户已提交,视频生成完成后会自动下载到 `{W}/dream_to_video/output/` 并有提示音通知。
### 查看状态
如果用户问进度,运行:
```bash
cd "{W}/dream_to_video" && python -u main.py status
```
或读取状态文件:`{W}/dream_to_video/output/batch_state.json`
---
## 二、视频提示词生成规则
### 顶层铁律
#### 1. 绝对写实 (Hardcore Realism)
严禁任何动漫、二次元词汇。禁止使用"金色、唯美、史诗、霓虹灯、赛博朋克"等AI虚词。使用"自然光、侧逆光、35mm镜头、感光度噪点、景深控制"等专业摄影术语。
#### 2. 超现实处理 (Uncanny Dream-Logic)
严禁将人变怪物。通过环境氛围、逻辑跳跃、以及微小但违背常理的细节(如:移动的山脉、自动出现的糕点、重复的机械动作)来体现梦境感。
#### 3. 忠于原著 (Strict Adherence)
必须包含素材中的核心视觉要素(如:特定物品、特定场景、特定人物动作)。不要自己编造不存在的要素。
#### 4. 电影感镜头 (Cinematic Camera)
不再局限于第一视角。可采用全景、特写、手持跟随或固定机位。强调镜头的物理动态(如:镜头抖动、焦点切换、缓慢推拉),保持画面的临场感。**优先使用鱼眼镜头 (Fisheye Lens / Ultra-Wide 12mm)**,通过桶形畸变强化梦境的空间扭曲感和压迫感,尤其适用于近距离人物、走廊、室内等场景。
#### 5. 非言语叙事 (Silent Visuals)
严禁台词描述。所有沟通通过眼神、手势、点头、物理指向或物品展示完成。
#### 6. 主体去名化 (No Names)
统一使用 **"主角" (Protagonist)**。除全球名人外,人名替换为"同伴"、"司机"、"教徒"等。
#### 7. 画面纯净 (No Text / No Overlay)
严禁画面中出现任何文字、字幕、Logo 或水印。所有信息必须通过纯视觉元素传达,不得依赖叠加文本。
#### 8. 空间与时间 (Logic & Timing)
场景切换需有物理衔接(如走入阴影、开门)或使用 **"硬切 (Hard Cut)"**。总时长 15s 内,1-6 个分镜。
#### 9. 人物容貌标识 (Character Ethnicity Tagging)
为画面中**主角以外的其他可见人物**标注容貌特征。**不标注主角**(梦境为第一人称视角,主角通常以 POV/手部/背影出镜,脸部不可见)。
**地域检测**:扫描用户素材中的地域/国家关键词:
| 用户素材关键词 | Prompt 中为其他人物追加 |
|--------------|----------------------|
| 美国、纽约、洛杉矶等 | **美国人** |
| 日本、东京、大阪等 | **日本人** |
| 韩国、首尔、釜山等 | **韩国人** |
| 印度、孟买、德里等 | **印度人** |
| 英国、伦敦等 | **英国人** |
| 泰国、曼谷等 | **泰国人** |
| 俄罗斯、莫斯科等 | **俄罗斯人** |
| 其他可识别的国家/地区 | 对应国籍的人 |
- **默认值**:素材中**没有**任何地域/国家词汇时,默认为其他可见人物追加 **"东亚人容貌"**
- **写入方式**:自然融入**其他人物**首次出场描写,如"一名**东亚人容貌**的同伴站在走廊尽头"、"数十名**东亚人容貌**的同事三五成群分散在场地各处"
- **无其他人物时**:整段梦境只有主角一人(如独自加班、独自在家),则不追加任何容貌标识
#### 10. 公司环境参考图标识 (Company Environment Reference Prefix)
当用户素材描述了**特定的公司/工作场所物理环境**时,在 Prompt 最前面追加 **"参考图中环境;"** 前缀。Worker 会自动从 `{W}/dream_to_video/reference_images/` 选取对应室内/室外参考图上传。
**需要追加**(语义指向场所/环境):
| 用户素材示例 | 判断 | 理由 |
|------------|------|------|
| "在**公司**的走廊里" | ✅ 追加 | "公司"指代物理场所 |
| "**公司**门口停着一辆车" | ✅ 追加 | 描述公司的物理入口 |
| "到了**几号楼**的电梯间" | ✅ 追加 | 描述具体建筑物 |
| "**几号棚**的灯全亮着" | ✅ 追加 | 描述具体工棚/摄影棚 |
| "**办公楼**走廊的灯是绿色的" | ✅ 追加 | 描述办公建筑环境 |
| "**写字楼**大堂很空旷" | ✅ 追加 | 描述写字楼环境 |
| "**工厂**车间里全是灰尘" | ✅ 追加 | 描述工厂环境 |
| "公司**年会**在某个**场地**里,**天花板**漏水" | ✅ 追加 | 场地+天花板=物理建筑环境 |
| "在**公司**加班,**办公室**的灯突然灭了" | ✅ 追加 | 办公室=物理空间 |
**不需要追加**(语义指向人/社交关系/非公司场景):
| 用户素材示例 | 判断 | 理由 |
|------------|------|------|
| "**公司的**同事找我借钱" | ❌ 不追加 | "公司的"修饰人,非场所 |
| "和**公司**的人一起吃饭" | ❌ 不追加 | "公司的人"指社交关系 |
| "**公司**老板突然出现" | ❌ 不追加 | 指代人物身份 |
| "在商场碰到**公司**的朋友" | ❌ 不追加 | 场景是商场,非公司 |
| "参与公司**红包大战**" | ❌ 不追加 | 社交活动,无物理空间描写 |
**判断核心**:看"公司/楼/棚"是充当 **地点状语**(在哪里)还是 **定语修饰人**(谁的)。前者追加,后者不追加。当同一素材中既有公司环境描写又有公司相关人物时,以**是否有具体的公司内部场景描写**为准——只要有走廊、办公室、电梯间、车间、场地+天花板/墙壁等实际空间描述,就追加。
**写入格式**:`参考图中环境;这是一个[写实+情绪词]的梦境……`
---
### 输出格式
Prompt 必须是一整段连续文本(不要分段、不要 Markdown),包含以下部分:
#### 部分 1:风格总领句
> 这是一个 **[写实+情绪词]** 的梦境,镜头采用 **[镜头方式]**。
#### 部分 2:视觉叙事(Shot 1-6)
| 分镜 | 职能 | 描述要点 |
|------|------|----------|
| Shot 1 | 起手与定调 | 环境显现 + 自然光影 + 主角与环境的物理关系 |
| Shot 2 | 主线与细节 | 核心事件 + 超现实细节 + 关键动作交互 |
| Shot 3 | 转折或跳切 | 硬切或物理衔接 + 镜头机位变动 + 诡异反馈 |
| Shot 4-6 | 高潮与退出 | 视觉冲击 + 画面边缘畸变 + 物理消散或硬止 |
#### 部分 3:环境声效
环境背景音 + 关键物理撞击声 + 扭曲的机械声 / 环境音的物理回响
#### 部分 4:技术风格底座(强制包含)
> Arri Alexa拍摄,鱼眼镜头 (Fisheye 12mm),画面呈现明显桶形畸变。上下黑边 (2.39:1 Letterbox),强制宽银幕电影画幅。暗角 (Heavy Vignette),画面四角压暗向中心收拢。**[根据场景填写光影描述]**,低饱和度冷色调。照片级写实。微弱的数字噪点和类似VHS的失真在画面边缘闪烁,图像感觉脆弱,仿佛随时会崩塌瓦解。梦核。阈限空间。
---
### 输出示例
这是一个写实荒诞惊恐的梦境,镜头采用鱼眼广角与手持跟随交替。Shot 1:鱼眼镜头,度假区开阔的海滨步道,阳光充足。步道一侧的岩石海岸上,密密麻麻铺满了数百只海狮,它们慵懒地堆叠在一起,湿润皮肤反光。游客们在步道上悠闲走动,与海狮群仅一道低矮栏杆之隔。画面平静得不自然。Shot 2:硬切。固定机位,超广角。海狮群突然躁动,前排的海狮抬起上半身张开嘴露出牙齿。下一秒,整个群体如潮水般同时涌过栏杆,数百只湿滑的躯体在混凝土步道上蠕动推进。游客们开始奔跑,桶形畸变将逃跑的人群拉伸变形。Shot 3:手持跟随,剧烈晃动。主角赤脚在粗糙水泥路面上奔跑,镜头低角度跟随脚部。一只蓝色洞洞鞋被踩踏的人群踢飞,翻滚着落入被海狮占领的区域。主角回头望去,密集的海狮已覆盖整条步道,湿润皮肤在阳光下反射出油腻光泽。Shot 4:鱼眼镜头。主角赤脚跟随人群涌向景区出口铁闸门,身后远处,海狮群的黑色剪影缓慢而整齐地推进,占据整个度假区。出口铁门在人群挤压下发出金属形变声响。画面四角暗角加重,逐渐收缩至全黑。海滨风声与海狮群体的低沉嘶吼混合成持续轰鸣,数百具湿滑身体在混凝土上拖行的摩擦声,人群奔跑的杂乱脚步与喘息,铁闸门被挤压的金属扭曲声。Arri Alexa拍摄,鱼眼镜头 (Fisheye 12mm),画面呈现明显桶形畸变。上下黑边 (2.39:1 Letterbox),强制宽银幕电影画幅。暗角 (Heavy Vignette),画面四角压暗向中心收拢。海滨强烈日光下的高反差,低饱和度冷色调。照片级写实。微弱的数字噪点和类似VHS的失真在画面边缘闪烁,图像感觉脆弱,仿佛随时会崩塌瓦解。梦核。阈限空间。
---
## 三、登录说明
Worker 启动时会自动检测即梦平台的登录状态:
- **首次使用 / 登录过期**:浏览器会自动打开即梦网站并显示二维码,同时播放提示音(三声长鸣+两声短鸣)提醒用户。用户用手机扫码登录后,程序自动检测并继续工作。
- **已登录**:直接开始工作,无需任何操作。
- **超时**:默认等待 10 分钟,超时后程序退出。
也可以手动预先登录:
```bash
cd "{W}/dream_to_video" && python main.py login
```
---
## 四、后处理特效(Elliptic Shatter)
Worker 下载完每个视频后,会自动执行 **椭圆破碎边缘特效** 后处理,最终输出两个文件:
| 文件 | 命名格式 | 说明 |
|------|---------|------|
| 原版 | `task_XXX_YYYYMMDD_HHMMSS.mp4` | 即梦生成的原始视频 |
| 特效版 | `task_XXX_YYYYMMDD_HHMMSS_elliptic-shatter.mp4` | 叠加椭圆破碎边缘特效 |
**特效说明**:
- 视频中心保持清晰原始画面
- 边缘呈现破碎玻璃质感(碎片散落、轻微旋转、色差折射)
- 外边框暗黑背景 + 微弱碎片纹理
- 整体效果:黑色纹理边框 + 椭圆观察窗 + 旋转碎裂粒子
特效脚本位于 `effects/elliptic_shatter.py`,使用 OpenCV + NumPy 处理,在子进程中运行不阻塞主流程。
---
## 五、关键注意事项
1. **Prompt 是一整段纯文本**,不要有换行、Markdown 格式或分段。直接作为字符串传给 `python main.py add`。
2. **Worker 只需启动一次**,它会持续运行直到所有任务完成。多个素材可以连续 add,Worker 自动排队处理。
3. **每个任务输出两个视频**到 `{W}/dream_to_video/output/`:原版 + elliptic-shatter 特效版。
4. **下载+特效处理完成后有提示音**(3 声短促蜂鸣),用户听到声音即可去取视频。
5. 如果用户一次给了多段素材,为每段分别生成独立的 Prompt 并分别 add。
6. 技术底座中的 **【光影】** 需要根据具体场景替换,如"深夜人工光源与路灯的混合冷光"、"海滨强烈日光下的高反差"等。Related Skills
manim-video
Build reusable Manim explainers for technical concepts, graphs, system diagrams, and product walkthroughs, then hand off to the wider ECC video stack if needed. Use when the user wants a clean animated explainer rather than a generic talking-head script.
videodb
视频与音频的查看、理解与行动。查看:从本地文件、URL、RTSP/直播源或实时录制桌面获取内容;返回实时上下文和可播放流链接。理解:提取帧,构建视觉/语义/时间索引,并通过时间戳和自动剪辑搜索片段。行动:转码和标准化(编解码器、帧率、分辨率、宽高比),执行时间线编辑(字幕、文本/图像叠加、品牌化、音频叠加、配音、翻译),生成媒体资源(图像、音频、视频),并为直播流或桌面捕获的事件创建实时警报。
video-editing
AI-assisted video editing workflows for cutting, structuring, and augmenting real footage. Covers the full pipeline from raw capture through FFmpeg, Remotion, ElevenLabs, fal.ai, and final polish in Descript or CapCut. Use when the user wants to edit video, cut footage, create vlogs, or build video content.
demo-video
Create product demo videos by automating browser interactions and capturing frames. Use when the user wants to record a demo, walkthrough, product showcase, or interactive video of a web application. Supports Playwright CDP screencast for high-quality capture and FFmpeg for video encoding.
GameDev Study — Video Tutorial to Learning Notes
Generates structured learning materials from game development video tutorials across multiple domains, including Godot, Unity, Unreal Engine, Blender, and Pixel Art.
remotion-video-creation
Best practices for Remotion - Video creation in React. 29 domain-specific rules covering 3D, animations, audio, captions, charts, transitions, and more.
videodb
Video and audio perception, indexing, and editing. Ingest files/URLs/live streams, build visual/spoken indexes, search with timestamps, edit timelines, add overlays/subtitles, generate media, and create real-time alerts.
videodb-skills
Upload, stream, search, edit, transcribe, and generate AI video and audio using the VideoDB SDK.
seek-and-analyze-video
Seek and analyze video content using Memories.ai Large Visual Memory Model for persistent video intelligence
video-downloader
Downloads videos from YouTube and other platforms for offline viewing, editing, or archival. Handles various formats and quality options.
feature-video
Record a video walkthrough of a feature and add it to the PR description. Use when a PR needs a visual demo for reviewers, when the user asks to demo a feature, create a PR video, record a walkthrough, show what changed visually, or add a video to a pull request.
video-content-strategist
Use when planning video content strategy, writing video scripts, optimizing YouTube channels, building short-form video pipelines (Reels, TikTok, Shorts), or repurposing long-form content into video. Triggers: 'start a YouTube channel', 'video content strategy', 'write a video script', 'repurpose into video', 'YouTube SEO', 'short-form video'. NOT for written blog content (use content-production). NOT for social captions without video (use social-media-manager).