Stable Diffusion高级教程 - 图生图(img2img)模式
媒介如今终于可以介绍 Stable Diffusion 除了文生图 (txt2img) 之外最重要的功能:图生图 (img2img)。顾名思义,除了根据正向和反向提示词之外,还必要基于一张图片生成图。这个模式下功能许多我们挨个说
img2img
图生图模式下的默认功能,我们先看一下主界面:
https://img-blog.csdnimg.cn/direct/8b71de5d507e4aceba67ce1ba7ecee7b.png
上面还是正面提示词和负面提示词,接着是一个上传图片的区域,写着「Drop Image Here - or - Click to Upload」。然后就是相关参数,大部分在文生图内里已经见过,只有Resize mode、Denoising strength是新增的,我们挨个介绍:
[*] Resize mode。当上传图片尺寸和要生成的图的尺寸不同时,必要选择调整巨细方案。
[*] Sampling Method 用于去噪,均衡生成图的速度和质量。内置多种算法可供选择。如今看起来 DPM++ 2M Karras 用的比较多。
[*] Sampling Steps 是去噪过程的采样步调数。越多越好,但必要更长的时间。一样寻常在 20-28 之间。
[*] 宽度和高度 (Width/Height),输出图像的巨细。按需调整即可。
[*] Batch Count 批次数目,我更乐意用下面的 Batch size 调整生产图的总数。
[*] Batch size,每一批次要生成的图像数目。可以在测试提示时多生成一些,由于每个生成的图像都会有所不同。生成的图像总数等于 Batch Count 乘以 Batch size。
[*] CFG (Classifier Free Guidance) scale,提示词相关性, 用于控制模型应在多大程度上服从您的提示。他有几个只可选: 1 (大多忽略你的提示),3 (更有创意),7 (遵照提示和自由之间的良好均衡),15 (更加遵守提示),30 (严格按照提示操作),常用的是 7,做个均衡。测试时可以换这个值体验区别。
[*] Denoising strength。降噪强度,常翻译成「重绘幅度」,取值范围是 0-1,形貌新生成的图片与原图的相似程度,数值越小,采样越少,相似度越高,算的越快 (采样数 = Denoising strength* Sampling Steps)
[*] Seed,生成的每个图像都有本身的种子值,修改这个值可以控制图像的内容。
[*] Script。用户可以编写脚本代码,以实现一些特殊定制的功能。这个将来可以具体说,如今还没有碰到。
先具体说说Resize mode(当然上传的图片最好与生图设置的一致):
[*] Just resize:调整图片为生图设置的宽高。若上传图片的宽高与生成设置的宽高不一致,则该图片会被压扁。这个我非常不推荐使用,会让图片非常希奇。
[*] Crop and resize:裁切图片以符合生图的宽高,我最推荐的方式。
[*] Resize and fill:裁切并调整图片宽高,若上传图片的宽高与生成设置的宽高不一致,则多出来的区域会主动填满。
[*] Just resize (latent upscale):调整图片巨细为生图设置的宽高,并使用潜伏空间放大。
这个模式下最重要的就是调Denoising strength参数。我们用下面这张从网上找的新垣结衣的照片来体验:
https://img-blog.csdnimg.cn/direct/73a9e5baea65417c81d50bfc9af86a67.png
首先留意,我选择这个图是有 2 个原因的:
[*] 这个一张人像正面近像,在生成新图后更容易感受到 SD 的模型的作用
[*] 照片可以看得手部有动作,我会生成一张有题目的图让你感受到如今图生图模式的题目
我希望通过 SD 把这个真人照片做出动漫的效果,咱们先来个较大的Denoising strength的值,为了方便对比我用了固定的 Seed:
https://img-blog.csdnimg.cn/direct/5b6a52d2add6415c93840d93a819169e.png
我直接把生成参数列出来:
a woman with a short hair and a white shirt is posing for a picture with her hand on her chin, a photorealistic painting, Ayami Kojima, precisionism, perfect face
Negative prompt: dongwm-nt,bad finger, bad body
Steps: 20, Sampler: DPM++ 2M Karras, CFG scale: 8, Seed: 2345567052, Size: 512x512, Model hash: cbfba64e66, Model: CounterfeitV30_v30, Denoising strength: 0.65, Clip skip: 2
这里有一点必要特别的提一下,正面提示词不是我写的。在图生图模式里,生成按钮左边有 2 个选项,分别是「Interrogate CLIP」和「Interrogate DeepBooru」。在上传图片后,可以通过「Interrogate CLIP」反推出提示词,我这个就是这么生成的。另外也说一下「Interrogate DeepBooru」,这说的是一个开源的女孩图片特征提取器,上传图片可以获得图片的标签,我已经把链接都放在了延伸阅读内里:
https://img-blog.csdnimg.cn/direct/9a2a95329acc4a4898b16c65d130a075.png
PS: 如果你选择DeepBooru反推,不能直接使用那些标签,你必要从中筛选必要的、公道的标签,否则效果会完全偏离。
好的,说回来。之前已经说过,Denoising strength的值越大越和原图不符,以是如果你希望「微调」,这个值不应该大于 0.4,如今我们先取了一个更大的值,你可以看到生成图的人物手部的效果是有题目的。而且留意,负面提示词dongwm-nt本身是包含bad finger,bad body这些的。
图生图不是全能的甚至很难达到你的预期
是的,这是我的体验。这个模式下如果你想要生成你想要的效果,对于大模型、微调模型、提示词、参数等都有要求,在前期,你很可能生成希奇的图,你必要不停实验总结经验。
不同的 Denoising strength 效果的区别
我们使用 x/y/z 脚本试试不同的重绘幅度值看看生成的效果:
https://img-blog.csdnimg.cn/direct/5576b8461ec24c35a614f3c6123a4dfd.png
可以看到随着 Denoising strength 变大,越来越不像原图了。
同时,我们还可以重叠各种微调模型,下面是使用了 VAE、Lora 和 HyperNetwork 后的效果:
https://img-blog.csdnimg.cn/direct/7a911ebeb5e0498f964e6a62cfdf638c.png
这就是微调模型的作用,不外留意,微调后手部后两张还是会有题目。
PS,这个例子用的主模型是:https://civitai.com/models/4468/counterfeit-v30
绘图 (Sketch)
第二个 Tab 是 Sketch,他得当有美术底子的用户,可以给一张现有的图加东西,或者画出你想要的东西,然后再输入提示词完善,我这个没有画画细胞的人基本不用,在这里也举 2 个例子 (我也就这个程度啦)。
由于我们一会要用笔刷编辑图片,我必要用到颜色,以是加启动参数,重启 webui:
./webui.sh --disable-safe-unpickle --gradio-img2img-tool color-sketch
Ok, 先实验基于现有图做修改的,我用了下面这张图:
https://img-blog.csdnimg.cn/direct/0a54bfc4e55742dbb71bde8332626994.png
上传后就进入了编辑模式,然后我用笔刷选了个粉色的把头发涂变色 (当然提示词中并没有提到粉色头发):
https://img-blog.csdnimg.cn/img_convert/3b5c94cfe0895418832b88890484a250.png
可以看到Denoising strength到了 0.7 才看起来正常,前面的谁人「涂」的效果很明显。以是如果你使用和原图差别很大的颜色涂,那么必要更大的重绘幅度值,但是相对的,生成图和原图差别很大。如果选择对比色较少的例如黑色,那么重绘幅度 0.4 可能就够了。
接着我们试试完全从零画一幅画 (叫「涂鸦」更合适),为了展示 SD 的厉害之处,我特意选择了一个「复杂」的构图,在本灵魂画手非常努力作画后,看一下生成图的效果这样的:
https://img-blog.csdnimg.cn/direct/c8a2df2c80a84962b844aa7ae15cff51.png
留意哈,由于这个模式必要上传图,以是我这里只是截了个终端的黑色区域作为配景图。我知道大家看不懂我的 Sketch
页:
[1]