即梦数字人视频生成(Streamlit Demo)
基于火山引擎即梦(Jimeng)CV API 的数字人视频生成示例项目。
支持图片 + 音频驱动的数字人视频生成流程,集成了主体检测、Mask 选择、Prompt 控制、视频生成与下载等完整功能,适合内部测试、技术演示及二次开发。
一、功能概览
核心功能
- AK / SK 在线填写:支持火山引擎 Access Key / Secret Key 在页面中直接输入,无需写死在代码中,便于多账号切换。
- 图片上传(人物图像):支持 JPG / PNG 格式,自动保存到本地并生成公网可访问 URL。
- 音频上传(驱动音频):支持 MP3 / WAV 格式,作为数字人说话 / 表情驱动音频。
- 人物 / 主体检测:调用即梦目标检测接口,自动识别图片中的多个主体,返回每个主体对应的 Mask。
- Mask 裁剪与可视化预览:根据 Mask 自动裁剪主体区域,按最长边缩放,统一预览尺寸。
- 主体选择机制:可从多个检测到的主体中选择,支持不使用 Mask,直接使用原图模式。
- Prompt 驱动控制:支持输入文本 Prompt,用于控制表情、稳定性、真实感、风格等。
- 数字人视频生成:提交视频生成任务,自动轮询任务状态。
- 视频结果展示与下载:生成完成后可直接在线播放,支持下载 MP4 文件,视频按时间 + UUID 自动命名并保存。
二、运行环境要求
- Python ≥ 3.9(推荐 3.10)
- 操作系统:Linux / macOS / Windows
- 一个可公网访问的静态文件服务(用于图片和音频 URL)
⚠️ 火山引擎接口要求: 图片和音频 URL 必须可以被公网直接访问
三、依赖安装
1. 创建虚拟环境(强烈推荐)
python -m venv venv
source venv/bin/activate
Windows:
venv\Scripts\activate
2. 安装 Python 依赖
直接安装:
pip install streamlit requests pillow numpy
或使用 requirements.txt:
pip install -r requirements.txt
四、目录结构说明
.
├── app.py # Streamlit 主程序
├── res/ # 生成的视频结果保存目录
├── requirements.txt # Python 依赖
└── README.md
请确保 res 目录存在:
mkdir -p res
五、静态文件服务配置(非常重要)
项目中会将上传的图片 / 音频保存到本地目录,并通过 HTTP 方式对外暴露。
示例配置(本地测试)
UPLOAD_DIR = "/home/yourname/data/uploads"
PUBLIC_BASE_URL = "http://你的 IP:8000"
启动一个简单的 HTTP 服务:
cd /home/yourname/data/uploads
python -m http.server 8000
生产环境建议使用:nginx, caddy, cloudflared
生产环境配置步骤
- 安装 cloudflared
# 下载
wget https://github.com/cloudflare/cloudflared/releases/latest/download/cloudflared-linux-amd64
# 改名
mv cloudflared-linux-amd64 cloudflared
# 加执行权限
chmod +x cloudflared
# 移到 PATH
sudo mv cloudflared /usr/local/bin/
- 启动运行
本地启动 HTTP 服务:
cd /home/yourname/data/uploads
python -m http.server 8000
新开一个终端,启动隧道:
cloudflared tunnel --url http://localhost:8000
会看到类似输出: https://random-name.trycloudflare.com
访问你的音频: https://random-name.trycloudflare.com/test.mp3
六、启动项目
streamlit run app.py
浏览器访问:
http://localhost:8501
七、使用流程说明
- 打开页面,输入 Access Key / Secret Key
- 上传一张人物图片
- 上传一段音频文件
- (可选)输入 Prompt 描述
- 点击「开始检测」
- 从检测到的主体中选择目标(或选择原图)
- 等待视频生成完成
- 在线预览并下载生成的视频
八、常见注意事项
- 建议使用清晰正脸人物图像
- 音频时长不宜过长(建议 < 60 秒)
- 若接口返回失败,请重点检查:
- AK / SK 是否正确
- 图片 / 音频 URL 是否能被公网访问
- 文件格式是否符合要求
九、适用场景
- 数字人 / 虚拟人能力演示
- 内部技术验证
- API 调用示例参考
- 二次开发或功能扩展基础工程
十、项目地址及页面
页面展示截图: ![页面展示截图]
十一、免责声明
本项目仅作为火山引擎即梦 API 使用示例(Demo)。 生成效果、接口能力、配额限制等以火山引擎官方文档为准。
参考链接:https://jimeng.jianying.com/ai-tool/generate?type=digitalHuman
十二、可扩展方向(建议)
- Docker 一键部署
- AK / SK 使用环境变量管理
- 多任务队列 / 并发控制
- 历史任务与结果管理
- Prompt 模板与预设管理
如需进一步定制或扩展,请根据实际业务需求进行二次开发。

