SAFETRIGGERS; Python Tool for READING TAGS & TRIGGERS FROM LoRAs

详情

模型描述

LoRA 可真够烦人的!

safetriggers.py 是一个适用于 Linux(已在 Ubuntu Server 24.10 上测试)的命令行 Python 脚本,能够从基于带标签源图像训练的 LoRA 中提取 标签(TAGS)触发词(TRIGGER-WORDS)触发短语(TRIGGER-PHRASES),并将其显示在屏幕上,或保存为以下格式的文件:

<LoRA 名称>.safetriggers

该文件与您的 LoRA 放在同目录下,便于分发给用户快速查阅,它是一个小巧简洁的 JSON 文本文件。

注意:LoRA 文件(*.safetensors)不会被修改,仅被读取。

触发内容按重要性排序,优先级最高的排在最前,依据是源图像中标签的出现频率(按训练时的顺序)。

这使得您能轻松看出 LoRA 实际上是基于什么训练的,结果有时会出人意料。

Q. LoRA 用户!想快速知道名为 "foo_bar.safetensors" 的 LoRA 的触发词是什么?

python3 safetriggers.py --lora foo_bar

Q. LoRA 创建者!想轻松生成一个文件,告诉用户哪些触发词能让名为 "foo_bar.safetensors" 的 LoRA 生效?

python3 safetriggers.py --mksafetriggers --lora foo_bar

Q. LoRA 创建者!想查看位于 "./loras/foo_bar.safetensors" 的 LoRA 是基于哪些标签训练的,以及它从源图像中识别出了哪些重要特征?

python3 safetriggers.py --mksafetriggers --lorapath ./loras --lora foo_bar

该命令将生成一个 "./loras/foo_bar.safetriggers" 文件,包含相关信息,供您处理、阅读、检查或与 .safetensors 文件一同分发。

2025年3月11日及之后版本:

新增 -allloras 选项后,无需再逐个使用 -lora 指定 LoRA 名称。若您需要为 -lorapath 及其子路径下的所有 LoRA 生成 .safetriggers 文件,请使用:

python3 safetriggers.py --mksafetriggers --allloras --lorapath ./loras/nsfw

2025年3月13日及之后版本:

新增 -safetriggers 选项,可直接指定某个 LoRA 的 .safetriggers 文件名,并在屏幕上显示其内容,例如:

python3 safetriggers.py --lorapath ./loras/nsfw --safetriggers PrettyWomen-f1-v8

该命令将在屏幕上显示该 LoRA 所训练的已排序的标签、触发词和触发短语

2025年3月16日及之后版本:

新增简写参数,也可使用以下方式:

python3 safetriggers.py -p ./loras/nsfw -s PrettyWomen-f1-v8

同样会在屏幕上显示该 LoRA 所训练的已排序的标签、触发词和触发短语

这些简短的 CLI 参数可通过输入以下命令查看:

python3 safetriggers.py -h

注意:

某些 LoRA 不包含任何标签(safetriggers 可识别这种情况),因此无内容可读。此时您唯一的办法是联系 LoRA 的创作者,了解其预期使用方式!

safetriggers.py

使用此工具可快速检查 LoRA 元数据中的 标签(TAGS)触发词(TRIGGER-WORDS)触发短语(TRIGGER-PHRASES)

在您的代码中读取 "<LoRA 名称>.safetriggers" 文件,可使用以下片段:

import os
import json

with open('lora.safetriggers') as f: 
    data = f.read()

lora_triggers_dictionary = json.loads(data)

print(lora_triggers_dictionary)

免责声明:

当前版本仅能读取和分析部分常见的 LoRA 格式,并非全部格式。请关注后续更新版本。

注意:

初始版本为概念验证版,是在我刚从偏头痛中恢复时编写的,部分代码决策可能参考了“魔法八球”——对此我深感后悔!请使用更新、更完善的版本。

此模型生成的图像

未找到图像。