大家好,我是向阳
当我们尝试绘制高分辨率的图片时,传统的SD模型常常会遇到诸多问题,例如元素重复、显存不足和生成时间过长等。但如果只绘制低分辨率的图片,却很难生成丰富的画面元素和细节。
我们可以借助outpaint来解决这个问题。Outpaint可以简单地理解为绘制画外内容,即输入一张图片,然后通过SD模型实现对画外内容的填充。填充的内容并不是随意的,而是会根据画面的色彩、明暗以及内容进行生成,以确保与整体画面风格的统一。
如下图所示:
在进行outpaint之前,我们只需要将画面的主体先绘制出来,然后逐步扩展画幅并让SD模型自动填充,以扩大图片尺寸。通过这种渐进式的生成方式,我们能够获得更丰富、更饱满的画面元素,并生成高分辨率的图片,满足我们对复杂场景的需求。
下图所示为进一步扩充的图片:
当然,使用outpaint的动机不止这一种,你还可以使用它来扩大你喜欢的图片或者填充以改变图片比例等等。
在Stable Diffusion中,Outpaint有多种实现方法。其中一种是使用脚本(script)方式,包括outpainting mk2(向外绘制模式2)和poor man’s outpainting(低质量画布补全)两种。另外一种方法是采用ControlNet的inpaint方法。
然而,在实际操作中发现,脚本的两种outpaint方式生成的质量都不尽如人意,需要不断调整提示词和设置才能获得相对理想的结果,对于新手来说上手难度较高。相比之下,ControlNet的方式则简单得多,不需要过多设置即可获得令人满意的效果。下图展示了在相容的设置下向外绘制模式2和ControlNet的生成效果差异。
可以发现,ControlNet填充的画外内容与图片整体更统一。因此,本文将重点围绕ControlNet的inpaint方法来详细讲解向外扩展画面内容的步骤。
1、outpaint步骤
如果你还没有安装ControlNet,那么请先安装该插件。 (插件下载请看文末扫描获取)
操作步骤如下:
1、在图生图(txt2img)界面上传一张你要扩展画幅的图片。这张图片可以来自文生图,也可以是你之前生成的图片。如果是之前生成的图片,先将它上传到PNG info(PNG信息)界面,然后再发送到图生图。
2、写入提示词并修改参数。模型尽量选择相同的模型。而提示词可以先使用原图的提示词。图片尺寸更改为你希望生成的图片大小,比如,我将我上传的512x512的图片扩展为768x512的横屏图片,那么我就要将宽度设置为768。种子值怎么设置都行,但是重绘幅度不得低于0.6,先暂时设定为0.7,后续根据生成效果进行调整。
3、打开ControlNet控制面板,上传步骤1的图片,点击启用。控制类型选择inpaint,预处理器选择inpaint_global_harmonious。特别注意,缩放模式一定要选择Resize and fill(缩放并填充),否则是不会扩展的哦。
4、点击生成,效果如下图所示。
5、通常情况下,按照上述操作步骤就能获得非常不错的向外绘制效果。然而,如果你希望进一步提升图像表现并获得更灵活操作outpaint的能力,接下来介绍的参数详情将变得非常有用。通过对这些参数进行调整,你将能够生成出更多个性化的outpaint效果,从而创造出更具吸引力的图像内容。如outpaint为下图所示的赛博朋克风:
2、参数详情
1、预处理器
在ControlNet面板,inpaint的预处理器有三种:分别是inpaint-global-harmonious、inpaint-only、inpaint-only+lama。选择不同的预处理器,对于最终的处理结果会产生一定程度的影响。下面对三个处理器分别进行解释。(如没有相关预处理,请看文末扫描获取安装包)
Inpaint-global-harmonious: global翻译为全局,harmonious可以理解为和谐的,这是一种可以使图片整体更协调、更统一的预处理器。也就是说,在进行outpaint的时候,填充的内容与原图的内容会更和谐。但这也带来一个问题,就是修改后的提示词如果与原来的提示词风格差异比较大,那么原图的内容也会出现一定的改变。不过也不用过于担心,即使在重绘幅度为1的情况下,原图的内容也只有微小的差异,这种差异主要体现在颜色和锐度上,整体构图是不会出现变化的。如下图所示,除了预处理器类型不同,生成的参数完全一致,重绘幅度为0.9。可以发现,在观感上,inpaint-global-harmonious更佳。
Inpaint-only: 此预处理器与global-harmonious不同,在进行outpaint操作时,不会改变原图的内容,但这也意味你不能使用与原图风格差异大的提示词,否则会导致生成图片的不统一,看起来别扭。就如上图所示,左边的建筑有明显的断层。
Inpaint-only+lama: 这是于去年6月9号更新的ControlNet 1.1.222版本中新添加的预处理器,因此必须先更新ControlNet版本才能享受此功能。此预处理器非常适合用于outpaint和移除图像的物品。另外,也有部分网友发现,Inpaint-only+lama对于处理手部异常的效果也比较显著,后续可以自行尝试。
Inpaint-only+lama生成的结果贴近inpaint-only,但是要更加“干净”,即画面中的出现异物的可能性降低,图片整体会更加协调。下图所示的图片为不使用提示词,仅让模型根据原图自由发挥的结果,很明显,就画面的协调程度来看,Inpaint-only+lama远胜inpaint-only。
因此,总的来说,inpaint-global-harmonious预处理器的outpaint结果更协调,虽然会造成细微的颜色变化,但完全在可接受的范围内;而inpaint-only似乎是最不适合用来进行outpaint的,因为有生成效果更好的inpaint-only+lama。
最后,建议如果扩充的内容与原图风格差异较大,则选择inpaint-global-harmonious,差异不大则inpaint-global-harmonious和inpaint-only+lama均可。如果是无提示词指导,则inpaint-only+lama的生成质量更佳。
2、提示词
1)没有特殊要求的情况下,我们直接使用原图的提示词即可。Outpaint之后的效果如下图所示。
2)如果想在扩展的内容中添加新的元素,建议在原始的提示词基础之上进行添加,并适当提高该关键词的权重。例如我想添加一个风格关键词
那么要这样写提示词,即在原有提示词后面添加新的关键词:
而不要这样写,即只写新的关键词:
区别可从下图观察,除提示词外,其它设置完全相同。可以注意到,在原始关键词后添加关键词生成的图片整体更加统一,而只写新的关键词则会导致看起来比较杂乱。
3)对于一些没有提示词的图片,我们也可以使用无提示词生成方法。让模型根据原图的内容直接填充。但是建议在ControlNet面板的控制模式中选择“以ControlNet为主”,并且使用inpaint-only+lama预处理器。
无提示词指导生成效果示例如下。以下所示图片中的原图内容之所以产生变化是因为在生成之后进行了图生图重绘。
3、重绘幅度
在outpaint中,重绘幅度的选择对于绘制效果至关重要。过低的重绘幅度会导致向外绘制的画面内容过于不协调,与原有画面不够融合。而适当提高重绘幅度则有利于获得更加协调的结果。下图所示图片的生成参数中除重绘幅度不同外,其余参数均相同。
因此,在实际的使用过程中,如果发现生成质量不佳,也可以通过调整重绘幅度获得更好的效果。
4、种子
随机种子可以获得更多样的效果,如果设置得当,只要生成几张图片就可以获得很满意的效果了。
以下图片生成参数,除种子外,其余设置均相同。
3、总结
Outpaint的方法包括脚本和ControlNet两种,但脚本方法的出图质量较低,而且参数设置相对繁琐。相比之下,ControlNet更为直接简便,只需简单设置即可获得令人满意的效果。
在实际使用过程中,要注意选择合适的预处理器。inpaint-global-harmonious能够融合效果更好,但会导致原图细微变化;而inpaint-only+lama则可以在不改变原图内容的情况下进行Outpaint,但当提示词与原提示词风格差异较大时,衔接可能不太自然。
此外,重绘幅度建议在0.6-0.9之间进行调节,经实践发现,该区间内生成的图片整体更加协调统一。
最后,不同场景下可能需要尝试不同的参数组合和预处理器选择,灵活调整方法能够帮助我们实现更加理想的outpaint效果。
写在最后
感兴趣的小伙伴,赠送全套AIGC学习资料,包含AI绘画、AI人工智能等前沿科技教程和软件工具,具体看这里。
AIGC技术的未来发展前景广阔,随着人工智能技术的不断发展,AIGC技术也将不断提高。未来,AIGC技术将在游戏和计算领域得到更广泛的应用,使游戏和计算系统具有更高效、更智能、更灵活的特性。同时,AIGC技术也将与人工智能技术紧密结合,在更多的领域得到广泛应用,对程序员来说影响至关重要。未来,AIGC技术将继续得到提高,同时也将与人工智能技术紧密结合,在更多的领域得到广泛应用。
一、AIGC所有方向的学习路线
AIGC所有方向的技术点做的整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照下面的知识点去找对应的学习资源,保证自己学得较为全面。
二、AIGC必备工具
工具都帮大家整理好了,安装就可直接上手!
三、最新AIGC学习笔记
当我学到一定基础,有自己的理解能力的时候,会去阅读一些前辈整理的书籍或者手写的笔记资料,这些笔记详细记载了他们对一些技术点的理解,这些理解是比较独到,可以学到不一样的思路。
四、AIGC视频教程合集
观看全面零基础学习视频,看视频学习是最快捷也是最有效果的方式,跟着视频中老师的思路,从基础到深入,还是很容易入门的。
五、实战案例
纸上得来终觉浅,要学会跟着视频一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。
![](https://img-blog.csdnimg.cn/img_convert/4154568ab5c55e5b447ce2add22a998a.png)