Stable Diffusion - 采样器 DPM++ 3M SDE Karras 与 SDXL Refiner 测试

欢迎关注我的CSDN:https://spike.blog.csdn.net/
本文地址:https://spike.blog.csdn.net/article/details/132978866

DPM

Paper: DPM-Solver++: Fast Solver for Guided Sampling of Diffusion Probabilistic Models

扩散概率模型(DPMs)在高分辨率图像合成方面,取得了令人印象深刻的成功,尤其是在最近的大规模文本到图像生成应用中。提高 DPMs 样本质量的一个重要技术是引导采样,通常需要一个较大的引导尺度来获得最佳的样本质量。引导采样常用的快速采样器是 DDIM,即一阶扩散 ODE 求解器,通常需要 100 到 250 步才能生成高质量的样本。
尽管最近的工作提出了专用的高阶求解器,并且在无引导采样方面实现了进一步的加速,但是对于引导采样的有效性还没有经过充分的测试。在这项工作中,证明之前的高阶快速采样器存在不稳定性问题,当引导尺度变大时,甚至比 DDIM 还要慢。
为了进一步加速引导采样,本文提出了 DPM-Solver++ ,用于 DPMs 引导采样的高阶求解器。DPM-Solver++ 使用数据预测模型来求解扩散 ODE,并且采用阈值方法来保证解与训练数据分布相匹配。因而,进一步提出多步变体的 DPM-Solver++,通过减小有效步长来解决不稳定性问题。实验表明,DPM-Solver++ 可以在只有15到20步的情况下,为像素空间和潜在空间的DPMs生成高质量的引导采样。

采样器 DPM++ 3M SDE Karras 是一种用于稳定扩散(Stable Diffusion)的采样方法,基于 DPM++ 2M Karras 的改进版本,具有以下特点:

  • DPM++ 是一种动态采样器,可以根据每一步的梯度信息自适应地调整采样步长和方向。
  • 3M 表示采样器使用了三种不同的扩散模式(Diffusion Modes),分别是标准扩散(Standard Diffusion)、反向扩散(Reverse Diffusion)和交替扩散(Alternating Diffusion)。
  • SDE 表示采样器使用了随机微分方程(Stochastic Differential Equation)来模拟扩散过程。
  • Karras 表示采样器使用 Karras 等人提出的一种高效的随机数生成方法,可以减少计算量和内存消耗。

采样器 DPM++ 3M SDE Karras 的优点是可以在较低的步数和CFG值下生成高质量的图像,并且可以适应不同的模型和VAE。缺点是可能会出现一些噪声和伪影,并且需要较高的显卡性能。

测试参数:

  • 模型:DreamShaper_XL1.0_alpha2.safetensors
  • Sampling steps:30
  • CFG:7

测试效果(左侧是 DPM++ 2M SDE Karras,右侧是 DPM++ 3M SDE Karras):
Sampler

整体差别较小,建议使用 DPM++ 2M SDE Karras 即可。

SDXL 的 Refiner 的作用就是,使用精修模型(Refiner)对于基础模型(Base)的输出进行细化和优化,从而生成更接近真实的图像,与基础模型(Base)串联使用,也可以单独用于图像到图像的转换。

注意:对于现有的混合模型,如 DreamShaper 等,已包括精修,不需要额外使用 Refiner 操作,同时,两者的细节没有差别。

测试效果(左侧是 未使用 Refiner,右侧是 使用 Refiner):
SDXL
DreamShaper 使用 Refiner 导致部分细节颜色异常,注意右侧图像(Refiner),即:

IMG
Stable Diffusion WebUI 已支持 Refiner 功能,不需要额外插件,同时配置 切换时机,即:

Refiner

测试:

cinematic photo full body shot,(head-to-toe shot:1.2),1girl,a beatiful woman in a dress and jacket standing,(office lady high heels),
pantyhose,black leggings,outdoors,
people in the center,soft light,natural and comfortable pose,face to camera,
<lora:neg4all_xl_v6:1>,<lora:pantyhose_widget_xl_v10:1.2>, . 35mm photograph, film, bokeh, professional, 4k, highly detailed
Negative prompt: nsfw,breast,(ng_deepnegative_v1_75t:1.2),badhandv4, drawing, painting, crayon, sketch, graphite, impressionist, noisy, blurry, soft, deformed, ugly
Steps: 30, Sampler: DPM++ 3M SDE Exponential, CFG scale: 7, Seed: 3098710835, Size: 768x1152, Model hash: 0f1b80cfe8, Model: DreamShaper_XL1.0_alpha2, Denoising strength: 0.3, Clip skip: 2, ADetailer model: face_yolov8n.pt, ADetailer confidence: 0.3, ADetailer dilate/erode: 4, ADetailer mask blur: 4, ADetailer denoising strength: 0.4, ADetailer inpaint only masked: True, ADetailer inpaint padding: 32, ADetailer version: 23.9.2, Hires upscale: 2, Hires steps: 10, Hires upscaler: 4x-UltraSharp, Lora hashes: “neg4all_xl_v6: 9a735be26f5e, pantyhose_widget_xl_v10: 90b94c2a1974”, Version: v1.6.0

参考:Stable Diffusion - SDXL 模型测试与全身图像参数配置

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Linux集群时间同步方法

参考&#xff1a;https://www.cnblogs.com/felixzh/p/10638399.html

Qt(day1)

思维导图 Qt实现第一个web的基础页面 #include "mywnd.h" #include "ui_mywnd.h" #include<QLabel> #include<QLineEdit> #include<qpushbutton.h>MyWnd::MyWnd(QWidget *parent): QMainWindow(parent), ui(new Ui::MyWnd) {ui->set…

C语言的文件操作(炒详解)

⭐回顾回顾文件操作的相关细节⭐ 欢迎大家指正错误 &#x1f4dd;在之前的学习中&#xff0c;不管增加数据&#xff0c;减少数据&#xff0c;当程序退出时&#xff0c;所有的数据都会销毁&#xff0c;等下次运行程序时&#xff0c;又要重新输入相关数据&#xff0c;如果一直像这…

现在做抖音小店还来得及吗?新手正确入局抖店的流程,醒醒团队

我是王路飞。 现在很多入局抖音的&#xff0c;都意识到了一件事&#xff0c;那就是做店要比做账号容易。 做账号&#xff0c;意味着你选择了成为抖音网红-卖货的路线&#xff0c;看似光鲜亮丽&#xff0c;实则都是团队内容运气等多重因素结合得到的结果。 但是&#xff0c;做…

mysql MVCC多版本并发控制

mvcc的概念 mvcc 的实现依赖于&#xff1a; 隐藏字段 行格式&#xff08;row_id,trx_id,roll_ponter&#xff09;UndologRead view innodb 存储引擎的表来说&#xff0c;聚集索引记录中都包含两个必要的隐藏字段&#xff0c;row_id(如果没有聚集索引&#xff0c;才会创建的) …

【JDK 8-函数式编程】4.6 方法引用与构造函数引用

一、 方法引用与构造函数引用 1. 说明 2. 语法: 二、静态方法 三、实例方法 四、构造函数 4.1 单个参数 4.2 2个参数 五、执行结果 一、 方法引用与构造函数引用 以前调用&#xff1a;对象.方法名、类名.方法名 jdk1.8提供了另外一种调用方式 :: 1. 说明 用来直接访…

Jmeter —— 常用的几种断言方法(基本用法)

在使用JMeter进行性能测试或者接口自动化测试工作中&#xff0c;经常会用到的一个功能&#xff0c;就是断言&#xff0c;断言相当于检查点&#xff0c;它是用来判断系统返回的响应结果是否正确&#xff0c;以此帮我们判断测试是否通过&#xff0c;本文 主要介绍几种常用的断言&…

数据结构上机练习——单链表的基本操作、头文件、类定义、main函数、多种链表算法的实现,含注释

文章目录 单链表的基本操作实现1.头文件2.类定义和多种算法的实现2.1创建空表2.2头插法创建n个元素的线性链表2.3一个带头节点的链表存放一组整数&#xff0c;设计一个算法删除值等于x的所有节点。2.4计算线性表中值为偶数的节点个数2.5一个带头节点的单链表heada存放一组整数&…

13个Python必备的知识

Python在编程语言流行指数PYPL中已多次排名第一。 由于其代码可读性和更简单的语法&#xff0c;它被认为是有史以来最简单的语言。 NumPy、Pandas、TensorFlow等各种AI和机器学习库的丰富性&#xff0c;是Python核心需求之一。 如果是数据科学家或 AI/机器学习的初学者&#xf…

【论文记录】Boosting Detection in Crowd Analysis via Underutilized Output Features

Boosting Detection in Crowd Analysis via Underutilized Output Features Abstract Crowd Hat使用一种混合的2D-1D压缩技术进行细化空间特征与获取特定人群信息的空间和数量分布。进一步的&#xff0c;Crowd Hat采用自适应区域的NMS阈值与一个解耦然后对齐的范式来解决基于检…

小程序 navigateBack 携带参数返回的三种方式(详细)

如果觉着主图好看,点个赞,你早晚也会看到这么好看的景色! 第一种方式 getCurrentPages 获取当前页面栈。数组中第一个元素为首页,最后一个元素为当前页面。不要尝试修改页面栈,会导致路由以及页面状态错误。不要在 App.onLaunch 的时候调用 getCurrentPages(),此时 page …

java在mysql中查询内容无法塞入实体类中,报错 all elements are null

目录 一、问题描述二、解决方案 一、问题描述 java项目中整体配置了mysql的驼峰式字段匹配规则。 mybatis.configuration.map-underscore-to-camel-casetrue由于项目需求&#xff0c;需要返回字段为file_id&#xff0c;file_url&#xff0c;并且放入实体类中&#xff0c;实体…