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 格式,并非全部格式。请关注后续更新版本。
注意:
初始版本为概念验证版,是在我刚从偏头痛中恢复时编写的,部分代码决策可能参考了“魔法八球”——对此我深感后悔!请使用更新、更完善的版本。

