图片对嘴生成视频:HunyuanVideo-Avatar
之前几章有相应的介绍,一张图片和一个音频,生成一段对嘴视频。
FLOAT: https://www.cnblogs.com/cj8988/p/18984186 (带表情,比较快,但是会裁剪为正方形尺寸)
DICE-Talk:https://www.cnblogs.com/cj8988/p/18957718 (带表情,比较慢)
ComfyUI_Sonic:https://www.cnblogs.com/cj8988/p/18952604 (基础版,效果好)
本章在介绍一个类似的可以项目,我的8GPU电脑没有跑起来~。
这是一个非常先进的 “单样本说话人视频生成” (One-shot Talking Avatar) 项目,在数字人生成领域引起了广泛关注。
GitHub 地址: https://github.com/Tencent-Hunyuan/HunyuanVideo-Avatar
一、核心概述 (What is it?)
简单来说,HunyuanVideo-Avatar 的核心功能是:仅需一张包含人物全身或半身的照片和一段音频,就能生成一个高质量、动作自然、口型同步的说话视频。
这里的关键词是 "One-shot" (单样本),意味着你不需要为特定人物录制几分钟甚至几小时的视频来进行模型训练,大大降低了生成数字人视频的门槛。它生成的不再是简单的“大头贴”式说话视频,而是包含自然头部姿态和身体动作的 全身 (full-body) 视频。
该项目的技术基于一篇名为 《HunyuanVideo-Avatar: One-shot Talking Avatar with Attentive Cross-modal Diffusion》 的学术论文,代表了腾讯在视频生成和数字人领域的前沿研究成果。
二、主要特点与优势 (Key Features)
高质量与高分辨率:
- 能够生成 1024x1024 分辨率的高清视频,细节丰富,人物面部和服装的纹理都非常清晰。
单样本驱动 (One-shot):
- 这是其最大的亮点。传统的数字人技术通常需要大量的特定人物数据进行训练,而 HunyuanVideo-Avatar 仅凭一张静态图片就能工作,极大地提升了易用性和效率。
全身视频生成 (Full-body Generation):
- 与许多只关注面部区域的 "Talking Head" 项目(如 SadTalker 的早期版本)不同,它能够生成包含上半身甚至全身的视频,并驱动身体产生与说话内容相匹配的、自然的微小动作和姿态变化。
精准的音唇同步 (Accurate Lip-sync):
- 生成的视频口型与输入音频高度同步,无论是中文还是英文,都能实现非常逼真的对口型效果。
自然的动作与表情 (Natural Motion & Expression):
- 模型不仅能同步口型,还能根据音频的韵律和情感,生成自然的头部转动、眨眼、以及轻微的身体摇摆,让数字人看起来不那么“僵硬”,更具生命力。
代码和模型开源 (Open Source):
- 腾讯混元团队将项目的完整代码、预训练好的模型以及详细的使用指南都在 GitHub 上开源,供开发者和研究者使用、学习和改进,极大地推动了社区的发展。
三、技术原理解析 (How it Works)
HunyuanVideo-Avatar 的技术框架非常精巧,主要采用了一个 两阶段(Two-stage) 的生成流程:
阶段一:音频到动作序列的生成 (Audio-to-Motion Generation)
- 输入:一段音频。
- 输出:一系列描述人体姿态的 动作序列(例如,3DMM 面部参数和人体骨骼关键点)。
- 作用:这个阶段将音频中的信息(如语音内容、节奏、停顿)解码为连续的、自然的身体和面部动作指令。它将“说什么”和“怎么动”分离开来,使得动作的生成更加可控和自然。
阶段二:动作到视频的生成 (Motion-to-Video Generation)
- 输入:
- 源人物图片 (Reference Image)。
- 阶段一生成的动作序列 (Motion Sequence)。
- 核心技术:注意力交叉模态扩散模型 (Attentive Cross-modal Diffusion Model)。
- 工作流程:
- 模型首先从源图片中提取人物的外观特征(如相貌、服装、背景)。
- 然后,它利用一个强大的 视频扩散模型,在动作序列的引导下,逐帧生成视频。
- 这里的 "注意力交叉模态 (Attentive Cross-modal)" 是关键,意味着模型在生成每一帧时,会智能地“关注” (attend to) 两个方面的信息:
- 动作模态:当前需要执行的姿态和口型是什么。
- 外观模态:人物原本长什么样,穿什么衣服。
- 通过这种方式,模型能够确保生成的人物既保持了源图片的一致性,又精确地执行了动作序列,最终合成连贯、逼真的视频。
四、如何使用 (How to Use)
对于开发者来说,在本地运行该项目的大致步骤如下:
- 克隆仓库或者直接下载:
git clone https://github.com/Tencent-Hunyuan/HunyuanVideo-Avatar.git - 创建环境:使用 Conda 或 venv 创建一个 Python 环境,并根据
requirements.txt文件安装所有依赖库。
# 1. Create conda environment
conda create -n HunyuanVideo-Avatar python==3.10 # 2. Activate the environment
conda activate HunyuanVideo-Avatar # 3. Install PyTorch and other dependencies using conda
# For CUDA 12.4
conda install pytorch==2.4.0 torchvision==0.19.0 torchaudio==2.4.0 pytorch-cuda=12.4 -c pytorch -c nvidia # 4. Install pip dependencies
python -m pip install -r requirements.txt # 5. Install flash attention v2 for acceleration (requires CUDA 11.8 or above)
python -m pip install ninja
python -m pip install git+https://github.com/Dao-AILab/flash-attention.git@v2.6.3
- 下载模型:根据官方指引,下载预训练好的各个模型文件(包括音频到动作的模型、视频生成模型等),并放置到指定目录。地址(请做好心理准备,这个模型非常大):https://huggingface.co/tencent/HunyuanVideo-Avatar/tree/main
模型下载后放到 HunyuanVideo-Avatar/weights/文件夹下

- 准备输入:准备一张你想要驱动的人物图片(最好是高清、正面的全身或半身照)和一段音频文件(如
.wav或.mp3)。
运行:
cd HunyuanVideo-Avatar bash ./scripts/run_gradio.sh
我的电脑8GPU,跑不起来,这里使用的是官方的UI截图。

- 运行推理脚本:执行官方提供的推理命令,传入你的图片和音频路径,等待程序运行结束即可在输出目录找到生成的视频。
您的浏览器不支持 video 标签。
五、应用场景 (Potential Applications)
这项技术有着广阔的应用前景:
- 数字人/虚拟主播:快速、低成本地创建企业或个人的虚拟形象。
- 个性化视频内容:生成个性化的祝福视频、新闻播报、产品介绍等。
- 在线教育:创建虚拟教师,让教学内容更生动有趣。
- 影视配音与制作:为角色进行本地化配音时,可以同步修改口型,提升观感。
- 辅助沟通:为有语言障碍的人士生成可视化的表达。
总结
HunyuanVideo-Avatar 是一个里程碑式的开源项目,它将高质量、全身、单样本的说话人视频生成技术带给了更广泛的开发者社区。它不仅展示了腾讯在 AI 生成内容(AIGC)领域的强大实力,也为数字人技术的普及和应用铺平了道路。如果你对 AI 视频生成、数字人技术感兴趣,这个项目绝对是值得学习和研究的典范。
图片对嘴生成视频:HunyuanVideo-Avatar的更多相关文章
- 基础学习笔记之opencv(6):实现将图片生成视频
基础学习笔记之opencv(6):实现将图片生成视频 在做实验的过程中.难免会读视频中的图片用来处理,相反将处理好的图片又整理输出为一个视频文件也是非经常常使用的. 以下就来讲讲基于opencv的C+ ...
- 利用FFmpeg生成视频的缩略视频 v8.3
目前生成视频缩略图的工具大多数是生成静态的图片,为了解决这样的局限性,这 次春节期间搞了个利用 FFMpeg 能生成缩略动态视频的批处理. 把 Make_NxM_videos.bat LED_font ...
- 利用FFmpeg生成视频缩略图 2.3.1
1.下载FFmpeg文件包,解压包里的\bin\下的文件解压到 D:\ffmpeg\ 目录下. 下载地址 http://ffmpeg.zeranoe.com/builds/win32/static/ ...
- 利用FFmpeg生成视频缩略图 2.1.8
1.下载FFmpeg文件包,解压包里的\bin\下的文件解压到 D:\ffmpeg\ 目录下. 下载地址 http://ffmpeg.zeranoe.com/builds/win32/static/ ...
- 利用FFmpeg生成视频缩略图 2.1.6
利用FFmpeg生成视频缩略图 1.下载FFmpeg文件包,解压包里的\bin\下的文件解压到 D:\ffmpeg\ 目录下. 下载地址 http://ffmpeg.zeranoe.com/build ...
- 富文本编辑器UEditor自定义工具栏(二、插入图片、音频、视频个性化功能按钮和弹层及自定义分页符)
导读:本篇将简单探讨插入图片.音频.视频的功能按钮实现方式 传送门:富文本编辑器UEditor自定义工具栏(一.基础配置与字体.背景色.行间距.超链接实现) 一.效果图 1.UEditor自定义工具栏 ...
- HTML5:图片、音乐和视频
图片.音乐和视频 一.图片 1.属性 属性 说明 alt 规定图像的替代文本. src 规定显示图像的 URL align 规定如何根据周围的文本来排列图像. border 定义图像周围的边框. he ...
- matlab下将图片序列转化为视频文件 && 将为视频文件转化图片序列
将图片序列转化为视频文件 程序如下: framesPath = 'E:\img\';%图像序列所在路径,同时要保证图像大小相同 videoName = 'Bolt.avi';%表示将要创建的视频文件的 ...
- OpenCV人脸检测并把图片写成avi视频
读出某一个文件夹下“jpg”后缀的全部图片后,用的OpenCV自带的人脸检测检测图片中的人脸,调整图片的大小写成一个avi视频. 主要是要记录一下CvVideoWriter的用法和如何从文件夹中读取某 ...
- 【小工具系列】Python + OpenCV 图片序列转换成视频
图片序列转换成视频 最近一直在找一个工具,能够将一堆图片转化成视频.网上找了一些小软件,还有 win10 的照片自带的视频制作功能,都不是很满意. 又不想下载那些专业的视频剪辑软件大材小用. 然后找到 ...
随机推荐
- 在 Go 语言中,构造一个并发安全的 map 集合
Map 集合是 Go 中提供的一个 KV 结构的数据类型,对它的操作在实际的开发中应该是非常多的,不过它不是一个线程安全的. 1 .Map 不是线程安全的 编写下面的测试代码: func TestUn ...
- CF1627B题解
Not Sitting 题面翻译 Rahul 和 Tina 在玩一个游戏.游戏在一个 n×mn\times mn×m 的网格图上进行,记第 rrr 行第 ccc 列上的格子为 (r,c)(r,c)(r ...
- RabbitMq在win10上的安装、用户管理及控制台Demo
思路: 安装elang--设置elang的环境变量--安装erlang版本对应的rabbitmq--设置rabbitmq的环境变量--安装rabbitmq的可视化管理插件 相关链接: RabbitMQ ...
- 1.4K star!几分钟搞定AI视频创作,这个开源神器让故事可视化如此简单!
嗨,大家好,我是小华同学,关注我们获得"最新.最全.最优质"开源项目和高效工作学习方法 story-flicks 是一个基于AI技术的自动化视频生成工具,能够将文字剧本快速转化为高 ...
- 【记录】IDA|IDA设置text view为默认,并解决IDA7.6打开新固件卡顿的问题
版本:IDA Pro 7.6 Graph View(控制流视图)其实我真的看得很少,因为遇到分析难题时总是是因为间接调用,它根本分析不出来.但是一开IDA它就自动分析这个特别卡.所以今天想彻底解决一下 ...
- deepseek+coze实战:一键抓取百条抖音爆款视频,自动存入飞书表格
大家好,我是汤师爷~ 批量获取抖音视频文案这件事,一直有技术门槛. 很多朋友因为不懂技术,只能花钱买工具来完成这项任务. 今天我要分享一个Coze智能体的解决方案 只需输入关键词就能自动批量获取视频文 ...
- Flex布局-容器项
弹性盒子是一种用于 按行 或 按列的一维布局方法. 元素可以膨胀以填充额外的空间, 也可以 收缩 以适应更小的空间. flex 重点概览 对于 flex 重要的理解点在于: 主轴与交叉轴 换行与缩写 ...
- Ubuntu20.04 搭建Kubernetes 1.28版本集群
环境依赖 以下操作,无特殊说明,所有节点都需要执行 安装 ssh 服务 安装 openssh-server sudo apt-get install openssh-server 修改配置文件 vim ...
- 进程间通信-POSIX 信号量
POSIX 信号量 POSIX 信号量是一种 POSIX 标准中定义的进程间同步和互斥的方法.它允许进程之间通过信号量来实现临界区的互斥访问,从而避免竞争条件和死锁等问题. 信号量的P.V操作: P ...
- 网络编程:poll
原理 和select类似,只是描述fd集合的方式不同,poll使用pollfd结构而非select的fd_set结构. 管理多个描述符也是进行轮询,根据描述符的状态进行处理,但poll没有最大文件描述 ...