import os import pandas as pd root_dir = "./" model_name_mapping = { "flowmo_lo": "FlowMo Lo", "flowmo_hi": "FlowMo Hi", "gpt4o": "GPT-4o", "janus_pro_1b": "Janus Pro 1B/7B", "llamagen-ds8": "LlamaGen ds8", "llamagen-ds16": "LlamaGen ds16", "llamagen-ds16-t2i": "LlamaGen ds16 T2I", "maskbit_16bit": "MaskBiT 16bit", "maskbit_18bit": "MaskBiT 18bit", "open_magvit2": "OpenMagViT", "titok_b64": "Titok-b64", "titok_bl64": "Titok-bl64", "titok_s128": "Titok-s128", "titok_bl128": "Titok-bl128", "titok_l32": "Titok-l32", "titok_sl256": "Titok-sl256", "var_256": "VAR-256", "var_512": "VAR-512", "SD3.5L": "SD3.5L", "FLUX.1-dev": "FLUX.1-dev", "infinity_d32": "Infinity-d32", "infinity_d64": "Infinity-d64", "chameleon": "Chameleon", "bsqvit": "BSQ-VIT", } output_order = [ "FlowMo Lo", "FlowMo Hi", "MaskBiT 16bit", "MaskBiT 18bit", "Titok-l32", "Titok-b64", "Titok-s128", "Titok-bl64", "Titok-bl128", "Titok-sl256", "OpenMagViT", "LlamaGen ds8", "BSQ-VIT", "VAR-256", "Janus Pro 1B/7B", "Chameleon", "LlamaGen ds16", "LlamaGen ds16 T2I", "VAR-512", "Infinity-d32", "Infinity-d64", "SD3.5L", "FLUX.1-dev", "GPT-4o", ] for dataset_name in os.listdir(root_dir): dataset_path = os.path.join(root_dir, dataset_name) if not os.path.isdir(dataset_path): continue results = {} for model_dir in os.listdir(dataset_path): model_path = os.path.join(dataset_path, model_dir) result_file = os.path.join(model_path, "result.txt") if os.path.isfile(result_file): with open(result_file, "r", encoding="utf-8") as f: lines = f.readlines() if len(lines) >= 2: metrics_line = lines[-2].strip() values_line = lines[-1].strip() metrics = metrics_line.split() values = values_line.split() mapped_name = model_name_mapping.get(model_dir, model_dir) results[mapped_name] = values if results: header = "\t".join(metrics) print(f"{dataset_name}\t{header}") for model_name in output_order: if model_name in results: values = results[model_name] print(f"{model_name}\t" + "\t".join(values)) else: print(f"{model_name}\t" + "no result") print()