diff --git a/regen_reports.py b/regen_reports.py new file mode 100644 index 0000000..9a10b07 --- /dev/null +++ b/regen_reports.py @@ -0,0 +1,126 @@ +#!/usr/bin/env python3 +# -*- coding: utf-8 -*- +"""重新生成 bench3/4/5/7 报告,在最左边加原图列。""" +import json +import os +from collections import defaultdict +from pathlib import Path + +REPOS_ROOT = Path("/home/ubuntu/hair") +ORIG_SRC = {"asdf": "bench/orig/asdf.jpg", "qwer": "bench/orig/qwer.jpg", + "girl2": "bench/orig/girl2.jpg", "girl5": "bench/orig/girl5.jpg"} + +# bench编号 -> (输出目录, 部署HTML名, 报告标题后缀) +BENCHES = [ + (3, "美颜(磨皮+美颜)"), + (4, "磨皮"), + (5, "美白"), + (7, "纯生发"), +] + + +def img_src(path, bench_num): + if not path or not os.path.isfile(path): + return None + return f"bench{bench_num}/" + os.path.basename(path) + + +def gen_report(bench_num, title_suffix): + bench_dir = REPOS_ROOT / f"benchmark_out/bench{bench_num}" + results = bench_dir / "results.json" + if not results.exists(): + print(f" 跳过 bench{bench_num}: results.json 不存在") + return + d = json.load(open(results, encoding="utf-8")) + titles = d["res_titles"] + rows = d["rows"] + prompt = d.get("prompt", "") + + col_stats = defaultdict(lambda: {"total": []}) + for r in rows: + for c in r["cells"]: + if c.get("ok"): + col_stats[c["res_title"]]["total"].append(c["total_ms"]) + + # 表头:原图列 + 分辨率列 + headers = ['
4图×5发型=20行 · 每行原图+4分辨率 · steps=15 · 提示词="{prompt}" · 80/80成功 · 0 OOM
+4图×5发型=20行 · 每行4分辨率(原图不缩放/896/768/640) · steps=15 · 热数据 · 80/80成功 · 峰值21.2GB · 0 OOM
-4图×5发型=20行 · 每行原图+4分辨率 · steps=15 · 提示词="" · 80/80成功 · 0 OOM
+| 原图 | 原图(不缩放) 均12.1s | 896 均11.0s | 768 均9.3s | 640 均8.1s |
|---|---|---|---|---|
asdf 椭圆 | ![]() 12.6s | ![]() 10.2s | ![]() 8.2s | ![]() 7.6s |
asdf 花瓣 | ![]() 11.8s | ![]() 9.8s | ![]() 8.4s | ![]() 7.2s |
asdf 心形 | ![]() 12.7s | ![]() 10.5s | ![]() 8.3s | ![]() 8.1s |
asdf 直线 | ![]() 13.5s | ![]() 10.8s | ![]() 8.4s | ![]() 8.2s |
asdf 波浪 | ![]() 12.7s | ![]() 11.0s | ![]() 8.4s | ![]() 8.2s |
qwer 椭圆 | ![]() 13.1s | ![]() 10.6s | ![]() 8.4s | ![]() 7.4s |
qwer 花瓣 | ![]() 12.5s | ![]() 10.9s | ![]() 8.6s | ![]() 8.4s |
qwer 心形 | ![]() 13.3s | ![]() 11.0s | ![]() 8.6s | ![]() 8.5s |
qwer 直线 | ![]() 12.9s | ![]() 10.8s | ![]() 8.5s | ![]() 8.0s |
qwer 波浪 | ![]() 12.6s | ![]() 10.8s | ![]() 8.6s | ![]() 8.2s |
girl2 椭圆 | ![]() 13.3s | ![]() 12.5s | ![]() 10.5s | ![]() 7.9s |
girl2 花瓣 | ![]() 13.1s | ![]() 12.4s | ![]() 10.3s | ![]() 8.0s |
girl2 心形 | ![]() 12.9s | ![]() 12.5s | ![]() 10.2s | ![]() 8.0s |
girl2 直线 | ![]() 13.2s | ![]() 12.8s | ![]() 10.5s | ![]() 7.9s |
girl2 波浪 | ![]() 12.9s | ![]() 12.6s | ![]() 10.5s | ![]() 7.9s |
girl5 椭圆 | ![]() 9.6s | ![]() 9.6s | ![]() 9.7s | ![]() 8.8s |
girl5 花瓣 | ![]() 10.3s | ![]() 10.5s | ![]() 10.8s | ![]() 8.5s |
girl5 心形 | ![]() 9.5s | ![]() 9.6s | ![]() 9.5s | ![]() 8.8s |
girl5 直线 | ![]() 10.6s | ![]() 10.5s | ![]() 10.6s | ![]() 7.9s |
girl5 波浪 | ![]() 9.6s | ![]() 9.6s | ![]() 10.1s | ![]() 8.8s |
asdf 椭圆 ![]() | ![]() 12.6s | ![]() 10.2s | ![]() 8.2s | ![]() 7.6s |
asdf 花瓣 ![]() | ![]() 11.8s | ![]() 9.8s | ![]() 8.4s | ![]() 7.2s |
asdf 心形 ![]() | ![]() 12.7s | ![]() 10.5s | ![]() 8.3s | ![]() 8.1s |
asdf 直线 ![]() | ![]() 13.5s | ![]() 10.8s | ![]() 8.4s | ![]() 8.2s |
asdf 波浪 ![]() | ![]() 12.7s | ![]() 11.0s | ![]() 8.4s | ![]() 8.2s |
qwer 椭圆 ![]() | ![]() 13.1s | ![]() 10.6s | ![]() 8.4s | ![]() 7.4s |
qwer 花瓣 ![]() | ![]() 12.5s | ![]() 10.9s | ![]() 8.6s | ![]() 8.4s |
qwer 心形 ![]() | ![]() 13.3s | ![]() 11.0s | ![]() 8.6s | ![]() 8.5s |
qwer 直线 ![]() | ![]() 12.9s | ![]() 10.8s | ![]() 8.5s | ![]() 8.0s |
qwer 波浪 ![]() | ![]() 12.6s | ![]() 10.8s | ![]() 8.6s | ![]() 8.2s |
girl2 椭圆 ![]() | ![]() 13.3s | ![]() 12.5s | ![]() 10.5s | ![]() 7.9s |
girl2 花瓣 ![]() | ![]() 13.1s | ![]() 12.4s | ![]() 10.3s | ![]() 8.0s |
girl2 心形 ![]() | ![]() 12.9s | ![]() 12.5s | ![]() 10.2s | ![]() 8.0s |
girl2 直线 ![]() | ![]() 13.2s | ![]() 12.8s | ![]() 10.5s | ![]() 7.9s |
girl2 波浪 ![]() | ![]() 12.9s | ![]() 12.6s | ![]() 10.5s | ![]() 7.9s |
girl5 椭圆 ![]() | ![]() 9.6s | ![]() 9.6s | ![]() 9.7s | ![]() 8.8s |
girl5 花瓣 ![]() | ![]() 10.3s | ![]() 10.5s | ![]() 10.8s | ![]() 8.5s |
girl5 心形 ![]() | ![]() 9.5s | ![]() 9.6s | ![]() 9.5s | ![]() 8.8s |
girl5 直线 ![]() | ![]() 10.6s | ![]() 10.5s | ![]() 10.6s | ![]() 7.9s |
girl5 波浪 ![]() | ![]() 9.6s | ![]() 9.6s | ![]() 10.1s | ![]() 8.8s |
4图×5发型=20行 · 每行4分辨率 · steps=15 · 提示词="填充遮罩区域的头发,皮肤加一点磨皮" · 80/80成功 · 峰值21.2GB · 0 OOM
-| 原图 | 原图(不缩放) 均12.0s | 896 均10.9s | 768 均9.3s | 640 均8.0s |
|---|---|---|---|---|
asdf 椭圆 | ![]() 12.4s | ![]() 10.5s | ![]() 8.8s | ![]() 8.2s |
asdf 花瓣 | ![]() 12.6s | ![]() 10.3s | ![]() 8.3s | ![]() 8.2s |
asdf 心形 | ![]() 12.3s | ![]() 10.4s | ![]() 8.3s | ![]() 7.9s |
asdf 直线 | ![]() 12.7s | ![]() 10.5s | ![]() 8.3s | ![]() 8.1s |
asdf 波浪 | ![]() 12.5s | ![]() 10.3s | ![]() 8.3s | ![]() 8.1s |
qwer 椭圆 | ![]() 12.9s | ![]() 10.9s | ![]() 8.5s | ![]() 8.0s |
qwer 花瓣 | ![]() 12.4s | ![]() 10.8s | ![]() 8.3s | ![]() 7.9s |
qwer 心形 | ![]() 12.3s | ![]() 10.8s | ![]() 8.3s | ![]() 7.9s |
qwer 直线 | ![]() 12.5s | ![]() 10.6s | ![]() 8.4s | ![]() 8.0s |
qwer 波浪 | ![]() 12.8s | ![]() 10.9s | ![]() 8.5s | ![]() 8.3s |
girl2 椭圆 | ![]() 13.1s | ![]() 12.6s | ![]() 10.3s | ![]() 7.9s |
girl2 花瓣 | ![]() 13.1s | ![]() 12.4s | ![]() 10.3s | ![]() 7.9s |
girl2 心形 | ![]() 12.8s | ![]() 12.3s | ![]() 10.4s | ![]() 7.9s |
girl2 直线 | ![]() 12.9s | ![]() 12.6s | ![]() 10.6s | ![]() 8.0s |
girl2 波浪 | ![]() 13.3s | ![]() 12.8s | ![]() 10.6s | ![]() 7.9s |
girl5 椭圆 | ![]() 9.6s | ![]() 9.6s | ![]() 9.8s | ![]() 8.6s |
girl5 花瓣 | ![]() 10.2s | ![]() 10.5s | ![]() 10.5s | ![]() 7.8s |
girl5 心形 | ![]() 9.6s | ![]() 9.7s | ![]() 10.0s | ![]() 7.7s |
girl5 直线 | ![]() 9.5s | ![]() 9.4s | ![]() 9.4s | ![]() 8.8s |
girl5 波浪 | ![]() 10.5s | ![]() 10.4s | ![]() 10.4s | ![]() 7.9s |
4图×5发型=20行 · 每行原图+4分辨率 · steps=15 · 提示词="填充遮罩区域的头发,皮肤加一点磨皮" · 80/80成功 · 0 OOM
+| 原图 | 原图(不缩放) 均12.0s | 896 均10.9s | 768 均9.3s | 640 均8.0s |
|---|---|---|---|---|
asdf 椭圆 ![]() | ![]() 12.4s | ![]() 10.5s | ![]() 8.8s | ![]() 8.2s |
asdf 花瓣 ![]() | ![]() 12.6s | ![]() 10.3s | ![]() 8.3s | ![]() 8.2s |
asdf 心形 ![]() | ![]() 12.3s | ![]() 10.4s | ![]() 8.3s | ![]() 7.9s |
asdf 直线 ![]() | ![]() 12.7s | ![]() 10.5s | ![]() 8.3s | ![]() 8.1s |
asdf 波浪 ![]() | ![]() 12.5s | ![]() 10.3s | ![]() 8.3s | ![]() 8.1s |
qwer 椭圆 ![]() | ![]() 12.9s | ![]() 10.9s | ![]() 8.5s | ![]() 8.0s |
qwer 花瓣 ![]() | ![]() 12.4s | ![]() 10.8s | ![]() 8.3s | ![]() 7.9s |
qwer 心形 ![]() | ![]() 12.3s | ![]() 10.8s | ![]() 8.3s | ![]() 7.9s |
qwer 直线 ![]() | ![]() 12.5s | ![]() 10.6s | ![]() 8.4s | ![]() 8.0s |
qwer 波浪 ![]() | ![]() 12.8s | ![]() 10.9s | ![]() 8.5s | ![]() 8.3s |
girl2 椭圆 ![]() | ![]() 13.1s | ![]() 12.6s | ![]() 10.3s | ![]() 7.9s |
girl2 花瓣 ![]() | ![]() 13.1s | ![]() 12.4s | ![]() 10.3s | ![]() 7.9s |
girl2 心形 ![]() | ![]() 12.8s | ![]() 12.3s | ![]() 10.4s | ![]() 7.9s |
girl2 直线 ![]() | ![]() 12.9s | ![]() 12.6s | ![]() 10.6s | ![]() 8.0s |
girl2 波浪 ![]() | ![]() 13.3s | ![]() 12.8s | ![]() 10.6s | ![]() 7.9s |
girl5 椭圆 ![]() | ![]() 9.6s | ![]() 9.6s | ![]() 9.8s | ![]() 8.6s |
girl5 花瓣 ![]() | ![]() 10.2s | ![]() 10.5s | ![]() 10.5s | ![]() 7.8s |
girl5 心形 ![]() | ![]() 9.6s | ![]() 9.7s | ![]() 10.0s | ![]() 7.7s |
girl5 直线 ![]() | ![]() 9.5s | ![]() 9.4s | ![]() 9.4s | ![]() 8.8s |
girl5 波浪 ![]() | ![]() 10.5s | ![]() 10.4s | ![]() 10.4s | ![]() 7.9s |
4图×5发型=20行 · 每行4分辨率 · steps=15 · 提示词="填充遮罩区域的头发,皮肤加一点美白" · 80/80成功 · 峰值21.2GB · 0 OOM
-| 原图 | 原图(不缩放) 均12.0s | 896 均10.9s | 768 均9.2s | 640 均8.0s |
|---|---|---|---|---|
asdf 椭圆 | ![]() 12.8s | ![]() 10.2s | ![]() 8.2s | ![]() 7.7s |
asdf 花瓣 | ![]() 12.2s | ![]() 10.3s | ![]() 8.3s | ![]() 8.1s |
asdf 心形 | ![]() 12.3s | ![]() 10.7s | ![]() 8.4s | ![]() 7.9s |
asdf 直线 | ![]() 12.7s | ![]() 10.3s | ![]() 8.3s | ![]() 7.8s |
asdf 波浪 | ![]() 12.1s | ![]() 10.3s | ![]() 8.4s | ![]() 8.2s |
qwer 椭圆 | ![]() 12.9s | ![]() 10.7s | ![]() 8.5s | ![]() 8.0s |
qwer 花瓣 | ![]() 12.5s | ![]() 10.5s | ![]() 8.4s | ![]() 7.9s |
qwer 心形 | ![]() 12.4s | ![]() 10.6s | ![]() 8.4s | ![]() 8.2s |
qwer 直线 | ![]() 13.0s | ![]() 10.6s | ![]() 8.3s | ![]() 7.9s |
qwer 波浪 | ![]() 12.8s | ![]() 10.5s | ![]() 8.4s | ![]() 8.2s |
girl2 椭圆 | ![]() 13.2s | ![]() 12.4s | ![]() 10.5s | ![]() 8.0s |
girl2 花瓣 | ![]() 13.0s | ![]() 12.3s | ![]() 10.1s | ![]() 7.9s |
girl2 心形 | ![]() 13.3s | ![]() 12.4s | ![]() 10.3s | ![]() 8.0s |
girl2 直线 | ![]() 13.0s | ![]() 12.3s | ![]() 10.3s | ![]() 7.9s |
girl2 波浪 | ![]() 13.2s | ![]() 13.1s | ![]() 10.1s | ![]() 7.8s |
girl5 椭圆 | ![]() 9.5s | ![]() 9.8s | ![]() 9.9s | ![]() 8.8s |
girl5 花瓣 | ![]() 10.5s | ![]() 10.2s | ![]() 10.2s | ![]() 7.8s |
girl5 心形 | ![]() 9.5s | ![]() 10.0s | ![]() 9.9s | ![]() 7.8s |
girl5 直线 | ![]() 9.4s | ![]() 9.4s | ![]() 9.5s | ![]() 8.8s |
girl5 波浪 | ![]() 10.4s | ![]() 10.4s | ![]() 10.1s | ![]() 7.8s |
4图×5发型=20行 · 每行原图+4分辨率 · steps=15 · 提示词="填充遮罩区域的头发,皮肤加一点美白" · 80/80成功 · 0 OOM
+| 原图 | 原图(不缩放) 均12.0s | 896 均10.9s | 768 均9.2s | 640 均8.0s |
|---|---|---|---|---|
asdf 椭圆 ![]() | ![]() 12.8s | ![]() 10.2s | ![]() 8.2s | ![]() 7.7s |
asdf 花瓣 ![]() | ![]() 12.2s | ![]() 10.3s | ![]() 8.3s | ![]() 8.1s |
asdf 心形 ![]() | ![]() 12.3s | ![]() 10.7s | ![]() 8.4s | ![]() 7.9s |
asdf 直线 ![]() | ![]() 12.7s | ![]() 10.3s | ![]() 8.3s | ![]() 7.8s |
asdf 波浪 ![]() | ![]() 12.1s | ![]() 10.3s | ![]() 8.4s | ![]() 8.2s |
qwer 椭圆 ![]() | ![]() 12.9s | ![]() 10.7s | ![]() 8.5s | ![]() 8.0s |
qwer 花瓣 ![]() | ![]() 12.5s | ![]() 10.5s | ![]() 8.4s | ![]() 7.9s |
qwer 心形 ![]() | ![]() 12.4s | ![]() 10.6s | ![]() 8.4s | ![]() 8.2s |
qwer 直线 ![]() | ![]() 13.0s | ![]() 10.6s | ![]() 8.3s | ![]() 7.9s |
qwer 波浪 ![]() | ![]() 12.8s | ![]() 10.5s | ![]() 8.4s | ![]() 8.2s |
girl2 椭圆 ![]() | ![]() 13.2s | ![]() 12.4s | ![]() 10.5s | ![]() 8.0s |
girl2 花瓣 ![]() | ![]() 13.0s | ![]() 12.3s | ![]() 10.1s | ![]() 7.9s |
girl2 心形 ![]() | ![]() 13.3s | ![]() 12.4s | ![]() 10.3s | ![]() 8.0s |
girl2 直线 ![]() | ![]() 13.0s | ![]() 12.3s | ![]() 10.3s | ![]() 7.9s |
girl2 波浪 ![]() | ![]() 13.2s | ![]() 13.1s | ![]() 10.1s | ![]() 7.8s |
girl5 椭圆 ![]() | ![]() 9.5s | ![]() 9.8s | ![]() 9.9s | ![]() 8.8s |
girl5 花瓣 ![]() | ![]() 10.5s | ![]() 10.2s | ![]() 10.2s | ![]() 7.8s |
girl5 心形 ![]() | ![]() 9.5s | ![]() 10.0s | ![]() 9.9s | ![]() 7.8s |
girl5 直线 ![]() | ![]() 9.4s | ![]() 9.4s | ![]() 9.5s | ![]() 8.8s |
girl5 波浪 ![]() | ![]() 10.4s | ![]() 10.4s | ![]() 10.1s | ![]() 7.8s |
4图×5发型=20行 · 每行4分辨率 · steps=15 · 提示词="填充遮罩区域的头发" · 80/80成功 · 峰值21.2GB · 0 OOM
-| 原图 | 原图(不缩放) 均12.1s | 896 均10.9s | 768 均9.3s | 640 均8.0s |
|---|---|---|---|---|
asdf 椭圆 | ![]() 12.3s | ![]() 10.6s | ![]() 8.2s | ![]() 7.8s |
asdf 花瓣 | ![]() 12.5s | ![]() 10.7s | ![]() 8.2s | ![]() 7.7s |
asdf 心形 | ![]() 12.8s | ![]() 10.7s | ![]() 8.4s | ![]() 7.8s |
asdf 直线 | ![]() 12.4s | ![]() 10.7s | ![]() 8.4s | ![]() 7.8s |
asdf 波浪 | ![]() 12.5s | ![]() 10.5s | ![]() 8.3s | ![]() 7.9s |
qwer 椭圆 | ![]() 12.7s | ![]() 10.5s | ![]() 8.3s | ![]() 7.9s |
qwer 花瓣 | ![]() 12.6s | ![]() 10.6s | ![]() 8.3s | ![]() 7.9s |
qwer 心形 | ![]() 12.7s | ![]() 11.0s | ![]() 8.4s | ![]() 8.1s |
qwer 直线 | ![]() 12.6s | ![]() 10.8s | ![]() 8.4s | ![]() 8.3s |
qwer 波浪 | ![]() 12.8s | ![]() 10.5s | ![]() 8.3s | ![]() 8.3s |
girl2 椭圆 | ![]() 13.2s | ![]() 12.3s | ![]() 10.4s | ![]() 8.0s |
girl2 花瓣 | ![]() 13.1s | ![]() 12.8s | ![]() 10.5s | ![]() 7.9s |
girl2 心形 | ![]() 13.3s | ![]() 12.7s | ![]() 10.5s | ![]() 7.9s |
girl2 直线 | ![]() 13.1s | ![]() 12.8s | ![]() 10.6s | ![]() 7.9s |
girl2 波浪 | ![]() 13.4s | ![]() 12.4s | ![]() 10.4s | ![]() 7.9s |
girl5 椭圆 | ![]() 9.5s | ![]() 9.6s | ![]() 10.0s | ![]() 8.6s |
girl5 花瓣 | ![]() 10.1s | ![]() 10.1s | ![]() 10.6s | ![]() 7.9s |
girl5 心形 | ![]() 9.7s | ![]() 9.7s | ![]() 9.9s | ![]() 7.7s |
girl5 直线 | ![]() 9.5s | ![]() 9.5s | ![]() 9.5s | ![]() 8.9s |
girl5 波浪 | ![]() 10.5s | ![]() 10.3s | ![]() 10.2s | ![]() 7.9s |
4图×5发型=20行 · 每行原图+4分辨率 · steps=15 · 提示词="填充遮罩区域的头发" · 80/80成功 · 0 OOM
+| 原图 | 原图(不缩放) 均12.1s | 896 均10.9s | 768 均9.3s | 640 均8.0s |
|---|---|---|---|---|
asdf 椭圆 ![]() | ![]() 12.3s | ![]() 10.6s | ![]() 8.2s | ![]() 7.8s |
asdf 花瓣 ![]() | ![]() 12.5s | ![]() 10.7s | ![]() 8.2s | ![]() 7.7s |
asdf 心形 ![]() | ![]() 12.8s | ![]() 10.7s | ![]() 8.4s | ![]() 7.8s |
asdf 直线 ![]() | ![]() 12.4s | ![]() 10.7s | ![]() 8.4s | ![]() 7.8s |
asdf 波浪 ![]() | ![]() 12.5s | ![]() 10.5s | ![]() 8.3s | ![]() 7.9s |
qwer 椭圆 ![]() | ![]() 12.7s | ![]() 10.5s | ![]() 8.3s | ![]() 7.9s |
qwer 花瓣 ![]() | ![]() 12.6s | ![]() 10.6s | ![]() 8.3s | ![]() 7.9s |
qwer 心形 ![]() | ![]() 12.7s | ![]() 11.0s | ![]() 8.4s | ![]() 8.1s |
qwer 直线 ![]() | ![]() 12.6s | ![]() 10.8s | ![]() 8.4s | ![]() 8.3s |
qwer 波浪 ![]() | ![]() 12.8s | ![]() 10.5s | ![]() 8.3s | ![]() 8.3s |
girl2 椭圆 ![]() | ![]() 13.2s | ![]() 12.3s | ![]() 10.4s | ![]() 8.0s |
girl2 花瓣 ![]() | ![]() 13.1s | ![]() 12.8s | ![]() 10.5s | ![]() 7.9s |
girl2 心形 ![]() | ![]() 13.3s | ![]() 12.7s | ![]() 10.5s | ![]() 7.9s |
girl2 直线 ![]() | ![]() 13.1s | ![]() 12.8s | ![]() 10.6s | ![]() 7.9s |
girl2 波浪 ![]() | ![]() 13.4s | ![]() 12.4s | ![]() 10.4s | ![]() 7.9s |
girl5 椭圆 ![]() | ![]() 9.5s | ![]() 9.6s | ![]() 10.0s | ![]() 8.6s |
girl5 花瓣 ![]() | ![]() 10.1s | ![]() 10.1s | ![]() 10.6s | ![]() 7.9s |
girl5 心形 ![]() | ![]() 9.7s | ![]() 9.7s | ![]() 9.9s | ![]() 7.7s |
girl5 直线 ![]() | ![]() 9.5s | ![]() 9.5s | ![]() 9.5s | ![]() 8.9s |
girl5 波浪 ![]() | ![]() 10.5s | ![]() 10.3s | ![]() 10.2s | ![]() 7.9s |