diff --git a/app.py b/app.py index fd83848..d83068a 100644 --- a/app.py +++ b/app.py @@ -829,6 +829,7 @@ async def debug_grow_timing( hair_style: str = Form(default="2", description="发型序号(花瓣=2),逗号分隔多选"), webui_steps: Optional[int] = Form(default=None, description="swapHair webui img2img 采样步数,None=服务端默认(15),可填10/15/20/25对比"), redraw_max_side: Optional[int] = Form(default=None, description="ComfyUI重绘分辨率(长边像素)。None=默认896;0=原图不缩;其他如640/768/1024"), + redraw_prompt: Optional[str] = Form(default=None, description="ComfyUI重绘提示词,None=默认'填充遮罩区域的头发,皮肤加一点磨皮,再加一点美颜'"), ): """单图跑接口2女性生发,返回每个步骤的耗时 + 结果图,用于定位性能瓶颈。 @@ -927,9 +928,12 @@ async def debug_grow_timing( # 3: ComfyUI 重绘 t0 = _time.perf_counter() + # max_side: 0 或 None 都让 _call_local_redraw 用默认逻辑(外层已控制分辨率) + _ms = redraw_max_side if redraw_max_side is not None and redraw_max_side > 0 else None grown_png = await run_in_threadpool( _call_local_redraw, - base64.b64decode(final_b64), base64.b64decode(mask_b64)) + base64.b64decode(final_b64), base64.b64decode(mask_b64), + max_side=_ms, prompt=redraw_prompt) entry["comfyui_redraw_ms"] = int((_time.perf_counter() - t0) * 1000) if grown_png: entry["grown_b64"] = "data:image/jpeg;base64," + _png_to_jpg_b64(grown_png) diff --git a/benchmark_res_prompt.py b/benchmark_res_prompt.py new file mode 100644 index 0000000..fa26843 --- /dev/null +++ b/benchmark_res_prompt.py @@ -0,0 +1,98 @@ +#!/usr/bin/env python3 +# -*- coding: utf-8 -*- +"""分辨率对比测试(新提示词版):4图×5发型=20行,每行4种分辨率,steps=15。 +提示词固定为 "填充遮罩区域的头发,皮肤加一点磨皮"(去掉了"再加一点美颜")。 +热数据:预热1次+正式1次。 +""" +import base64 +import json +import os +import time +from pathlib import Path + +import requests + +API = "http://127.0.0.1:8187/api/v1/debug/grow-timing" +TOKEN = "dev-shared-secret-2026" +PROMPT = "填充遮罩区域的头发,皮肤加一点磨皮" +OUT = Path("/home/ubuntu/hair/benchmark_out/bench4") +OUT.mkdir(parents=True, exist_ok=True) + +IMGS = [ + ("asdf", "/home/ubuntu/hair/image/asdf.jpg"), + ("qwer", "/home/ubuntu/hair/image/qwer.jpg"), + ("girl2", "/home/ubuntu/hair/image/girl_img/girl2.jpg"), + ("girl5", "/home/ubuntu/hair/image/girl_img/girl5.jpg"), +] +HAIRSTYLES = [ + (1, "ellipse", "椭圆"), (2, "flower", "花瓣"), (3, "heart", "心形"), + (4, "straight", "直线"), (5, "wave", "波浪"), +] +RES_LIST = [("orig", "0"), ("896", "896"), ("768", "768"), ("640", "640")] +RES_TITLES = ["原图(不缩放)", "896", "768", "640"] +STEPS = 15 + + +def call(img_path, hair_num, redraw_max_side, save_grown=None, timeout=300): + data = {"hair_style": str(hair_num), "webui_steps": str(STEPS), + "redraw_max_side": str(redraw_max_side), "redraw_prompt": PROMPT} + t0 = time.perf_counter() + try: + with open(img_path, "rb") as f: + r = requests.post(API, headers={"X-Internal-Token": TOKEN}, + files={"image_file": (os.path.basename(img_path), f, "image/jpeg")}, + data=data, timeout=timeout) + wall = time.perf_counter() - t0 + j = r.json() + if j.get("code") != 0: + return {"ok": False, "error": j.get("message", "")[:80], "wall": wall} + d = j["data"] + hs = d["per_hairstyle"][0] + if save_grown and hs.get("grown_b64"): + b = hs["grown_b64"].split(",")[1] if "," in hs["grown_b64"] else hs["grown_b64"] + with open(save_grown, "wb") as gf: + gf.write(base64.b64decode(b)) + return { + "ok": hs.get("ok", False), "wall": wall, + "total_ms": d["total_ms"], "swap_ms": hs.get("swap_ms"), + "comfy_ms": hs.get("comfyui_redraw_ms"), + "error": hs.get("error"), + } + except Exception as e: + return {"ok": False, "error": str(e)[:80], "wall": time.perf_counter() - t0} + + +def main(): + rows = [] + total = len(IMGS) * len(HAIRSTYLES) * len(RES_LIST) * 2 + idx = 0 + for ilabel, ipath in IMGS: + for hnum, hkey, hname in HAIRSTYLES: + cells = [] + for (rlabel, rval), rtitle in zip(RES_LIST, RES_TITLES): + idx += 1 + print(f"[{idx}/{total}] 预热 {ilabel}|{hname}|{rtitle}", flush=True) + try: + call(ipath, hnum, rval, timeout=120) + except Exception: + pass + idx += 1 + save = OUT / f"{ilabel}_{hkey}_{rlabel}.jpg" + print(f"[{idx}/{total}] 正式 {ilabel}|{hname}|{rtitle}", flush=True) + r = call(ipath, hnum, rval, save_grown=save, timeout=300) + r["res_label"] = rlabel; r["res_title"] = rtitle + r["grown_path"] = str(save) if r.get("ok") else None + status = f"{r.get('total_ms')}ms" if r.get("ok") else f"FAIL:{r.get('error','')[:30]}" + print(f" -> {status}", flush=True) + cells.append(r) + rows.append({"img": ilabel, "img_path": ipath, + "hair_num": hnum, "hair_key": hkey, "hair_name": hname, + "cells": cells}) + with open(OUT / "results.json", "w", encoding="utf-8") as f: + json.dump({"res_titles": RES_TITLES, "prompt": PROMPT, "rows": rows}, f, ensure_ascii=False, indent=2) + ok = sum(1 for row in rows for c in row["cells"] if c.get("ok")) + print(f"\n✓ 完成: {ok}/{len(rows)*len(RES_LIST)} 成功 -> {OUT/'results.json'}", flush=True) + + +if __name__ == "__main__": + main() diff --git a/hairline/service.py b/hairline/service.py index a2fa87a..4285910 100644 --- a/hairline/service.py +++ b/hairline/service.py @@ -55,7 +55,7 @@ _REDRAW_PROMPT = os.getenv("REDRAW_PROMPT", "填充遮罩区域的头发,皮 _REDRAW_MAX_SIDE = int(os.getenv("REDRAW_MAX_SIDE", "896")) def _call_local_redraw(image_png_bytes, mask_png_bytes, timeout=300.0, - max_side=None, unet_name=None): + max_side=None, unet_name=None, prompt=None): """直接调 ComfyUI 重绘(替代原 local_test HTTP 服务)。 传 final 图 + 纯红遮罩 PNG,返回重绘后的 PNG bytes。 @@ -63,6 +63,7 @@ def _call_local_redraw(image_png_bytes, mask_png_bytes, timeout=300.0, max_side:送 ComfyUI 前长边压到多少像素,None 用全局默认 _REDRAW_MAX_SIDE。 unet_name:非 None 时切换 Flux 模型,None 用工作流内置默认。 + prompt:None 用默认 _REDRAW_PROMPT,否则用传入的提示词。 """ from .redraw import run_redraw eff_side = _REDRAW_MAX_SIDE if max_side is None else max_side @@ -84,7 +85,8 @@ def _call_local_redraw(image_png_bytes, mask_png_bytes, timeout=300.0, orig_w, orig_h, nw, nh, eff_side) # front=True:接口2 时延敏感,插到 ComfyUI 队列最前,避免排在接口3/5 的批量任务后面 out = run_redraw(image_png_bytes, mask_png_bytes, timeout=timeout, - prompt=_REDRAW_PROMPT, front=True, unet_name=unet_name) + prompt=prompt if prompt is not None else _REDRAW_PROMPT, + front=True, unet_name=unet_name) if scale < 1.0 and out: out = _upscale_png_to(out, orig_w, orig_h) return out diff --git a/static/bench4/asdf_ellipse_640.jpg b/static/bench4/asdf_ellipse_640.jpg new file mode 100644 index 0000000..1810b71 Binary files /dev/null and b/static/bench4/asdf_ellipse_640.jpg differ diff --git a/static/bench4/asdf_ellipse_768.jpg b/static/bench4/asdf_ellipse_768.jpg new file mode 100644 index 0000000..6ab49ac Binary files /dev/null and b/static/bench4/asdf_ellipse_768.jpg differ diff --git a/static/bench4/asdf_ellipse_896.jpg b/static/bench4/asdf_ellipse_896.jpg new file mode 100644 index 0000000..d66ce9d Binary files /dev/null and b/static/bench4/asdf_ellipse_896.jpg differ diff --git a/static/bench4/asdf_ellipse_orig.jpg b/static/bench4/asdf_ellipse_orig.jpg new file mode 100644 index 0000000..127a6fd Binary files /dev/null and b/static/bench4/asdf_ellipse_orig.jpg differ diff --git a/static/bench4/asdf_flower_640.jpg b/static/bench4/asdf_flower_640.jpg new file mode 100644 index 0000000..a017da4 Binary files /dev/null and b/static/bench4/asdf_flower_640.jpg differ diff --git a/static/bench4/asdf_flower_768.jpg b/static/bench4/asdf_flower_768.jpg new file mode 100644 index 0000000..a0bf92a Binary files /dev/null and b/static/bench4/asdf_flower_768.jpg differ diff --git a/static/bench4/asdf_flower_896.jpg b/static/bench4/asdf_flower_896.jpg new file mode 100644 index 0000000..ffd4689 Binary files /dev/null and b/static/bench4/asdf_flower_896.jpg differ diff --git a/static/bench4/asdf_flower_orig.jpg b/static/bench4/asdf_flower_orig.jpg new file mode 100644 index 0000000..85f39c2 Binary files /dev/null and b/static/bench4/asdf_flower_orig.jpg differ diff --git a/static/bench4/asdf_heart_640.jpg b/static/bench4/asdf_heart_640.jpg new file mode 100644 index 0000000..d310ef7 Binary files /dev/null and b/static/bench4/asdf_heart_640.jpg differ diff --git a/static/bench4/asdf_heart_768.jpg b/static/bench4/asdf_heart_768.jpg new file mode 100644 index 0000000..8c488ec Binary files /dev/null and b/static/bench4/asdf_heart_768.jpg differ diff --git a/static/bench4/asdf_heart_896.jpg b/static/bench4/asdf_heart_896.jpg new file mode 100644 index 0000000..b236ea9 Binary files /dev/null and b/static/bench4/asdf_heart_896.jpg differ diff --git a/static/bench4/asdf_heart_orig.jpg b/static/bench4/asdf_heart_orig.jpg new file mode 100644 index 0000000..e5a898e Binary files /dev/null and b/static/bench4/asdf_heart_orig.jpg differ diff --git a/static/bench4/asdf_straight_640.jpg b/static/bench4/asdf_straight_640.jpg new file mode 100644 index 0000000..377bbe3 Binary files /dev/null and b/static/bench4/asdf_straight_640.jpg differ diff --git a/static/bench4/asdf_straight_768.jpg b/static/bench4/asdf_straight_768.jpg new file mode 100644 index 0000000..db57f92 Binary files /dev/null and b/static/bench4/asdf_straight_768.jpg differ diff --git a/static/bench4/asdf_straight_896.jpg b/static/bench4/asdf_straight_896.jpg new file mode 100644 index 0000000..3038eef Binary files /dev/null and b/static/bench4/asdf_straight_896.jpg differ diff --git a/static/bench4/asdf_straight_orig.jpg b/static/bench4/asdf_straight_orig.jpg new file mode 100644 index 0000000..a972ed7 Binary files /dev/null and b/static/bench4/asdf_straight_orig.jpg differ diff --git a/static/bench4/asdf_wave_640.jpg b/static/bench4/asdf_wave_640.jpg new file mode 100644 index 0000000..8f0306f Binary files /dev/null and b/static/bench4/asdf_wave_640.jpg differ diff --git a/static/bench4/asdf_wave_768.jpg b/static/bench4/asdf_wave_768.jpg new file mode 100644 index 0000000..308a4da Binary files /dev/null and b/static/bench4/asdf_wave_768.jpg differ diff --git a/static/bench4/asdf_wave_896.jpg b/static/bench4/asdf_wave_896.jpg new file mode 100644 index 0000000..2991b2e Binary files /dev/null and b/static/bench4/asdf_wave_896.jpg differ diff --git a/static/bench4/asdf_wave_orig.jpg b/static/bench4/asdf_wave_orig.jpg new file mode 100644 index 0000000..fc8a112 Binary files /dev/null and b/static/bench4/asdf_wave_orig.jpg differ diff --git a/static/bench4/girl2_ellipse_640.jpg b/static/bench4/girl2_ellipse_640.jpg new file mode 100644 index 0000000..1de2b41 Binary files /dev/null and b/static/bench4/girl2_ellipse_640.jpg differ diff --git a/static/bench4/girl2_ellipse_768.jpg b/static/bench4/girl2_ellipse_768.jpg new file mode 100644 index 0000000..6e1039d Binary files /dev/null and b/static/bench4/girl2_ellipse_768.jpg differ diff --git a/static/bench4/girl2_ellipse_896.jpg b/static/bench4/girl2_ellipse_896.jpg new file mode 100644 index 0000000..c386a18 Binary files /dev/null and b/static/bench4/girl2_ellipse_896.jpg differ diff --git a/static/bench4/girl2_ellipse_orig.jpg b/static/bench4/girl2_ellipse_orig.jpg new file mode 100644 index 0000000..cc6bd1f Binary files /dev/null and b/static/bench4/girl2_ellipse_orig.jpg differ diff --git a/static/bench4/girl2_flower_640.jpg b/static/bench4/girl2_flower_640.jpg new file mode 100644 index 0000000..b2dc033 Binary files /dev/null and b/static/bench4/girl2_flower_640.jpg differ diff --git a/static/bench4/girl2_flower_768.jpg b/static/bench4/girl2_flower_768.jpg new file mode 100644 index 0000000..fc6de06 Binary files /dev/null and b/static/bench4/girl2_flower_768.jpg differ diff --git a/static/bench4/girl2_flower_896.jpg b/static/bench4/girl2_flower_896.jpg new file mode 100644 index 0000000..c6ce15b Binary files /dev/null and b/static/bench4/girl2_flower_896.jpg differ diff --git a/static/bench4/girl2_flower_orig.jpg b/static/bench4/girl2_flower_orig.jpg new file mode 100644 index 0000000..7c26241 Binary files /dev/null and b/static/bench4/girl2_flower_orig.jpg differ diff --git a/static/bench4/girl2_heart_640.jpg b/static/bench4/girl2_heart_640.jpg new file mode 100644 index 0000000..d4b5ddc Binary files /dev/null and b/static/bench4/girl2_heart_640.jpg differ diff --git a/static/bench4/girl2_heart_768.jpg b/static/bench4/girl2_heart_768.jpg new file mode 100644 index 0000000..ad0f9c0 Binary files /dev/null and b/static/bench4/girl2_heart_768.jpg differ diff --git a/static/bench4/girl2_heart_896.jpg b/static/bench4/girl2_heart_896.jpg new file mode 100644 index 0000000..5caa690 Binary files /dev/null and b/static/bench4/girl2_heart_896.jpg differ diff --git a/static/bench4/girl2_heart_orig.jpg b/static/bench4/girl2_heart_orig.jpg new file mode 100644 index 0000000..d57ccf3 Binary files /dev/null and b/static/bench4/girl2_heart_orig.jpg differ diff --git a/static/bench4/girl2_straight_640.jpg b/static/bench4/girl2_straight_640.jpg new file mode 100644 index 0000000..8116b13 Binary files /dev/null and b/static/bench4/girl2_straight_640.jpg differ diff --git a/static/bench4/girl2_straight_768.jpg b/static/bench4/girl2_straight_768.jpg new file mode 100644 index 0000000..cbfab6a Binary files /dev/null and b/static/bench4/girl2_straight_768.jpg differ diff --git a/static/bench4/girl2_straight_896.jpg b/static/bench4/girl2_straight_896.jpg new file mode 100644 index 0000000..0569379 Binary files /dev/null and b/static/bench4/girl2_straight_896.jpg differ diff --git a/static/bench4/girl2_straight_orig.jpg b/static/bench4/girl2_straight_orig.jpg new file mode 100644 index 0000000..2a4094d Binary files /dev/null and b/static/bench4/girl2_straight_orig.jpg differ diff --git a/static/bench4/girl2_wave_640.jpg b/static/bench4/girl2_wave_640.jpg new file mode 100644 index 0000000..250cde7 Binary files /dev/null and b/static/bench4/girl2_wave_640.jpg differ diff --git a/static/bench4/girl2_wave_768.jpg b/static/bench4/girl2_wave_768.jpg new file mode 100644 index 0000000..e963530 Binary files /dev/null and b/static/bench4/girl2_wave_768.jpg differ diff --git a/static/bench4/girl2_wave_896.jpg b/static/bench4/girl2_wave_896.jpg new file mode 100644 index 0000000..c021514 Binary files /dev/null and b/static/bench4/girl2_wave_896.jpg differ diff --git a/static/bench4/girl2_wave_orig.jpg b/static/bench4/girl2_wave_orig.jpg new file mode 100644 index 0000000..3afc4c6 Binary files /dev/null and b/static/bench4/girl2_wave_orig.jpg differ diff --git a/static/bench4/girl5_ellipse_640.jpg b/static/bench4/girl5_ellipse_640.jpg new file mode 100644 index 0000000..af46eec Binary files /dev/null and b/static/bench4/girl5_ellipse_640.jpg differ diff --git a/static/bench4/girl5_ellipse_768.jpg b/static/bench4/girl5_ellipse_768.jpg new file mode 100644 index 0000000..6ca5a5c Binary files /dev/null and b/static/bench4/girl5_ellipse_768.jpg differ diff --git a/static/bench4/girl5_ellipse_896.jpg b/static/bench4/girl5_ellipse_896.jpg new file mode 100644 index 0000000..bec35fb Binary files /dev/null and b/static/bench4/girl5_ellipse_896.jpg differ diff --git a/static/bench4/girl5_ellipse_orig.jpg b/static/bench4/girl5_ellipse_orig.jpg new file mode 100644 index 0000000..9a54015 Binary files /dev/null and b/static/bench4/girl5_ellipse_orig.jpg differ diff --git a/static/bench4/girl5_flower_640.jpg b/static/bench4/girl5_flower_640.jpg new file mode 100644 index 0000000..d25afed Binary files /dev/null and b/static/bench4/girl5_flower_640.jpg differ diff --git a/static/bench4/girl5_flower_768.jpg b/static/bench4/girl5_flower_768.jpg new file mode 100644 index 0000000..f76ff99 Binary files /dev/null and b/static/bench4/girl5_flower_768.jpg differ diff --git a/static/bench4/girl5_flower_896.jpg b/static/bench4/girl5_flower_896.jpg new file mode 100644 index 0000000..f948c7d Binary files /dev/null and b/static/bench4/girl5_flower_896.jpg differ diff --git a/static/bench4/girl5_flower_orig.jpg b/static/bench4/girl5_flower_orig.jpg new file mode 100644 index 0000000..9ff383d Binary files /dev/null and b/static/bench4/girl5_flower_orig.jpg differ diff --git a/static/bench4/girl5_heart_640.jpg b/static/bench4/girl5_heart_640.jpg new file mode 100644 index 0000000..99375e9 Binary files /dev/null and b/static/bench4/girl5_heart_640.jpg differ diff --git a/static/bench4/girl5_heart_768.jpg b/static/bench4/girl5_heart_768.jpg new file mode 100644 index 0000000..ffe7320 Binary files /dev/null and b/static/bench4/girl5_heart_768.jpg differ diff --git a/static/bench4/girl5_heart_896.jpg b/static/bench4/girl5_heart_896.jpg new file mode 100644 index 0000000..3a3b21c Binary files /dev/null and b/static/bench4/girl5_heart_896.jpg differ diff --git a/static/bench4/girl5_heart_orig.jpg b/static/bench4/girl5_heart_orig.jpg new file mode 100644 index 0000000..9fe71b5 Binary files /dev/null and b/static/bench4/girl5_heart_orig.jpg differ diff --git a/static/bench4/girl5_straight_640.jpg b/static/bench4/girl5_straight_640.jpg new file mode 100644 index 0000000..05d56ae Binary files /dev/null and b/static/bench4/girl5_straight_640.jpg differ diff --git a/static/bench4/girl5_straight_768.jpg b/static/bench4/girl5_straight_768.jpg new file mode 100644 index 0000000..3509db0 Binary files /dev/null and b/static/bench4/girl5_straight_768.jpg differ diff --git a/static/bench4/girl5_straight_896.jpg b/static/bench4/girl5_straight_896.jpg new file mode 100644 index 0000000..e802771 Binary files /dev/null and b/static/bench4/girl5_straight_896.jpg differ diff --git a/static/bench4/girl5_straight_orig.jpg b/static/bench4/girl5_straight_orig.jpg new file mode 100644 index 0000000..83f850e Binary files /dev/null and b/static/bench4/girl5_straight_orig.jpg differ diff --git a/static/bench4/girl5_wave_640.jpg b/static/bench4/girl5_wave_640.jpg new file mode 100644 index 0000000..c38be68 Binary files /dev/null and b/static/bench4/girl5_wave_640.jpg differ diff --git a/static/bench4/girl5_wave_768.jpg b/static/bench4/girl5_wave_768.jpg new file mode 100644 index 0000000..0aefdfb Binary files /dev/null and b/static/bench4/girl5_wave_768.jpg differ diff --git a/static/bench4/girl5_wave_896.jpg b/static/bench4/girl5_wave_896.jpg new file mode 100644 index 0000000..6ba6870 Binary files /dev/null and b/static/bench4/girl5_wave_896.jpg differ diff --git a/static/bench4/girl5_wave_orig.jpg b/static/bench4/girl5_wave_orig.jpg new file mode 100644 index 0000000..29370d3 Binary files /dev/null and b/static/bench4/girl5_wave_orig.jpg differ diff --git a/static/bench4/qwer_ellipse_640.jpg b/static/bench4/qwer_ellipse_640.jpg new file mode 100644 index 0000000..655a9df Binary files /dev/null and b/static/bench4/qwer_ellipse_640.jpg differ diff --git a/static/bench4/qwer_ellipse_768.jpg b/static/bench4/qwer_ellipse_768.jpg new file mode 100644 index 0000000..e253258 Binary files /dev/null and b/static/bench4/qwer_ellipse_768.jpg differ diff --git a/static/bench4/qwer_ellipse_896.jpg b/static/bench4/qwer_ellipse_896.jpg new file mode 100644 index 0000000..45fabb7 Binary files /dev/null and b/static/bench4/qwer_ellipse_896.jpg differ diff --git a/static/bench4/qwer_ellipse_orig.jpg b/static/bench4/qwer_ellipse_orig.jpg new file mode 100644 index 0000000..bf042e3 Binary files /dev/null and b/static/bench4/qwer_ellipse_orig.jpg differ diff --git a/static/bench4/qwer_flower_640.jpg b/static/bench4/qwer_flower_640.jpg new file mode 100644 index 0000000..4340a7e Binary files /dev/null and b/static/bench4/qwer_flower_640.jpg differ diff --git a/static/bench4/qwer_flower_768.jpg b/static/bench4/qwer_flower_768.jpg new file mode 100644 index 0000000..05d9f1b Binary files /dev/null and b/static/bench4/qwer_flower_768.jpg differ diff --git a/static/bench4/qwer_flower_896.jpg b/static/bench4/qwer_flower_896.jpg new file mode 100644 index 0000000..4026db5 Binary files /dev/null and b/static/bench4/qwer_flower_896.jpg differ diff --git a/static/bench4/qwer_flower_orig.jpg b/static/bench4/qwer_flower_orig.jpg new file mode 100644 index 0000000..6524aac Binary files /dev/null and b/static/bench4/qwer_flower_orig.jpg differ diff --git a/static/bench4/qwer_heart_640.jpg b/static/bench4/qwer_heart_640.jpg new file mode 100644 index 0000000..e113796 Binary files /dev/null and b/static/bench4/qwer_heart_640.jpg differ diff --git a/static/bench4/qwer_heart_768.jpg b/static/bench4/qwer_heart_768.jpg new file mode 100644 index 0000000..af57b8c Binary files /dev/null and b/static/bench4/qwer_heart_768.jpg differ diff --git a/static/bench4/qwer_heart_896.jpg b/static/bench4/qwer_heart_896.jpg new file mode 100644 index 0000000..b86dbb6 Binary files /dev/null and b/static/bench4/qwer_heart_896.jpg differ diff --git a/static/bench4/qwer_heart_orig.jpg b/static/bench4/qwer_heart_orig.jpg new file mode 100644 index 0000000..f40babc Binary files /dev/null and b/static/bench4/qwer_heart_orig.jpg differ diff --git a/static/bench4/qwer_straight_640.jpg b/static/bench4/qwer_straight_640.jpg new file mode 100644 index 0000000..2cc9cd5 Binary files /dev/null and b/static/bench4/qwer_straight_640.jpg differ diff --git a/static/bench4/qwer_straight_768.jpg b/static/bench4/qwer_straight_768.jpg new file mode 100644 index 0000000..fb75249 Binary files /dev/null and b/static/bench4/qwer_straight_768.jpg differ diff --git a/static/bench4/qwer_straight_896.jpg b/static/bench4/qwer_straight_896.jpg new file mode 100644 index 0000000..022fd9d Binary files /dev/null and b/static/bench4/qwer_straight_896.jpg differ diff --git a/static/bench4/qwer_straight_orig.jpg b/static/bench4/qwer_straight_orig.jpg new file mode 100644 index 0000000..c240acb Binary files /dev/null and b/static/bench4/qwer_straight_orig.jpg differ diff --git a/static/bench4/qwer_wave_640.jpg b/static/bench4/qwer_wave_640.jpg new file mode 100644 index 0000000..845248f Binary files /dev/null and b/static/bench4/qwer_wave_640.jpg differ diff --git a/static/bench4/qwer_wave_768.jpg b/static/bench4/qwer_wave_768.jpg new file mode 100644 index 0000000..c251b84 Binary files /dev/null and b/static/bench4/qwer_wave_768.jpg differ diff --git a/static/bench4/qwer_wave_896.jpg b/static/bench4/qwer_wave_896.jpg new file mode 100644 index 0000000..6a5f47b Binary files /dev/null and b/static/bench4/qwer_wave_896.jpg differ diff --git a/static/bench4/qwer_wave_orig.jpg b/static/bench4/qwer_wave_orig.jpg new file mode 100644 index 0000000..d47dd94 Binary files /dev/null and b/static/bench4/qwer_wave_orig.jpg differ diff --git a/static/bench4_report.html b/static/bench4_report.html new file mode 100644 index 0000000..6c7827d --- /dev/null +++ b/static/bench4_report.html @@ -0,0 +1,26 @@ + + +重绘分辨率对比(无美颜提示词) + +

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

+

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