引言:一张图也能“说话”?

你有没有想过,一张静态的照片,配上一段音频,就能变成一段“对嘴”的视频?不是简单的口型同步,而是让图片中的人物“活过来”,仿佛真的在说话、唱歌、甚至表演。

这听起来像是科幻电影里的场景,但其实,这样的技术已经在我们身边悄然实现了。

之前已经介绍过一些类似项目的搭建:

FLOAThttps://www.cnblogs.com/cj8988/p/18984186 (带表情,比较快,但是会裁剪为正方形尺寸)

DICE-Talkhttps://www.cnblogs.com/cj8988/p/18957718   (带表情,比较慢)

ComfyUI_Sonichttps://www.cnblogs.com/cj8988/p/18952604 (基础版,效果好)

今天要介绍的这个开源项目 —— fantasy-talking,就是这样一个神奇的存在。它能让你上传一张图片和一段音频,自动生成一段“对嘴”的视频,效果之逼真,令人惊叹。

这篇文章,我们就来一起看看这个项目的魅力所在,以及它是如何做到“让图片开口说话”的。


一、项目简介:fantasy-talking 是什么?

fantasy-talking 是一个基于深度学习的开源项目,旨在实现将静态图片与语音音频结合,生成一段看起来像是人物在“说话”的视频。项目代码托管在 GitHub 上,目前已有不少开发者关注和贡献。

它的核心思想是通过语音驱动模型,生成与语音内容匹配的面部动作(尤其是嘴巴动作),再结合原始图片中的人物面部结构,生成一帧帧动态画面,最终合成一段视频。

简单来说,只要你有一张正面清晰的人脸照片,和一段你想让他“说”的语音,这个项目就能帮你生成一段“他”在说话的视频。


二、搭建过程:动手试试看

如果你对这个项目感兴趣,不妨亲自搭建一下试试看。以下是大致的搭建流程:

环境准备

  • Python 3.10
  • Anaconda
  • PyTorch
  • CUDA 环境(如果你有 GPU)
  • 磁盘空间大,因为要下载大量的模型文件

步骤概览

  1. 克隆仓库

    git clone https://github.com/Fantasy-AMAP/fantasy-talking.git
  2. 虚拟环境搭建

    我的环境是window中的Anaconda

    生成虚拟环境:(第一次)conda create -n fantasy-talkings python=3.10

    生成虚拟环境:(第一次)
    conda create -n fantasy-talkings python=3.10

    激活:
    conda activate fantasy-talkings

    #安装依赖:
    pip install -r requirements.txt
    #下面这个是gpu加速的,我在window没有安装成功
    #pip install flash_attn 如果直接使用pip install flash_attn安装失败,可以试试下面的方法: 1:下载whl文件:https://huggingface.co/lldacing/flash-attention-windows-wheel/tree/main 2:找到跟你pip show torch 和 python版本对应的whl下载 3:安装:
    pip install flash_attn-.....whl
  1. 模型下载

特别是第一个模型,非常的大。下载后存放到相应位置:

 ./models/Wan2.1-I2V-14B-720P。

 ./models/wav2vec2-base-960h。

 ./models

可以手动下载,也可以cli下载:

   pip install "huggingface_hub[cli]"
huggingface-cli download Wan-AI/Wan2.1-I2V-14B-720P --local-dir ./models/Wan2.1-I2V-14B-720P
huggingface-cli download facebook/wav2vec2-base-960h --local-dir ./models/wav2vec2-base-960h
huggingface-cli download acvlab/FantasyTalking fantasytalking_model.ckpt --local-dir ./models
  1. 运行项目

    pip install gradio spaces
    python app.py
  2. 查看结果
    上传你的图片和音频,等待一段时间后,查看生成的视频。


fantasy-talking:实现图片加音频生成对嘴数字人的更多相关文章

  1. ThinkPHP5.0图片上传生成缩略图实例代码

    很多朋友遇到这样一个问题,图片上传生成缩略图,很多人在本机(win)测试成功,上传到linux 服务器后错误. 我也遇到同样的问题.网上一查,有无数的人说是服务器临时文件目录权限问题. 几经思考后,发 ...

  2. PHPThumb处理图片,生成缩略图,图片尺寸调整,图片截取,图片加水印,图片旋转

    [强烈推荐]下载地址(github.com/masterexploder/PHPThumb). 注意这个类库有一个重名的叫phpThumb,只是大小写的差别,所以查找文档的时候千万注意. 在网站建设过 ...

  3. xcode UIImageView创建、图片加载、 音频文件播放、 延迟调用

    代码创建 /** 创建UIImageView */ UIImageView * imageView=[[UIImageView alloc]init]; /** 设置尺寸位置 */ imageView ...

  4. c#封装DBHelper类 c# 图片加水印 (摘)C#生成随机数的三种方法 使用LINQ、Lambda 表达式 、委托快速比较两个集合,找出需要新增、修改、删除的对象 c# 制作正方形图片 JavaScript 事件循环及异步原理(完全指北)

    c#封装DBHelper类   public enum EffentNextType { /// <summary> /// 对其他语句无任何影响 /// </summary> ...

  5. 图片加水印文字,logo。生成缩略图

    简单JSP代码 图片加水银文字 try { String path = request.getRealPath("images\\01.jpg"); out.print(path) ...

  6. ios新手开发——toast提示和旋转图片加载框

    不知不觉自学ios已经四个月了,从OC语法到app开发,过程虽然枯燥无味,但是结果还是挺有成就感的,在此分享我的ios开发之路中的小小心得~废话不多说,先上我们今天要实现的效果图: 有过一点做APP经 ...

  7. 火车头dede采集接口,图片加水印,远程图片本地化,远程无后缀的无图片本地化

    <?php /* [LocoySpider] (C)2005-2010 Lewell Inc. 火车采集器 DedeCMS 5.7 UTF8 文章发布接口 Update content: 图片加 ...

  8. Android 框架练成 教你打造高效的图片加载框架(转)

    转载请标明出处:http://blog.csdn.net/lmj623565791/article/details/41874561,本文出自:[张鸿洋的博客] 1.概述 优秀的图片加载框架不要太多, ...

  9. iOS图片加载框架-SDWebImage解读

    在iOS的图片加载框架中,SDWebImage可谓是占据大半壁江山.它支持从网络中下载且缓存图片,并设置图片到对应的UIImageView控件或者UIButton控件.在项目中使用SDWebImage ...

  10. iOS图片加载新框架 - FlyImage

    FlyImage 整合了SDWebImage,FastImageCache,AFNetworking的优点,是一个新的性能高效.接口简单的图片加载框架. 特点 高效 可将多张小图解码后存储到同一张大图 ...

随机推荐

  1. idea 调试的时候变量的值变成了jar包显示

    如图所示,暂时不知道怎么处理. 应该是module的问题.我是上了重建module了,代码不是很多.

  2. LangChain4j比SpringAI强在哪?一文读懂

    LangChain4j 和 Spring AI 是 Java 生态中实现大模型应用开发的两个最重要的框架,但二者的区别是啥?生产级别又该使用哪种框架?令很多人犯了难,所以本文就来浅聊一下,希望给大家在 ...

  3. 信息资源管理综合题之“LJ集团信息化项目规划问题”

    一.LJ集团是北京的一家规模巨大的房地产投资公司,早在15年前,该公司出现了如下几个问题:每个业务员手上的用户资料,其他人无法得知,从而导致员工离职时会流失大量潜在客户:业务员繁忙的时候,无法满足客户 ...

  4. HarmonyOS NEXT开发实战教程--招聘app

    这一周忙到起飞,只能在周末发个文章.今天的内容比较简单,是一个招聘app,适合新手友友参考,大佬们可以直接忽略. 看一下效果图: 这是一个比较常见的应用,大家做这类应用建议大家先分析一下应用和页面的结 ...

  5. linux窗口透明(全局透明,进程id查找wid,进程名称查找wid)

    linux窗口透明 使用到了qt xcb-ewmh x11-xcb 效果图 如何实现 控制全部窗口透明 1.遍历WID树,的到全部窗口得wid 2.区别窗口属性,桌面和dock窗口不设置透明,其他窗口 ...

  6. Comparator.reverseOrder() 和 reversed()的区别

    摘要:Comparator.reverseOrder() 和 reversed()的区别是前者以某字段进行倒序排列,而reversed是针对已排序数据进行处理,常常用于比较器的末尾.   在使用Str ...

  7. React-native之Flexbox

    本文总结: 我们学到了 React Native 的 Flexbox 布局,它让写样式变得更方便啦! Flexbox 就像一个有弹性的盒子,有主轴和交叉轴(行或列). 在 RN 里写样式要用 Styl ...

  8. MQ的学习记录~

    MQ是一个消息中间件,是为了解决发送者和接收者处理速度不匹配的问题而产生的,有队列和主题两种. 队列:一对一. 主题:一对多.例如有100人订阅了我的公众号,当我在公众号上发布新的文章时100人都能收 ...

  9. 把selection screen当子屏幕放到普通屏幕上

    REPORT zly_subscreen. TYPES:BEGIN OF ty_ord, object_id TYPE crmt_object_id, process_type TYPE crmt_p ...

  10. USB over IP技术简介

    1. USBIP 简介 在 USB 系统中,USB 设备和 USB 主机间通过 USB 线连接在一起.USB 线的长度较短,USB 设备只能安装到 USB 主机周边,设备和主机的距离也就很短.USB ...