本文收录于《AI绘画从入门到精通》专栏,专栏总目录:点这里,订阅后可阅读专栏内所有文章。
大家好,我是水滴~~
本篇文章我们介绍 Stable Diffusion WebUI 的图生图功能,主要包括:图生图、图生图(手绘修正)/涂鸦绘制、局部重绘、局部重绘(有色蒙版)、局部重绘(上传蒙版)、批量处理和反推提示词等。
希望能对你有所帮助!
文章目录
- 一、图生图
- 1. 提示词
- 2. 上传图片
- 3. 缩放模式
- 4. 调整分辨率
- 5. 按比例缩放
- 6. 重绘幅度
- 二、图生图(手绘修正)/涂鸦绘制
- 三、局部重绘
- 1. 蒙版模糊
- 2. 重绘区域
- 3. 重绘参考内容
- 4. 重绘画布大小
- 5. 以蒙版尺寸重绘时的外部填充半径(像素)
- 四、局部重绘(有色蒙版)
- 五、局部重绘(上传蒙版)
- 六、批量处理
- 七、反推提示词
- 1. Clip 反推提示词
- 2. DeepBooru 反推提示词
一、图生图
今天我们一起来看一下 Stable Diffusion WebUI 的图生图(img2img)功能。该功能主要是根据现有的图片来调整细节,或者调整风格,最终生成一张新的图片。
我们可以在文生图(txt2img)中批量生成小姐姐图片,然后选择一张心动的小姐姐,然后点击下面的“将图片和生成参数发送到图生图页面”按钮,图片就跑到图生图页面了。
1. 提示词
图生图中的提示词是用于针对原图的。该提示词为可选项,但是不填写可能会导致生成的图片效果质量不佳。这里通常与原图的提示词保持一致就行。
2. 上传图片
此处就是图生图用来上传原图的地方。可以点击上传;也可以将图片拖到此处;还可以将文生图中的图片“发送到”此处;或者将图库浏览器中的图片“发送到”此处。
3. 缩放模式
当新生成的图片尺寸与原图(参考图)不一致时,需要选择合适的缩放模式(Resize mode);如果尺寸相同,选择哪一种模式都没有问题的。
缩放模式有四种:
- 拉伸原图(Just resize):在这种模式下,图片会按照指定的宽度和高度进行直接拉伸。这可能会导致图片中的人物或物体在横向和纵向上被拉长或压扁,从而影响图片的整体比例和视觉效果。
- 剪裁原图(Crop and resize):当图片的尺寸与原图的尺寸不匹配时,裁剪模式会选择原图的中间部分进行显示,而上下或左右两侧的部分则会被裁剪掉。这样可以确保图片的核心内容得到保留,但可能会损失一些边缘信息。
- 填充空白(Resize and fill):如果目标尺寸大于原图尺寸,填充模式会根据原图边缘的内容自动填充空白区域。这通常涉及到一些算法来推测并生成与原图风格和内容相匹配的填充内容,以保持图片的连贯性和完整性。
- 仅调整大小(Just resize):这是一种更复杂的缩放方式,它涉及到对图片的潜在变量进行放大或缩小。这种缩放方式可以更好地保留图片的原始信息和细节,但也可能导致一些不可预测的效果,需要根据具体情况进行调整和优化。
下图展示了各种缩放模式的生成效果(原图:512*768
,缩放后:512*512
):
4. 调整分辨率
调整分辨率(Resize to)用于调整生成图片的分辨率,通常要与原图相同,或比例相同。点击“小尺子”图标,可以填充原图的分辨率。
5. 按比例缩放
按比例缩放(Resize by)可以保持原图的宽高比来缩放,下面也会直接显示缩放后的尺寸。
6. 重绘幅度
重绘幅度(Denoising strength)表示新生成的图片会有多大程序改变原图,值越大AI的自由发挥空间就越大,也越不像原图。
这个可以根据实际情况来选择,如果你不想改变太多,就将重绘幅度调小;如果想改变风格,就调大。
下图为重绘幅度从0
到1
的变化情况:
例如,我们想加上海滩背景,就可以在提示词中增加 beach background
,并将重绘幅度调大,例如 0.8
:
二、图生图(手绘修正)/涂鸦绘制
手绘修正/涂鸦绘制(Sketch)是一个特色功能,其操作界面与图生图界面相似,但在原图界面上增加了几个特定的选项。这些选项允许用户控制涂鸦画笔的大小、选择涂鸦颜色以及撤销上一步的操作。
具体来说,用户可以先在要添加物件的部位进行涂鸦,然后在提示词处输入要绘制的物件。通过调整重绘幅度和其他相关设置,可以生成具有所需涂鸦效果的图像。
例如,下图中画了一个白点和一个红点,提示词中增加“蝴蝶”,生成的图片中,就会在相应位置出现两个蝴蝶,颜色也是画笔的颜色:
注意:可以看出,上图中蝴蝶画出来了,但小姐姐的脸也换了,所以 Sketch 不仅改变了涂鸦部分,也会改变整体画面或风格。
三、局部重绘
局部重绘(Inpaint)功能是一项强大的工具,它允许用户在生成的图像上进行精细的修改和重绘。通过这个功能,用户可以轻松地对图像的特定区域进行编辑,从而改变画面的细节或风格。
使用局部重绘功能时,用户首先需要选择要修改的区域,然后利用提供的工具进行涂鸦或绘制。在这个过程中,用户可以调整画笔的大小、颜色以及透明度等参数,以实现更精确的绘制效果。同时,Stable Diffusion WebUI还提供了撤销和橡皮擦功能,方便用户随时修正错误或调整绘制区域。
局部重绘功能的核心在于其蒙版技术。蒙版可以遮住图像的关键区域,用户可以在蒙版上进行绘制,而不会影响其他部分。通过这种方式,用户可以实现对特定区域的精确控制,同时保持整体画面的完整性。
例如,下图中我们使用画笔工具将小姐姐的头发给盖住,这部分就是蒙版部分,然后在提示词中输入“绿色头发”,那么重新生成的小姐姐的头发变成绿色了:
此外,局部重绘功能还支持多种参数设置。用户可以根据需要调整蒙版模糊、蒙版区域以及重绘幅度等参数,以获得更满意的绘制效果。这些参数的设置可以帮助用户更好地控制绘制过程,实现更精确的修改。
1. 蒙版模糊
蒙版模糊(Mask blur)用于设置重绘部分与原图的衔接处的模糊度,起到渐变的作用,让衔接看起来比较自然。衔接不好时可以调大一点看看。
蒙版模糊设为1时,会有明显的衔接:
蒙版模糊设为20时,衔接部分变得更自然了:
2. 重绘区域
重绘区域(Mask mode)有两个选项:蒙版内和蒙版外。蒙版内表示只重绘蒙版内部的画面,而蒙版外表示重绘蒙版外部的画面。
默认选项为蒙版内,如果改成蒙版外,下图中就会将蒙版外部的头发变成了绿色,甚至还改变了其它元素。
3. 重绘参考内容
重绘参考内容(Masked content)表示AI在重绘蒙版内蒙时需要参考的元素。有四个选项:填充空白(fill)、原图像素(original)、潜空间噪声(latent noise)、空白潜空间(latent nothing)。
推荐:如果你想让AI自由发挥,可以选择 fill
;如果想要与原图保持一致,就使用默认的 original
。
如下对这四个选项进行一个对比,我们将小姐姐的衣服全部蒙住,让AI来重新绘制:
(1)填充空白(fill):在渲染时不根据原图的任何元素生成图片。
(2)原图像素(original):在渲染时根据原图中的元素生成图片,这也是默认选项。
(3)潜空间噪声(latent noise):在渲染时不根据原图的任何元素生成图片,比 fill
想象力更丰富,增加了更多的细节,也需要更多的重绘幅度。
(4)空白潜空间(latent nothing):在渲染时不根据原图的任何元素生成图片,类似 fill
,增加了更多的细节。
4. 重绘画布大小
重绘画面大小(Inpaint area)又叫重绘区域,
以原图尺寸重绘(Whole picture) : 如果选的是Whole picture
,那AI会基于你的新的要求,把整张图重新画一遍, 但最后只保留你框出来的这一块区域, 拼回到原图里面去。
以蒙版尺寸重绘(Only masked): 如果选择的是Only masked
,AI就会只重绘蒙版区域,把它当成一张完整的图画好, 然后再拼回去,它涉及区域小,绘制速度固然更快,但因为它没法读取你的图像全貌,所以经常出现拼上去以后变得奇奇怪怪的问题。因此多数时候推荐使用 Only masked
选项 , 也就是整张重画再拼回去。
Only masked
更适合用在,一些针对性强的修改, 想要画一点原图里面没有的东西,但是这个时候我们需要降低重绘幅度,避免变形,并且对提示词做净化处理,这是属于比较进阶的内容了。
下图为以原图尺寸重绘(Whole picture):
下图为以蒙版尺寸重绘(Only masked),脖子部分有很明显的阴影:
5. 以蒙版尺寸重绘时的外部填充半径(像素)
以蒙版尺寸重绘时的外部填充半径(Only masked padding,pixels)选项表示使用“以蒙版尺寸重绘(Only masked)”时参考使用蒙版附近的元素的值。值越小参考蒙版附近的元素就越少,出来的图就越随意;值越大参考的就越多,出来的图就更贴切更契合。
四、局部重绘(有色蒙版)
局部重绘/有色蒙版(Inpaint sketch)与局部重绘类似,但可以识别蒙版的颜色。
例如下图,生成的图片参考了蒙版的颜色:
比局部重绘还多了一个调整蒙版的透明度功能:
五、局部重绘(上传蒙版)
局部重绘/上传蒙版(Inpaint upload)允许我们上传一张蒙版,然后根据蒙版让AI生成内容。蒙版必须是白色的,其它为黑色的。可以使用PS或者 Segment Anything 插件来制作蒙版。
下面分别上传了原图和蒙版:
选择重绘蒙版内,可以保持背景不变,更换不同的小姐姐:
选择重绘蒙版外,可以保持小姐姐不变,来更换不同的背景(加一些提示词可以更换不同的背景):
六、批量处理
批量处理(Batch)可以让我们批量完成图生图功能。这里主要有三个目录(注意:目录名不要使用中文):
- 输入目录:输入目录表示要批量处理的图片所在目录。
- 输出目录:输出目录表示AI生绘后输出的图片所在目录,需要提前建一个空的目录。
- 蒙版输入目录:蒙版输入目录表示蒙版所在的目录。这是个可选项,如果填上后,相当于使用
Inpaint upload
功能来批处理。并且蒙版图片的文件名要与输入目录中原图文件名一致才行。
下图中,我将三个目录都创建好了:
输入目录(要重绘的原图):
输出目录(一个空的目录):
蒙版输入目录(输入目录中各个图片的蒙版,并且文件名保持一致):
点击生成后,原图中的小姐姐都被替换了,下面是输出目录:
如果你只想为小姐姐换背景,那么调整蒙版,将小姐姐变成黑色,其他为白色即可。
七、反推提示词
Stable Diffusion WebUI 的图生图中,还提供了两个反推提示词的功能“使用 Clip 反推提示词”和“使用 DeepBooru 反推提示词”。它们都可以提取图片中的元素,来提取提示词:
我们使用下面这张图来比较一下这两个反推提示词的区别:
1. Clip 反推提示词
Clip
反推的提示词是句子,可以精准的描述图片中的元素,也是我们推荐的反推方式。
下面是反推出来的提示词:
a painting of a woman in a bathing suit with colorful paint splatters on her body and chest, Artgerm, stanley artgerm lau, a painting, funk art
(一幅画,一个女人穿着泳衣,身上和胸口溅满了五颜六色的颜料,阿特泽姆,斯坦利·阿特泽姆劳,一幅画,放克艺术)
使用该提示词生成的图片:
2. DeepBooru 反推提示词
DeepBooru
反推的提示词是单词。
下面是反推出来的提示词:
1girl, black hair, bleeding, blood, blood on clothes, blood on face, blood on hands, blood on knife, blood on weapon, blood splatter, blood stain, breasts, brown eyes, cleavage, cuts, dark-skinned female, dark skin, death, dirty, guro, injury, lips, lipstick, makeup, medium breasts, nosebleed, paint, paint splatter, solo, splatter
(女孩,黑发,流血,血,衣服上的血,脸上的血,手上的血,刀上的血,武器上的血,血迹,血迹,乳房,棕色眼睛,乳沟,伤口,深色皮肤的女性,深色皮肤,死亡,肮脏,古罗,受伤,嘴唇,口红,化妆品,中等乳房,鼻血,油漆,油漆飞溅,独奏,飞溅)
两者的差距一目了然