【ComfyUI节点】扰动注意力引导Perturbed Attention Guidance

扰动注意力引导 Perturbed Attention Guidance

GitHub - KU-CVLAB/Perturbed-Attention-Guidance: Official implementation of "Perturbed-Attention Guidance"

按照官方介绍,扰动注意力指导显著提高了扩散模型的样本质量,而无需外部条件(例如类标签或文本提示)或额外训练。这在无条件生成设置中特别有价值,因为无分类器指导 (CFG) 不适用。我们的指导可用于增强利用无条件扩散模型的各种下游任务的性能,包括带有空提示的 ControlNet 和超分辨率和修复等图像恢复任务。

论文地址

Perturbed-Attention Guidance

https://arxiv.org/pdf/2403.17377

使用PAG之前: 

使用PAG之后:

以下是对文章的详细总结:

主要贡献:

  • PAG技术:提出了一种新型的采样引导方法,能够在无条件和有条件的设置中提升扩散样本的质量。
  • 无需额外训练:PAG不需要额外的训练或集成外部模块,即可实现性能提升。
  • 结构增强:通过在去噪过程中逐步增强样本结构,特别是在无条件生成场景中,PAG能够显著提升样本质量。

技术细节:

  • 自注意力机制:利用自注意力图捕获结构信息的能力,通过替换扩散U-Net中的自注意力图为单位矩阵来生成结构降级的中间样本。
  • 隐式判别器:使用隐式判别器区分理想样本和不理想样本,引导去噪过程远离结构崩溃的样本。
  • PAG实现:通过扰动自注意力图,PAG能够在不同时间步长上提供语义线索,从而改善样本的结构和细节。

实验结果:

  • 定量结果:在ADM和Stable Diffusion模型上,PAG在无条件和有条件的设置中均能显著提升样本质量。
  • 定性结果:通过视觉比较,PAG引导的样本在结构和语义上更为合理,与未引导的样本相比,具有更高的质量。
  • 下游任务:PAG在图像恢复(如修复和去模糊)和ControlNet条件下的图像生成等下游任务中表现出色。

相关工作:

  • 扩散模型:讨论了扩散模型在图像生成中的基准和挑战,以及如何通过改进采样速度和训练成本来提高性能。
  • 采样引导技术:分析了分类器引导(CG)和无分类器引导(CFG)等现有技术的优缺点。

实验设置:

  • 评估指标:使用了FID、IS和改进的精确度和召回率等指标来评估生成样本的质量。
  • 实验环境:所有实验在NVIDIA GeForce RTX 3090 GPU和NVIDIA RTX A6000 GPU上进行。

应用案例:

  • Stable Diffusion:PAG在Stable Diffusion模型上的无条件生成和文本到图像合成任务中均显示出优势。
  • 图像恢复:在PSLD模型中,PAG显著提升了图像恢复任务的性能。

讨论与未来工作:

  • PAG与CFG的比较:PAG在保持样本多样性的同时提升了质量,而CFG可能会牺牲多样性。
  • 计算成本:PAG与CFG具有相似的计算成本,但未来研究可以探索减少计算开销的技术。

结论:

文章认为PAG通过结构扰动改进了图像生成质量,且适用于无条件和有条件的设置。PAG在多种下游任务中表现出了其有效性,丰富了对采样引导方法和扩散模型的理解,并展示了无条件扩散模型的广泛应用潜力。

试验测试

comfyui节点其实已经内置了,所以不需要另外安装。

搭建一个简单的工作流:

总体来说,效果还是有提升的,对不同大模型的兼容性也还不错,推荐尝试一下,或许可以提升画面效果;

✨写在最后

如果对comfyui还不熟悉的话,最近面向ComfyUI的新手,开了一门图文课程,现在已经更新完成了,如果大家在学习过程中遇到什么问题,也可以直接文章下留言,会持续更新相关答疑内容哈。欢迎订阅哦~

https://blog.csdn.net/jumengxiaoketang/category_12683612.html

​​

感谢大家的支持~

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

测试用例编写与管理流程

hello,大家好,我是一名测试开发工程师,至今已在自动化测试领域深耕9个年头,现已将本人实战多年的多终端自动化测试框架【wyTest】开源啦,在接下来的一个月里,我将免费指导大家使用wyTest,请大家…

14-Django项目--文件上传-Excel

目录 前端 路由 视图函数 前端 <div class"modal-body"><form method"post" enctype"multipart/form-data" action"/pretty/asset/">{% csrf_token %}<input type"file" name"excel"><bu…

Leetcode3194. 最小元素和最大元素的最小平均值

Every day a Leetcode 题目来源&#xff1a;3194. 最小元素和最大元素的最小平均值 解法1&#xff1a;排序遍历 将数组 nums 排序后&#xff0c;利用双指针计算每一对 (minElement maxElement) / 2&#xff0c;最小值即为答案。 代码&#xff1a; /** lc appleetcode.cn …

Spring源码十七:Bean实例化入口探索

上一篇Spring源码十六&#xff1a;Bean名称转化我们讨论doGetBean的第一个方法transformedBeanName方法&#xff0c;了解Spring是如何处理特殊的beanName&#xff08;带&符号前缀&#xff09;与Spring的别名机制。今天我们继续往方法下面看&#xff1a; doGetBean 这个方法…

AI 大模型系统实战

AI 大模型是什么&#xff1f; 维基百科对基础模型的定义是这样的&#xff0c;基础模型是一种大型机器学习模型&#xff0c;通常在大量数据上进行大规模训练&#xff08;通过自监督学习或半监督学习&#xff09;&#xff0c;以使它可以适应各类下游任务。因此&#xff0c;它需要…

数学系C++ 类与对象 STL(九)

目录 目录 面向对象&#xff1a;py&#xff0c;c艹&#xff0c;Java都是,但c是面向过程 特征&#xff1a; 对象 内敛成员函数【是啥】&#xff1a; 构造函数和析构函数 构造函数 复制构造函数/拷贝构造函数&#xff1a; 【……】 实参与形参的传递方式&#xff1a;值…

【Java】了解异常

初始异常 我们平时应该已经接触过一些 “异常” 了&#xff0c;这里列举一些例子。 算术异常&#xff1a; 数组下标越界异常&#xff1a; 访问空指针异常&#xff1a; 所谓异常指的就是程序在 运行时 出现错误时通知调用者的一种机制。 异常的基本用法 捕获异常 try{ 有可能…

知识的向量表示

1、one-hot表示&#xff0c;空间太大 2、bag词袋模型&#xff0c;无法表示词的语义 3、词的语义由什么决定&#xff1f;词由他的上下文决定&#xff1f;分布式语义 4、CBow&#xff0c;通过前面几个词和后面几个词&#xff0c;预测中间几个词 5、skip-gram&#xff0c;通过…

【Python】已解决:(MongoDB安装报错)‘mongo’ 不是内部或外部命令,也不是可运行的程序

文章目录 一、分析问题背景二、可能出错的原因三、错误代码示例四、正确代码示例及解决方案五、注意事项 已解决&#xff1a;&#xff08;MongoDB安装报错&#xff09;‘mongo’ 不是内部或外部命令,也不是可运行的程序 一、分析问题背景 在安装和配置MongoDB时&#xff0c;有…

数据库逆向工程工具reverse_sql

reverse_sql 是一个用于解析和转换 MySQL 二进制日志&#xff08;binlog&#xff09;的工具。它可以将二进制日志文件中记录的数据库更改操作&#xff08;如插入、更新、删除&#xff09;转换为反向的 SQL 语句&#xff0c;以便对系统或人为产生的误操作进行数据回滚和恢复。 *…

Python28-9 XGBoost算法

XGBoost&#xff08;eXtreme Gradient Boosting&#xff0c;其正确拼写应该是 "Extreme Gradient Boosting"&#xff0c;而XGBoost 的作者在命名时故意使用了不规范的拼写&#xff0c;将“eXtreme”中的“X”大写&#xff0c;以突出其极限性能和效率&#xff09;是一…

【open3d专栏】利用PCA计算狭长点云的主方向

在点云处理中&#xff0c;PCA通常用于识别数据集中的主要方向&#xff0c;从而帮助理解数据的几何结构。 使用工具&#xff1a;python&#xff0c;open3d库 目的&#xff1a;计算狭长型点云的主方向 # -*- coding: utf-8 -*- """ Created on Sun Jul 7 11:50…

SpringMVC源码解析(一):web容器启动流程

SpringMVC源码系列文章 SpringMVC源码解析(一)&#xff1a;web容器启动流程 目录 一、SpringMVC全注解配置1、pom文件2、web容器初始化类(代替web.xml)3、SpringMVC配置类(代替springmvc.xml)4、测试Controller 二、SpringServletContainerInitializer1、web容器初始化入口2、…

RNN 交叉熵

RNN善于处理时序 序列数据 简单RNN 展开就是 LSTM 遗忘门f_t决定上期记忆保留多少 隐藏层 在神经网络中&#xff0c;隐藏层指的是除了输入层和输出层之外的层&#xff0c;它们的输出不会直接用于网络的最终输出&#xff0c;而是作为中间步骤用于提取和转换数据。因此&#x…

LabVIEW光谱测试系统

在现代光通信系统中&#xff0c;光谱分析是不可或缺的工具。开发了一种基于LabVIEW的高分辨率光谱测试系统&#xff0c;通过对可调谐激光器、可编程光滤波器和数据采集系统的控制&#xff0c;实现了高效、高精度的光谱测量。 项目背景 随着光通信技术的迅速发展&#xff0c;对…

Filter和Listener

1. Filter 过滤器 1 过滤器简介 Filter过滤器是JavaWeb的三大组件&#xff08;Servlet程序、Listener监听器、Filter过滤器&#xff09;之一 Filter作用&#xff1a;拦截请求、过滤响应 是javaee的规范也是接口 拦截请求常见的应用有 权限检查日记操作事务管理 2 Filter …

刷题之多数元素(leetcode)

多数元素 哈希表解法&#xff1a; class Solution { public:/*int majorityElement(vector<int>& nums) {//map记录元素出现的次数&#xff0c;遍历map&#xff0c;求出出现次数最多的元素unordered_map<int,int>map;for(int i0;i<nums.size();i){map[nu…

详解Java垃圾回收(GC)机制

一、为什么需要垃圾回收 如果不进行垃圾回收&#xff0c;内存迟早都会被消耗空&#xff0c;因为我们在不断的分配内存空间而不进行回收。除非内存无限大&#xff0c;我们可以任性的分配而不回收&#xff0c;但是事实并非如此。所以&#xff0c;垃圾回收是必须的。 二、哪些内…

flutter环境安装(Mac+vscode)

以前据说flutter跨平台开发app很牛逼&#xff0c;最近突然想到这个东西&#xff0c;于是想体验一下flutter的开发流程&#xff0c;看看能否适合做独立开发。 我用的是mac&#xff0c;手机也是ios&#xff0c;就开始着手部署mac下的开发环境了。 开发后台的时候&#xff0c;一…

Vine: 一种全新定义 Vue 函数式组件的解决方案

7月6日的 vue confg 大会上 ShenQingchuan 大佬介绍了他的 Vue Vine 项目&#xff0c; 一种全新定义 Vue 函数式组件的解决方案。 和 React 的函数式组件有异曲同工之妙&#xff0c;写起来直接起飞了。 让我们来快速体验一下 vine&#xff0c; 看看到底给我们带来了哪些惊喜吧…