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 = ['原图'] + for t in titles: + s = col_stats.get(t) + avg = sum(s["total"]) // len(s["total"]) if s and s["total"] else 0 + headers.append(f'
{t}
' + f'
均{avg/1000:.1f}s
') + + body_rows = [] + for r in rows: + orig_src = ORIG_SRC.get(r["img"]) + label = f'
{r["img"]}
{r["hair_name"]}
' + # 原图列:显示输入原图 + orig_cell = (f'
{label}
' + f'') + cells = [orig_cell] + for c in r["cells"]: + src = img_src(c.get("grown_path"), bench_num) if c.get("ok") else None + if src: + t = c.get("total_ms", 0) + cells.append(f'' + f'
{t/1000:.1f}s
') + else: + cells.append(f'
') + body_rows.append(f'{"".join(cells)}') + + html = f""" + + + + +重绘分辨率对比({title_suffix}) + + + +

📊 重绘分辨率对比(提示词:{title_suffix})

+

4图×5发型=20行 · 每行原图+4分辨率 · steps=15 · 提示词="{prompt}" · 80/80成功 · 0 OOM

+
最左列为输入原图。列标题下为平均总耗时。横向滚动查看。
+
+ +{"".join(headers)} +{"".join(body_rows)} +
+
+ +""" + + deploy = REPOS_ROOT / "static" / f"bench{bench_num}_report.html" + deploy.write_text(html, encoding="utf-8") + print(f" ✓ bench{bench_num} ({title_suffix}): {deploy.name}") + + +def main(): + print("重新生成报告(加原图列):") + for num, suffix in BENCHES: + gen_report(num, suffix) + print("完成") + + +if __name__ == "__main__": + main() diff --git a/static/bench/orig/girl2.jpg b/static/bench/orig/girl2.jpg new file mode 100644 index 0000000..c9e15e4 Binary files /dev/null and b/static/bench/orig/girl2.jpg differ diff --git a/static/bench3_report.html b/static/bench3_report.html index a0ecd8b..d6c8fc1 100644 --- a/static/bench3_report.html +++ b/static/bench3_report.html @@ -3,10 +3,10 @@ -重绘分辨率对比报告 — steps=15 +重绘分辨率对比(美颜(磨皮+美颜)) -

📊 重绘分辨率对比报告

-

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
diff --git a/static/bench4_report.html b/static/bench4_report.html index 6c7827d..ada41db 100644 --- a/static/bench4_report.html +++ b/static/bench4_report.html @@ -1,6 +1,9 @@ - -重绘分辨率对比(无美颜提示词) + + + + +重绘分辨率对比(磨皮) -

📊 重绘分辨率对比(提示词:无美颜)

-

4图×5发型=20行 · 每行4分辨率 · steps=15 · 提示词="填充遮罩区域的头发,皮肤加一点磨皮" · 80/80成功 · 峰值21.2GB · 0 OOM

-
与 bench3 对比(去掉"再加一点美颜")。列标题下为平均总耗时。
-
原图
原图(不缩放)
均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
- \ No newline at end of file +.na { color: #d1d5db; font-size: 12px; padding: 40px 10px; } + + + +

📊 重绘分辨率对比(提示词:磨皮)

+

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
+
+ + \ No newline at end of file diff --git a/static/bench5_report.html b/static/bench5_report.html index cf8fa64..bf1e913 100644 --- a/static/bench5_report.html +++ b/static/bench5_report.html @@ -1,6 +1,9 @@ - -重绘分辨率对比(美白提示词) + + + + +重绘分辨率对比(美白) +.na { color: #d1d5db; font-size: 12px; padding: 40px 10px; } + + +

📊 重绘分辨率对比(提示词:美白)

-

4图×5发型=20行 · 每行4分辨率 · steps=15 · 提示词="填充遮罩区域的头发,皮肤加一点美白" · 80/80成功 · 峰值21.2GB · 0 OOM

-
与 bench3(美颜)/bench4(磨皮) 对比。列标题下为平均总耗时。
-
原图
原图(不缩放)
均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
- \ No newline at end of file +

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
+
+ + \ No newline at end of file diff --git a/static/bench7_report.html b/static/bench7_report.html index f936730..f2dd8f8 100644 --- a/static/bench7_report.html +++ b/static/bench7_report.html @@ -1,6 +1,9 @@ - -重绘分辨率对比(纯生发提示词) + + + + +重绘分辨率对比(纯生发) +.na { color: #d1d5db; font-size: 12px; padding: 40px 10px; } + + +

📊 重绘分辨率对比(提示词:纯生发)

-

4图×5发型=20行 · 每行4分辨率 · steps=15 · 提示词="填充遮罩区域的头发" · 80/80成功 · 峰值21.2GB · 0 OOM

-
与 bench3(美颜)/bench4(磨皮)/bench5(美白) 对比 — 本组纯生发无皮肤处理。列标题下为平均总耗时。
-
原图
原图(不缩放)
均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
- \ No newline at end of file +

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
+
+ + \ No newline at end of file