【AIGC】即梦omnihuaman-api调用实现

即梦数字人视频生成(Streamlit Demo)

基于 火山引擎即梦(Jimeng)CV API 的数字人视频生成示例项目。

支持 图片 + 音频驱动 的数字人视频生成流程,集成了主体检测、Mask 选择、Prompt 控制、视频生成与下载等完整功能,适合 内部测试 / 技术演示 / 二次开发


一、功能概览

✅ 核心功能

  • 🔐 AK / SK 在线填写
  • 支持火山引擎 Access Key / Secret Key 在页面中直接输入
  • 无需写死在代码中,便于多账号切换
  • api key申请地址:https://console.volcengine.com/iam/keymanage
  • 🖼 图片上传(人物图像)
  • 支持 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

 streamlit>=1.30 requests>=2.28 Pillow>=9.5 numpy>=1.23 
 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 # 移到 PATHsudomv 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 

七、使用流程说明

  1. 打开页面,输入 Access Key / Secret Key
  2. 上传一张 人物图片
  3. 上传一段 音频文件
  4. (可选)输入 Prompt 描述
  5. 点击「开始检测」
  6. 从检测到的主体中选择目标(或选择原图)
  7. 等待视频生成完成
  8. 在线预览并下载生成的视频

八、常见注意事项

  • 建议使用 清晰正脸人物图像
  • 音频时长不宜过长(建议 < 60 秒)
  • 若接口返回失败,请重点检查:
  • AK / SK 是否正确
  • 图片 / 音频 URL 是否能被公网访问
  • 文件格式是否符合要求

九、适用场景

  • 数字人 / 虚拟人能力演示
  • 内部技术验证
  • API 调用示例参考
  • 二次开发或功能扩展基础工程

十、项目地址及页面

  • https://github.com/min-star/omnihuman-api.git

页面展示

在这里插入图片描述

十一、免责声明

本项目仅作为 火山引擎即梦 API 使用示例(Demo)

生成效果、接口能力、配额限制等以火山引擎官方文档为准。

参考链接:https://jimeng.jianying.com/ai-tool/generate?type=digitalHuman


十二、可扩展方向(建议)

  • Docker 一键部署
  • AK / SK 使用环境变量管理
  • 多任务队列 / 并发控制
  • 历史任务与结果管理
  • Prompt 模板与预设管理

如需进一步定制或扩展,请根据实际业务需求进行二次开发。

Read more

【2025年最新版】Java JDK安装、环境配置教程 (图文非常详细)

【2025年最新版】Java JDK安装、环境配置教程 (图文非常详细)

文章目录 * 【2025年最新版】Java JDK安装、环境配置教程 (图文非常详细) * 1. JDK介绍 * 2. 下载 JDK * 3. 安装 JDK * 4. 配置环境变量 * 5. 验证安装 * 6. 创建并测试简单的 Java 程序 * 6.1 创建 Java 程序: * 6.2 编译和运行程序: * 6.3 在显示或更改文件的扩展名(文件后缀) 【2025年最新版】Java JDK安装、环境配置教程 (图文非常详细) 1. JDK介绍 JDK(Java Development Kit) 是 Java 程序开发的核心工具包,包含了开发 Java

By Ne0inhk
Java高性能开发实战(1)——Redis 7 持久化机制

Java高性能开发实战(1)——Redis 7 持久化机制

Redis版本:7.0.15 1.概述 Redis是一个基于内存的数据库,这意味着其主要数据存储和操作均在内存中进行。这种设计使得Redis能够提供极快的读写速度(通常达到微秒级别),适用于高性能场景,如缓存 * 然而,由于内存的易失性(断电后数据会丢失),Redis提供了持久化机制:将内存中的数据保存到磁盘中,确保数据在Redis服务重启或崩溃后能够恢复。通过持久化,可以避免数据丢失,提高数据的可靠性 * Redis提供两种持久化方式 * RDB(Redis Database):生成数据集的快照实现持久化 * AOF(Append Only File):记录所有写操作命令,以追加方式写入文件 2.RDB RDB指的是Redis的一种持久化机制,其核心是生成Redis数据在某个时间点的快照 2.1 快照原理 由于Redis是单线程应用程序,在线上环境时,不仅要处理来自客户端的请求,还要执行内存快照操作(进行文件IO)。单线程同时处理客户端请求和文件IO时会严重降低服务器性能,甚至阻塞客户端请求。因此,Redis使用 fork 和

By Ne0inhk
Java 大视界 -- 基于 Java+Kafka 构建高可用消息队列集群:实战部署与性能调优(442)

Java 大视界 -- 基于 Java+Kafka 构建高可用消息队列集群:实战部署与性能调优(442)

Java 大视界 -- 基于 Java+Kafka 构建高可用消息队列集群:实战部署与性能调优(442) * 引言: * 正文: * 一、 Kafka 高可用集群核心认知:先懂原理,再谈部署 * 1.1 Kafka 高可用核心原理 * 1.1.1 核心组件协同逻辑 * 1.1.2 高可用核心:多副本与 Leader 选举机制 * 1.2 Kafka 高可用集群架构设计要点 * 1.3 技术栈选型:Java+Kafka 核心版本适配 * 二、 实战部署:Java+Kafka 高可用集群搭建 * 2.1 部署前准备:环境初始化

By Ne0inhk
【Java-MySQL】主键、外键有什么区别?

【Java-MySQL】主键、外键有什么区别?

以下是主键(Primary Key)与外键(Foreign Key)的核心区别及适用场景的总结,结合最新数据库实践整理: 🔑 一、本质区别 特性主键外键核心作用唯一标识本表记录(如身份证号)关联其他表的主键(如订单关联用户ID)唯一性✅ 值唯一且不可重复❌ 值可重复(可关联同个主键)空值❌ 不允许为空✅ 允许为空(如“未绑定用户”订单)数量限制每张表仅能有一个主键每张表可有多个外键数据约束强制非空 + 唯一性强制引用其他表的主键值(保证数据一致性) 💡 通俗比喻:主键👉🏻 学生的学号(唯一标识一个人)外键👉🏻 成绩单上的学号(关联学生表,证明成绩属于谁) ⚙️ 二、实际应用场景 ✅ 主键适用场景 1. 标识核心实体: * 用户表 users 中的 user_id(不可重复) 2. 加速查询: * 自动创建聚集索引,大幅提升检索效率

By Ne0inhk