|
from PIL import Image |
|
from bw_utils import get_child_paths,lang_detect,is_image,decode_base64,save_json_file,create_dir |
|
import PIL.PngImagePlugin |
|
import os |
|
import json |
|
|
|
card_dir = "./data/sillytavern_cards" |
|
names = os.listdir(card_dir) |
|
|
|
for name in names: |
|
path = os.path.join(card_dir, name) |
|
role_code = name.split('.')[0].replace(" ","_") |
|
if is_image(path): |
|
with open(path, 'rb') as f: |
|
image = Image.open(f) |
|
card_info = json.loads(decode_base64(image.text['chara'])) |
|
language = lang_detect(card_info['data']['description']) |
|
role_info = { |
|
"role_code": f"{role_code}-{language}", |
|
"role_name": card_info['data']['name'], |
|
"source": "", |
|
"profile": card_info['data']['description'], |
|
"nickname": card_info['data']['name'], |
|
"relation": {}, |
|
"card_data": card_info['data'] |
|
} |
|
create_dir(f"./data/roles/sillytavern/{role_code}") |
|
save_json_file(os.path.join(f"./data/roles/sillytavern/{role_code}","role_info.json"),role_info) |
|
image.save(os.path.join(f"./data/roles/sillytavern/{role_code}",f"icon.png")) |
|
print(f"{name} converted successfully.") |
|
|