基于Roop视频换脸

Roop 是一个强大的一键换脸工具,允许用户在视频中替换面部,只需要目标面部的一张图片,无需数据集,无需训练。

相对于之前的 Simswap 来说效果要好很多,不过需要注意的是没有授权不要商用。

文章目录

环境搭建

创建虚拟环境。

shell 复制代码
conda create -n myenv python=3.10.6

项目克隆。

shell 复制代码
git clone https://github.com/s0md3v/roop.git

激活虚拟环境并安装依赖,补充安装显卡依赖。

shell 复制代码
pip install -r requirements.txt
pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu118

进入项目后执行命令启动。

shell 复制代码
python run.py

此时会自动下载各种模型,对于模型不能下载的问题请看最后错误解答部分。

使用方法

基础功能

启动命令之后会看到下面的操作界面

这里分别解释一下他们的作用

  • select face 选择要替换的人脸照片
  • select targen 选择要被替换的视频
  • Keey target fps 和被替换的视频保持一致的帧率
  • Keep temporary frames 是否保留替换过程中的图片
  • Skip target audio 是否跳过音频(一般不使用)
  • Many faces 是否有多张脸(一般不使用)

点击 Preview 预览按钮会弹出预览界面,默认抓取视频中出现的第一个人物的脸部进行替换。

也可以移动视频预览的进度条到想替换的人脸片段,使用方向键 或者 进行替换。这个是之前锁定的华仔,现在换成了梁仔。

选择好要替换的人物直接点开始就可以了,检查一下显存使用和数据帧生成的情况。

最后会在文件夹目录下生成一个temp.mp4的文件,就是换脸后合成的视频了,发现视频没有声音,画面换的人脸还比较模糊,带有音频的文件保存在start启动之前的路径位置。

常用处理生产方法

只用CPU处理视频。

python 复制代码
python run.py

使用GPU处理视频。

python 复制代码
python run.py --execution-provider cuda  

图片保存jpg格式 。

python 复制代码
python run.py --execution-provider cuda --temp-frame-format jpg

视频高清化处理。

python 复制代码
python run.py --execution-provider cuda --temp-frame-format jpg --frame-processor face_swapper face_enhancer 

处理脸部跳闪。

python 复制代码
python run.py --execution-provider cuda --temp-frame-format jpg --frame-processor face_swapper face_enhancer --similar-face-distance 1.5

指定帧识别人脸并替换,找到指定的帧数,位置人脸指定是从右向左从0开始计算。

python 复制代码
python run.py --execution-provider cuda  --reference-face-position 3  --reference-frame-number 166 --similar-face-distance 1.5

画面预览

超分后的画面预览。

错误解答

问题 urllib.error.HTTPError: HTTP Error 401: Unauthorized

由于下载inswapper_128.onnx'文件没有权限导致的,即没有权限访问蓝色部分网址导致的。这个要自己搜索一下inswapper_128.onnx文件并下载保存到项目的models目录下。

问题 http.client.RemoteDisconnected: Remote end closed connection without response

由于下载GFPGANv1.4.pth没有权限导致的,可以尝试使用一些上网方法下载,或者直接使用别的项目复制过来。如果能正常下载的话模型会自动下载到项目的models文件夹下。

同时还有可能出现的问题模型还有detection_Resnet50_Final.pthparsing_parsenet.pth处理方法都是一样的,上述模型都是用于画面超分使用的。

问题 Could not locate zlibwapi.dll. Please make sure it is in your library path!

是由于cuda缺少一些依赖文件。

自行百度搜索zlibwapi.dll 会得到一个压缩包自行移动文件到你的NVIDIA GPU Computing Toolkit\CUDA目录下。

相关推荐
EasyDSS4 小时前
RTMP高清推流直播/视频转码EasyDSS在无人机RTMP直播场景中的应用技术解析
ffmpeg·音视频·无人机·视频转码·语音转写·点播技术
EasyGBS4 小时前
场景化落地指南:国标GB28181视频分析EasyGBS视频质量诊断在5大行业的实战应用
音视频·国标gb28181·视频质量诊断·花屏检测
码农xo4 小时前
android 设备实时传输相机采集的视频到电脑pc端 通过内网wifi 方案
android·数码相机·音视频
2502_911679144 小时前
产线音频测试的性价比之选:APx515B音频分析仪深度解读
音视频
qq_316837755 小时前
华为obs 私有桶 音频 使用uniapp 安卓端播放-99的问题
uni-app·音视频
EasyGBS1 天前
国标GB28181视频分析平台EasyGBS视频质量诊断让监控故障“可防可控可溯源“
人工智能·音视频·gb28181·视频质量诊断
Terasic友晶科技1 天前
1-DE10-Nano的HDMI音频传输案例——I2S通信协议
音视频·de10-nano·hdmi音频传输·i2s通信协议
MonkeyKing_sunyuhua1 天前
借助openClaw的架构开发短视频生成平台的思路
架构·音视频
非凡ghost1 天前
proDAD ReSpeedr:专业视频变速编辑的利器
java·网络·windows·python·音视频·软件需求
愚公搬代码1 天前
【愚公系列】《剪映+DeepSeek+即梦:短视频制作》013-剪辑:把碎片素材串联成片(知识拓展:剪辑点的选择)
音视频