|
import traceback |
|
from i18n.i18n import I18nAuto |
|
from datetime import datetime |
|
import torch |
|
|
|
from .hash import model_hash_ckpt, hash_id, hash_similarity |
|
|
|
i18n = I18nAuto() |
|
|
|
|
|
def show_model_info(cpt, show_long_id=False): |
|
try: |
|
h = model_hash_ckpt(cpt) |
|
id = hash_id(h) |
|
idread = cpt.get("id", "None") |
|
hread = cpt.get("hash", "None") |
|
if id != idread: |
|
id += ( |
|
"(" |
|
+ i18n("Actually calculated") |
|
+ "), " |
|
+ idread |
|
+ "(" |
|
+ i18n("Read from model") |
|
+ ")" |
|
) |
|
sim = hash_similarity(h, hread) |
|
if not isinstance(sim, str): |
|
sim = "%.2f%%" % (sim * 100) |
|
if not show_long_id: |
|
h = i18n("Hidden") |
|
if h != hread: |
|
h = i18n("Similarity") + " " + sim + " -> " + h |
|
elif h != hread: |
|
h = ( |
|
i18n("Similarity") |
|
+ " " |
|
+ sim |
|
+ " -> " |
|
+ h |
|
+ "(" |
|
+ i18n("Actually calculated") |
|
+ "), " |
|
+ hread |
|
+ "(" |
|
+ i18n("Read from model") |
|
+ ")" |
|
) |
|
txt = f"""{i18n("Model name")}: %s |
|
{i18n("Sealing date")}: %s |
|
{i18n("Model Author")}: %s |
|
{i18n("Information")}: %s |
|
{i18n("Sampling rate")}: %s |
|
{i18n("Pitch guidance (f0)")}: %s |
|
{i18n("Version")}: %s |
|
{i18n("ID(short)")}: %s |
|
{i18n("ID(long)")}: %s""" % ( |
|
cpt.get("name", i18n("Unknown")), |
|
datetime.fromtimestamp(float(cpt.get("timestamp", 0))), |
|
cpt.get("author", i18n("Unknown")), |
|
cpt.get("info", i18n("None")), |
|
cpt.get("sr", i18n("Unknown")), |
|
i18n("Exist") if cpt.get("f0", 0) == 1 else i18n("Not exist"), |
|
cpt.get("version", i18n("None")), |
|
id, |
|
h, |
|
) |
|
except: |
|
txt = traceback.format_exc() |
|
|
|
return txt |
|
|
|
|
|
def show_info(path): |
|
try: |
|
if hasattr(path, "name"): |
|
path = path.name |
|
a = torch.load(path, map_location="cpu") |
|
txt = show_model_info(a, show_long_id=True) |
|
del a |
|
except: |
|
txt = traceback.format_exc() |
|
|
|
return txt |
|
|