Files
change_hair/project/hair_service_sd
xsl 990fae929f perf(swapHair): webui降步数 + 用户图预处理内存缓存
优化1 - webui img2img steps 20→15 (gen_super_image.py):
- build_body_v2 的 steps 改为环境变量 WEBUI_STEPS 可配,默认15
- DPM++ 2M Karras 15步对换发型质量影响可忽略,省~0.1s

优化2 - infer_hairstyle_diy_jy 用户图预处理内存缓存 (hairstyle_model.py):
- 新增 _user_prepare_cache 进程内LRU缓存(8张图上限)
- key=图片md5哈希+ratio,命中时跳过landmark检测+get_prepare_user_768_data整条GPU管线
- 接口2女性多发型场景: 同一张用户图第2个发型起命中,功能6从1.8s降至1.1s(省0.7s)
- 缓存命中时补写磁盘文件(task_id每次不同,下游功能7仍从磁盘读)
- 顺带修复: user_matting_8uc3_bald_orisize 为None时写user_orig_mask.png的crash
- 加分步计时日志(主GAN/融合耗时),便于定位热点

实测: 同图连续请求 swapHair 从4.28s降至3.5s(省18%)
2026-07-26 16:41:19 +08:00
..

换发算法服务代码

相关配置:config/configure.ini
模型:请存放于weights目录下
服务启动:执行 gunicorn server:app -c gunicorn_config.py
测试相关代码请写在 unit_test.py里

建议环境: python3.7pytorch1.8,cu11.1,torchvision10.0
gunicorn需要在/usr/bin/gunicorn需要在里修改python地址

run run_copy_cost.py

需要启动的服务: 环境变量设置 export CRYPTOGRAPHY_OPENSSL_NO_LEGACY=1

  1. 换发算法服务 cd /root/project/hair_service_sd /usr/local/miniconda3/envs/condiff-train-hair/bin/python run_copy_cost_colorb64.py
  2. webUI服务推理 + onediff cd /root/project/onediff/stable-diffusion-webui /usr/local/miniconda3/envs/onediff/bin/python python webui.py --api --listen --xformers --port 57860 ./webui.sh --api --listen --disable-safe-unpickle --port 9038
  3. photo_service cd /root/project/photo_service /usr/local/miniconda3/envs/py310/bin/python lora_train_service_1.py