如何用华为云码道 CodeArts和Seedance 2.5 模型,复刻经典画作名场面
清明上河图视频生成项目
基于 华为云码道(CodeArts) 智能编码助手与 Seedance 2.5 视频生成模型,复刻清明上河图原貌,让千年古画"活"起来。
项目简介
本项目使用 AI 视频生成技术,将静态的清明上河图(或类似宋代市井风格画作)转化为动态视频,重现宋代汴京的市井繁华景象。通过精心设计的提示词(Prompt),让画面中的人物、船只、旗帜、炊烟等元素依次"苏醒",营造穿越时空回到宋代的沉浸式体验。
核心工作流:
古画图片 ──→ CodeArts 辅助编写脚本 ──→ Seedance 2.5 图生视频 ──→ 动态视频输出
↑
精心设计的提示词(Prompt)
项目特点
- 图生视频 + 文生视频双模式:既能基于古画图片生成动态视频,也能纯文字描述生成宋代场景
- 预设提示词模板:内置 5 套针对清明上河图优化的提示词,开箱即用
- 批量分镜生成:通过 JSON 配置文件批量提交多分镜任务,一次性生成系列视频
- 任务管理:支持任务查询、失败重试、执行报告导出
- 面向教学:详细的实操步骤,适合大学生课堂演示与动手实践
目录结构
qingming-shanghe-tu-video/
├── README.md # 本文档(实操指导)
├── requirements.txt # Python 依赖
├── .env.example # 环境变量配置示例
├── .gitignore # Git 忽略规则
├── LICENSE # MIT 开源许可证
├── src/ # 源代码
│ ├── generate_video.py # 核心视频生成脚本(文生/图生/模板/查询)
│ ├── batch_generate.py # 批量生成脚本
│ └── prompts/ # 预设提示词模板
│ ├── qingming_panorama.json # 市井全景苏醒
│ ├── qingming_bridge.json # 拱桥穿越特写
│ ├── qingming_river.json # 河上船只航行
│ ├── qingming_street.json # 街市烟火
│ └── qingming_text_only.json # 纯文生视频全景
├── examples/ # 示例
│ ├── run_examples.ps1 # PowerShell 一键演示脚本
│ └── batch_config.json # 批量生成配置示例
├── docs/ # 补充文档
│ ├── api-reference.md # API 参数参考
│ └── troubleshooting.md # 常见问题排查
└── assets/ # 素材目录(放入古画图片)
└── .gitkeep
快速开始
第一步:环境准备
1. 安装 Python 3.10+
python --version
# 如果未安装,前往 https://www.python.org/downloads/ 下载
2. 安装依赖
cd qingming-shanghe-tu-video
pip install -r requirements.txt
第二步:获取 API Key
- 注册/登录 火山引擎控制台
- 进入 方舟(Ark)平台:https://console.volcengine.com/ark
- 在左侧菜单找到 「API Key 管理」 → 创建 API Key
- 在 「模型广场」 中找到 Seedance 视频生成模型,记录模型 ID(如
doubao-seedance-1-0-pro-250528)
第三步:配置环境变量
临时配置(当前窗口有效):
$env:VOLC_API_KEY="你的方舟API Key"
$env:SEEDANCE_MODEL_ID="doubao-seedance-1-0-pro-250528"
永久配置(推荐):
[Environment]::SetEnvironmentVariable("VOLC_API_KEY", "你的方舟API Key", "User")
[Environment]::SetEnvironmentVariable("SEEDANCE_MODEL_ID", "doubao-seedance-1-0-pro-250528", "User")
# 设置后重启 PowerShell 窗口生效
验证配置:
$env:VOLC_API_KEY # 应显示你的 API Key
$env:SEEDANCE_MODEL_ID # 应显示模型 ID
第四步:准备素材
将清明上河图图片放入 assets/ 目录:
# 例如将图片复制到 assets 目录
Copy-Item "你的图片路径\qingming.webp" ".\assets\"
支持的图片格式:.jpg、.jpeg、.png、.webp、.bmp、.gif
第五步:生成视频
方式一:使用预设模板(推荐新手)
# 查看可用模板
python src/generate_video.py templates
# 使用"市井全景苏醒"模板生成视频
python src/generate_video.py template qingming_panorama `
--image ./assets/qingming.webp `
-o ./output/panorama.mp4
方式二:图生视频(自定义提示词)
python src/generate_video.py image `
-p "镜头缓缓拉近石拱桥,桥上行人的衣袂在微风中飘动,河面波光粼粼,一艘木船从桥下穿过。色调保持古画暖黄质感。" `
--image ./assets/qingming.webp `
-o ./output/bridge.mp4 `
--ratio 16:9 `
--duration 10
方式三:文生视频(不依赖图片)
python src/generate_video.py text `
-p "宋代汴京清晨,薄雾笼罩河面,木船缓缓航行,河岸商铺幌旗招展,行人往来如织,炊烟袅袅,阳光穿透薄雾洒下暖色柔光,工笔画风格。" `
-o ./output/text_scene.mp4 `
--ratio 16:9 `
--duration 5
方式四:批量生成(多分镜系列)
# 1. 编辑批量配置文件
# 打开 examples/batch_config.json,按需修改提示词和图片路径
# 2. 执行批量生成
python src/batch_generate.py --config examples/batch_config.json
# 3. 如果有任务失败,可以重试
python src/batch_generate.py --config examples/batch_config.json --retry-failed
方式五:一键演示(运行所有示例)
# 运行 PowerShell 演示脚本,依次执行所有示例
.\examples\run_examples.ps1
第六步:查看结果
生成的视频保存在 output/ 目录:
ls output/
# panorama.mp4 - 市井全景苏醒
# bridge.mp4 - 拱桥穿越特写
# text_scene.mp4 - 纯文生视频
# scene_01_panorama.mp4 - 批量生成结果
# ...
命令参考
generate_video.py 命令一览
| 命令 | 说明 | 示例 |
|---|---|---|
text |
文生视频 | python generate_video.py text -p "描述" -o out.mp4 |
image |
图生视频 | python generate_video.py image -p "描述" --image img.jpg -o out.mp4 |
template |
模板生成 | python generate_video.py template qingming_panorama --image img.jpg -o out.mp4 |
templates |
列出模板 | python generate_video.py templates |
query |
查询任务 | python generate_video.py query -t cgt-xxxx |
常用参数
| 参数 | 说明 | 可选值 |
|---|---|---|
--prompt / -p |
视频描述提示词 | 任意中文/英文描述 |
--image |
本地图片路径 | .jpg .png .webp 等 |
--image-url |
图片 URL | https://... |
--output / -o |
输出文件路径 | 任意 .mp4 路径 |
--ratio |
宽高比 | 16:9 / 9:16 / 1:1 |
--duration |
视频时长(秒) | 5 / 10(取决于模型支持) |
--watermark |
添加水印 | 无参数,加上即生效 |
提示词设计指南
好的提示词是生成高质量视频的关键。以下是针对清明上河图主题的设计要点:
1. 镜头运动
| 运镜方式 | 提示词写法 | 适用场景 |
|---|---|---|
| 缓推进 | “镜头缓缓向前推进” | 全景苏醒、整体展示 |
| 平移 | “镜头沿街道缓缓平移” | 街市长卷展示 |
| 仰拍上升 | “从桥下水面仰拍升至桥面” | 拱桥穿越特写 |
| 跟随 | “镜头跟随一艘木船前行” | 河上船只航行 |
2. 动态元素清单
提示词中应包含 3-5 个动态元素,避免过多导致画面混乱:
- 自然元素:水波荡漾、柳枝摇曳、炊烟升起、薄雾流动
- 人物动态:行走、奔跑、交谈、叫卖、划船、挑担
- 物体动态:船只航行、幌旗飘动、衣袂飘动
3. 色调控制
色调关键词:
- 主色:米黄、赭石、土褐、暖黄
- 点缀:青、蓝、红、绿
- 水面:淡蓝灰、淡青灰
- 光线:柔和暖阳、清晨薄雾、明暗交错
4. 提示词模板结构
{
"title": "模板标题",
"description": "模板说明",
"mode": "image",
"prompt": "完整的视频描述提示词...",
"ratio": "16:9",
"duration": 10,
"watermark": false
}
华为云码道(CodeArts)在项目中的角色
本项目从构思到实现,全程使用 华为云码道(CodeArts) 智能编码助手辅助开发:
| 环节 | CodeArts 的作用 |
|---|---|
| 需求分析 | 通过对话式交互,梳理项目需求、确定技术方案 |
| 代码编写 | 自动生成 API 调用脚本、批量生成脚本、提示词模板 |
| 提示词设计 | 根据古画画面分析结果,生成针对性的视频提示词 |
| 调试优化 | 语法检查、错误排查、参数调整 |
| 文档生成 | 自动编写 README、API 参考文档、故障排查指南 |
| 项目管理 | 项目目录结构规划、Git 配置文件生成 |
体验 CodeArts: 访问华为云码道控制台,创建智能编码会话,即可开始 AI 辅助开发。
课堂演示建议
演示流程(约 30 分钟)
| 时间 | 内容 | 操作 |
|---|---|---|
| 5 min | 项目背景介绍 | 讲解清明上河图与 AI 视频生成 |
| 5 min | 环境配置演示 | 现场配置 API Key、安装依赖 |
| 10 min | 核心功能演示 | 运行图生视频、展示生成过程 |
| 5 min | 提示词讲解 | 分析提示词设计要点 |
| 5 min | 学生动手实践 | 修改提示词、尝试生成 |
学生实践任务
- 基础任务:使用预设模板生成一段清明上河图动态视频
- 进阶任务:修改提示词,改变镜头运动方向和动态元素
- 挑战任务:设计 3 个分镜提示词,用批量生成脚本制作系列视频
- 创意任务:选择其他古画(如千里江山图),编写提示词生成动态视频
评估标准
| 维度 | 评分要点 |
|---|---|
| 功能完成 | 视频成功生成并能播放 |
| 提示词质量 | 描述具体、动态元素丰富、色调控制合理 |
| 创意性 | 镜头设计有新意、场景选择独特 |
| 技术理解 | 能解释 API 调用流程、参数含义 |
常见问题
Q: 提示词应该用中文还是英文?Seedance 模型支持中英文提示词。本项目的预设模板使用中文,因为中文能更精确地描述中国古画的意境和色调。你也可以尝试英文提示词对比效果。
Q: 视频生成需要多长时间?通常 5 秒视频需要 1-3 分钟,10 秒视频需要 2-5 分钟,具体取决于模型负载。脚本默认轮询超时为 600 秒(10 分钟),可通过环境变量 SEEDANCE_POLL_TIMEOUT 调整。
本地图片会转为 base64 编码发送,建议图片大小不超过 10MB。过大的图片可能导致请求超时。如图片过大,可先用工具压缩。
Q: 生成失败怎么办?- 检查 API Key 和模型 ID 是否正确
- 查看错误信息中的 HTTP 状态码和响应内容
- 参考
docs/troubleshooting.md排查 - 网络 问题可适当增加轮询超时
将 --ratio 参数改为 9:16 即可:
python src/generate_video.py image -p "..." --image img.jpg -o out.mp4 --ratio 9:16
更多问题请参考 docs/troubleshooting.md。
技术栈
| 技术 | 说明 |
|---|---|
| Python 3.10+ | 编程语言 |
| requests | HTTP 请求库 |
| Seedance 2.5 | 字节跳动视频生成模型(火山引擎方舟平台) |
| 华为云码道 CodeArts | AI 智能编码助手(项目开发工具) |
贡献指南
欢迎提交 Issue 和 Pull Request:
- Fork 本仓库
- 创建特性分支:
git checkout -b feature/new-prompt - 提交更改:
git commit -m "添加新提示词模板" - 推送分支:
git push origin feature/new-prompt - 创建 Pull Request
欢迎贡献的内容:
- 新的提示词模板(不同古画、不同镜头风格)
- 代码优化与 Bug 修复
- 文档翻译与改进
- 新功能建议(如视频拼接、配乐等)
致谢
- 清明上河图:北宋画家张择端绘制的传世名画,本项目的灵感来源
- 火山引擎方舟平台:提供 Seedance 视频生成模型 API
- 华为云码道 CodeArts:AI 智能编码助手,辅助本项目开发
更多推荐


所有评论(0)