当前位置:AIGC资讯 > AIGC > 正文

图生图—AI图片生成Stable Diffusion参数及使用方式详细介绍

        本文为博主原创文章,未经博主允许不得转载。

        本文为专栏《Python从零开始进行AIGC大模型训练与推理》系列文章,地址为“https://blog.csdn.net/suiyingy/article/details/130169592”。

        Stable Diffusion webui的详细安装步骤以及文生图(txt2img)功能详细介绍请参考本专栏前一篇文章,本节将具体介绍 img2img、Extras、PNG Info、Checkpoint Merger、Train、Settings和Extensions等功能的详细使用方式。另外,本专栏具体更新可关注文章下方公众号,也可关注本专栏。所有相关文章会在《Python从零开始进行AIGC大模型训练与推理》中进行更新,地址为“https://blog.csdn.net/suiyingy/article/details/130169592”。所有AIGC类模型部署的体验效果将在RdFast小程序中同步上线。

图1 img2img室内设计生成

1 Img2img

        Img2img(图生图)是指在已有图片基础之上,通过Stable Diffusion进行修改,从而生成新的图片。如下图所示,img2img包括img2img、Sketch、Inpaint、Inpaint sketch、Inpaint upload和Batch等6个子页面。下面将分别介绍页面中各个参数的使用方式。

图2 img2img

1.1 img2img

        正向提示词(Prompt)和反向提示词(Negative Prompt)与上一篇博文《AI图片生成Stable Diffusion参数及使用方式详细介绍》中的txt2img(文生图)的提示词用法与效果保持一致,地址为“https://blog.csdn.net/suiyingy/article/details/130008913”。

        interrogate CLIP / interrogate DeepBooru:自动生成正向提示词,相当于是对现有图片的智能理解。可在自动生成的prompt基础上进行修改。

        Resize mode:缩放模式。(1)Just resize 只调整图片大小,如果输入与输出长宽比例不同,图片会被拉伸。如果比例与原图不同,那么图片将会发生变形。(2)Crop and resize裁剪与调整大小,如果输入与输出长宽比例不同,会以图片中心向四周,将比例外的部分进行裁剪。这种模式属于等比例缩放,但是会将超出范围的部分进行裁剪。(3)Resize and fill 调整大小与填充,如果输入与输出分辨率不同,会以图片中心向四周,将比例内多余的部分进行填充。这种模式也属于等比例缩放,但是会将多余部分进行填充。

        Denoising strength:重绘幅度,取值范围是0-1,默认设置0.75。取值越大,说明图片变化越大,0表示图片几乎不变,1表示可能严重偏离原图。一般将该参数设置在0.6~0.8范围。

        其它参数与上一篇博文中txt2img的参数完全一致,详细说明请前往《AI图片生成Stable Diffusion参数及使用方式详细介绍》,地址为“https://blog.csdn.net/suiyingy/article/details/130008913”。

1.2 Sketch

        Sketch是对整张图片进行调整,即对整张图进行重绘。Sketch英文原始意思是草图。这里如果我们输入一张手绘的草图,那么模型会基于草图重绘整个图片。

1.3 Inpaint

        Inpaint是指局部重绘,即对指定区域进行修改。很多去水印的软件也以Inpaint作为命名或关键词。去水印也属于一种局部重绘,因而也可以在该功能页面中实现。

        Mask blur:蒙版模糊度,值越大表示绘图区域与原图边缘的过度越平滑,越小则边缘越锐利。

        Mask mode:蒙版模式,Inpaint masked表示只重绘涂色部分,Inpaint not masked表示重绘除了涂色的部分。涂色可通过在图片上长按并拖动鼠标左键来实现。涂色过程记为蒙版制作过程。

        Masked Content:蒙版内容。fill表示用其他内容填充,original是在原来的基础上重绘,适合去水印模式。Latent noise和latent nothing是另外两种模式,主要是从模型中间过程来生成蒙版区域的图像。

        Inpaint area:重绘区域,Whole picture表示重绘整个图像区域,Only masked表示只在蒙版区域内重绘。

        Only masked padding, pixels:个人理解为蒙版区域向外围扩展的像素数量,相当于对模板区域进行了一定程度放大。

        Denoising strength:重绘幅度,取值范围是0-1,默认设置0.75。取值越大,说明图片变化越大,0表示图片几乎不变,1表示可能严重偏离原图。一般将该参数设置在0.6~0.8范围。

        下图是仅对地面进行重绘的示例。

 图3 Inpaint地面重绘

1.4 Inpaint Sketch

        Sketch是结合输入完整图像进行重绘,而Inpaint Sketch主要是基于蒙版区域内的图像进行重绘。

1.5 Inpaint upload

        这里仍然是Inpaint模式,蒙版不再是通过鼠标绘制,而是可上传一张蒙版图片。Crop to fit则相当于前面的Crop and resize。

1.6 Batch

        指定输入和输出文件夹目录,批量进行img2img操作。

2 Extras

        Extras主要是对图片大小进行调整,比如进行等比例高清放大。

 图4 Extras

        Scale by:图片放大倍数,默认为4。放大倍数越大,分辨率尺寸越大,图片越清晰,所需时间也会相应有所增加。

        Scale to:将图片尺寸调整为指定宽高,类似于前文的Resize mode。

        Upscaler 1:上采样模型。默认为None,其中LDSR耗时长;ScuNET PSNR适用于动漫效果;SwinIR_4x效果较好。

        Upscaler 2:上采样模型,默认为None,模型选项与Upscaler 1的一致。相当于可同时有两种模型来共同进行上采样,第二个模型的权重由Upscaler 2 visibility决定。

        同样地,上采样模型还可以加入GFPGAN和CodeFormer,并可以设置其相应权重。Batch Process和Batch from Directory是用于多张图片的批量操作。

3 PNG info

        PNG info用于查看Stable Diffusion所生成的图片的图像信息,包括提示词、反向提示词、步骤数、采样器、种子等参数。通常情况下,图片文件中含有图片说明的头文件,称为exif信息。该信息可通过图片工具或python等读取出来。Stable Diffusion会将图像生成相关的信息写入exif中。如果我们在网上看到比较感兴趣的Stable Diffusion生成图像,那么可以在PNG info中看到相关参数设置信息,从而复现或微调相应图片。

 图5 PNG info

4 Checkpoint Merger

        Checkpoint Merger是指模型合并不同的模型,生成新的模型。我们可能会根据基础模型微调得到不同生成风格的新模型。合并不同的微调模型可能能够同时获得两种模型的生成特点。合并完成之后,新的模型也会保存在models/Stable Diffusion文件目录下,并且可以在网页页面直接选择调用。

图6 Checkpoint Merger

        Primary model (A)、Secondary model (B)、Tertiary model (C)用于选择将要合并的模型。需要注意,这些模型最好来自于同一类基础模型,具有相同的结构参数。如果模型结构不同,那么会出现参数不匹配的错误。

        Custom Name (Optional):自定义合并后的模型名称。

        Multiplier (M) - set to 0 to get model A:模型合并时,A模型所占权重比例。

        Interpolation Method:三种模型合并方法。

        (1)No interpolation:不进行模型合并,仅对模型A进行转换。它可实现模型类型格式转换(ckpt/safetensors)或者增加VAE(人脸修复等特定功能的编码优化算法)。

        (2)Weighted sum,模型A和模型B合并,合并方式为 A * (1 - M) + B * M。

        (3)Add difference,模型A与模型B、C之间的偏差进行合并,即A + (B - C) * M。

        Checkpoint format:模型保存格式。Ckpt是以字典格式保存,可以存储额外的脚本信息。Safetensors则是纯粹保存tensors,不含额外的信息。因此,safetensors格式更加安全。

        Save sa float16:保存为float16(FP16)精度的模型,可以降低模型显存占用。

        Copy config from:复制模型的配置文件。

        Bake in VAE:增加VAE(人脸修复等特定功能的编码优化算法)。

        Discard weights with matching name:设置不参与合并的参数权重。

5 Train

        Train用于自己训练或微调Stable Diffusion,以在某些特定领域达到更好的结果。这里不进行介绍,下一节将单独详细介绍Stable Diffusion的训练模式。

图7 Train

6 Settings

        Settings设置内容较多,包括了上述各个功能的部分参数设置。例如,我们可以在Face restoration中选择面部修复所使用的模型。一般设置完成后需要先后分别点击“Apply settings”和“Reload Ul”按钮。

图8 Settings

7 Extensions

        Extensions 是一些扩展功能,例如Lora或SwinIR等模型功能。扩展还可以通过Available设置一些额外的展示信息。

 图9 Extensions

8 参考资料

        (1)《Ai 绘图日常 篇四:Stable Diffusion WebUI中的重绘幅度在提升图片分辨率中的使用》,“https://post.smzdm.com/p/ao957kxr/”。

        (2)《超详细!AI 绘画神器 Stable Diffusion 基础教程》,“https://www.uisdc.com/stable-diffusion-2”。

        (3)《2023-03-22_5分钟学会Stable Diffusion图生图功能》,“https://zhuanlan.zhihu.com/p/616895208”。

        (4)《Stable Diffusion功能介绍之Extras & PNG Info》,“https://scratchina.com/html/aihuihua/aihuihuajiaoxue/83.html”。

        (5)《浅谈stable diffusion (三)》,“https://zhuanlan.zhihu.com/p/617026822”

        (6)《有没有人能详细介绍一下Stable Diffusion AI绘画?》,“https://www.zhihu.com/question/585008573/answer/2953494275”

9 其它部分

        本专栏具体更新可关注文章下方公众号,也可关注本专栏。所有相关文章会在《Python从零开始进行AIGC大模型训练与推理》中进行更新,地址为“https://blog.csdn.net/suiyingy/article/details/130169592”。所有AIGC类模型部署的体验效果将在RdFast小程序中同步上线。

        本文为博主原创文章,未经博主允许不得转载。

        本文为专栏《Python从零开始进行AIGC大模型训练与推理》系列文章,地址为“https://blog.csdn.net/suiyingy/article/details/130169592”。

更新时间 2023-11-13