如何从.safetensors文件中提取LoRA触发词?
提取LoRA .safetensors文件中的触发词解决方案
优先查看配套文档
多数LoRA作者会把触发词写在同目录的README.txt、说明文档里,或者发布该LoRA的页面描述中,先检查这类配套文件,这是最直接的方式。解析文本编码器的新增Token
部分LoRA的触发词是和CLIP文本编码器的新增Token绑定的,可通过读取模型权重中超出基础词表的部分来提取:
from safetensors import safe_open from transformers import CLIPTokenizer # 加载LoRA文件 with safe_open("lora.safetensors", framework="pt", device="cpu") as f: # 遍历权重,定位文本编码器的词嵌入层 for key in f.keys(): if "text_model" in key and "embeddings" in key: tensor = f.get_tensor(key) # 基础CLIP模型的词表大小为49408,超出部分即为新增Token if tensor.shape[0] > 49408: tokenizer = CLIPTokenizer.from_pretrained("openai/clip-vit-large-patch14") new_tokens = [tokenizer.decode([idx]) for idx in range(49408, tensor.shape[0])] print("检测到的潜在触发词:", new_tokens)
反向验证排查触发词
将LoRA加载到Stable Diffusion环境中,通过测试生成来确定触发词:- 加载基础模型与目标LoRA
- 使用空白提示词生成图像,观察是否有LoRA特征(部分隐性触发词可能无需额外输入)
- 尝试模型主题相关词、作者常用前缀/缩写等,逐个测试触发效果
检查文件扩展属性
部分作者会将触发词存在文件的扩展属性中:- Linux/macOS可执行命令:
xattr -l lora.safetensors - Windows右键文件→属性→详细信息,查看是否有自定义字段
- Linux/macOS可执行命令:
内容的提问来源于stack exchange,提问作者sebap123
相关产品推荐
相关产品推荐

