dream-to-video-skill
用文字描述梦境,AI 自动生成电影级视频的 Agent 技能
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
用文字描述梦境,AI 自动生成电影级视频的 Agent 技能
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
你一定有过这样的经历——某个深夜,一段奇异的梦境久久萦绕在脑海里:赤脚奔跑在铺满月光的海滨步道,周围密密麻麻的海狮用圆润的眼睛注视着你,画面如此清晰,色彩如此浓烈,却转瞬即逝。大多数时候,我们只能用苍白的语言向朋友描述"我做了一个很奇怪的梦",但听过的人往往一脸茫然:那个梦境里,到底是什么样的?
Dream-to-Video Skill 解决的就是这个痛点——它是一个 AI Agent 技能,能把你的梦境文字描述自动转化成电影级的视频,让你脑海里的超现实画面真正"可见"。这不仅仅是文字配图,而是让 AI 按照严格的影视制作规则,把梦"拍"成一段 15 秒的短片。
整个转化流程环环相扣,像一条精密的生产流水线:
第一步:AI 提示词工程师
你输入一段梦的描述后,系统会调用 Claude / GPT-4o / Gemini 等大模型,按照项目内置的 10 条严格规则进行提示词工程转化。这 10 条规则包含:绝对写实风格(禁止任何二次元/动漫词汇)、超现实逻辑处理(不把人变成怪物,而是通过环境氛围体现梦境感)、鱼眼镜头规范、非言语叙事(无任何文字/字幕叠加)、人物容貌标识规则等。其中最有趣的规则是鱼眼镜头(12mm Fisheye)强制要求——通过桶形畸变强化梦境的空间扭曲感和压迫感,正是梦核(Dream Core)美学的核心表达方式。
第二步:浏览器自动化提交
转化好的电影级提示词被加入本地任务队列(SQLite + JSONL 持久化),后台 Worker 通过 Playwright 驱动真实的 Chromium 浏览器,模拟用户登录字节跳动旗下即梦(Jimeng)视频生成平台,提交提示词,并实时监控渲染进度。浏览器交互包括:Cookie 持久化登录、填写提示词表单、上传参考图(特定室内场景时触发)、监控生成状态。
第三步:下载与后处理
视频渲染完成后自动下载,并叠加项目自研的椭圆破碎(Elliptic Shatter)边缘特效——中心区域保持清晰画面,边缘区域呈现碎玻璃质感,输出原版和特效版两个文件。特效由 OpenCV 实现,画面边缘通过椭圆掩膜 + 模糊处理制造破碎感,进一步强化梦境的脆弱与不真实。
代码结构清晰分层,体现了良好的工程设计:
| 模块 | 文件 | 职责 |
|---|---|---|
| 核心入口 | main.py | CLI 命令行 + 进度回调 |
| Prompt 引擎 | prompt_engine.py | 多 API 提供商调用 + 系统提示词 |
| 浏览器自动化 | browser/engine.py | Playwright 封装、页面交互、进度监控 |
| 任务队列 | batch/worker.py | 后台 Worker、状态持久化、崩溃恢复 |
| 数据持久化 | database.py | SQLite 任务状态存储 |
| 特效处理 | effects/elliptic_shatter.py | OpenCV 后处理特效 |
| API 服务 | api/server.py | FastAPI Web 接口 + SSE 进度推送 |
| 登录认证 | auth/login.py | 即梦平台扫码登录 + Cookie 导出 |
核心技术栈:Python 3.10+ / Playwright / FastAPI / Pydantic / aiosqlite / OpenCV。
多 API 提供商支持 是项目的一大亮点:prompt_engine.py 内置了对 Claude(默认)、OpenAI GPT-4o、OpenRouter 聚合平台、Google Gemini 四种模型的调用适配,通过 provider 参数切换,无需修改业务逻辑。这种松耦合设计让提示词转化环节天然具备模型可替换性。
崩溃恢复机制是生产级系统的标配:batch/worker.py 通过 SQLite + JSONL + 进程 ID 文件三重持久化确保 Worker 崩溃重启后不会重复提交任务。batch_state.json 记录全量任务状态,processed_ids.txt 作为轻量级防重复提交保障。
Playwright 反检测体现在 stealth.py 和 SLOW_MO=100ms 的操作间隔配置上,在自动化和隐蔽性之间做了权衡。
平台强依赖是最根本的局限。整个系统的可用性完全押注在即梦平台——这是一个字节跳动旗下的商业 AI 视频生成平台,需要用户手动扫码登录 Cookie。一旦平台 API 变更(比如登录流程改版、UI 重构)、账号被封禁,或者平台端渲染超时(默认超时 30 分钟),整个流水线就会中断。项目虽有重试机制,但无法从根本上改变这一依赖。
合规风险不可忽视。即梦平台的内容审核机制会对提示词进行敏感词过滤,MAX_MODERATION_RETRIES=2 次自动重试后仍失败则任务标记失败。但更根本的问题是:用户描述的梦境内容如果涉及敏感场景(暴力、政治、色情等),既可能触发平台拦截,也可能在某些地区带来合规风险。项目代码本身没有做敏感内容预过滤,完全依赖平台端审核。
浏览器自动化脆弱性。即梦平台的 UI 可能随时更新,导致 CSS 选择器(selectors.py)失效。MAX_RETRIES=3 的重试策略对于偶发的网络抖动足够,但面对平台大规模改版时,开发者需要手动更新选择器。
没有 Docker 支持。项目不含 Dockerfile 或 docker-compose.yml,不支持容器化部署,在服务器环境下的可移植性受限。虽然提供了 pip install + playwright install 的安装方式,但依赖系统 Chromium 环境。
适用人群:对 AI 视频生成有探索兴趣的个人创作者、有批量视频制作需求的内容团队,以及研究 AI Agent 与商业平台自动化交互的技术人员。
入门门槛中等:需要具备 Python 基础操作能力,能配置 API Key,并完成一次即梦平台的扫码登录(之后 Cookie 持久化,无需重复登录)。Python 依赖通过 requirements.txt 一键安装,Chromium 通过 playwright install chromium 自动获取,无需手动安装浏览器。
推荐使用方式:如果你有多个梦境想要生成视频,先用 python main.py add "<提示词>" 向队列批量添加任务,然后 python main.py worker 启动后台 Worker 无人值守运行,最后用 python main.py status 查看进度。
Dream-to-Video 代表的不仅是单个工具,更是一种多模态 AI Agent 工作流的实践范式:LLM 做理解转化 → 浏览器自动化做平台交互 → OpenCV 做后处理,最终输出用户可直接消费的内容。整个链路无需人工干预,体现了 AI Agent 在创意内容生产领域的巨大潜力。
尽管强依赖商业平台带来了可持续性的隐患,但这种将 AI 能力与现有商业产品深度整合的思路,对于希望快速落地多模态内容生成场景的开发者,具有重要的参考价值。