forked from bmaltais/kohya_ss
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathprepare_presets.py
32 lines (24 loc) · 1.3 KB
/
prepare_presets.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
import json
import argparse
import glob
def remove_items_with_keywords(json_file_path):
keywords = ["pretrained_model_name_or_path", "train_dir", "output_dir", "logging_dir", "image_folder", "dir", "caption_metadata_filename", "latent_metadata_filename", "save_model_as", "save_state", "resume", "output_name", "model_list", "sample_", "wandb_api_key"]
with open(json_file_path) as file:
data = json.load(file)
for key in list(data.keys()):
for keyword in keywords:
if keyword in key:
del data[key]
break
sorted_data = {k: data[k] for k in sorted(data)}
with open(json_file_path, 'w') as file:
json.dump(sorted_data, file, indent=4)
print("Items with keywords have been removed from the JSON file and the list has been sorted alphabetically:", json_file_path)
if __name__ == '__main__':
parser = argparse.ArgumentParser(description='Remove items from JSON files based on keywords in the keys')
parser.add_argument('json_files', type=str, nargs='+', help='Path(s) to the JSON file(s)')
args = parser.parse_args()
json_files = args.json_files
for file_pattern in json_files:
for json_file_path in glob.glob(file_pattern):
remove_items_with_keywords(json_file_path)