18 零基础学webUI | Controlnet精讲(04)-图像风格转换类条件控图详解
通过图像风格转换类controlnet可以在生成图像时参考原图片的结构、元素、风格等,在自由发挥的同时突出参考图像的借鉴作用。
序号 | 分类 | Controlnet名称 | 备注 |
1 | 线条约束 | Canny(硬边缘) | 约束性强,可以识别详细线条 |
SoftEdge(软边缘) | 柔和的线条 | ||
MLSD 直线、最小线段检测 | 主要用于建筑空间 | ||
Lineart 线稿提取 | 粗细不同的线条 | ||
Scribble 涂鸦 | 粗略线条、发挥空间大 | ||
2 | 三维关系、 空间深度 | Depth 深度 | 空间层次关系 |
Normal 法线贴图 | 纹理效果常用 | ||
3 | 人体姿态、手势与表情 | Openpose 姿态控制 | 姿势、表情、手势控制 |
4 | 图像风格转换 | Shuffle 随机 | 打乱图片元素重新组合 |
IP-Adapter (图像)风格迁移 | 参考图像画风、换脸等 | ||
T2l-Adapter (文字转图)风格迁移 | 参考原图画风 | ||
Reference 参考图引导 | 模仿原图绘画 | ||
Instant-ID 换脸 | 人物换脸 | ||
5 | 图片修复与编辑 | Recolor 重上色 | 老照片修复 |
Inpaint重绘 | 类似于局部重绘,但融合效果更好 | ||
Tile 分块 | 分块重采样,细节方法 | ||
6 | 结构理解 | Seg 语义分割 | 根据色块代表不同含义 |
7 | 其它 | InstructP2P 指令式编辑 | 变换场景、特效 |
Revision 图像修订 |
1 Shuffle 随机洗牌
Shuffle随机洗牌将参考图像的像素点全部打乱再进行重组,在提取参考图像元素时是随机的,所以生成图像的过程主要受提示词及模型等参数的影响,生成的图像也可能与参考图并无关联,但是在色彩、风格上面会受到原参考图像的影响。
Shuffle随机洗牌的预处理器在提取参考图像特征时会受到种子值影响,不同的种子值预处理生成的图像各不相同。
操作实例:
使用1.5版本写实类大模型--麦橘V7
正向提示词:1 pug,obese,charmingly naive,there is no human,fence,small garden,running,small sapling,flowers,in a meadow,sky,white clouds,furizuu20,panoramic photo,
反向提示词:DeepNegative_xl_v1,
宽度768,高度512;迭代步数30;总批数4;
可以看到生成的图像均为普通写实风格的图像:
下面我们在提示词等参数不变的情况下,提供几张不同风格的参考图片,通过controlnet随机洗牌看看可以获取什么图像:
(Shuffle 随机洗牌模式下,参考图尺寸可以与目标图尺寸不一致,在controlnet界面可以不用同步尺寸)
获取图像如下:
我们再测试两组不同的底图,看下效果如何:
A.水墨画风格的参考图
- 油画风格
可以看到目标图像与最开始的图像风格有了明显变化,图中的元素是由参考图元素打乱后重新组合而成。
虽然Shuffle随机洗牌的特性决定了它的控图能力很差,但是随机的特性可以让我们获得不同灵感的图片,而且结合其它可控性强的controlnet同时使用时往往也能得到意想不到的效果。
2 IP-Adapter (图像)风格迁移
IP-Adapter图像风格迁移可以称得上是画风迁移神器,它是腾讯下属实验室Tencent AI Lab 研发的一款轻量化控图模型,名称中的IP是Image Prompt的简写,Adapter是适配器的意思。它可以通过提取图像中的特征,并将其嵌入到预训练的文本生成图像扩散模型中,从而实现风格迁移的效果。
IP-Adapter类似于“垫图”功能,在我们无法通过提示词描绘出目标图像时,提供一张近似的参考图像便可获得画风、元素等特征均类似的成果。IP-Adapter的核心思想就是把一张图片看成提示词去引导出图过程,类似于在文生图过程中添加了一个类似lora功能的图像提示。
2.1 预处理器
IP-Adapter总共有6个预处理器,根据它们的后缀可以分为Clip、FaceID以及PulID三类,它们均有与之对应类型的模型共同使用,因此在实际使用过程中极易出现错误。为了避免手动选择错误,我们在实际使用时一般选择默认的auto,在我们选择处理模型后,auto预处理器会自动选择合适的功能。
预处理器下载:
正常controlnet启用IP_Adapter的时候,系统会自动下载 clip_g.pth这个预处理器,2.3G大小。
下载地址(需科学上网):
https://huggingface.co/h94/IP-Adapter/resolve/main/models/image_encoder/pytorch_model.bin
2.2 模型下载
1.5与XL版本适用的IP-Adapter一共有11个模型,共有两大类模型,一类是专注于整体风格迁移功能的IP-Adapter_XX,另一类是专门针对脸部的IP-Adapter_face_id;
模型安装位置:根目录\extensions\sd-webui-controlnet\models文件夹
(1)IP-Adapter的1.5版本模型共有7种,下载地址为:
https://huggingface.co/h94/IP-Adapter/tree/main/models
其中ip-adapter_sd15是基础版本的模型,根据测试效果,ip-adapter_sd15_plus模型的效果强度最强,ip-adapter_plus_composition_sd15模型则仅对构图进行迁移,ip-adapter_sd15_light_v11模型是最新的轻量化模型,它的迁移效果均衡,而且受提示词的影响会较大。
(2)IP-Adapter的XL版本模型共有4种(含“_face_id类”),下载地址为:
ip-adapter_sdxl_vit-h是XL版本的基础模型,ip-adapter-plus_sdxl_vit-h是XL版本的加强版本,ip-adapter_sdxl·版本则对提示词的响应更敏锐。
由于IP-Adapter的开发者针对face_id单独做了梳理与分类,且部分face_id需要搭配特定的lora才能生效,故此处模型无需下载后缀为face_id的模型,下文专门介绍FaceID的下载链接与使用方法。
2.3 风格迁移案例
我们先用上文“随机洗牌”中的案例做一下效果测试:
获取图像如下:
通过IP-Adapter获取的图像,与随机洗牌生成的图像有明显差异。可以看出,即使参考底图的内容与目标图像的内容无关,IP-Adapter获取的图像在保留大模型出图结构的同时,仍然可以很好的学习参考图像的风格,从而获取较高质量的图片。
下面再做几组案例测试:
(1)不填写提示词,也可以参考图像生图
(2)填入提示词描述,同时打开IP-Adapter
正向提示词:1girl,solo,flower,hair ornament,outdoors,hair flower,long hair,looking at viewer,brown hair,sky,field,floral print,upper body,from side,kimono,day,japanese clothes,brown eyes,blush,earrings,lips,bangs,pink flower,blurry,jewelry,flower field,blue sky,cloud,wind,looking to the side,floating hair,long sleeves,
反向提示词:DeepNegative_xl_v1,
(3)IP-Adapter与其它controlnet结合使用
实际应用时经常会遇到IP-Adapter参考风格的基础上,再添加其它controlnet同步去控制目标图像,这样就可以使目标图像既有可控因素又有参考因素。
如果你的controlnet只有一个控制选项,可以到设置中调整controlnet控制数量,操作如下:
案例:要求保留参考图1(真实系照片)的风景轮廓,并将风格转换为参考图2(动漫)风格;
首先,通过WD1.4tag反推出参考图1的提示词,发送到文生图界面提示词框中,并按照画面内容进行修改,去掉“真实系”相关的描述。
第1个controlnet获取目标图像的线条约束条件,确保图像构架和轮廓按照照片保留。注意,此步骤需要同步目标图像的尺寸与参考图相同。
第二个controlnet主要提供参考风格的图像:
点击生成,获取图像对比如下:
2.4 FaceId模型
FaceID模型下载地址如下:
下载plusV2版本的模型及对应的lora。
网盘地址:
两个lora文件放入:..\sd-webui-aki-v4.9.1\models\Lora\
两个后缀为bin文件放入:..\sd-webui-aki-v4.9.1\models\ControlNet
或 ..\sd-webui-aki-v4.9.1\extensions\sd-webui-controlnet\models
第一次运行时,启动器会自动从网上下载buffalo_l.zip和clip_h.pth,也可通过下面的网址下载安装到对应文件夹。
buffalo_l.zip下载地址:
文件放入文件夹:
..\sd-webui-aki-v4.9.1\extensions\sd-webui-controlnet\annotator\downloads\insightface\models\
注意:下载的文件为压缩文件,需要解压,解压时保留buffalo_l文件夹,文件夹内有5个文件。
clip_h.pth下载地址:
文件放入文件夹:
..\sd-webui-aki-v4.9.1\extensions\sd-webui-controlnet\annotator\downloads\clip_vision
2.5 face_id示例
ip-adapter中face_id使用时需模型和lora同时使用,lora的用法同其它lora相同,都是在正向提示词中输入及设置权重,模型则还是在controlnet中调用。
3 T2l-Adapter 文本到图像自适应控制
T2l-Adapter中的T2I是英文text-to-image的缩写,中文翻译为文生图适配器,可以在不影响大模型风格基础上于文生图过程中提供额外的控制引导。
T2l-Adapter是独立的模型算法,与ControlNet 的模型作用类似,且与Controlnet有部分功能重叠。SD-WebUI在controlnet中集成了T2l-Adapter功能(理解为在controlnet中使用T2l-Adapter模型),共内置了3种不同的预处理器:
1)t2ia_color_grid文本到图像自适应控制-色彩像素化,预处理器会将图片像素化并将颜色应用于出图,主要用于借鉴底图的色彩控制出图;
2)t2ia_sketch_pidi 文本到图像自适应控制-草绘边缘像素分差(sketch:素描,预处理效果为线条),实际作用类似于softedge软边缘功能;
3)t2ia_style_clipvision文本到图像自适应控制-风格迁移(style:风格,clipvision指剪贴画),主要用于色彩、元素及内容的风格借鉴;
3.1 预处理器
选择预处理器后,SD会自动下载预处理器文件,如果因网络问题未下载成功可自行下载安装。
预处理器(t2ia_style_clipvision)下载地址:
安装地址:
根目录\extensions\sd-webui-controlnet\annotator\downloads\clip_vision\clip_vitl.pth
3.2模型安装
(1)3个模型(1.5版本)下载安装:
webUI中自带三款T2I- Adapter预处理器均为 sd14 版本,所以我们只下载 Color、Style、Sketch对应的三款SD14模型即可。
模型下载地址:
模型安装地址:根目录\models\ControlNet文件夹中
(2)XL版本下载地址:
不过目前只提供了三个版本模型,且官方后续未再更新,此处不再做测试。
3.3 案例
我们通过3个案例测试三个预处理器的效果:
(1)在不开启controlnet的情况下,输入提示词等参数,生成图像作为对照组:
正向提示词:1girl,black hair,lips,long hair,long sleeves,looking at viewer,realistic,shirt,solo,upper body,white shirt,
反向提示词:BadDream,FastNegativeV2,
大模型:麦橘V7--1.5真实系
图像尺寸:768×512
迭代步数:25
生成4张图像如下:
(2)打开controlnet,启用T2l-Adapter,预处理器选择t2ia_style_clipvision风格迁移,其余出图参数不变,上传参考图,风格迁移预处理可以不需要同步尺寸。
t2ia_style_clipvision风格迁移效果与IP-Adapter获取的效果类似。
(3)打开controlnet,启用T2l-Adapter,预处理器选择t2ia_sketch_pidi草绘边缘像素差,其余出图参数不变,上传参考图。
sketch_pidi实际效果类似于softedge软边缘,需要同步参考图的尺寸到目标图像。
试验下来,T2l-Adapter的sketch_pidi预处理器控制效果并不达预期,且线条约束控制的识别似乎也出现问题,图像有很大出现畸形的概率。
(4)打开controlnet,启用T2l-Adapter,预处理器选择t2ia_sketch_pidi草绘边缘像素差,其余出图参数不变,上传参考图。
4 Reference 参考图引导
Reference的功能就如它的名字这么简单,通过参考底图引导生出新的图像。
新生成的图像内容可以与原图保持较高程度类似,在人物一致性方面也有所应用。
Reference使用时不需要选择模型,只需要选择预处理器即可,说明它不需要经过额外的训练,只是一个单纯的算法。
4.1 案例测试
参考底图采用一组动漫风格图像,采用真实系大模型测试几组对比效果图:
根据实测结果,reference使用对提示词十分敏感,所以案例中均通过wd1.4反推出参考图提示词,以获得更好的效果。
对比三款预处理器效果的图片差异,预处理reference_only及reference_adain+attn可以获得与原图风格更接近的图像,reference_adain受大模型风格的影响更大。
参数调整区域中Style Fidelity (only for Balanced mode)指风格保真度,数值越大表示原图风格保真度越高,原图风格保留的痕迹也越明显(并非越高越好,需要调试获取合适区间)。
4.2 几组对比效果图
(1)参考原图中小动物形象:
获取反推提示词:no humans, cat, building, realistic, animal focus, outdoors, city, animal, looking at viewer, photo background, day, cityscape
经过尝试,在不增加反向提示词的情况下,获得的图片色调十分暗且与原图关联度不大,反向提示词中增加嵌入式词组BadDream,可获得如下一组图片:
(2)参考原图形象(reference only):
从网络中下载一张照片,通过WD1.4获取提示词,添加反向提示词及基础起手等;
正向提示词:jewelry,1girl,necklace,earrings,black hair,solo,dress,looking at viewer,smile,realistic,lips,upper body,brown eyes,makeup,
反向提示词:BadDream,FastNegativeV2,
可以看到,通过反推提示词+reference only控图获取的人物形象特征与底图形象及风格的相似度均较高。
5 Instant-ID
在面部参考插件出现前,我们还需要通过局部蒙版图生图的方式进行人物面部的重绘,整个流程更像是PS基础操作,并没有体现出多少ai智能的优越性,直到后来出现面部参考插件,方便我们一键实现面部参考功能。
目前webUI常用的面部参考插件有roop、ReActor、instant-ID等,其中roop、ReActor是2023年较火的插件,instant-ID是小红书和北大团队2024年发布的面部迁移插件,本节先对新版本controlnet中已经集成的instant-ID进行介绍。
5.1 注意要点
(1)InstantID对显存要求较高,建议显存16G起,显存低易爆显存;
(2)Instant-ID需要使用XL版本大模型,1.5版本不适用;
(3)图像尺寸避免设置为1024 x 1024,该尺寸容易生成水印、徽标;
(4)注意不要启用ADetailer,否则会覆盖instant-ID功能;
(5)使用时应将ip-adapter 模型设置为第一个controlnet(即unit-0),否则instantID不生效。
5.2 模型及预处理器安装
instant-ID插件安装,在设置中更新controlnet版本即可显示功能选项,下载instant-ID所需模型便可使用该功能。
ControlNet使用的模型分两大类:“ControlNet模型”和“面部识别模型”。
(WebUI安装包中未带上述模型,需要单独下载安装,文件已打包在对应课程附件)
5.2.1 模型安装
共两个文件:ip-adapter_instant_id_sdxl.bin和control_instant_id_sdxl.safetensors,
复制文件到目录:“根目录\models\ControlNet”中。
第一个链接下载文件名字ip-adapter.bin,需改名为ip-adapter_instant_id_sdxl.bin
第二个链接下载文件名字diffusion_pytorch_model.safetensors,需要改名为:
control_instant_id_sdxl.safetensors
5.2.2 预处理器模型
共计5个文件,复制文件到该目录:
根目录
\extensions\sd-webui-controlnet\annotator\downloads\insightface\models\antelopev2
安装完成后,重载webUI。
两个模型中,ip-adapter_instant_id_sdxl.bin用于控制面部特征, control_instant_id_sdxl.safetensors用于控制面部五官的位置(类似于openpose作用);
使用instant-ID时需要同时启用两个controlnet,同时使用上面两个instantID模型去控制,具体操作步骤参考下面的案例。
5.3 案例
5.3.1 参数设置
选择一张参照图并上传;
选择一个XL版本的真实系大模型;
提示词框简单描述目标图像内容;
正向提示词:1 girl,chinese girl,20 years old,long black hair,exquisite face,white shirt,necklace,earrings,film illumination,upper_body,simple background,
反向提示词:DeepNegative_xl_v1,
5.3.2 设置第一个controlNet( 单元0)
controlNet控制类型选择instant-ID
预处理器选择instant_id_face_embedding
模型选择ip-adapter_instant_id_sdxl
启用、预览、点击爆炸按钮
5.3.3 设置第2个controlNet (单元1)
controlNet控制类型选择instant-ID
预处理器选择instant_id_face_keypoints
模型选择control_instant_id_sdxl
启用、预览、点击爆炸按钮
5.3.4 生成图像效果
第一个ControlNet主要来提取五官的特征,第二个ControlNet用来识别上传的图像中的面部位置与朝向,也是最终生成图像的脸部位置。
5.3.5 利用图像提供参考位置
更换第2个controlnet的参照图,即根据另外一张参考图的人物面部位置、朝向等特征进行出图。
这里我们在第2个controlnet中使用图像作为面部位置参考,可以看到目标任务图像构图与面部朝向参考的是更换后的图像。
5.3.6 其它说明
尝试目标图像不使用controlnet同步的底图尺寸,可以看到目标图像尺寸的变化并不影响形象特征及面部朝向位置的生成,仅第2个controlnet中人物在图中的结构位置会对目标图产生影响。
使用时应将ip-adapter 模型设置为第一个controlnet(即unit-0),否则instantID不生效。这里尝试设置了control_instant_id_sdxl为第一个controlnet,ip-adapter模型为第二个controlnet,可以看到最终生成的图像并未遵循参考图的特征。