Dies ist ein leichtes Versorgungsprogramm für Safetensors-Dateien, die nur in Python geschrieben wurden (keine wichtigen externen Abhängigkeiten). Derzeit kann es Folgendes tun:
Usage: safetensors_util.py [OPTIONS] COMMAND [ARGS]...
Options:
--version Show the version and exit.
-q, --quiet quiet mode, don't print informational stuff
--help Show this message and exit.
Commands:
checklora see if input file is a SD 1.x LoRA file
extractdata extract one tensor and save to file
extracthdr extract file header and save to output file
header print file header
listkeys print header key names (except __metadata__) as a Python list
metadata print only __metadata__ in file header
writemd read __metadata__ from json and write to safetensors file
Das Nützlichste ist wahrscheinlich die Befehle Lese- und Schreiben von Metadaten. Metadaten lesen:
python safetensors_util.py metadata input_file.safetensors -pm
Viele Safetensors -Dateien, insbesondere LORA -Dateien, verfügen über ein Feld __metadata__ im Dateiheader, in dem Trainingsinformationen wie Lernraten, Anzahl der Epochen, Anzahl der verwendeten Bilder usw. aufgezeichnet werden. Sie können sehen, wie Ihre bevorzugte Datei trainiert wurde, und verwenden möglicherweise einige der Trainingsparameter für Ihr eigenes Modell in Zukunft.
Das optionale -PM -Flag soll die Ausgabe lesbarer machen. Da Safetensors-Dateien in Metadaten nur ein String-zu-String-Wörterbuch ermöglichen, müssen Nicht-Stringwerte angegeben werden. Grundsätzlich versucht das -PM -Flag, dies zu drehen:
"ss_dataset_dirs":"{"abc": {"n_repeats": 2, "img_count": 60}}",
in dieses:
"ss_dataset_dirs":{
"abc":{
"n_repeats":2,
"img_count":60
}
},
Sie können eine JSON -Datei erstellen, die einen __metadata__ -Eintrag enthält:
{
"__metadata__":{
"Description": "Stable Diffusion 1.5 LoRA trained on cat pictures",
"Trigger Words":["cat from hell","killer kitten"],
"Base Model": "Stable Diffusion 1.5",
"Training Info": {
"trainer": "modified Kohya SS",
"resolution":[512,512],
"lr":1e-6,
"text_lr":1e-6,
"schedule": "linear",
"text_scheduler": "linear",
"clip_skip": 0,
"regularization_images": "none"
},
"ss_network_alpha":16,
"ss_network_dim":16
}
}
und schreiben Sie es mit dem Befehl writeemd an einen SafeTensors -Dateiheader:
python safetensors_util.py writemd input.safetensors input.json output.safetensors