hypernetwork在SD中是怎么工作的

news2024/10/7 20:32:45

大家在stable diffusion webUI中可能看到过hypernetwork这个词,那么hypernetwork到底是做什么用的呢?

简单点说,hypernetwork模型是用于修改样式的小型神经网络。

什么是 Stable Diffusion 中的hypernetwork?

Hypernetwork 是由 Novel AI 开发的一种微调技术,Novel AI 是 Stable Diffusion 的早期使用者。它是一个小型神经网络,附加到 Stable Diffusion 模型以修改其样式。

前面我们有提到SD模型中最关键的部分就是噪声预测器UNet,而Unet里面的关键部分就是交叉注意力模块。Hypernetwork就是修改了这部分内容。

同样的LoRA 模型也类似地修改了 Stable Diffusion 模型的这一部分,但方式不同。

如果有人还不知道Unet是什么的话,这里给一张官方的图片:

img

hypernetwork一般是一个结构简单的神经网络:一个包含dropout和激活函数的全连接线性网络,类似于你在神经网络基础课程中所学到的网络类型。它们通过插入两个子网络来转换key和query向量,进而接管了交叉注意力模块。以下是原始模型与接管后的模型架构的对比。

原始的交叉注意力模块直接利用输入的key和query向量来计算注意力权重。

但在hypernetwork介入后,这些向量会先经过hypernetwork中的两个子网络进行变换,然后再用于注意力机制的计算。这种变换使得模型能够以一种更加动态的方式调整其注意力机制,可能会增强模型对输入数据的敏感度和适应能力。

image-20240423110100146

image-20240423110304459

在训练过程中,Stable Diffusion 模型本身保持固定,但允许附加的hypernetwork进行调整。由于hypernetwork的规模较小,它能够快速训练,且所需的计算资源不多,这使得训练过程甚至可以在一台普通的计算机上完成。

快速的训练能力和较小的模型文件大小是hypernetwork的主要优势。

需要注意的是,Stable Diffusion 中的hypernetwork与机器学习领域中通常所指的hypernetwork有所不同。在这里,hypernetwork的作用是为另一个神经网络生成权重。因此,Stable Diffusion 的hypernetwork并不是在 2016 年发明的,它是一种更新的、专门用于生成网络权重的技术。

与其他model的区别

除了hypernetwork, SD中还有几个其他的几个model:checkpoint model、LoRA 和embedding。这里讲一下他们的区别:

checkpoint model

checkpoint model包含生成图像所需的所有信息。这种模型的大小从 2 GB 到 7 GB不等。而hypernetwork的大小通常低于 200 MB。

hypernetwork不能单独运行。它需要使用checkpoint model来生成图像。

checkpoint model比hypernetwork更强大。它可以比hypernetwork更好地存储样式。训练checkpoint model时,会对整个模型进行微调。训练hypernetwork时,仅对hypernetwork进行微调。

LoRA

LoRA 模型与hypernetwork最相似。它们都很小,只修改了交叉注意力模块。区别在于他们如何修改它。

LoRA 模型通过改变其权重来修改交叉注意力。hypernetwork通过插入其他网络来实现。

通常来说 LoRA 模型会产生更好的结果。它们的文件大小相似,通常小于 200MB。

LoRA 是一种数据存储技术,它并不直接规定训练流程,无论是 dreambooth 训练还是其他形式的额外训练都是可行的。而超网络则确实规定了训练流程。

LoRA 利用低秩矩阵来高效地调整和存储网络权重的变化,这使得模型可以更加高效地进行特定任务的微调,而不需要对整个模型架构进行大规模的改动。

与此相对,超网络通过生成另一个网络的权重来定义训练过程,为训练中的网络提供动态的权重,从而允许在训练过程中进行更灵活的学习和调整。

embedding

嵌入向量是“文本反转”微调技术的结果。与超网络一样,文本反转不会更改模型的架构,而是通过定义新的关键词来捕捉某些特定的风格或属性。

文本反转和超网络在稳定扩散模型中各司其职。文本反转在文本编码器层面上生成新的嵌入,而超网络则通过在噪声预测器的交叉注意力模块中插入一个小网络来实现其功能。

在哪下载hypernetwork

当然下载模型的最好的地方是 civitai.com。使用 hypernetwork 筛选模型类型。

image-20240423102828905

如何使用hypernetwork

步骤 1:安装hypernetwork模型

要在 Webui AUTOMATIC1111安装hypernetwork模型,请将模型文件放在以下文件夹中。

‘stablediffusion-webui/models/hypernetworks’

步骤 2:使用hypernetwork模型

若要使用hypernetwork,请在提示符中输入以下描述。

<hypernet:filename:multiplier>

其中filename是hypernetwork的文件名,不包括扩展名 (.pt .bin等)。

multiplier是应用于hypernetwork模型的权重。默认值为 1。将其设置为 0 将禁用模型。

如何不知道文件名怎么办呢?在webUI中有一个更简单的办法:单击“hypernetwork”选项卡。你应该会看到已安装的hypernetwork列表。单击要使用的那个。

对应的描述将插入到提示中。

image-20240423104047480

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

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

相关文章

v0.9.6 开源跨平台个人知识管理工具 TidGi-Desktop

在这个信息爆炸的时代&#xff0c;知识管理变得尤为重要。太记(TidGi)&#xff0c;一款基于太微(TiddlyWiki)的知识管理桌面应用&#xff0c;正是为了满足人们对信息整理、知识管理和个人隐私保护的需求而设计的。它不仅能够帮助用户高效地管理和整理信息&#xff0c;还能够自动…

Linux-笔记 全志平台休眠功能初探

前言 全志平台支持的休眠功能主要包括两种模式&#xff1a;休眠模式和待机模式。这两种模式用于降低设备的功耗&#xff0c;并在需要时快速恢复工作状态。由于平台为T113&#xff0c;所以可以很方便的使用RTC来做唤醒源。唤醒源指的是能够让系统从休眠状态恢复到工作状态的信号…

CesiumJS【Basic】- #016 多边形面渲染“花了”的问题

文章目录 多边形面渲染“花了”的问题1 目标2 问题代码3 修正后代码4 总结多边形面渲染“花了”的问题 1 目标 解决多边形的面“花了”的问题 2 问题代码 使用Cesium.PerInstanceColorAppearance渲染后出现色斑 import * as Cesium from "cesium";const viewer …

【Linux详解】进程的状态 | 运行 阻塞 挂起 | 僵尸和孤儿状态

目录 操作系统中 运行状态 阻塞状态 进程状态转换 Linux系统中 查看进程状态 深度睡眠状态 T 暂停状态 Z 僵尸状态 孤儿状态 文章手稿 xmind: 引言 介绍系统中的进程状态及其管理方式。将通过结合操作系统原理和实际代码示例&#xff0c;详细说明进程的各种状态、转换…

C++初学者指南-2.输入和输出---流输入和输出

C初学者指南-2.输入和输出—流输入和输出 文章目录 C初学者指南-2.输入和输出---流输入和输出1.定制输入/输出1.1 示例&#xff1a;点坐标输入/输出1.2 流操作符1.3&#xff08;一部分&#xff09;标准库流类型 2. 工具2.1 用getline读取行 2.2 用ignore进行跳转2.3 格式化操作…

RT-Thread使用HAL库实现双线程控制LED交替闪烁

如何创建工程我的其他文中你面有可以进去查看 1创建线程&#xff08;以动态方式实现&#xff09; 1-2创建函数入口 1-2启动函数 main.c文件源码 /** Copyright (c) 2006-2024, RT-Thread Development Team** SPDX-License-Identifier: Apache-2.0** Change Logs:* Date …

udp udpClient 聊天室

简介 1、UDP&#xff08;User Data Protocol&#xff0c;用户数据报协议&#xff09; &#xff08;1&#xff09; UDP是一个非连接的协议&#xff0c;传输数据之前源端和终端不建立连接&#xff0c;当它想传送时就简单地去抓取来自应用程序的数据&#xff0c;并尽可能快地把它…

【笔记】备份VScode代码至GitHub

目录 不小心把代码删掉了&#xff0c;还没备份备份步骤创建新工作区和测试文件还有GitHub项目初始化git注意 最后一步 不小心把代码删掉了&#xff0c;还没备份 试着安装了一下GitHub Pull Requests&#xff0c;不会用 备份步骤 创建新工作区和测试文件还有GitHub项目 首先…

vscode 删除不用的ssh远程连接

使用vscode连接一个远程服务器发现联不通&#xff0c;但是使用mobaxterm是可以通的&#xff0c;最后原因发现是这个服务器ip与之前连过的另一台相同&#xff0c;和之前连接保存的信息冲突了 解决办法&#xff1a; 使用记事本打开这个路径下的known_hosts(最好备份一下)&#x…

Python代码打包成exe应用

目录 一、前期准备 二、Pyinstaller打包步骤 Pyinstaller参数详解 三、测试 Spec 文件相关命令 一、前期准备 &#xff08;1&#xff09;首先&#xff0c;我们需要确保你的代码可以在本地电脑上的pycharm正常运行成功。 &#xff08;2&#xff09;我们要先安装Pyinstalle…

第 5 章理解 ScrollView 并构建 Carousel UI

通过上一章的学习,我相信你现在应该明白如何使用堆栈构建复杂的 UI。当然,在你掌握 SwiftUI 之前,你还需要大量的练习。因此,在深入研究 ScrollView 以使视图可滚动之前,让我们先以一个挑战开始本章。你的任务是创建一个类似于图 1 所示的卡片视图。 …

HarmonyOS开发 - 日志打印

在程序开发过程中&#xff0c;日志输出是不可或缺的一部分。能有效的记录和分析日志数据&#xff0c;使开发人员可以更好地了解程序的运行状况、解决问题、优化性能并满足合规性要求等。 当程序出现错误或异常时&#xff0c;日志记录输出可以帮助开发人员快速定位问题发生的位置…

2024年最新通信安全员考试题库

61.架设架空光缆&#xff0c;可使用吊板作业的情况是&#xff08;&#xff09;。 A.在2.2/7规格的电杆与墙壁之间的吊线上&#xff0c;吊线高度5m B.在2.2/7规格的墙壁与墙壁之间的吊线上&#xff0c;吊线高度6m C.在2.2/7规格的电杆与电杆之间的吊线上&#xff0c;吊线高度…

JAVA开发的一套医院绩效考核系统源码:KPI关键绩效指标的清晰归纳

KPI是关键绩效指标&#xff08;Key Performance Indicators&#xff09;的缩写&#xff0c;它是一种用于衡量员工或组织绩效的量化指标。这些指标通常与组织的目标和战略相关&#xff0c;并帮助管理层评估员工和组织的实际表现。KPI还可以为员工提供清晰的方向&#xff0c;使他…

ORBSLAM3_ROS_Ubuntu18_04环境搭建安装

orbslam3安装 ORB-SLAM3配置及安装教程&#xff08;2023.3&#xff09;_orbslam3安装-CSDN博客 换源&#xff0c;换成国内的 搜索software 安装工具 sudo apt install git sudo apt update sudo apt install gcc g cmake安装 cmake安装新版本 ubuntu20.04安装cmake详细…

《数据赋能:一本书讲透数字化营销与运营》—— 从正确的数据观开始

基于数据打通的“全链路”营销是当下的“时髦”&#xff0c;应用它的前提是什么&#xff1f;深度营销和运营的关键数据如何获得&#xff1f;如何利用数据进行更精准的营销投放&#xff1f;如何利用数据优化投放的效果&#xff1f;如何促进消费者的转化&#xff0c;以及激活留存…

分享一套基于SSM的九宫格日志网站(源码+文档+部署)

大家好&#xff0c;今天给大家分享一套基于SSM的九宫格日志网站 开发语言&#xff1a;Java 数据库&#xff1a;MySQL 技术&#xff1a;SpringSpringMvcMyBatis 工具&#xff1a;IDEA/Ecilpse、Navicat、Maven 博主介绍&#xff1a; 一名Java全栈工程师&#xff0c;专注于Java全…

GPT-5:AI的博士时代与我们的未来

目录 引言第一部分&#xff1a;GPT-5技术突破预测1. NLP技术的革新1.1 算法进步对理解力提升的影响1.2 技术突破推动行业发展 2. 行业推动力2.1 教育行业的变革2.2 医疗行业的创新2.3 法律行业的效率提升 第二部分&#xff1a;智能系统与人类的协作1. 辅助决策的角色1.1 决策支…

基于JSP的沙县小吃点餐系统

开头语&#xff1a;你好呀&#xff0c;我是计算机学长猫哥&#xff01;如果有相关需求&#xff0c;文末可以找到我的联系方式。 开发语言&#xff1a;Java 数据库&#xff1a;MySQL 技术&#xff1a;JSP技术 工具&#xff1a;Eclipse、MySQL、WAMP服务器 系统展示 管理员…

探索 LLamaWorker:基于LLamaSharp的.NET本地大模型服务

LLamaWorker 是一个基于 LLamaSharp 项目开发的 HTTP API 服务器。它提供与 OpenAI 兼容的 API&#xff0c;使得开发者可以轻松地将大型语言模型&#xff08;LLM&#xff09;集成到自己的应用程序中。 1. 背景 在人工智能领域&#xff0c;大型语言模型&#xff08;LLM&#xf…