Roop|AI快速换脸

最近开源AI实时换脸项目比较火,使用roop工具您可以将一段视频中的人脸替换成您选择的人脸,只需要一个所需人脸的图像,无需数据集和训练。速度极快,提及小巧,在特定素材条件下的效果也还不错。

Roop|AI快速换脸

Roop|AI快速换脸技术使用以及部署教程

最近AI实时换脸比较火,有人用roop来搞网络诈骗,本站本次介绍一下该软件项目的安装部署教程,希望大家学会之后不要被骗,更不要尝试去骗别人。

使用该软件,您可以将一段视频中的人脸替换成您选择的人脸,只需要一个所需人脸的图像,无需数据集和训练。

更新说明

现在Roop已停更,如果你想使用换脸功能,那么可以考虑查看Roop的升级版,下面是FaceFusion的升级版链接。

免责声明

在使用他人面部图像前,用户必须得到相关人士的同意,并在发布内容时不得隐瞒它是深度伪造。本站不对最终用户的恶意行为负责。

为了防止滥用,它内置了一个检查程序,防止该程序用于不当媒体。

未来计划

  • 提高结果中面部的质量
  • 在整个视频中替换选择性面部
  • 支持替换多个面部

项目仓库

GitHub:S0MD3V/ROOP:一键式深度伪造(换脸) (github.com)

前置条件

在执行项目安装之前,我们还需要安装GitConda,还有FFMpeg,如果您的电脑还未安装这几个软件,请先根据本站所给出的教程安装。

Windows系统安装Git请参阅此文章:

Windows系统安装Conda请参阅此文章:

Windows系统安装FFMpeg请参阅此文章:

Visual Studio

在安装之前我们还需要下载Visual Studio,

下载地址:Visual Studio: 面向软件开发人员和 Teams 的 IDE 和代码编辑器 (microsoft.com)

下载并安装Visual Studio 2022时,只需要勾选通过 Windows 平台开发项,然后点击安装,等待完成即可。

网络问题

在安装过程中,你可能即便开启了魔法上网也无法下载一些编程依赖库,关于魔法上网的相关配置问题不方便在站内讲解,请前往查看【魔法上网】的教程内容。

安装教程

如果您是初学者,对于命令行不太理解,那么请按下键盘上的Win键+R键后,在弹出的新窗口内输入CMD并按下回车,打开CMD窗口,按顺序执行如下的每一条命令。

首先我们需要确认一个工作目录,用来存放roop的相关环境依赖文件。本站所选择的目录为D盘的根目录下openai.wiki文件夹,完整路径为:D:\openai.wiki

检测D盘是否在openai.wiki目录,没有则创建该文件夹。

if not exist D:\openai.wiki mkdir D:\openai.wiki

强制切换工作路径为D盘的openai.wiki\roop文件夹。

cd /d D:\openai.wiki

拉取Github仓库文件夹,将下载至openai.wiki文件夹。

git clone https://github.com/s0md3v/roop.git

如果您无法完成此步骤,执行后报错或者无法下载,可以下载该文件将其解压至D:\openai.wiki即可。

roop-main

提取密码 文件说明 文件大小 9.41MB 文件格式 ZIP 资源价格 免费 下载次数 3

环境部署

在CMD中执行如下命令,强制切换至roop的项目目录。

cd /d D:\openai.wiki\roop

在CMD中执行下面的命令行,创建Conda虚拟环境至该项目的目录中,方便日后重装系统也能够正常使用,无需重新部署环境。

conda create -y -p D:\openai.wiki\roop\ENV python=3.9

初始化Conda环境,避免后续可能报错。

conda init cmd.exe

激活已创建的Conda环境,这样我们可以将我们后续所需要的所有环境依赖都安装至此环境下。

conda activate D:\openai.wiki\roop\ENV

执行如下命令,安装访项目的相关依赖库。

pip install -r requirements.txt

图形加速

其实目前为止,你已经可以正常运行了,但速度会非常慢。如果您有一张好的GPU,你可以按照此处的教程安装GPU加速。

以下是针对各显卡安装图形加速的方法,请根据自身系统进行选择。

在你确认自己的显卡型号之后,在CMD中按顺序执行如下代码即可。

英伟达

  1. CUDA|Windows安装教程 – openAI
  2. cuDNN|Windows安装教程 – openAI
  3. pip uninstall onnxruntime onnxruntime-gpu
  4. pip install torch torchvision torchaudio --force-reinstall --index-url https://download.pytorch.org/whl/cu118
  5. pip install onnxruntime-gpu

AMD

  1. pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/rocm5.4.2
  2. pip uninstall onnxruntime
  3. git clone https://github.com/microsoft/onnxruntime && cd onnxruntime
  4. ./build.sh --config Release --build_wheel --update --build --parallel --cmake_extra_defines CMAKE_PREFIX_PATH=/opt/rocm/lib/cmake ONNXRUNTIME_VERSION=$ONNXRUNTIME_VERSION onnxruntime_BUILD_UNIT_TESTS=off --use_rocm --rocm_home=/opt/rocm
  5. pip install build/Linux/Release/dist/*.whl

苹果电脑

pip install onnxruntime-silicon

英特尔

  1. pip uninstall onnxruntime
  2. 安装名为 OpenVINO 的英特尔专用onnxruntime

模型下载

关于此项目的模型,本站已为您下载好,并提供了国内免会员的网盘下载地址。

inswapper_128.onnx

提取密码 文件说明 文件大小 528.58MB 文件格式 ONNX 资源价格 免费 下载次数 3

下载之后,将该模型移动至roop项目的根目录下即可。

运行方式

在以后每次运行该项目时,只需要先激活Conda环境,然后运行启动文件即可。

在CMD中执行如下命令,强制切换至roop的项目目录。

cd /d D:\openai.wiki\roop

激活已创建的Conda环境,这样我们可以将我们后续所需要的所有环境依赖都安装至此环境下。

conda activate D:\openai.wiki\roop\ENV

执行如下代码,运行roop的GUI界面。

python run.py

使用教程

当我们完成上述步骤中执行python run.py代码后,将会自动弹出如下界面。

Roop|AI快速换脸

以下是关于各按钮的功能描述:

  • Select a face
    • 选择面部图片
  • Select a target
    • 选择需要替换的视频
  • Keep frames dir
    • 保持框架目录
  • Limit FPS to 30
    • 将 FPS 限制为 30
  • Process all faces in frame
    • 处理帧中的所有面孔
  • Start
    • 开始
  • Preview
    • 预览

我们需要做的其实非常简单,那就是先点击Select a face按钮,这会自动弹出一个文件选择的窗口,我们选择一张人物图片即可,这张图片将会做为替换的素材。

然后点击Select a target按钮,这会自动弹出一个文件选择的窗口,我们选择一个包含人物的视频,这个视频为被替换面部的视频

其它参数保持默认即可,然后点击Start按钮,即可自动开始处理视频了。

Roop|AI快速换脸

命令行参数

以下是额外的命令行参数,一般不需要调整,忽略此部分内容即可。

选项:
	-h,--help            显示此帮助信息并退出
	-f SOURCE_IMG,--face SOURCE_IMG
	                      使用此面部
	-t TARGET_PATH,--target TARGET_PATH
	                      替换此面部
	-o OUTPUT_FILE,--output OUTPUT_FILE
	                      将输出保存到此文件中
	--keep-fps            保持原始fps
	--keep-frames         保留帧目录
	--all-faces           交换帧中的所有面部
	--max-memory MAX_MEMORY
	                      要使用的最大RAM量(以GB为单位)
	--cpu-cores CPU_CORES
	                      要使用的CPU核心数
	--gpu-threads GPU_THREADS
	                      要用于GPU的线程数
	--gpu-vendor {apple,amd,intel,nvidia}
	                      选择您的GPU供应商

寻找CLI模式?使用-f / –face参数将使程序进入CLI模式。

效果示例

本次示例中我们使用的角色图像都是同一张,所以单独拿出来吧。

Roop|AI快速换脸

示例一

效果极差,大面积的马赛克、闪烁、低画质。

原视频效果
替换后效果

示例二

这个效果还算看的过去,但也并不算近乎于完美,有非常大的进步空间。

原视频效果
替换后效果

总结

值得说明的一点是,我们可以看到两个视频的最终处理效果天差地别,这个原因出在哪里?

本站最开始只是随便挑选了一个视频进行替换,后面也换了几个,但是效果都非常不好。于是研究了一下其它人替换的视频,发现了一个规律,那就是所有被替换的视频素材都非常非常暗。于是站长找了一个视频趋向于黑白,且光线并不是特别好的视频进行测试,发现效果会好很多。

可见这个技术目前还并不是特别完善,远不如【FaceSWAP】的替换效果,但重在操作简单,需要的素材比较少,非常轻量化。

看来现在大部分博主真的很可恶啊,明明不完美,但是他会为了热度而不说这个技术到底怎么样,只告诉你这个怎么怎么厉害,并不会告诉你这个东西的弊端以及限制。

此文章由OpenAI开源维基百科原创发布,如若转载请注明出处:https://openai.wiki/roop.html

(0)
上一篇 2023-06-08 12:07
下一篇 2023-06-09 15:19

相关推荐

  • FaceSwap|Windows安装教程

    FaceSwap是一款强大的人脸转换软件,支持在Windows系统中运行。本文将详细介绍如何在Windows系统中安装FaceSwap,包括安装所需的工具和依赖项,以及步骤详细的安装教程。

    2022-12-14
    026.4K
  • FaceSwap

    使用深度学习和AI实现人脸交换,学习如何使用图像处理技术,实现高质量的人脸交换。FaceSwap是Github上的一个开源换脸技术项目,换脸技术是指将视频中人物的脸换为其他人的脸。

    AI换脸 2022-12-13
    013.8K
  • FaceFusion|AI快速换脸|Roop升级版

    Roop升级版AI换脸软件免费开源FaceFusion下载安装使用教程,使用FaceFusion您可以将一段视频中的人脸替换成您选择的人脸,只需要一个所需人脸的图像,无需数据集和训练。速度快,体积小。

    2023-08-28
    0146.2K

回复 小哥

您的邮箱地址不会被公开。 必填项已用 * 标注

评论列表(17条)

  • 张疾风
    张疾风 2023-06-09 15:06

    大佬魔法上网那个,咋判断自己是CMD还是Powershell窗口呢

  • 张疾风
    张疾风 2023-06-09 15:19

    大佬魔法上网那个,怎么判断自己是CMD还是Powershell窗口呢

  • Jie
    Jie 2023-06-10 13:55

    谢谢站长的教程。我按照教程走下来输出成功了,但是用GPU输出的时候会有两行报错:
    [h264 @ 000002215c4611c0] decoder->cvdl->cuvidCreateDecoder(&decoder->decoder, params) failed -> CUDA_ERROR_INVALID_VALUE: invalid argument
    [h264 @ 000002215c4611c0] Failed setup for format cuda: hwaccel initialisation returned error.

    不直到是不是这个原因,导致我用GPU输出的时间和CPU差不多。
    我的显卡是3060,CPU是12代I7。

    希望能得到站长的解答,万分感谢。

  • Jie
    Jie 2023-06-10 14:06

    大佬,按照你的教程走下来,CPU和显卡都可以输出。但是两者用时非常接近。我的CPU是I7-12700H,显卡是3060,一段1分钟左右的视频输出,分别用时36分钟和28分钟。
    用python run.py –gpu-vendor nvidia启动时,会出现以下报错:
    [h264 @ 000002215c4611c0] decoder->cvdl->cuvidCreateDecoder(&decoder->decoder, params) failed -> CUDA_ERROR_INVALID_VALUE: invalid argument
    [h264 @ 000002215c4611c0] Failed setup for format cuda: hwaccel initialisation returned error.

    请问是什么原因造成的,该如何修改呢?

  • 摄绘人
    摄绘人 2023-06-16 09:03

    你好 在执行这一步的时候出错了 “执行如下命令,安装访项目的相关依赖库。

    pip install -r requirements.txt” 报错提示“ERROR: Could not open requirements file: [Errno 2] No such file or directory: ‘requirements.txt” 请问如何解决

  • 摄绘人
    摄绘人 2023-06-16 15:03

    你好 按照教程下来在环境部署这一步遇到了问题 具体问题如下 希望有解决的办法 在环境部署的这一步 “执行如下命令,安装访项目的相关依赖库。

    pip install -r requirements.txt” 在输入指令后出现红色字体提示报错 报错信息如下:“ERROR: Could not open requirements file: [Errno 2] No such file or directory: ‘requirements.txt’”请问如何解决

    • 222
      222 2024-10-21 01:29

      @摄绘人将roopmain的文件放在roop根目录即可

  • kiwi
    kiwi 2023-06-16 17:33

    (E:\roop\ENV) E:\roop>python run.py
    Traceback (most recent call last):
    File “E:\roop\run.py”, line 3, in
    from roop import core
    File “E:\roop\roop\core.py”, line 13, in
    import psutil
    ModuleNotFoundError: No module named ‘psutil’

    大佬这是什么问题

    • kiwi
      kiwi 2023-06-16 17:41

      @kiwirunning build_ext
      building ‘insightface.thirdparty.face3d.mesh.cython.mesh_core_cython’ extension
      error: Microsoft Visual C++ 14.0 or greater is required. Get it with “Microsoft C++ Build Tools”: https://visualstudio.microsoft.com/visual-cpp-build-tools/
      [end of output]

      note: This error originates from a subprocess, and is likely not a problem with pip.
      ERROR: Failed building wheel for insightface
      Failed to build insightface
      ERROR: Could not build wheels for insightface, which is required to install pyproject.toml-based projects

      还装报错

  • 慕白
    慕白 2023-06-23 19:01

    报这个错误奇怪

    Exception in thread Thread-5:
    Traceback (most recent call last):
    File “D:\AI\roop\ENV\lib\threading.py”, line 980, in _bootstrap_inner
    self.run()
    File “D:\AI\roop\ENV\lib\threading.py”, line 917, in run
    self._target(*self._args, **self._kwargs)
    File “D:\AI\roop\roop\ui.py”, line 109, in
    set_preview_handler(lambda: preview_thread(lambda: test_preview(create_test_preview)))
    File “D:\AI\roop\roop\ui.py”, line 103, in test_preview
    frame = create_test_preview(preview_frame_slider.get())
    File “D:\AI\roop\roop\core.py”, line 248, in create_test_preview
    get_face_single(cv2.imread(args.source_img)),
    File “D:\AI\roop\roop\analyser.py”, line 16, in get_face_single
    face = get_face_analyser().get(img_data)
    File “D:\AI\roop\ENV\lib\site-packages\insightface\app\face_analysis.py”, line 59, in get
    bboxes, kpss = self.det_model.detect(img,
    File “D:\AI\roop\ENV\lib\site-packages\insightface\model_zoo\retinaface.py”, line 211, in detect
    im_ratio = float(img.shape[0]) / img.shape[1]
    AttributeError: ‘NoneType’ object has no attribute ‘shape’
    [ WARN:6@214.051] global loadsave.cpp:244 cv::findDecoder imread_(‘F:/鏂囦欢/澶囦唤/1111/1111/寰俊鎴浘_20230520003909.jpg’): can’t open/read file: check file path/integrity
    Exception in thread Thread-6:
    Traceback (most recent call last):
    File “D:\AI\roop\ENV\lib\threading.py”, line 980, in _bootstrap_inner
    self.run()
    File “D:\AI\roop\ENV\lib\threading.py”, line 917, in run
    self._target(*self._args, **self._kwargs)
    File “D:\AI\roop\roop\ui.py”, line 304, in
    start_button = create_button(window, “Start”, lambda: [save_file(save_file_handler, target_path.get()), preview_thread(lambda: start(update_preview))])
    File “D:\AI\roop\roop\core.py”, line 174, in start
    test_face = get_face_single(cv2.imread(args.source_img))
    File “D:\AI\roop\roop\analyser.py”, line 16, in get_face_single
    face = get_face_analyser().get(img_data)
    File “D:\AI\roop\ENV\lib\site-packages\insightface\app\face_analysis.py”, line 59, in get
    bboxes, kpss = self.det_model.detect(img,
    File “D:\AI\roop\ENV\lib\site-packages\insightface\model_zoo\retinaface.py”, line 211, in detect
    im_ratio = float(img.shape[0]) / img.shape[1]
    AttributeError: ‘NoneType’ object has no attribute ‘shape’
    [ WARN:7@217.364] global loadsave.cpp:244 cv::findDecoder imread_(‘F:/鏂囦欢/澶囦唤/1111/1111/寰俊鎴浘_20230520003909.jpg’): can’t open/read file: check file path/integrity
    Exception in thread Thread-7:
    Traceback (most recent call last):
    File “D:\AI\roop\ENV\lib\threading.py”, line 980, in _bootstrap_inner
    self.run()
    File “D:\AI\roop\ENV\lib\threading.py”, line 917, in run
    self._target(*self._args, **self._kwargs)
    File “D:\AI\roop\roop\ui.py”, line 304, in
    start_button = create_button(window, “Start”, lambda: [save_file(save_file_handler, target_path.get()), preview_thread(lambda: start(update_preview))])
    File “D:\AI\roop\roop\core.py”, line 174, in start
    test_face = get_face_single(cv2.imread(args.source_img))
    File “D:\AI\roop\roop\analyser.py”, line 16, in get_face_single
    face = get_face_analyser().get(img_data)
    File “D:\AI\roop\ENV\lib\site-packages\insightface\app\face_analysis.py”, line 59, in get
    bboxes, kpss = self.det_model.detect(img,
    File “D:\AI\roop\ENV\lib\site-packages\insightface\model_zoo\retinaface.py”, line 211, in detect
    im_ratio = float(img.shape[0]) / img.shape[1]
    AttributeError: ‘NoneType’ object has no attribute ‘shape’

  • 小哥
    小哥 2023-08-15 15:46

    Preparing metadata (setup.py) … –
    到这里怎么搞

  • jelly
    jelly 2023-09-24 19:52

    非常优秀的文章

微信