DeepFaceLab小白教程:视频换脸过程

news2024/10/7 4:34:06

合适那些人阅读?

适合从未使用过DeepFaceLab的群体。
如果你想基于DeepFaceLab完成一次视频换脸的操作,可以看本篇。

下载方式

  • GitHub

https://github.com/iperov/DeepFaceLab
我是用motrix下载。
image.png

  • 网盘

https://pan.baidu.com/share/init?surl=O4N70dSUtFtNRXasCph7oQ
提取码:dfai

安装

我电脑30系显卡,使用的是红框的程序来安装。
image.png

准备视频

安装之后,进入workspace目录里面:
image.png

将你的视频文件,重命名为data_dst.mp4data_src.mp4,然后放入workspace里面。

  • data_dst.mp4:目标视频
  • data_src.mp4:源视频

源视频 中的人脸会替换到目标视频中的人脸:
image.png

确保两个视频的质量、光照和角度尽可能相似,以便获得更自然的换脸效果

总体步骤

DeepFaceLab_NVIDIA_RTX3000_series目录下,有很多.bat文件,这些文件的说明可以看:[http://www.deepfakeai.cn/deepfacelab.html](http://www.deepfakeai.cn/deepfacelab.html)

下面,将列出操作步骤。

提取面部数据

这些.bat文件将自动将视频分解成单独的帧,并尝试识别和提取每一帧中的人脸。

2) extract images from video data_src.bat

3) extract images from video data_dst FULL FPS.bat

不用管bat中的选项,猛按回车

手动/自动编辑和标记

这一步是为了确保面部特征被正确识别,以便在后续步骤中进行准确的对齐和换脸。

  • 手动提取(MANUAL表示手动 )
4) data_src faceset extract MANUAL.bat
5) data_dst faceset extract MANUAL.bat
  • 自动提取(推荐这个,快速体验)
4) data_src faceset extract.bat
5) data_dst faceset extract.bat

不用管bat中的选项,猛按回车

训练换脸模型

训练换脸模型,有三个选项,三选一,快速体验、测试可用Quick96,正经训练可用SAEHD

6) train AMP.bat
6) train Quick96.bat
6) train SAEHD.bat

不用管bat中的选项,猛按回车

Iter数值越高,换脸效果越好,推荐至少有1200。
s键保存模型,按回车键保存并退出训练。
image.png

到这个步骤,我们一般需要等待24小时,但是我们只是体验一下,等个10~30分钟就行了。

就是换脸效果没法看。

选择那个模式来训练?

  • SAEHD:高清自动编码器,至少显存在6GB以上。最常用的模型,有多种架构变体;一般来讲,src、dst有一些相似之处时,交换人脸、特别是一般的脸/头形状,可以自由地重复使用、预训练,一般可以提供快速的、较好的效果,但一些架构会因相似性差、光线、颜色将导致人脸替换效果差
  • AMP:新模型类型,更倾向保留源数据(src)形状,同样,显存至少6GB以上。具有可调整的变形因子,后期更考验合成技术、经验。与SAEHD不同的是,它没有不同的架构可供选择,并且在重复使用时,不太通用,需要更长的训练时间,也没有预训练的选项,但可以提供好的效果,结果看起来更像src
  • Quick96:测试模型,适用于显存 2-4GB。固定参数:96*96像素分辨率、(全脸)FullFace类型、batch-size:4、SAEHD的DF-UD架构,用于快速测试效果。

应用换脸模型

将训练好的模型应用到目标视频的面部上。这一步将生成一个新的视频,其中目标视频的面部已经被源视频的面部替换。

有三个命令可以选择,你用那个训练模型,就选那个就行:

7) merge AMP.bat
7) merge Quick96.bat
7) merge SAEHD.bat

导出和保存结果

导出最终的换脸视频。

可以导出为avimovmp4,根据自己的需求选择就行:

8) merged to avi.bat
8) merged to mov lossless.bat
8) merged to mp4.bat

这里我导出为mp4

8) merged to mp4.bat

导出的视频文件为workspace目录下的result.mp4
image.png

最后

本篇教程仅供学习使用,请勿用于非法用途。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1618951.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

蓝桥杯:日期问题(我的绝望题)

🎁个人主页:我们的五年 🔍系列专栏:每日一练 🌷追光的人,终会万丈光芒 目录 前言: 🌷1.问题描述: 1.问题描述: 2.输入格式: 3.输出格式&#…

华为海思校园招聘-芯片-数字 IC 方向 题目分享——第七套

华为海思校园招聘-芯片-数字 IC 方向 题目分享——第七套 (共9套,有答案和解析,答案非官方,未仔细校正,仅供参考) 部分题目分享,完整版获取(WX:didadidadidida313,加我备注&#x…

Golang基础1

基本类型 bool 整数:byte(相当于uint8), rune(相当于int32), int/uint ,int8/uint8 ,int16/uint16 ,int32/uint32 ,int64/uint64 浮点数: float32 ,float64, complex64 ,complex128 array(值类型)、slice、map、chan(引用类型…

小扎宣布开放 Meta Horizo​​n OS

日前,Meta以“混合现实的新时代”为题的博文宣布向第三方制造商开放Meta Horizon OS,包括华硕、联想和微软Xbox等等: Meta正在朝着为元宇宙建立一个更开放的计算平台的愿景迈出下一步。Meta正在向第三方硬件制造商开放赋能Meta Quest设备的操…

ETL简介以及使用ETL(Kettle)进行数据接入的具体例子

目录 ETL介绍 ETL简介 ETL包含的三部分 ETL基本概念 ETL资源库 ETL变量 业务表梳理以及接入规划 数据接入流程 业务表梳理 ETL任务规范 接入规划 数据接入中的方便工具 具体例子 导出生产表信息 1、ORACLE 2、MYSQL ETL数据增量抽取任务开发 1、ORACLE通用流程…

使用 IPAM 解决方案简化分布式网络管理

随着组织在数字领域的全球扩张,分布式网络是不可避免的,这意味着,随着 IT 基础设施的发展,组织需要适应,这包括在不断增长的系统需求、应用程序堆栈、各种协议和安全防御中监控、现代化和简化流程和资源。在有效管理现…

场景 - 分库分表

分什么 数据量大分表,并发大分库 分表字段如何选择 如果对交易订单进行分表,可以选择的东西很多,比如说商户id,用户id,地区等等 分表的时候要考虑到数据倾斜问题 数据倾斜 比如说按商户号进行分表,一共…

React-editor-js not showing up in a function component

React-editor-js not showing up in a function component react-editor-js 在react 函数组件中显示不出来 真的,我马上就想放弃它了。但是看它周下载量还挺多,我不信别人没遇到过。于是我继续在网络上挖呀挖。只是我一开始的方向错了。我一直以为我的写…

vite和webpacke的常规配置

文章目录 1、vite和webpacke的区分2、vite的常规配置介绍主要部分介绍vite基本配置示例 3、webpacke的常规配置介绍主要部分介绍Webpack 基本配置示例 1、vite和webpacke的区分 相同点: 都是构建工具,用于资源打包 ; 都有应用到摇树原理 tre…

大模型的实践应用22-谷歌Gemma AI大模型的架构原理,以及Gemma模型的部署安装本地教程

大家好,我是微学AI,今天给大家介绍一下大模型的实践应用22-谷歌Gemma AI大模型的架构原理,以及Gemma模型的部署安装本地教程。谷歌Gemma AI大模型是由Google AI团队开发并开源。Gemma模型采用Transformer编码器-解码器架构,并加入了一些改进,例如使用稀疏注意力机制来提高推…

【八股】计算机网络篇

网络模型 应用层【HTTP👉报文/消息】 传输层【TCP或UDP👉段👉MSS】网络层【IP、寻址和路由👉MTU】 ①IP(Internet Protocol,网际协议)主要作用是定义数据包的格式、对数据包进行路由和寻址&…

一个java项目中,如何使用sse协议,构造一个chatgpt的流式对话接口

前言 如何注册chatGPT,怎么和它交互,本文就不讲了;因为网上教程一大堆,而且你要使用的话,通常会再包一个算法服务,用来做一些数据训练和过滤处理之类的,业务服务基本不会直接与原生chatGPT交互。…

刷代码随想录有感(44):对称二叉树

题干: 代码: class Solution { public:bool compare(TreeNode* left, TreeNode* right){//传入左右子树if(left NULL && right ! NULL) return false;//子else if(left ! NULL && right NULL) return false;//子else if(left NULL &…

8.4.3 使用3:配置单臂路由实现VLAN间路由

1、实验目的 通过本实验可以掌握: 路由器以太网接口上的子接口配置和调试方法。单臂路由实现 VLAN间路由的配置和调试方法。 2、实验拓扑 实验拓扑如下图所示。 3、实验步骤 (1)配置交换机S1 S1(config)#vlan 2 S1(config-vlan)#exit S…

用户请求经过哪些处理(公网)

DNS服务器之间协作: 递归DNS查询:用户的请求首先发送到递归DNS服务器。 查询根DNS服务器:递归DNS服务器查询根DNS服务器,以找到管理.com顶级域的TLD DNS服务器。 查询TLD DNS服务器:根DNS服务器响应带有TLD DNS服务器…

40. UE5 RPG给火球术增加特效和音效

前面,我们将火球的转向和人物的转向问题解决了,火球术可以按照我们的想法朝向目标发射。现在,我们解决接下来的问题,在角色释放火球术时,会产生释放音效,火球也会产生对应的音效,在火球击中目标…

Prompt Engineering,提示工程

什么是提示工程? 提示工程也叫【指令工程】。 Prompt发送给大模型的指令。比如[讲个笑话]、[用Python编个贪吃蛇游戏]、[给男/女朋友写情书]等看起来简单,但上手简单精通难 [Propmpt]是AGI时代的[编程语言][Propmpt]是AGI时代的[软件工程][提示工程]是…

ROS 话题订阅模型之自定义消息类型 C++实现

ROS 话题订阅模型之自定义消息类型 1.自定义消息类型好处 ROS提供了许多标准的消息类型,如 std_msgs/String、sensor_msgs/Image 等,涵盖了很多常见的数据类型和传感器数据。但是,在实际的开发中,我们经常会遇到需要传输的数据类…

云计算中的过度授权:安全隐患与应对策略

云计算凭借其弹性、可扩展等优势,已经成为诸多企业组织拓展业务的重要基础设施之一。然而,与传统IT架构相比,云计算环境的安全管理也面临着新的挑战。过度授权 (Overprivileging) 便是云安全领域亟待解决的主要问题之一,本文将带领…

CPPTest实例分析(C++ Test)

1 概述 CppTest是一个可移植、功能强大但简单的单元测试框架,用于处理C中的自动化测试。重点在于可用性和可扩展性。支持多种输出格式,并且可以轻松添加新的输出格式。 CppTest下载地址:下载地址1  下载地址2 下面结合实例分析下CppTest如…