AI绘画工具Stable Diffusion神级插件InstantID,AI换脸完美版!

随着AI绘画技术的不断迭代,AI换脸也日臻完美。

从路线上看,主要有两条路线,一是一张图换脸,优点是操作简便,缺点是换个姿势的时候,往往不太像,roop等插件是基于这个思路;二是炼制专属LoRA,用目标的5-20张甚至更多脸部照片,训练一个LoRA,从而生成满意的换脸画面,妙鸭相机、EasyPhoto等工具都是基于这个思路。

如今,又冒出来第三条路线。

小红书 InstantX 团队公开了论文《 InstantID: Zero-shot Identity-Preserving Generation in Seconds 》和推理代码,他们表示:

InstantID 巧妙地避免了对文生图模型 UNet 部分的训练,仅通过训练一个轻量级的可插拔模块,实现了在推理过程中无需 test-time tuning,同时保持了文本控制的灵活性,确保了面部特征的高保真度。


InstantID 的工作原理可分为三个关键部分:

ID Embedding:团队利用预训练的面部识别模型代替 CLIP 来提取语义人脸特征,并使用可训练的投影层,将这些特征映射到文本特征空间,形成 Face Embedding,具有丰富的语义信息,包括如面部特征、表情、年龄等,为后续的图像生成提供了坚实的基础。

Image Adapter:引入一个轻量级的适配模块,将提取的身份信息与文本提示结合起来。这个模块通过解耦的交叉注意力机制,使得图像和文本能够独立地影响生成过程,从而在保持身份信息的同时,允许用户对图像风格进行精细控制,实现「双赢」。

IdentityNet:小红书提出了一个名为 IdentityNet 的网络,是 InstantID 的核心部分。它通过强语义条件(如面部特征的详细描述)和弱空间条件(如面部关键点的位置)来编码参考面部图像的复杂特征。在 IdentityNet 中,生成过程完全由 Face Embedding 引导,无需任何文本信息。仅更新新添加的模块,而预先训练的文本到图像模型保持冻结以确保灵活性。

在实际的图像生成过程中,InstantID 首先会接收到用户的文本提示和面部图像。然后通过 ID Embedding 提取关键信息,接着 Image Adapter 将这些信息与文本提示融合。IdentityNet 会根据这些融合后的信息生成图像。

整个过程是自动化的,用户不需要进行任何额外的微调或训练,只需等待二十几秒,就能得到一个既符合文本描述又保留个人身份特征的定制图像。


这个工具有独立安装版,有comfyUI版,今天我来介绍下WebUI版如何使用。

1、升级ControlNet,至少要到1.1.440版。

2、下载ControlNet使用的模型,模型分两大类。(模型下载请看文末扫描获取)

(1)ControlNet模型

分别是ip-adapter_instant_id_sdxl.bin 和 control_instant_id_sdxl.safetensors。

下载后拷贝至extensions\sd-webui-controlnet\models,比如我的WebUI安装在E:\sd-webui,就需要拷贝至:

E:\sd-webui\extensions\sd-webui-controlnet\models

(2)面部识别模型

共计5个,拷贝至以下目录(我的WebUI在E:\sd-webui)

E:\sd-webui\extensions\sd-webui-controlnet\annotator\downloads\insightface\models\antelopev2

3、配置界面

在ControlNet的配置界面,我们需要配置两个页面。

第一个页面:

先上传需要输出的脸型原型,比如一个非常熟悉的美少女。

注意相关参数。

(1)选择启用。

(2)类型选择Instant_ID

(3)预处理器选择instant_id_face_embedding

(4)模型选择ip-adapter_instant_id_sdxl,如果模型这里为空或者报错,则需要检查是否将下载好的模型拷贝到指定位置。

第二个页面:

这里上传想要摆拍的姿势,可以不是需要换脸的画面。instantID会分析这张照片的姿势,然后把第一张的脸型按照这个姿势适配,但不是简单的换脸,除了姿势外,完全不同,相当于重新生成。

(1)注意如果你的显存不足16G,那么这里要选择低显存优化,否则会爆显存。

(2)和第一个页面一样,选择Instant_ID。

(3)预处理器选择instant_id_face_keypoints,模型选择control_instant_id_sdxl。

4、输入提示词,然后点击“生成”。

需要注意的是,提示词不要太复杂,过于复杂的提示词容易使Instant_ID失效。

比如,我输入提示词:

a girl,HDR,UHD,8K,best quality,masterpiece,ultra-fine painting,extreme detail description,Professional,summer dress,light_smile,

是不是很面熟?

再换一张姿势参考图:

提示词不变,生成如下:

然而我觉得,似乎不像传说中的那么像,大家觉得呢?

写在最后

感兴趣的小伙伴,赠送全套AIGC学习资料,包含AI绘画、AI人工智能等前沿科技教程和软件工具,具体看这里。

AIGC技术的未来发展前景广阔,随着人工智能技术的不断发展,AIGC技术也将不断提高。未来,AIGC技术将在游戏和计算领域得到更广泛的应用,使游戏和计算系统具有更高效、更智能、更灵活的特性。同时,AIGC技术也将与人工智能技术紧密结合,在更多的领域得到广泛应用,对程序员来说影响至关重要。未来,AIGC技术将继续得到提高,同时也将与人工智能技术紧密结合,在更多的领域得到广泛应用。

在这里插入图片描述

一、AIGC所有方向的学习路线

AIGC所有方向的技术点做的整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照下面的知识点去找对应的学习资源,保证自己学得较为全面。

在这里插入图片描述

在这里插入图片描述

二、AIGC必备工具

工具都帮大家整理好了,安装就可直接上手!
在这里插入图片描述

三、最新AIGC学习笔记

当我学到一定基础,有自己的理解能力的时候,会去阅读一些前辈整理的书籍或者手写的笔记资料,这些笔记详细记载了他们对一些技术点的理解,这些理解是比较独到,可以学到不一样的思路。
在这里插入图片描述
在这里插入图片描述

四、AIGC视频教程合集

观看全面零基础学习视频,看视频学习是最快捷也是最有效果的方式,跟着视频中老师的思路,从基础到深入,还是很容易入门的。

在这里插入图片描述

五、实战案例

纸上得来终觉浅,要学会跟着视频一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。
在这里插入图片描述

若有侵权,请联系删除

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

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

相关文章

第7章 Vite的测试和调试

测试和调试是软件开发过程中的重要环节。通过合理的测试策略和调试技巧,可以大幅提高代码的质量和稳定性。本章将介绍如何在 Vite 项目中进行单元测试、集成测试和端到端测试,以及常用的调试方法和工具。 1 单元测试 单元测试是对最小可测试单元进行验证…

UWB:FiRa Consortium UCI Generic Technical Specification v1.1.0(1)- UCI架构和通用数据包头

FiRa fine ranging 精确测距 为了UWB产业能够蓬勃发展,各个公司的产品必须互联互通,不然就是一盘散沙,成不了气候。于是成立了FiRa UWB联盟,相当于WiFi里面的WiFi alliance(WiFi联盟),蓝牙里面…

uniapp x — 跨平台应用开发的强大助力

摘要: 随着前端技术的不断演进,跨平台应用开发框架成为了提升开发效率、降低开发成本的重要工具。uni-app以其跨平台兼容性和丰富的功能受到了开发者的广泛青睐。然而,随着应用需求的日益增长,对框架的功能和性能要求也在不断提高…

洛谷P1498 南蛮图腾[递归好题]

南蛮图腾 题目背景 自从到了南蛮之地,孔明不仅把孟获收拾的服服帖帖,而且还发现了不少少数民族的智慧,他发现少数民族的图腾往往有着一种分形的效果,在得到了酋长的传授后,孔明掌握了不少绘图技术,但唯独…

【Android】kotlin jdk版本冲突与Kotlin依赖管理插件

1、androidx.activity:activity:1.8.0 依赖版本错误问题 *依赖项“androidx.activity:activity:1.8.0”要求依赖它的库和应用针对版本 34 或更高版本 Android API 进行编译。:app 目前是针对 android-33 编译的。此外…

短视频带货的新趋势:揭秘萤瓴优选智能分镜功能的轻资产另类新风口

随着互联网的飞速发展,短视频平台如雨后春笋般崛起,短视频带货已成为电商领域的新宠。在这个趋势下,萤瓴优选凭借其独特的智能分镜功能,引领了一股轻资产另类新风口,为众多电商从业者带来了新的机遇。本文将深入探讨短视频带货的新…

解决:Failed to load PostCSS config: Failed to load PostCSS config

报错信息: [Failed to load PostCSS config: Failed to load PostCSS config (searchPath: D:/project/vite-vue-project): [Error] Must use import to load ES Module: D:\project\vite-vue-project\postcss.config.ts require() of ES modules is not supported. require(…

【Spring】springSecurity中WebSecurityConfigurerAdapter类中configure方法(5版本以下)

1、简介 在Spring Security中,WebSecurityConfigurerAdapter 类是一个配置适配器,它提供了多种 configure 方法的重载,允许开发者以声明性的方式配置Web安全。 2、相关规则 1. configure(WebSecurity web) 此方法用于配置哪些请求应该被Sp…

10个JavaScript One-Liners让初学者看起来很专业

原文链接:https://pinjarirehan.medium.com/10-javascript-one-liners-for-beginner-developers-to-look-pro-b9548353330a 原文作者:Rehan Pinjari 翻译:小圆 你是不是在辛苦码字时,看到别人轻松甩出一行 JavaScript 就搞定难题…

量化机器人对投资策略的调整

量化机器人在现代投资管理中扮演着越来越重要的角色,尤其在调整和优化投资策略方面表现出其独特的价值。通过运用先进的算法、人工智能和大数据分析,这些机器人能够实现投资策略的高度自动化调整,帮助投资者适应不断变化的市场环境。 首先&a…

DangerWind-RPC-framework---三、服务端下机

当一台机器下线时,面临很多问题:如何将其从注册中心下线?如何清理释放资源?客户端拉取服务列表时也使用了本地缓存,如何及时更新本地缓存? 服务端机器的优雅下线需要使用ShutdownHook,这相当于添…

前端八股文 插槽的使用场景

什么是插槽 官方解释&#xff1a;Vue 实现了一套内容分发的 API&#xff0c;将 元素作为承载分发内容的出口。 大白话&#xff1a;插槽就是子组件中的提供给父组件使用的一个占位符&#xff0c;用<slot> 表示&#xff0c;父组件可以在这个占位 符中填充任何模板代码&am…

苹果笔记本电脑能玩哪些游戏 苹果电脑可以玩的单机游戏推荐

苹果笔记本有着优美的外观和强大的性能。用户不仅可以使用苹果笔记本办公、剪辑&#xff0c;越来越多的用户开始关注苹果笔记本在游戏领域的表现&#xff0c;尤其是在大型游戏方面。本文将为你详细介绍苹果笔记本都能玩什么游戏&#xff0c;以及为你推荐苹果电脑可以玩的单机游…

Mybatis之动态sql、缓存、分页、配置数据源

SQL动态查询 if标签 当传递某个DTO时&#xff0c;需要根据某个属性是否存在而动态增加条件时&#xff0c;就可以使用if标签 <select id"getUser" resultType"user">select id, name, age, sex from user where 11<if test"userDto.name !…

EventBus原理分析

EventBus 是一个流行的事件发布/订阅框架&#xff0c;主要用于简化 Android 应用中不同组件之间的通信。它的设计基于观察者模式&#xff0c;可以有效地减少组件间的耦合性&#xff0c;使得代码更加模块化和可维护。 下面是 EventBus 的实现原理&#xff0c;结合其源码进行说明…

快到不可思议!Internet Download Manager下载器,让你的网速飞起来!

&#x1f31f; 快到不可思议&#xff01;Internet Download Manager下载器&#xff0c;让你的网速飞起来&#xff01;&#x1f680; 嗨喽&#xff0c;各位csdn的朋友们&#xff01;&#x1f44b;今天我要跟大家分享一个我超爱的下载神器——Internet Download Manager&#xff…

MySQL相关函数

SQL函数 聚合函数 定义&#xff1a;聚合函数作用与一组数据&#xff0c;并对一组数据返回一个值。 常用&#xff1a;AVG()、SUM()、MAX()、MIN()、COUNT()。 说明&#xff1a;聚合函数不能嵌套使用。 字符串函数 MYSQL中常用的字符串函数&#xff1a; 函数名作用concat(s1,s…

springboot+vue项目实战2024第三集修改用户信息

1.获取用户信息 GetMapping("/userInfo")// RequestHeader(name "Authorization") String tokenpublic Result<User> userInfo(){// Map<String, Object> map JwtUtil.parseToken(token);Map<String,Object> map ThreadLocalUti…

基于uni-app与图鸟UI的知识付费小程序模板

一、项目概述 在知识经济蓬勃发展的背景下&#xff0c;移动互联网成为知识传播与消费的重要渠道。本项目旨在利用前沿的前端技术栈——uni-app及高效UI框架图鸟UI&#xff0c;打造一款集多功能于一体的、面向广大求知者的知识付费平台移动端模板。该模板旨在简化开发流程&…

Java:分批查询

前言 最近遇到一个场景问题&#xff0c;就是基于SQL server数据库的规范&#xff0c;查询条件in如果个数超过2100个就会报错。由于是ORM映射框架采用的MybatisPlus 起初我想到的是基于 MybatisPlus 的 参数分割&#xff0c;测试还是不行&#xff0c;于是就直接基于 mybatis xm…