支持的格式
PNG | JPEG | WEBP | TXT* | |
---|---|---|---|---|
A1111的webUI | ✅ | ✅ | ✅ | ✅ |
Easy Diffusion | ✅ | ✅ | ✅ | |
StableSwarmUI* | ✅ | ✅ | ||
StableSwarmUI(0.5.8-alpha之前版本)* | ✅ | ✅ | ||
Fooocus-MRE* | ✅ | ✅ | ||
NovelAI(隐藏pnginfo) | ✅ | ✅ | ||
NovelAI(旧版) | ✅ | |||
InvokeAI | ✅ | |||
InvokeAI(2.3.5-post.2之前版本) | ✅ | |||
InvokeAI(1.15之前版本) | ✅ | |||
ComfyUI* | ✅ | |||
Draw Things | ✅ | |||
Naifu(4chan) | ✅ |
详情请参阅SD提示词读取器
安装
[!注意] 虽然提供了ZIP包,但强烈建议不要使用它来安装。
通过 ComfyUI Manager 安装和更新(推荐)
在ComfyUI Manager中搜索 SD Prompt Reader
并安装。
手动安装
请确保在安装主仓库的同时也安装子模块。
cd
到custom_node
文件夹- 克隆此仓库
git clone --recursive https://github.com/receyuki/comfyui-prompt-reader-node.git
- 安装依赖
cd comfyui-prompt-reader-node pip install -r requirements.txt
更新
更新时,别忘了同时更新主仓库和子模块。
git pull --recurse-submodules
使用方法
Prompt Reader 节点
Prompt Reader
节点的功能与独立版SD Prompt Reader完全相同。它使用来自独立版SD Prompt Reader的图像数据读取器,因此支持相同的格式,并能随SD Prompt Reader一起更新。
[!重要] 由于自定义节点和复杂的工作流可能会影响SD Prompt Reader正确读取图像元数据的能力,建议在工作流中嵌入
Prompt Saver
节点以确保最大兼容性。
更多信息
parameter_index
- 对于包含多组参数的图像,如通过
hires-fix
或refiner
处理的图像,你需要修改parameter_index
以选择所需的参数。
SDXL
- 对于由SDXL生成并包含多组提示的图像,
text_g
将与text_l
合并为单一提示。
批量读取
- 对于批处理,请使用
Batch Loader
节点。使用Batch Loader
节点进行批量读取时,预览图像不会更新,文本框只会显示最后一张图像的元数据。
附加参数
- 要读取现有输出以外的参数,请将
settings
连接到Parameter Extractor
节点。
MODEL_NAME
MODEL_NAME
是一个特殊输出,它根据以下优先级将元数据中的模型名称与服务器上现有的模型匹配:- 相同的路径、文件名和扩展名。
- 相同的文件名和扩展名。
例如,
sd_xl_base.safetensors
将与SDXL\sd_xl_base.safetensors
匹配,反之亦然。 - 相同的文件名。
例如,
sd_xl_base
将与SDXL\sd_xl_base.safetensors
匹配,反之亦然。 - 如果找不到匹配的模型,将输出原始名称。
Prompt Saver 节点
更多信息
图像格式
- 只有PNG格式支持同时嵌入元数据和工作流。其他格式只能嵌入元数据。
文件名重复
- 当文件名已存在时,将在文件名末尾添加索引,例如:
file.png, file_1.png, file_2.png
。
哈希值与Civitai上的自动检测
- 启用「calculate_hash」时,节点将计算检查点、VAE、Lora和嵌入/文本反转的哈希值,并将其写入元数据。服务器重启后,或加载新的检查点、VAE、Lora或嵌入/文本反转时,首次图像生成可能需要更长时间来计算哈希值。哈希值将存储在临时存储中,无需重复计算,直到服务器重启。
- 启用「resource_hash」时,资源哈希值将被写入元数据以支持Civitai上的自动检测。此功能仅在启用「calculate_hash」时运行。
- 如需计算Lora的哈希值,请使用「Lora加载器」节点或「Lora选择器」节点。嵌入/文本反转的哈希值将从提示词中自动检测。
「save_metadata_file」
- 开启「save_metadata_file」时,元数据将以与图像同名的TXT文件保存在图像旁边。
「date_format」和「time_format」
- 关于「date_format」和「time_format」,请参考strftime.org或www.strfti.me。
「filename」和「path」
-
「%counter」不能用于「path」,只能用于「filename」。这个「%counter」与内置「Saver」节点中的「%counter」略有不同,它会计算「path」中的所有图像文件。
-
「filename」和「path」支持的占位符请参考下表。
%seed %date %steps %time %cfg %counter %model %extension %sampler %quality %scheduler
参数生成器节点
- 由于无法直接从「KSampler」提取元数据,需要使用「参数生成器」节点生成参数,并同时将其输出到「提示词保存器」节点和「KSampler」节点。
[!提示] 「参数生成器」节点也可以用作复杂ComfyUI工作流的控制面板,就像AP工作流一样。
更多信息
最佳分辨率
- 「model_version」和「aspect_ratio」仅用于计算所选模型版本在选定宽高比下的最佳分辨率。计算方法基于Stability AI开发文档和StableSwarmUI源代码(由Stability AI开发)。
「refiner_start」
- 「refiner_start」指精炼器开始运行时已完成步骤的比例,即基础步骤占总步骤的比例。这用于计算精炼器「KSampler」在选定步骤比例下所需的「start_at_step」(「REFINER_START_STEP」)。
批次加载器
节点专为提示词读取器
节点批量读取目录中的图像文件而设计,不能与其他自定义节点一起使用。
更多信息
- 对于批处理,请将
批次加载器
节点的IMAGE
输出连接到提示词读取器
节点的image
输入。
路径
路径
支持相对路径如./input/
或绝对路径如C:/Users/receyuki/Pictures
。\
和/
都可以使用。- 您也可以在
路径
中输入单个文件或文件列表,这种情况下图像加载限制
和起始索引
将不起作用。
参数提取器节点
参数提取器
节点是提示词读取器
节点的扩展,旨在检索设置中所有参数的值(包括提示词读取器
节点无法输出的参数)。例如高分辨率放大器
更多信息
- 将
提示词读取器
节点的SETTINGS
连接到参数提取器
节点的settings
。首次运行后,参数列表将被加载。
提示词合并器节点 & 类型转换器节点
- 由于A1111格式无法单独存储
text_g
和text_l
,SDXL用户需要使用提示词合并器
节点将text_g
和text_l
合并为单个提示词。 - 由于
model_name
、sampler_name
和scheduler
是一些其他节点无法直接使用的特殊类型,您可以使用类型转换器
节点将它们转换为STRING
类型。
Lora加载器节点 & Lora选择器节点
Lora加载器
节点和Lora选择器
节点用于将Lora数据写入元数据,并支持在Civitai上自动检测。
更多信息
- 将原始加载器替换为`Lora 加载器`节点,或将`Lora 选择器`节点的`LORA_NAME`输出连接到其他lora加载器(内置或自定义)的`lora_name`输入,并将`NEXT_LORA`输出连接到`提示保存器`节点的`lora_name`输入。这两个节点具有相同的功能,请根据需要选择。多个Loras
- 如果需要加载多个Loras,请通过
last_lora
和NEXT_LORA
将Lora 加载器
节点或Lora 选择器
节点首尾相连,并将Lora链末端的NEXT_LORA
连接到提示保存器
节点的lora_name
输入。
- Lora 加载器链
- Lora 选择器链
示例工作流程
简单示例
Lora 示例
高分辨率修复示例
SDXL 示例
致谢
- SD提示读取器节点基于ComfyUI Load Image With Metadata
- SD提示保存器节点基于Comfy Image Saver和Stable Diffusion Webui
- SD参数生成器中的种子生成器修改自rgthree's Comfy Nodes
- 特别感谢@alessandroperilli和他的AP Workflow提供了众多建议