AI换脸(支持视频换脸,支持cpu、低算力)【附代码】

news2024/11/27 14:32:30

可直接选择一张人脸去替换另一张图片或者视频中的人脸。本项目仅提供人脸替换部分,不需要数据集,不用训练!

目录

项目说明

环境说明

准备工作

如何使用

免责声明


项目说明

本项目参考源码:GitHub - s0md3v/roop: one-click deepfake (face swap)

因上述代码在实际使用中有些问题,因此本人原项目代码中做出了调整,可以在低版本的torch以及低算力的硬件上使用,支持windows环境中使用。

部分项目资源我将会上传至我的云盘供大家下载。

换脸后的人脸图片质量还是比较模糊的,所以大家仅供娱乐学习即可。

环境说明

numpy>=1.21.6

opencv-python==4.7.0.72

onnx==1.11.0

insightface==0.7.3

psutil==5.9.5

tk==0.1.0

pillow>=9.1.1

torch>=1.7.0

onnxruntime-gpu==1.6.0

cuda:10.2

windows 10

onnxruntime-gpu要和自己的cuda版本对应

我的GPU是1650 4G的,仅用CPU也是可以推理的。


下面可以给出效果图。拿我喜欢的斗破苍穹为例,将云昀的脸换到美杜莎女王脸上。

云韵

 

美杜莎

 

 

换脸后的美杜莎

 

 

准备工作

下载代码:git clone https://github.com/YINYIPENG-EN/AI_face_swap.git

1.将inswapper_128.onnx权重放在目录下。

2.将buffalo_l.zip下载后解压至models文件下。

models/

|-- buffalo_l

| |-- 1k3d68.onnx

| |-- 2d106det.onnx

| |-- det_10g.onnx

| |-- genderage.onnx

| `-- w600k_r50.onnx

3.找到core/config.py,修改第12行人脸检测权重路径。我这里是F盘的roop。所以我的buffalo_l存放在F:/roop/models/下。

FACE_ANALYSER=insightface.app.FaceAnalysis(name='buffalo_l',root='F:/roop/',providers=core.globals.providers)

 

4.ffmpeg安装。将ffmpeg-6.0-full_build.7z解压,将bin下的ffmpeg.exe添加至环境变量。将然后将ffmpeg.exe复制一个到你pytorch环境下【和torch下的python在一个目录中即可】

权重路径:

链接:百度网盘 请输入提取码

提取码:yypn

如何使用

python run.py

如果是想用用GPU

python run.py --gpu

然后会出来一个GUI界面。

 

Select a face 是用来选择source人脸的【仅支持图片】,Select a target是要替换的人脸【支持图片和视频】。然后点击Start即可

程序运行的时间和你硬件以及内存有关系,所以耐心等待。如果你的硬件环境比较差,可能会意外退出。

视频检测会限制在30FPS【够用了】。

免责声明

比这个更好的deepfake软件已经存在,这只是我为学习人工智能而创建的一个爱好项目。用户应该使用这个程序来学习编程并真诚地使用该软件。用户在使用自己的脸之前必须征得相关人员的同意,并且在网上发布内容时不得隐瞒这是一个深度伪造的事实。我不对最终用户的恶意行为负责。

Better deepfake software than this already exist, this is just a hobby project I created to learn about AI. Users are expected to use this program for learning programming and using the software in good faith. Users must get consent from the concerned people before using their face and must not hide the fact that it is a deepfake when posting content online. I am not responsible for malicious behaviour of end-users.

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

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

相关文章

[数据结构 -- 手撕排序算法第一篇] 堆排序,一篇带你搞懂堆排序

目录 1、堆的应用 -- 堆排序 1.1 堆排序的思路分析 2、建堆 2.1 向上调整建堆:O(N*logN) 2.1.1 向上调整代码 2.1.2 向上调整建堆代码 2.2 向下调整建堆:O(N) 2.2.1 向下调整代码 2.2.2 向下调整建堆代码 3、堆排序实现代码 4、堆排序测试 1、…

一文读懂Serverless,它到底有啥用?

各位ICT的小伙伴好呀。 Serverless是最近大家讨论很多的一个话题。 今天我们就来聊聊什么是Serverless? ▉ Serverless是个啥? Server:服务器,Serverless解决问题的产品。 less:更少,Serverless解决问题…

如何解决空指针异常

NPE异常相信 Java 程序员都很熟悉,是 NullPointerException 的缩写;最近业务需求开发的有点着急,测试环境就时不时的来个NPE异常,特别的头疼;作为出镜率最高的异常之一,一旦入行Java开发,可以说…

微服务网关、SpringBoot、Nginx、tomcat8配置跨域

微服务网关、SpringBoot、Nginx、tomcat8配置跨域 跨域是什么?为什么会跨域解决跨域微服务网关处理跨域springboot项目配置跨域nginx配置跨域tomcat8配置跨域 跨域是什么? 跨域是A端向B端发送请求,A端与B端的地址协议、域名、端口三者之间任意一个不同&#xff0c…

Tomcat的优化

Tomcat的优化 一、Tomcat 优化Tomcat 配置文件参数优化 二、系统内核优化三、Tomcat 配置 JVM 参数:参数含义 一、Tomcat 优化 Tomcat默认安装下的缺省配置并不适合生产环境,它可能会频繁出现假死现象需要重启,只有通过不断压测优化才能让它…

吴恩达联手OpenAI的免费课程笔记—面向开发人员的 ChatGPT 提示工程

目录 前言一、大语言模型介绍二、提示指南2-0、导入API key和相关的python库2-1、写清楚的、具体的提示2-1-1、使用分隔符清楚的指示输入的不同部分2-1-2、要求结构化的输出2-1-3、按照指定的条件输出2-1-4、少样本学习 2-2、给模型时间去思考2-2-1、指定完成任务所需要的具体步…

软件外包开发UI管理工具

软件在开发前需要设计UI界面,UI界面是产品经理和开发人员、测试人员之间的交流工具,因此项目中会有多人的工作涉及到的UI界面,这就需要有个好的工具协调相互之间的工作。今天和大家分享一些常用到的工具,希望对大家的工作有所帮助…

插件框架PF4J-从理论到实践

PF4J:Plugin Framework for Java 目录 是什么? 不是什么? 特点 组件 主要类 流程概述 spring-pf4j 思考 功能模块化 我对pf4j的封装和使用demo GitHub - chlInGithub/pf4jDemo: pf4j demo 是什么? 开源轻量级的插件框架。通过插件…

三相三线、三相四线、三相五线制区别

三相三线、三相四线、三相五线制区别 1、三相三线2、三相四线3、三相五线4、三相三线和三相四线的区别5、三相四线和三相五线的区别 1、三相三线 由A、B、C这3根相线俗称火线组成,没有布置零线N和接地线PE,这种布线方式常见于交流380V的上一级10KV的系统…

Maven安装教程

maven环境配置(点击此电脑右键属性): 点击高级系统设置,点击环境变量: 开始配置环境变量(点击系统变量,新建按钮): 新建系统变量:MAVEN_HOMED:\maven\apac…

vueX学习看这篇就够了

vuex就是为了实现全局状态管理 vuex有哪些东西? state【状态】getter【可以认为是 store 的计算属性,不会修改状态】mutation【唯一修改state的方法,不支持异步】action【不能直接修改state,通过触发mutation修改状态,支持异步】…

GPT聊天功能,逐字返回数据

目录 前言一、前端二、后端1.接收前端请求的api如下是继续向其他接口请求的api如下是直接返回前端数据的api甚至可以返回图片 2.模拟GPT的接口 前言 我们在和GPT交流的时候发现GPT总是逐字的显示,因为GPT是一种基于神经网络的自然语言处理模型,它的训练…

王道考研计算机网络第一章知识点汇总

以上内容为1.1概念与功能的重点知识点 以下为1.2组成与分类: P2P模式下每台主机既可以是客户也可以是服务器,主机越多资源分享速度越快。 1.3标准化工作及相关组织 1.4性能指标 带宽只是指的是从主机内部往传输链路上投送数据的最大能力(从入口端放入数…

棱镜七彩中标浦发银行项目 助力金融行业开源治理

近日,棱镜七彩凭借出色的研发实力和优秀的产品服务能力在众多竞标企业中脱颖而出,成功中标上海浦东发展银行创新实验室“开源治理扫描工具信创改造课题”项目。棱镜七彩将为浦发银行在开源软件治理、软件安全可靠性等方面提供全方位支持。 在数字经济发…

odoo from 表单自定义按钮 执行JS代码 并调用websoket

业务场景: 集成串口读取RFID数据。由于串口是需要在客户端本地电脑执行才可以拿到数据 但是系统 部署在服务器 不能直接调用串口。 解决方案: 利用websoket通信 调用串口 传输 读取到的串口数据,解决服务器与本地之间的通信 本场景是基于odo…

深度解析:2023年软件测试的10个新趋势和挑战

随着技术的飞速发展,软件测试的角色和责任也在经历重大转变。我们在2023年目前所面临的一些新趋势和挑战值得所有从业人员关注。以下是这些主要趋势和挑战的深度分析。 趋势一:人工智能和机器学习在测试中的应用 AI和ML正在越来越多地应用于软件测试&am…

给httprunnermanager接口自动化测试平台演示参数化(五)

文章目录 一、背景1.1、前情回顾 二、参数化实现三、总结 一、背景 参数化,在使用httprunner框架的时候,参数话说实在的不是很实用,因为更多是场景化的用例编写,不用过多的去参数化批量执行,无非也就是登录注册查询啥的…

数据库系统概论 ---知识点大全(期末复习版)

(一)绪论 数据(Data):是数据库中存储的基本对象 数据的定义:描述事物的符号记录 数据的种类:文字、图形、图象、声音等 数据的特点:数据与其语义是不可分的 数据库(Database,简称DB):是长期…

数据结构与算法-跳表详解

我们知道如果一个数组是有序的,查询的时候可以使用二分法进行查询,时间复杂度可以降到 O(logn) ,但如果链表是有序的,我们仍然是从前往后一个个查找,这样显然很慢,这个时候我们可以使用跳表(Ski…

chatgpt赋能python:Python如何依次取字符——一种简单有效的方法

Python如何依次取字符——一种简单有效的方法 1. 介绍 Python 常常被用于编写文本处理脚本,而文本处理中的一个常见任务就是依次取字符。本文将介绍一种简单高效的方法,让您可以在 Python 中便捷地完成此操作。 2. 如何依次取字符 Python 中的字符串…