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
+| 原图 | 原图(不缩放) 均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 |