bench: refmatrix suite — ref count (1-9) x ref resolution ladder

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
Hanashi
2026-08-06 16:34:35 -04:00
parent a4bd386e52
commit a88626c0ca
+30 -2
View File
@@ -45,10 +45,12 @@ REF2VA_DEFAULT = "minimax_h3_ref2va_pruned_int8_convrot.safetensors"
# stills, anime characters (Ashitaka, Spike), forests, volcanos — large files
# (up to 23040x3840) for realistic reference-encoder load.
BENCH_IMAGE = "bench2_jp_01.jpg"
# Node schema allows up to 9 reference images (plus 3 ref videos + 3 audios).
BENCH_REF_SET = ["bench2_jp_01.jpg", "bench2_jp_gate_01.png",
"bench2_ashitaka_01.jpg", "bench2_bebop_01.jpg",
"bench2_forest_01.jpg", "bench2_forest_02.jpg",
"bench2_volcano_01.jpg", "bench2_volcano_02.png"]
"bench2_volcano_01.jpg", "bench2_volcano_02.png",
"bench2_jp_02.jpg"]
T2V_PROMPT = (
"Cinematic aerial shot slowly orbiting a coastal lighthouse at golden hour, "
@@ -354,6 +356,30 @@ def suite_key(fl2va, ref2va, prefix="", repeats=3):
return cfgs
def suite_refmatrix(ref2va, prefix=""):
"""Reference-variety matrix: ref count x ref resolution.
Counts 1/2/4/8/9 at native ref size (match sizing); at 8 refs, a
resolution ladder from 0.1 MP pre-downscaled up to 'max' (2048px) sizing.
864x480 5 s canvas throughout.
"""
cfgs = []
for n in (1, 2, 4, 8, 9):
cfgs.append(make_cfg("ref2v", ref2va, 864, 480, 5, 20, 70,
f"{prefix}rm_{n}ref_full", warm=True, ref_count=n))
for ds in (0.1, 0.2, 0.4):
cfgs.append(make_cfg("ref2v", ref2va, 864, 480, 5, 20, 71,
f"{prefix}rm_8ref_ds{int(ds*100):03d}", warm=True,
ref_count=8, ref_downscale=ds))
cfgs.append(make_cfg("ref2v", ref2va, 864, 480, 5, 20, 72,
f"{prefix}rm_4ref_max", warm=True, ref_count=4,
ref_image_size="max"))
cfgs.append(make_cfg("ref2v", ref2va, 864, 480, 5, 20, 72,
f"{prefix}rm_9ref_max", warm=True, ref_count=9,
ref_image_size="max"))
return cfgs
def suite_sweep(fl2va, ref2va, prefix=""):
"""Full sweep: tasks x durations x resolutions at fixed 20 steps.
@@ -391,7 +417,7 @@ def main():
ap = argparse.ArgumentParser(description=__doc__,
formatter_class=argparse.RawDescriptionHelpFormatter)
ap.add_argument("--host", default=DEFAULT_HOST)
ap.add_argument("--suite", choices=["quick", "sweep", "refheavy", "family", "key"])
ap.add_argument("--suite", choices=["quick", "sweep", "refheavy", "family", "key", "refmatrix"])
ap.add_argument("--repeats", type=int, default=3)
ap.add_argument("--task", choices=["t2v", "i2v", "ref2v"])
ap.add_argument("--model", action="append", default=[],
@@ -430,6 +456,8 @@ def main():
cfgs = suite_family(models["fl2va"], models["ref2va"], args.prefix)
elif args.suite == "key":
cfgs = suite_key(models["fl2va"], models["ref2va"], args.prefix, args.repeats)
elif args.suite == "refmatrix":
cfgs = suite_refmatrix(models["ref2va"], args.prefix)
elif args.task:
model = models["ref2va"] if args.task == "ref2v" else models["fl2va"]
label = args.label or f"{args.task}_{args.width}x{args.height}_{args.seconds}s"