即梦数字人视频生成(Streamlit Demo)
这是一个基于火山引擎即梦(Jimeng)CV API 的数字人视频生成示例项目。
它支持通过'图片 + 音频'驱动数字人视频生成,集成了主体检测、Mask 选择、Prompt 控制、任务轮询与结果下载等功能。适合用于内部测试、技术验证或作为二次开发的基座。
核心功能
- AK / SK 在线填写:支持在页面直接输入 Access Key / Secret Key,无需硬编码,方便多账号切换。Key 申请地址见官方文档。
- 图片上传:支持 JPG/PNG,自动保存并生成可访问 URL。
- 音频上传:支持 MP3/WAV,作为驱动音频。
- 主体检测:调用目标检测接口,识别多个主体并返回 Mask。
- Mask 处理:支持裁剪预览,可选择特定主体或使用原图模式。
- Prompt 控制:文本控制表情、风格及稳定性。
- 视频生成:提交任务后自动轮询状态,完成后在线播放并下载 MP4。
运行环境
- Python >= 3.9(推荐 3.10)
- Linux / macOS / Windows
- 关键要求:需要一个可公网访问的静态文件服务来托管上传的图片与音频。火山引擎接口要求资源 URL 必须能被公网直接访问。
依赖安装
建议创建虚拟环境隔离依赖:
# Linux / macOS
python -m venv venv
source venv/bin/activate
# Windows
venv\Scripts\activate
安装所需库:
pip install streamlit requests pillow numpy
或者使用 requirements.txt:
streamlit>=1.30
requests>=2.28
Pillow>=9.5
numpy>=1.23
目录结构
.
├── app.py # Streamlit 主程序
├── res/ # 生成的视频结果保存目录
├── requirements.txt # 依赖列表
└── README.md # 说明文档
确保 res 目录存在:
mkdir -p res
静态文件服务配置(重要)
由于本地上传的文件需要生成公网 URL 供 API 调用,你需要启动一个 HTTP 服务暴露这些文件。
本地测试方案:
设置上传目录和公开基础 URL:
UPLOAD_DIR = "/home/yourname/data/uploads"
PUBLIC_BASE_URL = "http://你的 IP:8000"
启动服务:
/home/yourname/data/uploads
python -m http.server 8000

