附加网络面板是 Stable Diffusion Web UI 的核心组件,它提供了一个集中的界面,用于浏览、搜索和应用各种类型的网络模型,例如文本反转(嵌入)、LoRA、超网络和模型检查点。本文档解释了该面板的工作原理、其架构以及用户如何与之交互。
有关可以通过此面板管理的不同类型网络的信息,请参阅模型管理。
附加网络面板作为模型资产的有组织画廊,这些模型资产可以添加到您的生成过程中。它允许您
附加网络面板被组织为一个标签页界面,该界面出现在 txt2img 和 img2img 标签页中的主生成控件下方。每个标签页代表不同类别的模型(例如,文本反转、超网络、检查点)。
来源:modules/ui_extra_networks.py186-209 modules/ui_extra_networks.py702-744
附加网络面板采用基于页面的架构,其中每种类型的模型都由一个派生自 ExtraNetworksPage 的特定页面类进行管理。这使得可以对不同模型类型进行可扩展和定制化的处理。
来源:modules/ui_extra_networks.py186-633 modules/ui_extra_networks.py693-700
每个网络都表示为一个“项”——一个包含模型信息的字典
| 键 | 描述 |
|---|---|
名称 | 模型的显示名称 |
filename | 模型文件的完整路径 |
preview | 预览图像的 URL |
description | 文本描述(来自相关的 txt 文件) |
prompt | 要插入到提示中的 JavaScript 字符串 |
local_preview | 预览图像的本地路径 |
metadata | 模型元数据(来自文件或用户定义) |
search_terms | 用于过滤的词语 |
sort_keys | 用于排序的键 |
来源:modules/ui_extra_networks.py224-247 modules/ui_extra_networks.py252-351
附加网络面板提供了三种不同的方式来浏览和导航可用的模型
卡片视图是浏览模型的主要界面。每个模型都表示为一个卡片,其中包含
卡片以网格形式显示,可以进行排序和过滤。
┌──────────────────────────┐
│ │
│ [Preview] │
│ │
│ Model Name [⋮] │
│ Description │
│ │
└──────────────────────────┘
来源:modules/ui_extra_networks.py552-573 style.css1013-1075
树状视图提供了一个分层的、根据目录结构组织的模型文件系统视图。
来源:modules/ui_extra_networks.py455-509 style.css1212-1646
目录视图提供了一个扁平化的目录导航,带有每个文件夹的按钮。
[all] [lora/] [lora/characters/] [lora/styles/] [embeddings/]
来源:modules/ui_extra_networks.py511-550 style.css900-913
当用户单击模型卡片时,会触发 cardClicked JavaScript 函数,该函数会
模型的提示格式因网络类型而异
embedding:concept<lora:model:strength><hypernet:model:strength>来源:javascript/extraNetworks.js256-264 javascript/extraNetworks.js209-253
搜索功能允许按名称或路径过滤模型。搜索是在客户端使用 JavaScript 完成的。
来源:javascript/extraNetworks.js51-70 modules/ui_extra_networks.py314-323
模型可以按以下方式排序:
排序在 JavaScript 中实现,并动态重新排序卡片。
来源:javascript/extraNetworks.js73-109 modules/ui_extra_networks.py634-645
可以通过单击卡片上的信息按钮来查看模型元数据。元数据通过 API 端点从服务器获取,并在弹出窗口中显示。
来源:javascript/extraNetworks.js613-629 modules/ui_extra_networks.py139-152
系统通过多种方式处理模型预览
model.png, model.preview.png)系统使用一个特定的端点来提供这些预览。
./sd_extra_networks/thumb?filename={quoted_filename}&mtime={mtime}
来源:modules/ui_extra_networks.py97-111 modules/ui_extra_networks.py647-670
用户可以为模型添加自定义元数据,这些元数据与模型文件分开存储。这由 UserMetadataEditor 类处理。
来源:javascript/extraNetworks.js633-654 modules/ui_extra_networks.py687
附加网络面板通过 create_ui 函数集成到主 UI 中,该函数会
来源: modules/ui_extra_networks.py735-790
Extra Networks Panel 被设计为可扩展的。可以通过以下方式添加新的网络类型:
ExtraNetworksPage 的新类list_items、create_item 等)register_page 注册页面来源: modules/ui_extra_networks.py89-95
Extra Networks Panel 提供了一个强大且可扩展的界面,用于管理和使用 Stable Diffusion 的各种网络类型。其架构支持轻松浏览、搜索和将模型应用于提示,并支持不同的视图模式和元数据管理。
该面板的设计能够适应基本的使用模式和高级工作流程,并提供树状视图导航、排序和元数据编辑等功能,帮助用户高效地组织和处理大量的模型集合。