DeepFaceLab自带的视频素材,一个是钢铁侠托尼斯塔克,一个是变形金刚男主角山姆。每一个视频中只有一个人。所以当你第一次玩的时候很顺畅,什么都不用管,一步一步按教程来就好好了。

直到有一天你换了一个新的视频。而一个视频中出现的人物不止一个,或者一个画面中就有一群人。这个时候你就会遇到一个问题:如何只换你想换的那个人?

按默认的流程来走的话,是所有人的脸都会被换掉。

此时,你就必须学会一个新技能,如何指定换脸的对象。这个问题,其实软件本身已经考虑到了。 下面我具体说一下,如何实现只换一个人。

假设我们有一个视频,是《权力的游戏》中狼家四兄妹囧恩,三傻,二丫,布兰相聚的一个片段。而我们只是想要把囧恩换掉。 那我们就按正常流程,视频转图片,从图片中提取脸部,然后退得到一堆脸。

因为这个视频中出现的人物有四个,而且同一个画面中出现了三个人。所以默认情况下,提取完脸部后,在workspace\data_dst\aligned 会生成所有人的人脸。大致情况如下:

而这个aligned目录就是解决我们的问题的关键。 请记住一个规则,只要是在aligned目录中存在的人脸都会进行替换,换言之如果你不想替换二丫,三傻,布兰,那么直只需要把他们的头像从这个目录中删掉即可。

这么说应该很清楚了吧。aligned的头像是可以删的,只要留下目标人物的头像即可。这样换出来的视频就是你想要的样子了。

如果你觉得一张一张删除有点麻烦,可以先用名字中带有sort的bat文件对头像进行排序,排序后同一个人就会在一起,删除起来就方便多了。

--------------------------------------------------------

获取更多Deepfakes/AI换脸内容可访问 deepfakes中文网

第一时间获取相关文章可关注微信公众号:托尼斯塔克(TonyIsStark)

DeepFaceLab:视频中有多人,仅替换特定人脸的方法!的更多相关文章

  1. python 操作excel实现替换特定内容

    本文介绍使用python语言,借助openyxl库来实现操作excel(xlsx)文件,实现替换特定内容的需求. 目前实现了3个小功能: 1. 全字匹配替换(mode1):(如:全字匹配 yocich ...

  2. 微信小程序--基于ColorUI构建皮皮虾短视频去水印组件(仅供学习使用)

    微信小程序--基于ColorUI构建皮皮虾短视频去水印组件(仅供学习使用) 没错,我是皮友,我想学习舞蹈(/doge)和瑜伽 ,要无水印的那种有助于我加深学习. 1.组件效果展示 2.组件引入准备 h ...

  3. 介绍一种很棒的wince 如何替换系统声音的方法

    Topic:介绍一种很棒的wince 如何替换系统声音的方法(作者:Baiduluckyboy) //------------------------------------------------- ...

  4. OSG中找到特定节点的方法

    OSG中找到特定节点的方法 转自:http://38288890.blog.163.com/blog/static/19612845320072721549504/ 为了在OSG中找到需要的节点并对节 ...

  5. Java中替换HTML标签的方法代码

    这篇文章主要介绍了Java中替换HTML标签的方法代码,需要的朋友可以参考下 replaceAll("\\&[a-zA-Z]{0,9};", "").r ...

  6. OSG中找到特定节点的方法(转)

    OSG中找到特定节点的方法 为了在OSG中找到需要的节点并对节点做出相应的操作,可以从NodeVisitor类中继承一个类,NPS的教程 [download id="14"] 阐述 ...

  7. Android studio 开发中 用git实现批量忽略特定文件的方法

    git实现批量忽略特定文件的方法 在用AndroidStudio开发项目的时候,3个人协同开发,那么用Git同步代码,会将模块中的大量iml文件同步,每次都会提交和更新,一个一个的去忽略他们,显然是最 ...

  8. Node.js中针对中文的查找和替换无效的解决方法

    Node.js中针对中文的查找和替换无效的解决方法.   //tags的值: tag,测试,帖子 var pos1 = tags.indexOf("测"); //这里返回-1 ta ...

  9. App劫持病毒剖析:你的应用是如何被替换的(病毒防范方法)

    App劫持病毒剖析:你的应用是如何被替换的(病毒防范方法) 一.App劫持病毒介绍 App劫持是指执行流程被重定向,又可分为Activity劫持.安装劫持.流量劫持.函数执行劫持等.本文将对近期利用A ...

随机推荐

  1. 第十三篇 JS 操作table表格

    JS 操作table表格 这节课难度可能高一点,因为没有提前解释if判断.for循环.这节课是直接把这两样用上了,老师先简单介绍一下: if,判断语句,判断就很简单了嘛,假如说1=1(1等于1),当然 ...

  2. exits 和no exits

    exists : 强调的是是否返回结果集,不要求知道返回什么, 比如:  select name from student where sex = 'm' and mark exists(select ...

  3. 使用 java 创建你的第一个区块链(第二部分)

    本系列教程的目的是帮助您了解如何开发区块链技术. 在这第二个教程中,我们将: 创建一个简单的钱包: 使用我们的区块链发送已签名的交易: 感觉更酷. 以上这些将使我们拥有自己的加密货币! 从上一个教程开 ...

  4. Mybatis实际练习

    1.mybatis在xml文件中处理大于号小于号的方法 第一种方法: 用了转义字符把>和<替换掉,然后就没有问题了. SELECT * FROM test WHERE 1 = 1 AND ...

  5. Linux排查磁盘空间顺序解决空间不足问题

    1 先查看整个磁盘的情况 df    -h                     查看整台服务器的硬盘使用情况 cd    /                       进入根目录 du   -s ...

  6. openstack mitaka开启三层网络vxlan

    在这之前,先把之前基于flat模式创建的虚机,全部删除 控制节点: 配置 修改/etc/neutron/neutron.conf的[DEFAULT]区域 将 core_plugin = ml2 ser ...

  7. DOS批处理中%~dp0等扩充变量语法详解

    有时候我们看到别人使用%~dp0 ~是扩展的意思,相当于把一个相对路径转换绝对路径%0代指批处理文件自身%1表示批处理文件命令行接收到的第一个参数,%2表示第二个,以此类推%~d0 是指批处理所在的盘 ...

  8. 第二章 Vue快速入门-- 24 过滤器-Vue中全局过滤器的基本使用

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="utf-8&quo ...

  9. 找到并更改启动时间(timeout)

    centos7更改引导项等待时间 centos7已经不用grub,改用grub2. [ root]# vi /boot/grub2/grub.cfg 找到并更改启动时间(timeout) [root] ...

  10. qt类表