DeepFaceLab:视频中有多人,仅替换特定人脸的方法!

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

?

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

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

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

?

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

?

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

?

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

?

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

?

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

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

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

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

原文地址:https://www.cnblogs.com/wangpg/p/11478842.html

时间: 2024-10-07 13:23:53

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

用StringBuffer替换特定位置字符

import java.util.*;public class Solution { public static void main(String[] args) { Scanner sc = new Scanner(System.in); while(sc.hasNextLine()){ StringBuffer s=new StringBuffer(); s.append(sc.nextLine()); if(s.length()>=1&&s.length()<=10) {

Python 正则表达式替换特定字符为标志的字符串

Requirement: [ { "code": "AF", "value": 53, "name": "Afghanistan" }, { "code": "AL", "value": 117, "name": "Albania" }, { "code": "DZ",

Django Admin Cookbook-17如何仅限特定用户登录Django Admin管理后台

17.如何仅限特定用户登录Django Admin管理后台? 只有勾选了is_staff=True的用户才允许登录Django Admin管理后台.要禁止用户访问Admin后台,可以应该设置该用户is_staff=False. 同样,超级管理员可以通过is_superuser=True设置.如果is_staff=False的用户尝试登录管理后台,将看到如下消息. 返回目录 原文地址:https://www.cnblogs.com/superhin/p/12174549.html

关于android使用自己的launcher替换默认launcher的方法

关于android使用自己的launcher替换默认launcher的方法 有时候,你可能希望用你自己的launcher程序替换默认的android launcher2和launcher3.而且希望作为系统起来就启动你的launcher程序,而不需要用户选择. 特别是如果你的launcher程序和默认launcher程序共存时,即使你的launcher已经被用户选择为默认启动launcher,突然运行时,你的程序出现crash,那么系统会再次弹出选择哪个launcher进行启动的选择框,而不是直

各种与视频编解码以及视频图像处理的应用相关的新技术,新方法,各种软件开发相关的算法,思想。

1. 各种视频压缩标准(MPEG2, MPEG4, H261/2/3/4,X264, T264以及H264(AVC)和HEVC(H265)等的优化,改进,创新. 2. 各种不同平台的(CPU, GPU, DSP, ARM等等)开发,移植优化等, 涉及到的语言包括C, C++, X86汇编,TI DSP汇编,ADI DSP汇编, ARM汇编(armv4/v5/v6/v7 XSCALE WMMX cortex A8等),MMX, SSE, SSE2/3等, 以及目前利用OpenCL来调用GPU实现并

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

OSG中找到特定节点的方法 为了在OSG中找到需要的节点并对节点做出相应的操作,可以从NodeVisitor类中继承一个类,NPS的教程 [download id="14"] 阐述了这个问题.下面是我写的一个类,找到指定名字.指定类型的节点: class findGeoNamedNode: public osg::NodeVisitor { public: findGeoNamedNode(); findGeoNamedNode(const std::string name): osg

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

这篇文章主要介绍了Java中替换HTML标签的方法代码,需要的朋友可以参考下 replaceAll("\\&[a-zA-Z]{0,9};", "").replaceAll("<[^>]*>", "\n\t") 源码如下: /** * 字符串替换 */ package com.you.model; /** * HTML标签替换 * @author YHD * @version */ public cla

OSG中找到特定节点的方法

OSG中找到特定节点的方法 转自:http://38288890.blog.163.com/blog/static/19612845320072721549504/ 为了在OSG中找到需要的节点并对节点做出相应的操作,可以从NodeVisitor类中继承一个类,NPS的教程 [download id="14"]阐述了这个问题.下面是我写的一个类,找到指定名字.指定类型的节点:class findGeoNamedNode:public osg::NodeVisitor{public:fi

git实现批量忽略特定文件的方法

git实现批量忽略特定文件的方法 在用AndroidStudio开发项目的时候,3个人协同开发,那么用Git同步代码,会将模块中的大量iml文件同步,每次都会提交和更新,一个一个的去忽略他们,显然是最笨的方法. 那些ide文件和iml文件根本不需要同步,如何设置呢?? 1 git update-index --assume-unchanged $(git ls-files *.iml   idea/*.*)