扩充图片这事,毫无疑问是绘图产品的刚需。
比如PS beta,两个月前刚推出的时候,官网硕大的首页横幅,展示了产品最显眼的功能:将一张画幅不大的照片,经过几次扩充,变成了一个横向画卷,就像下面这样:
再比如Midjourney,V5.2版本最直接的变化就是增加了Zoom out功能,可以将生成的图片缩放1-2倍。
这些功能都非常惊艳,如果你看过我之前的文章,对它们都不会陌生(见文末)
但在硬币的另一面,这两个工具也有各自的局限性。
这里先叠甲:事先声明,文中的比较完全是基于我个人使用的主观体验,不代表各位读者的个人感受;文中介绍的工具我都是重度用户和付费用户,对比仅限技术层面,不存在厚此薄彼或者拉踩的意思。小孩子才做选择,成年人当然是全都要。
首先是适用性。
PS beta在官方规则中声明了生成式填充不得用于商业用途,这个就很蛋疼,不是为了艺术(挣钱)难道开一把PS来排位上分?
然后是效率问题。
PS beta简单,但是容易出错,或者填充的质量不佳,以及莫名其妙的生成图像被移除。
Midjourney比较稳定,但是调整提示词这又是门手艺活,能不能抽到一张好图有时也要看运气。
而且MJ限制了出图尺寸,Zoom out之后原图的细节会模糊丢失。
最后是网络问题,这个大家都知道,想用这两个工具,全程高科技加持必不可少。
如果既要扩充图片内容,又要稳定高效且人人可用,怎么办?
目光最终投向了开源的天花板,AI绘图的一哥Stable Diffusion
办法总比问题多,这句话用在SD上总是不会让人失望。开源社区的活跃,注定了有问题就会有人想办法解决,甚至是那颗钉子还没出现,为它准备的锤子已经造好了。
这就是Controlnet的局部重绘功能。
说到局部重绘,有社群的小伙伴就问过这个问题:Controlnet的局部重绘与图生图的局部重绘有什么区别?
简而言之,图生图的重绘是在原图的画面中修改,你需要添加适当的蒙板区域指定重绘功能生效的区域;Controlnet的局部重绘是对控制图风格的模仿和扩展,它不但能够用来绘制蒙板区域,也能将原图扩充,在保持画面风格一致的基础上,扩展画面幅度。
这个过程非常简单,可以说是SD各种操作中最简单的工作流之一。只要看完下面的步骤,我相信任何人都能学会。
总结起来,一共两种情况:
其一,SD原生图片扩展画幅;其二,已经存在的图片照片扩展画幅。
咱们一个个来说。
第一种情况,也就是SD原生图,扩展画幅效果稳定可控。
第一步,在文生图中生成一张底图
例如主模型:majicmixRealistic_v6,尺寸512x728
正向词:
best quality,masterpiece,(photorealistic:1.4),1boy,silver hair,beard,big muscle,waist up,dramatic lighting,
反向词:
Negative prompt: ng_deepnegative_v1_75t FastNegativeV2 EasyNegative badhandv4 BadDream bad-picture-chill-75v UnrealisticDream anime-background-style-v2,Variation,Many hands and feet,
出图:(这里还用了openpose控制,就不赘述了)
第二步,扩图
复制/保存图片,粘贴到controlnet,选择局部重绘,然后这样设置:
预处理器选择inpaint_only+lama或者inpaint_only_harmonious
Control Mode选择:Controlnet is more important
画面缩放模式:Resize and Fill
参考下图,最后别忘了点击启用。
inpaint_only+lama与inpaint_only_harmonious的区别在于:lama对人物的扩展表现较好,但有些情况下无法完成控制,常见于景物图。而harmonious通吃,发挥非常稳定。
你如果嫌麻烦,预处理器可以无脑直接用inpaint_only_harmonious
接下来是重点:
-
你可以同时修改宽度和高度,可以出图,但有一定概率原图的细节会发生变化;
-
如果你想保持原图完全一致,那么你可以一次只改一个维度,比如先把宽度512改成800,出图;然后把出图替换controlnet底图,再继续把高度从728改成1100
-
扩展是对称的,比如宽度500变成800,那么原图向两侧增加150像素,高度修改同理;虽然目前还无法实现单侧修改尺寸,但是不要低估开源社区的力量
为了验证这个流程,我跑了不下几百张图,以我的经验来看,一次只改一个维度尺寸的方式,有99%以上的概率能够完整的保留原图所有细节。
你要做的就是用新图替换掉旧图,以及修改尺寸,其他设置保持不变。
当原图扩展到1600x900时,它变成了这样:
还有一个问题,可能你也会想到:如果在扩图的同时修改主模型,那会怎么样?
答案是你会得到意想不到的效果!
比如主模型换成二次元风格的etherRealMix_21,是这样的:
还不错啊对不对。
或者AWPainting_v1.0,是这样的:
效果出人意料的好。
更离谱的是,大概是换主模型的缘故,新扩充的图像会再跑一遍提示词,有概率买一送二,一个孤单大叔的场景活生生又冒出来两个人,而且一点都不违和……
我真的不知道如何形容……感谢大自然的馈赠吧。
再举几个例子:
原图:
扩展:
原图:
扩展:
SD原生图片扩展画幅就是这样,我可以说一旦开始尝试的流程,你就很难停下来,这不比捏网红脸小姐姐更令人surprise吗?
第二种情况,已经存在的图片/照片,扩展画幅效果略逊一筹,但依然表现稳定。
第一步,将已有的图片/照片,反推提示词。
反推的方式你可以自己选择,比如用Tagger反推,或者扔进图生图里,用CLIP反推。
有词就好办。回到文生图里,填入你习惯的起手式,配上反推词,然后选一个与图片风格相近的主模型,这会稍微有点考验你对主模型的熟悉程度。
原图:
反推提示词:
a woman making a heart with her hands while standing in front of a blue background with a white background, Chen Jiru, perfect facial symmetry, a stock photo, private press
回到SD扩展画幅流程:
扩图结果还挺搭配的:
不过相比提示词和设置而言,图片/照片扩展画幅的更大挑战,来自你的显卡。
显而易见,现成照片往往尺寸很大,如果进一步扩展,你的显卡能顶得住吗?
举个例子,比如一张真实的风景照片,尺寸为1112x1486
如果进一步扩展宽度,从1112增加到1600,A100显卡跑图耗时30秒,显存需求18GB
进一步扩展到原生图最大尺寸2048,A100显卡跑图耗时1分零1秒,显存需求22GB
这已经不是单纯的显卡在燃烧了,应该说是显卡半程马拉松不为过。大多数人的机器应该经不住这样折腾。
当然,如果你既想尝试扩充画幅,又不想如此麻烦的安装部署甚至重新购买设备,我已经为你准备好了更加灵活快捷的方式。
这就是部署在云端的Stable Diffusion —— 不限设备,无需部署,只要联网,点开即用。在顶级A100显卡加持之下,原生图拉满尺寸不在话下,需要的下方扫码获取地址!
文章使用的AI绘画SD整合包、各种模型插件、提示词、AI人工智能学习资料都已经打包好放在网盘中了,无需自行查找,有需要的小伙伴文末扫码自行获取。
写在最后
AIGC技术的未来发展前景广阔,随着人工智能技术的不断发展,AIGC技术也将不断提高。未来,AIGC技术将在游戏和计算领域得到更广泛的应用,使游戏和计算系统具有更高效、更智能、更灵活的特性。同时,AIGC技术也将与人工智能技术紧密结合,在更多的领域得到广泛应用,对程序员来说影响至关重要。未来,AIGC技术将继续得到提高,同时也将与人工智能技术紧密结合,在更多的领域得到广泛应用。
感兴趣的小伙伴,赠送全套AIGC学习资料和安装工具,包含AI绘画、AI人工智能等前沿科技教程,模型插件,具体看下方。
一、AIGC所有方向的学习路线
AIGC所有方向的技术点做的整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照下面的知识点去找对应的学习资源,保证自己学得较为全面。
二、AIGC必备工具
工具都帮大家整理好了,安装就可直接上手!
三、最新AIGC学习笔记
当我学到一定基础,有自己的理解能力的时候,会去阅读一些前辈整理的书籍或者手写的笔记资料,这些笔记详细记载了他们对一些技术点的理解,这些理解是比较独到,可以学到不一样的思路。
四、AIGC视频教程合集
观看全面零基础学习视频,看视频学习是最快捷也是最有效果的方式,跟着视频中老师的思路,从基础到深入,还是很容易入门的。
五、实战案例
纸上得来终觉浅,要学会跟着视频一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。
![](https://img-blog.csdnimg.cn/img_convert/4f7e5558910d4329e63ac0a63aed6904.jpeg)