三亩地 三亩地SAN MU DI · CODE DIARY
ARTICLE DETAIL

日记详情

真实记录编程学习的某一天,欢迎挑你感兴趣的翻一翻。

如何用华为云码道 CodeArts和Seedance 2.5 模型,复刻经典画作名场面

如何用华为云码道 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

  1. 注册/登录 火山引擎控制台
  2. 进入方舟(Ark)平台:https://console.volcengine.com/ark
  3. 在左侧菜单找到「API Key 管理」→ 创建 API Key
  4. 「模型广场」中找到 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/目录:

lsoutput/# 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图片 URLhttps://...
--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学生动手实践修改提示词、尝试生成

学生实践任务

  1. 基础任务:使用预设模板生成一段清明上河图动态视频
  2. 进阶任务:修改提示词,改变镜头运动方向和动态元素
  3. 挑战任务:设计 3 个分镜提示词,用批量生成脚本制作系列视频
  4. 创意任务:选择其他古画(如千里江山图),编写提示词生成动态视频

评估标准

维度评分要点
功能完成视频成功生成并能播放
提示词质量描述具体、动态元素丰富、色调控制合理
创意性镜头设计有新意、场景选择独特
技术理解能解释 API 调用流程、参数含义

常见问题

Q: 提示词应该用中文还是英文?

Seedance 模型支持中英文提示词。本项目的预设模板使用中文,因为中文能更精确地描述中国古画的意境和色调。你也可以尝试英文提示词对比效果。

Q: 视频生成需要多长时间?

通常 5 秒视频需要 1-3 分钟,10 秒视频需要 2-5 分钟,具体取决于模型负载。脚本默认轮询超时为 600 秒(10 分钟),可通过环境变量SEEDANCE_POLL_TIMEOUT调整。

Q: 图片大小有限制吗?

本地图片会转为 base64 编码发送,建议图片大小不超过 10MB。过大的图片可能导致请求超时。如图片过大,可先用工具压缩。

Q: 生成失败怎么办?
  1. 检查 API Key 和模型 ID 是否正确
  2. 查看错误信息中的 HTTP 状态码和响应内容
  3. 参考docs/troubleshooting.md排查
  4. 网络 问题可适当增加轮询超时
Q: 如何生成竖屏视频?

--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+编程语言
requestsHTTP 请求库
Seedance 2.5字节跳动视频生成模型(火山引擎方舟平台)
华为云码道 CodeArtsAI 智能编码助手(项目开发工具)

贡献指南

欢迎提交 Issue 和 Pull Request:

  1. Fork 本仓库
  2. 创建特性分支:git checkout -b feature/new-prompt
  3. 提交更改:git commit -m "添加新提示词模板"
  4. 推送分支:git push origin feature/new-prompt
  5. 创建 Pull Request

欢迎贡献的内容:

  • 新的提示词模板(不同古画、不同镜头风格)
  • 代码优化与 Bug 修复
  • 文档翻译与改进
  • 新功能建议(如视频拼接、配乐等)

致谢

  • 清明上河图:北宋画家张择端绘制的传世名画,本项目的灵感来源
  • 火山引擎方舟平台:提供 Seedance 视频生成模型 API
  • 华为云码道 CodeArts:AI 智能编码助手,辅助本项目开发
← 返回列表