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

news2024/12/24 9:38:08

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

        本文为专栏《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”。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/530828.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【Linux】Linux入门学习之常用命令四

介绍 这里是小编成长之路的历程,也是小编的学习之路。希望和各位大佬们一起成长! 以下为小编最喜欢的两句话: 要有最朴素的生活和最遥远的梦想,即使明天天寒地冻,山高水远,路远马亡。 一个人为什么要努力&a…

Jenkins教程-Docker安装Jenkins,并构建任务等

本文主要介绍如何在docker中安装Jenkins,启动容器后,如何使用Jenkins构建自己的项目,创建任务等 文章目录 前言Docker安装Jenkins访问Jenkins并配置Jenkins构建项目创建任务源码管理构建触发器BuildPost Steps 设置手工触发构建 前言 参考链…

Redis集群安全加固

本博客地址:https://security.blog.csdn.net/article/details/130692909 一、为Redis启用密码验证 默认情况下,Redis不执行任何密码身份验证。能够通过IP端口连接Redis的客户端均可以直接访问Redis中的数据。在启动Redis服务时,通过设置req…

玩转自动化操作神器n8n之(1)n8n的简介与安装

文章目录 1. 简介 2. 安装2.1. 使用npx进行安装2.2. 使用docker进行安装 2.3. 设置端口(可选) 3. 登录4. 搜索工作流 1. 简介 n8n是一款强大的工作流程自动化工具,可以自定义想要使用的功能和应用程序。n8n基于节点能够将任何工具连接在一起…

使用插件快速生成代码

使用插件快速生成代码 咋们常说,授人以鱼不如授人以渔,在这里给大家提供一些技巧性的东西,方便一些新手同学可以快速上手,同时,也提高我们的开发兴趣与开发热情! 主要讲什么呢,我们来学一学如何…

低代码信创开发核心技术(二):手撕灵活好用的Vue拖拉拽布局系统

前言 随着信息化时代的到来,软件已经成为企业和个人不可或缺的工具。然而,许多人在开发软件时遇到了各种问题,比如开发周期长、技术门槛高、成本高昂等等。为了解决这些问题,低代码平台应运而生。低代码平台是一种快速开发工具&a…

Golang每日一练(leetDay0067) 第十行、打家劫舍I

目录 195. 第十行 Tenth Line 🌟 198. 打家劫舍 I House Robber 🌟🌟 🌟 每日一练刷题专栏 🌟 Golang每日一练 专栏 Python每日一练 专栏 C/C每日一练 专栏 Java每日一练 专栏 195. 第十行 Tenth Line 给定一…

PySide6/PyQT多线程之 异常情况和优先级指南

前言 在PySide6/PyQT 中使用多线程时,线程的优先级和异常情况处理同样是重要的概念。 本文纯理论知识,无实操。换句话说,就是水文~~ 尽管在一般情况下我们不需要过多关注线程的优先级,但了解它的概念对于特定场景下的多线程编程仍…

Java每日一练(20230516) 最小栈、组合总和II、相同的树

目录 1. 最小栈 🌟 2. 组合总和 II 🌟🌟 3. 相同的树 🌟 🌟 每日一练刷题专栏 🌟 Golang每日一练 专栏 Python每日一练 专栏 C/C每日一练 专栏 Java每日一练 专栏 1. 最小栈 设计一个支持 push…

[入门必看]数据结构5.4:树、森林

[入门必看]数据结构5.4:树、森林 第五章 树与二叉树5.4 树、森林知识总览5.4.1 树的存储结构5.4.2 树、森林与二叉树的转化5.4.3 树和森林的遍历 5.4.1 树的存储结构树的逻辑结构回顾:二叉树的顺序存储如何实现树的顺序存储?树的存储1&#x…

【连续介质力学】张量的范数、各向同性和各向异性张量、同轴张量和极分解

张量的范数 张量的大小,使用Frobenius 范数: ∣ ∣ v ⃗ ∣ ∣ v ⃗ ⋅ v ⃗ v i v i (向量) ||\vec v|| \sqrt{\vec v \cdot \vec v} \sqrt{v_iv_i} (向量) ∣∣v ∣∣v ⋅v ​vi​vi​ ​&#xff…

okhttp篇2:Dispatcher

Dispatchers维护着一个线程池,3个双端队列,准备执行的AsynCall,正在执行的AsynCall,正在执行的同步Call(RealCall)。 同时规定每个Host最多同时请求5个Request,同时可最多执行64个Request。 p…

玩转Google开源C++单元测试框架Google Test系列(gtest)之一 - 初识gtest

一、前言 本篇将介绍一些gtest的基本使用,包括下载,安装,编译,建立我们第一个测试Demo工程,以及编写一个最简单的测试案例。 二、下载 如果不记得网址, 直接在google里搜gtest,第一个就是。目…

Docker下Gitlab配置Let’s Encrypt证书

Docker下Gitlab配置Let’s Encrypt证书 1 参考文档2 常见问题2.1 前置条件2.2 不支持ip2.3 重复签发2.4 外网无法访问 ※3 内网穿透配置(可选)4 Gitlab 创建并配置Let’s Encrypt证书4.1 开放Let’s Encrypt签发所需端口4.2 新增存储HTTPS证书文件夹4.3 …

多态与虚函数(补)

多态与虚函数(补) 静态联编与动态联编的深层次理解多态底层原理 示例示例一示例二示例三示例四 对象与内存虚析构函数构造函数为什么不能是虚函数? 静态联编与动态联编的深层次理解 我们首先看下面一段代码 class object { private: int va…

C learning_12 操作符前篇(算术操作符、移位操作符、位操作符、赋值操作符、单目操作符、关系操作符、逻辑操作符)

目录 算术操作符 移位操作符 移位规则 位操作符 交换两个整形变量的写法 赋值操作符 单目操作符 sizeof和数组的纠缠 和--运算符 多组输入的方案 关系操作符 逻辑操作符 算术操作符 -- 加法操作符():用于将两个值相加。 -- 减法操…

Python爬虫(二):Requests库

所谓爬虫就是模拟客户端发送网络请求,获取网络响应,并按照一定的规则解析获取的数据并保存的程序。要说 Python 的爬虫必然绕不过 Requests 库。 1 简介 对于 Requests 库,官方文档是这么说的: Requests 唯一的一个非转基因的 P…

存储知识点:RAID0、RAID1、RAID5、RAID10特点是什么?所需的硬盘数量分别为多少?

RAID(Redundant Array of Independent Disks)是一种将多个独立的硬盘组合成一个逻辑磁盘的技术,目的是提高性能或容错能力。RAID有不同的级别,常见的有RAID0、RAID1、RAID5、RAID10等。下面我们来介绍这些级别的特点和所需的硬盘数…

套接字编程简介

作者:V7 博客:https://www.jvmstack.cn 一碗鸡汤 少年辛苦终身事,莫向光阴惰寸功。 —— 杜荀鹤 Socket概述 在计算机中产生和接受IO流的数据源是多种多样的,在网络编程中,有一个特殊的数据源就是socket。通俗点soc…

linux的系统日志

目录 一、日志文件的产生 二、日志文件存放在哪儿 (1)文本日志 (2)二进制日志 三、日志存放规则的配置文件 四、日志轮转 五、分析和监控日志 一、日志文件的产生 日志内容:内核、开机引导、守护进程启动运行的…