1327522.jpg

Ridley

GF  2024-04-05 06:37
(空的)

[comfyui] sdxl画图风格迁移 (从PonyDiffusion到Animagine)


这篇帖子主要是针对新玩家或者SD1.5玩家,要讨论的内容也只是新瓶装旧酒罢了。


前情提要

承接上一个帖子,目前二次元sdxl社区的关注点在PonyDiffusion和Animagine上,这两个模型各自优点都相当突出,但又明显有不足之处。简单来说,理想的模型应该在人物、风格和构图三个方面都能满足需求,假设能给这些项目打分(~☆☆☆☆☆),那么截止到2024年4月4日,我心目中的结果是

PonyDiffusion:
[人物]: ☆☆☆
[风格]: ☆☆
[构图]: ☆☆☆☆☆

某PonyDiffusion衍生:
[人物]: ☆☆☆
[风格]: ☆☆☆
[构图]: ☆☆☆☆

Animagine:
[人物]: ☆☆☆☆☆
[风格]: ☆☆☆☆☆
[构图]: ☆☆

某Animagine衍生:
[人物]: ☆☆☆☆☆
[风格]: ☆☆☆☆
[构图]: ☆☆☆

NAI3:
[人物]: ☆☆☆
[风格]: ☆☆☆☆
[构图]: ☆☆☆☆

某SD1.5(仅作对比):
[人物]:
[风格]: ☆☆
[构图]:


鉴于社区目前依旧没有可靠的模型融合方案,目前唯一能做的就是通过一些工作流利用现有的模型来实现理想模型的出图效果,这也是这篇帖子尝试要做的。



风格迁移方法

要实现理想的出图效果,目前最可行的方案应该是输入理想构图(或者非AI图)再进行绘画风格迁移,在已有条件下,即是用PonyDiffusion文生图,再用Animagine进行重绘。


当然直接用高清修复或者图生图功能重绘也是可行的,但实际效果就像是蒙眼打台球,白球和彩球都不归你管;简单举个例子,你生成了一张复杂构图的图片,但当你用Animagine重绘时发现Animagine无法复现这个构图,重绘后得到一堆意义不明的色块,于是你调低了重绘幅度,然后又发现低重绘幅度下画风没有得到转变。因此,你需要一套更可靠的重绘方案来解决这一问题。


目前社区最常用的方案应该是Ipadapter和Controlnet(或许还有其他),其中Controlnet是最符合我们要求的,具体原理就不在这里赘述了,只要知道它能让模型在采样时对输入的图像进行更深度模仿就够了。


如果你是SDwebui用户并使用过controlnet,你应该知道这玩意狂吃显存,一旦串连多个controlnet,你的电脑可能马上就要爆了。而在sdxl的6G模型面前,如果你未能拥有12G以上显存,我只能推荐你放弃A1111的webui来尝试一下comfyui,因为它是真的不会爆。其实不论你有多少显存,我都推荐你原地立马现在就加入comfyui!一套现成的工作流可以节省你非常多的时间,你只需要动动手指改改提示词就能批量进行复杂任务,流畅无卡顿,也不用把图片贴来贴去了。
  旧webui使用体验:懒得折腾了就跑个文生图凑合看吧
  comfyui使用体验:懒得折腾了就跑个文生图+高清修复+图生图+局部修复+高清放大+.......

很多人其实一开始是嫌comfyui专业性太强学习成本太高不愿接触,一开始我也是这么认为的。但是我可以很负责任地告诉你,这玩意压根没有啥学习成本,你只要简单用过A1111的webui,那打开comfyui就能直接出图,动动手指就能抄一套别人现成的工作流,花一个下午就能从零制作一整套你在旧webui上能实现的最复杂的工作流。相信我,习惯了comfyui流畅便捷的使用体验就再也回不去既臃肿又有死机风险的旧webui了。


安利得差不多了就来讲讲我尝试风格迁移的大致流程吧,我不建议你上来就直接抄一整套流程,从默认的文生图模板开始一步步搭建工作流,这样既有成就感还能让你对工作流程更加熟稔,也是你入坑comfyui最决定性的一步。

(图片仅供参考)

1. 用模型A文生图得到图A(这一步其实就是默认模板,注意调节采样器参数)


2. 复制步骤1但换成模型B,将模型B的模型,正负条件和图A一同输入到串联的controlnet(我使用的controlnet sdxl模型来自于青龙圣者https://huggingface.co/bdsqlsz/qinglong_controlnet-lllite/tree/main)。我主要推荐lineart_anime和tile两层controlnet,其他控制网络比如softege, canny, depth等都是可以尝试加入的(注意选择对应预处理器),并设置权重和起始位置(通常建议让控制网络在采样末期终止让大模型有更多发挥空间,既结束位置<1.0)。如果你懒得测试就用我用脚指头测试出来的:[lineart_anime] 预处理器AnimeLineArtPreprocessor,分辨率1024,模型lineart_anime_denoise,权重1.0,起始0.0,结束0.75;[tile] 无预处理器,模型tile_anime_alpha,权重1.0,起始0.0,结束0.3。


3. 将图A进行VAE编码成latent输入模型B的采样器,将末层controlnet输出的正负条件传递给模型B的采样器(注意设置采样器参数,如果你选的sampler是收敛的,这一步因为是图生图所以步数可以调低点节省时间,降噪即重绘幅度建议0.6),生成图B。到了这里其实已经完成最基本的画风迁移了。


4. 将图B输入到impact节点-简易-面部细化(这一步其实就是adetailer面部修复,建议修一下),其他输入参考前面图生图采样器,bbox检测使用检测加载器选择face_yolo模型输入(同理也可以修手)。生成图C


5. (简单的课后作业将图C输入到SD放大并用controlnet tile_anime_beta控制,生成超高清图D



结果

模型A:AutismMixPony
模型B:AnimagineXL V3.1

情形1:模型A和模型B都能画出的角色,受害者:荧妹





情形2:使用lora后,模型A和模型B都能画出的角色,受害者:千织/雪之下雪乃







情形3:模型A画不出但模型B能画出的角色,受害者:芙宁娜





情形4:模型A能画出但模型B画不出的角色,受害者:momo






在没有对提示词进行引导的情况下,可以看到,Animagine模型完全无法自由且正确处理复杂构图,而Pony系模型不论你的prompt多自由都能正确展现人物空间关系,而风格迁移(Style Transfer)的结果已经很贴近我们的最终预期了([人物]x[风格]x[构图]),它在很好地继承Animagine的各种绘画风格和还原人物的同时保持构图不变。

当然要达到最佳的成图效果,需要模型A和模型B都尽可能画出目标人物,而AnimagineXL V3.1自带近5k个acg角色,因此更多的支持Pony系的lora模型也是不可或缺的。

值得注意的是,日常使用时,套用sdxl refiner方法做风格迁移或许更便捷。

结语

其实这篇帖子最主要目的是安利comfyui,用秋葉的comfyui整合包就行(https://www.bilibili.com/video/BV1Ew411776J),常用插件齐全,各种模型就直接用原本webui的链接过去。相信我真的很简单好用,不然你回来cue我。我没有直接把工作流甩给你,因为这鬼画符的玩意只有自己画过才能真正懂,越看别人的反而越劝退,亲自上手才觉得不过如此。


none.gif

db848106

B1F  2024-04-06 10:14

坦白说...常规H这种东西人工产出白嫖就已经能满足了,毕竟每天也就拔3分钟。
至于出图这块,以前我就说了,模型太多,插件太多其实挺麻烦。比如Nai3这玩意,功能强是强,实际用是真的不好用。
她给我的感觉就是一个宇宙砸我脸上,我就是那个打字的猴子,只有极小概率才能打出莎士比亚 文集。
我甚至不知道他能出什么,能测试出来一个好提示词都是很困难的事。
至于抄作业...我都已经抄作业了为嘛不直接白嫖大佬的图....
和楼上那位1234大佬说的一样,目前只有跑guro图能让我开SD了。
接下来就看看年中的SD3有没有什么突破吧。
pony确实是目前泛用度很高的模型了,我最爱的小马大车直接能跑,不用加乱七八糟的lora.姿势都还挺对。