超细!5000字详解AI绘画图生图干货、技巧,教程、学习分享

  

  Hello~o~同学们,欢迎回到趣闻屋!

  这是趣闻屋学习AI艺术第二期学习过程——AI绘画图生图。

  是笔记也是为与同学们分享,给大家提供一些启发和帮助。好好学习,天天向上!欧耶~

  (本文总字数5100字,建议同学们收藏下来慢慢看)

  什么是Stable diffusion img2img?

  Stable diffusion img2img 是一种基于 GAN 的图像转换模型,可以将一张图像转换成另一种风格的图像。其核心思想是在一个稳定的不变分布中进行图像转换。把输入图像和一个噪声向量通过一个encoder映射到潜在空间中,再结合一个diffusion model(大模型),将输出转换成一个来自稳定概率分布的图像。这个过程有点类似于非常强力的降噪算法,能够让生成的图像更加真实、细节更加完整。

  Stable diffusion img2img 应用场景

  Stable diffusion 图生图(img2img)有哪些具体的应用?

  1.图像超分辨率:将低分辨率图像转换成高分辨率图像,从而提升图像清晰度。 2.图像插值:可以生成动画和连续图像序列,对缺失区域进行插值,从而生成完整的图像。 3.图像变形:可以将图像进行任意复杂的变形,如将一张人脸图像转换成另一张人脸图像。 4.视频重构:可处理视频中的运动和形变变化,从而生成更平滑、更真实的视频。 5.风格迁移:将一种风格应用到另一种图像上,创造出新的图像效果,如将一张油画应用到真实的照片上、真实相片转换成二次元风格等等。 6.图像修复:可以修复照片中的损坏、噪声和瑕疵,从而提升图像的质量。一、图生图及基本参数详解

  1.提示词和反提示词,依然跟文生图里的一样,界定图片生成方向的(没看过的小伙伴,可移步到趣闻屋主页-《Stable Diffusion 文生图经验分享》)。

  2.CLIP反向推导提示词(Interrogate CLIP)和 DeepBooru 反向推导提示词

  

  字义,就是上传一张图片,让SD反向推导提示词的意思。他们什么区别呢?CLIP反推导出来的文字,是自然语言的方式描述,像是人类说话那样:“一个美女在公园里漫步”。而DeepBooru是以标签的方式:“一个美女、公园、走路”,这样~~

  例如,上传这样一张美图:

  

  CLIP 得到的提示词:

  a woman in a white dress is posing for a picture in a field with flowers and trees in the background, Choi Buk, hourglass slim figure , romanticism

  DeepBooru :

  1girl, blurry, breasts, brown eyes, brown hair, bush, day, dress, earrings, field, flower, flower field, forest, garden, grass, jewelry, lace-trimmed dress, lips, long hair, looking at viewer, medium breasts, nature, on grass, outdoors, path, realistic, road, solo, standing, tree, white dress

  两者对比,DeepBooru 的会更详细,细节更多,也是趣闻屋喜欢的方式。

  CLIP的方式在缺少创意想法的时候,就很有用。比如,当下就只是想到一个场景和人物,但对场景里面的细节和人物装饰并没有太好的构想,就可以在文生图提示词里输入:“一个穿着白色裙子的美丽的女人在公园里散步。”,其他的交给AI。这也是为什么大家很喜欢用AI来找创意灵感的原因。哈哈~ [撒花]

  3.缩放模式(Resize mode)

  在图生图的过程中,缩放模式是非常重要的一步,可以根据不同的缩放模式,得到不同的转换效果。

  拉伸(just resize):只是简单的缩放图像大小,不进行任何的裁剪或填充操作,转换后的图像可能会出现拉伸或压缩的情况,可能导致部分细节丢失或变形。

  裁剪(crop and resize):先对原图进行裁剪,再进行缩放,能够减少失真的情况,同时保留更多的细节。但是由于裁剪的操作,可能会导致合成后的图像丢失一些内容。

  填充(resize and fill):先对原图进行缩放,然后再对图像进行填充。填充的方法有多种,可以使用常见的颜色填充,也可以使用某些模式填充。这种模式可以保留整个图像的比例,不会丢失过多的细节,但是填充的内容可能会影响视觉效果。

  just resize(latent upscale):该模式只是在前向传播过程中进行了大小变换,缩小输入优势,不能准确恢复原图的细节,但是能获得更高的速度和更好的稳定性。

  小伙伴们不同的缩放模式有各自的优缺点,应根据实际需求进行选择。四种缩放模式对比参考图如下:

  原图宽高: 1080*720 输出宽高: 512*512

  参考图

  

  ① 拉伸(Just resize), 改变了景物比例,出现变形。

  

  ②裁剪(Crop and resize), 裁减掉部分内容。

  

  ③填充(Resize and fill) ,原操作填充的内容有点辣眼睛。小伙伴们可使用脚本【outpainting mk2】,是一个扩展绘画脚本,好用。

  原始填充的内容线条马赛克感太浓:

  

  扩展绘画【outpainting mk2】,在页面的最底下【脚本(script)】,点击选择【outpainting mk2】。

  

  

  推荐设置:采样步数:80-100,采样器:Euler a,重绘强度:0.8

  

  

  趣闻屋扩展的高度上下分别增加128像素。可以看出上下有明显的差别,而且场景和谐,无太大违和感。漂亮~[玫瑰]

  ④潜空间缩放[Just resize (latent upscale)],这个缩放方式跟拉伸相似,也是通过拉伸的方式来对图片尺寸做调整,但采样的是在潜空间进行,所以得到的图片会有很大的随机性。

  

  参考图宽高 1080*720 输出 512*512:

  

  4.采样器、采样步数、宽高,等这些参数,文生图那里有很详细的介绍和对比,趣闻屋在这就不再介绍了。如果有小伙伴想了解,文章结尾有跳转链接哈!

  

  5.重绘强度(Denoising strength)

  在 SD img2img中,重绘强度也被称为降噪强度,是控制图像降噪程度的重要参数。重绘强度通过控制扩散过程中像素的平均漂移量来影响输出图像的平滑程度。较高的重绘强度会导致像素平均漂移较大,从而降低图像细节,产生更加平滑的输出图像;较低的重绘强度会导致像素平均漂移较小,保留更多原图细节。

  使用 img2img 进行图像降噪时,需要根据具体情况对重绘强度进行调整。如果需要更强的去噪效果,可以将重绘强度调高;如果需要更好的细节保留,可以将重绘强度调低。但需要注意的是,在过高或过低的重绘强度下,输出图像可能会出现一些不理想的效果,需要进行适当调整。

  以下是重绘强度0-1对比图:

  Steps: 30, Sampler: Euler a, CFG scale: 8, Denoising: 0-1(+0.1)

  

  图中可以看到重绘强度0.3开始就有很明显的细节变化,0.5容貌表情,0.7的时候动作开始改变。

  二、涂鸦绘制(Sketch)

  涂鸦绘制(Sketch),让AI通过我们手绘的草图,将其转换为高质量的图像。通俗点讲,让我们在原图的基础上以涂鸦的方式添加额外信息。

  输入信息:

  

  

  得到一只白色天鹅。为什么会得到白色天鹅呢?是因为趣闻的提示词里面有这个标签。AI会根据你绘制的内容的形状和色彩,再结合提示词来生成符合AI理解的内容。

  总结:涂鸦绘制(Sketch)可以帮助我们更加高效和创造性地创作。让我们无需具备高超的绘画技巧,就可以用自己的想象力将自己的创意转化为高质量的图像。

  三、局部绘制(Inpaint)

  局部绘制(Inpaint),是让我们在原图的上添加一个蒙版,对蒙版区域或非蒙版进行重绘的操作。

  常规操作一下,我们换个笑脸:

  

  修改提示词:

  (masterpiece),(photorealistic:1.3), ultra-detailed, (high detailed skin:1.2),(best quality:1.0), (ultra highres:1.0),beautiful woman,cute,happy face,smile,insanely detailed, absurdres, HDR

  结果如下:

  

  1.蒙版模糊度(Mask blur)

  Mask blur是用来执行周围像素的模糊化操作,从而降低缺失区域与周围像素的边缘效应,使得图像处理具有更加自然的效果。有点像PS里面的羽化,值越大边缘越透明。

  下面是 Mask blur 在重绘0和0.6下每递增4得出的结果:

  Masked content:fill, Inpaint area:Only masked Steps: 25, Sampler: Euler a, CFG scale: 8, Denoising, X Values: "0,0.6", Mask Blur, Y Values: 0-48(+4)

  

  

  重绘强度0时,也就是AI在绘制最初始状态时,没有重绘系数影响的一个输出。这个可以看到最直观的Mask blur值对于蒙版的效果。这里可以看到值越大,边缘信息丢弃也就越大。趣闻屋这例子里,值在44的时候对原图的输出结果没有影响了。

  重绘强度0.6时,Mask blur值在12以下效果较好,超过16就开始出现“鬼影”。

  总结:合适的Mask blur取值需要根据具体任务和图像情况进行选择。

  2.蒙版模式(Mask mode)

  

  (1) 绘制蒙版内容(Inpaint masked)

  绘制蒙版遮住的里面的内容,再来换个笑脸:

  

  

  (2) 绘制非蒙版内容(Inpaint not masked)

  绘制非蒙版遮住的里面的内容,换个背景:

  

  

  3.蒙版蒙住的内容(Masked content)

  

  Masked content选项为我们提供4种填充修复方式,以达到图像修复、艺术处理或美化的效果。可以根据具体的需求和创意选择合适的方式。

  填充(Fill): 此选项将在需要填充的部分中填充特定颜色值或图案,以达到图像修复的目的。 一般使用场景:删除图像中的不必要内容,如物体、人物、文字等。 原图(Original) 此选项会使用原图像的内容来填充需要修复的部分。 一般使用场景:修复图像中的缺陷,如划痕、裂缝、污渍等。 潜空间噪声(Latent noise) 此选项将在需要填充的部分中添加随机噪声,从而创造出一种艺术效果。 一般使用场景:在图像的特定区域进行艺术处理,以增强图像的审美效果。 潜空间空白(Latent nothing) 此选项会在需要填充的部分中添加空白像素,从而保持图像的原始外观。 一般使用场景:在图像的特定区域留白或添加边框,以保持图像的整体美感。

  官方给出的对比说明图,4种填充修复方式对于蒙版的效果。

  

  趣闻屋用4种方式分别在绘制区域的【全图】和【仅蒙版】下进行换笑脸对比:

  Sampler: DPM++ SDE Karras Steps: 25, CFG scale: 8, Face restoration: CodeFormer, Denoising, X Values: "0,0.6", Masked Content, Y Values: "fill,original,latent noise,latent nothing"

  

  (1)【全图】

  

  (2)【仅蒙版】

  

  重绘强度0时,可以看到最直观的4种填充修复方式对于蒙版的效果,与官方给的区别不大。

  重绘强度0.6时,4种填充修复方式对于对人脸更换的效果,填充(fill)和原图(original)更贴合原图,也更符合预期。

  在绘制区域的选择上,大家在实际操作过程中可根据具体任务和图像进行选择。

  4.仅蒙版绘制参考半径,像素(Only masked padding, pixels)

  

  这个是一般选择仅蒙版(Only masked)时才考虑调整的参数。全图(Whole picture)不受影响。

  (1)仅蒙版(Only masked)

  在4种填充修复方式中,值0-80递增8的影响效果如下:

  原图和遮罩区脸部:

  

  参数输入:

  Steps: 25, Sampler: Euler a, CFG scale: 8, Face restoration: CodeFormer, Denoising strength: 0.6, Masked Content, X Values: "fill,original,latent noise,latent nothing", Inpaint full res padding, Y Values: 0-80(+8)

  结果:

  

  总结:在人脸修复时,原图(original)比较稳定,潜空间噪声(latent noise)很有艺术效果。

  (2)全图(Whole picture)

  

  在这里,输出图像的宽高不能选择太小,不然会下面这样,全部按变形:

  出图宽高比例为544*360

  

  使用原图尺寸出图时:

  原图尺寸:1080*720

  

  可以看出,全图(Whole picture)只在X轴上的填充修复方式影响了出图结果,而在Y轴方向的Only masked padding 并没有对结果有影响。所以,这是一个仅在选择仅蒙版(Only masked)时才生效的参数。

  四、局部涂鸦绘制(Inpaint Sketch)

  局部涂鸦绘制(Inpaint Sketch),在局部绘制的基础上增加了调色板,使得AI在局部绘制的基础上多考虑的颜色。

  

  如下图,在四个角上涂上不同颜色,得与其大颜色相似的画面。

  

  

  再如,下面的素描猫

  

  此图片来源网络,侵删

  加上不同颜色遮罩之后:

  

  AI会根据蒙版的颜色,绘制得到猫的颜色。

  1.蒙版透明度(Mask transparency)

  

  蒙版透明度,对比局部绘制(Inpaint)是多增的参数,范围0-100。值越大使得蒙版对保留的轮廓更明显,也会影响重绘强度。

  

  图4-1

  

  图4-2

  

  图4-3

  上面3张图4-1、4-2、4-3,蒙版透明度分别是10、30、60,在重绘强度都是0.8的情况下,图4-3很接近原图,同时蒙版区域更明显。

  五、上传蒙版的局部绘制(Inpaint upload)

  Inpaint upload 是提供外部工具制作的蒙版做遮罩,如PS。这种方式使得蒙版更加精确,适合对绘制区域要求较高的小伙伴们。

  白色为蒙版,黑色为非蒙版,还是换笑脸操作:

  

  结果:

  

  六、批量处理(Batch)

  批量处理图片,顾名思义就是批量img2img指定目录下的图片。需要建立三个文件夹,原图文件夹、输出图片的文件夹和放置蒙版的文件夹。

  

  1.原图文件夹、输出图片的文件夹放置需要修改的图片和AI生成后输出的图片。

  2.蒙版文件夹路径可选,不设置的话,会以全图的方式进行重绘。

  3.蒙版的设定,怎么使得对应的原图选择对应的蒙版?只需要把蒙版图名字写成和原图一样的名字即可。如原图名字:001.png,那么对应的蒙版名字也是:001.png。因为放置在不同文件夹,所以不用担心会冲突。

  4.如原图没有对应的蒙版会怎么办?那会以蒙版文件夹里里面的第一张图片当做蒙版。如:原图名字005.png,蒙版文件夹里只有001.png、002.png、003.png。那么005.png就会以001.png作为蒙版进行重绘。

  5.技巧:第一张方全白图,也就是全图绘制;如果不需要全图绘制,就把使用最多的蒙版放到第一的位置。

  最后

  结束!文章很长,能看到这的小伙伴那必须是真爱~ [心]

  趣闻屋再次感谢小伙伴们的阅读,有什么遗漏、问题和纠错,欢迎评论区留言。趣闻屋虚心求教。

  古德拜!让我们下期见~