《流浪地球2》里,刘德华喃喃自语:我要给丫丫完整的一生。
丫丫的数字生命之所以无法超过两分钟,是因为那台550C算力不足。
出人意料的是,新年伊始,Sora就出现了,AI能生成一分钟的视频。
随着技术的迭代,算力的升级,距离用AI生成完整的一生,已经并不遥远。
对于普通用户来说,开源的Stable Diffusion已经能够生成近乎完美的图片和几秒的视频。
需要注意的是,图片本质上也是视频,是一帧视频。
在生成数字人的过程中,图片是很重要的一步。能够完美的生成图片,相当于有了视频的基础。
而如何把现实中的人脸复刻到数字人脸上,LoRA是很常见的一种技术。很多团队的虚拟照相馆,基本上都采用了训练LoRA的方式来实现。
训练LoRA需要的素材比较多,效率也比较低,时间非常长。
也有不少团队推出了一键换脸的插件,去年最火的插件是roop、ReActor等。不过这类插件有个很大的缺点,对不同画面的适配性比较差。
小红书和北大团队联手发布了一个一键换脸的插件:instantID。
instantID从底层技术上,摆脱了普通一键换脸插件的缺点,它可以提取人脸的面部特征,然后生成的各种画面非常自然。
InstantID 的工作原理可分为三个关键部分:
ID Embedding:团队利用预训练的面部识别模型代替 CLIP 来提取语义人脸特征,并使用可训练的投影层,将这些特征映射到文本特征空间,形成 Face Embedding,具有丰富的语义信息,包括如面部特征、表情、年龄等,为后续的图像生成提供了坚实的基础。
Image Adapter:引入一个轻量级的适配模块,将提取的身份信息与文本提示结合起来。这个模块通过解耦的交叉注意力机制,使得图像和文本能够独立地影响生成过程,从而在保持身份信息的同时,允许用户对图像风格进行精细控制,实现「双赢」。
IdentityNet:小红书提出了一个名为 IdentityNet 的网络,是 InstantID 的核心部分。它通过强语义条件(如面部特征的详细描述)和弱空间条件(如面部关键点的位置)来编码参考面部图像的复杂特征。在 IdentityNet 中,生成过程完全由 Face Embedding 引导,无需任何文本信息。仅更新新添加的模块,而预先训练的文本到图像模型保持冻结以确保灵活性。
在实际的图像生成过程中,InstantID 首先会接收到用户的文本提示和面部图像。然后通过 ID Embedding 提取关键信息,接着 Image Adapter 将这些信息与文本提示融合。IdentityNet 会根据这些融合后的信息生成图像。
整个过程是自动化的,用户不需要进行任何额外的微调或训练,只需等待二十几秒,就能得到一个既符合文本描述又保留个人身份特征的定制图像。
本文分三个部分,分别介绍WebUI下的安装使用、ComfyUI下的安装使用,以及显存不足(划重点)的使用。
一、云端账号的使用
小红书团队放出的工作流中,有一个标准工作流,我配置好后,在12G的3060上直接爆显存。
instantID的标准显存是16G起步,市面上流行的简易工作流不能实现这个强大的插件的最完美结果。
有没有办法给小姐姐完整的一生呢?
答案是:上云。
现在市面上可以使用Stable Diffusion的云电脑林林总总,建议选一款性能适中、插件丰富的。
比如揽睿星舟。这款云电脑内置了本文提到的所有模型和插件,因此本文以云端为例,后面也放上了在本地电脑(如果你有4090)的安装和配置教程。
1、注册
注册很简单,搜索网站 【揽睿星舟】 ,在注册时输入邀请码4849可以得到优惠。
2、选择硬件
注册成功后,登录平台,然后点击算力市场。
这里强烈推荐3090显卡(当然遇到算力紧张的时候不一定能抢到),性能比4090略差一些,但24G显存几乎可以跑任何插件,而价格要美丽的多。
选择后创立工作空间。
如果你熟悉WebUI界面,选择SD1.7+SDXL,如果你像我一样全面投入comfyUI的怀抱,那就选comfyUI。
启动方式,建议选手动,也可选自动启动;
数据盘可以选256G,网盘选择挂载。
数据集选择sd-base,预训练模型选择sdxl-models
然后点“立即创建”。
启动成功后,点击Jupyterlab
然后点击Terminal。
事实上,这是进入了一个Linux界面,对Linux比较熟悉的朋友,后面就知道怎么操作了。
复制粘贴启动命令然后回车。
启动速度远比我的电脑要快,出现了http://0.0.0.0:27777 地址就说明启动成功了。
回到工作空间,打开调试地址
就可以看到熟悉的WebUI界面了!
我比较喜欢浅色,把地址栏里的?__theme=dark 改为 ?__theme=light 就好了。
二、InstantID在WebUI下的使用
揽睿星舟内置了Instantid用的到的所有插件和模型!
我们选择SD1.7全插件版开机,启动WebUI界面后,可以直接进入配置界面开始使用。
在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,
是不是很面熟?
再换一张姿势参考图:
提示词不变,生成如下:
好了,让我们看看一个长得很像神仙姐姐的女孩!
三、InstantID在comfyUI下的安装和使用
如果你像我一样已经完全习惯了ComfyUI的工作流,那么揽睿星舟也给能提供安装了完整插件(节点)的版本。
开机时我们选择镜像ComfyUI-CU121。
启动方式和上文的WebUI几乎一样
需要留意一点点,启动的命令不同:需要复制 bash/home/user/start.sh 然后回车启动。
出现熟悉的地址信息,表示启动成功。
启动成功后,点击调试地址
我喜欢浅色系,ComfyUI调整风格的配置界面如下:
欢迎来到明亮的浅色界面。
创建基础工作流。
添加节点--InstantID--Apply InstantID。
节点创建好后,分别和大模型、采样器连接。
InstantID处,拖出Load InstantID Model,模型选择ip-adapter.bin(或ip-adapter_sdxl.bin)。
insightface处,拖出InstantID Face Analysis,建议选择CPU。
control_net处,拖出ControlNet模型,选择control_instant_id_sdxl.safetensors
image处连接加载图片,此处连接的是脸部照片。
正反提示词分别接到提示词。
image_kps处连接加载图片,此处连接的是参考姿势,如半身、侧身,生成的图片会在提示词的基础上,参考本图片的姿态。
放一张完整的工作流(基础版)。
1、一个特别像仙女姐姐的美人鱼
提示词:
1girl, underwater, afloat, soft natural lighting, orange hair, off-shoulder dress, aesthetic, film grain texture,analog photography aesthetic,visual storytelling, dynamic composition,looking at viewer,eye contact,
2、一个很像范爷的女生
提示词:
26 y.o. alt girl, eyeshadow, long eyelashes, (messy hair:0.6), film photography aesthetic, long black hair, dynamic composition, skin texture, full body, sharp focus, hard shadows
四、instantID在本地的部署和安装
如果你的电脑显卡超过16G,甚至是24G,那么恭喜你,可以在本地安装部署。
(一)WebUI
1、升级ControlNet,至少要到1.1.440版。
2、下载ControlNet使用的模型,模型分两大类。
https://www.123pan.com/s/ueDeVv-v1uI.html
(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
PS,也可以拷贝至
E:\sd-webui\models\ControlNet
(2)面部识别模型
共计5个,拷贝至以下目录(我的WebUI在E:\sd-webui)
E:\sd-webui\extensions\sd-webui-controlnet\annotator\downloads\insightface\models\antelopev2
(二)comfyUI
1、先在comfyUI管理器安装节点
搜索instantID,找到ZHO-ZHO-ZHO大神的插件。
然后进行安装。
这个插件需要大量的模型,这里装完只是第一步。
2、相关模型安装
(1)IP-Adapter模型
IP-Adapter是腾讯团队开发的适配器模型,能和ControlNet很好的组合使用,控制人物的姿态。
共有两个,分别是SD1.5和SDXL使用
拷贝至ComfyUI\models\instantid
ip-adapter.bin
ip-adapter_sdxl.bin
需要注意的是,有些SDXL大模型因为训练集的原因,也需要使用ip-adapter.bin,遇到报错提示时可以更换一下IP-Adapter模型。
(2)ControlNet模型
拷贝至ComfyUI\models\controlnet
control_instant_id_sdxl.safetensors
(3)人脸识别和分析模型
antelopev2模型,安装路径:ComfyUI\custom_nodes\ComfyUI_InstantID\models\antelopev2
这组模型和其他换脸插件的insightface模型是通用的,但多两个,insightface模型安装路径:ComfyUI\models\insightface
安装完这些模型,最基本的功能就可以跑起来了,如果你的显卡小于16G,就不用再装其他模型了,因为跑不动!
(4)模型下载
https://www.123pan.com/s/ueDeVv-WYuI.html