
Windows 本地部署 IDM-VTON 虚拟试衣排障版教程这不是一篇单纯照搬 README 执行命令的常规部署文档而是结合真实落地排障经验整理的专业技术指南。本文不讲空泛理论严格按照工程排障流程拆解 Windows 本地运行 IDM-VTON 的高频报错根源、成因以及针对性解决方案。https://github.com/yisol/IDM-VTON?tabreadme-ov-file一、问题背景IDM-VTON 原生项目并非为 Windows 本地环境量身设计原生适配场景偏向Linux CUDA 专属运行环境Hugging Face Space 在线部署场景预下载完整模型缓存 Checkpoint 的标准环境因此直接在 Windows 照搬官方命令操作极易出现典型困境依赖安装完成、源码文件齐全、执行命令无误但项目始终无法正常运行。这类故障属于多层问题叠加导致核心诱因包含项目启动入口选择错误Checkpoint 权重文件缺失 / 占位无效主模型强依赖 Hugging Face 官方仓库联网拉取本地模型缓存未被程序优先调用Gradio 框架与周边依赖版本组合存在兼容性冲突二、分清项目启动入口项目仓库内存在易混淆的入口文件选错入口会让后续所有排障工作偏离方向gradio_demo/app.py✅ Windows 本地正确启动方式python gradio_demo/app.py三、基础运行环境推荐硬件 系统要求系统Windows 10 / Windows 11 64 位Python3.10 稳定版本显卡NVIDIA 独立显卡显存≥8GB基础依赖CUDA 可用的 PyTorch 环境、Git虚拟环境搭建git clone https://github.com/yisol/IDM-VTON.git cd IDM-VTON支持 venv / Conda 两种方案本次 Windows 实测稳定可用版本为 Python3.10 虚拟环境。1. Venv 方式本次实测python -m venv .venv .\.venv\Scripts\activate2. Conda 方式conda env create -f environment.yaml conda activate idm四、项目依赖标准安装顺序优先安装匹配 CUDA 版本的 PyTorch再安装项目其余依赖顺序不可颠倒官方推荐的配置# 安装 CUDA11.8 适配 PyTorch依赖项和版本要求在 environment.yaml 文件中我们实际使用的配置# 安装 CUDA12.6 适配 PyTorch pip install torch2.6.0 torchvision0.21.0 torchaudio2.6.0 --index-url https://download.pytorch.org/whl/cu126 # 安装项目基础依赖 pip install -r requirements.txt --extra-index-url https://download.pytorch.org/whl/cu126实测稳定运行后导出的 requirements.txt 文件内容absl-py2.4.0 accelerate0.25.0 addict2.4.0 aiofiles23.2.1 altair5.5.0 annotated-doc0.0.4 annotated-types0.7.0 antlr4-python3-runtime4.9.3 anyio4.13.0 argcomplete3.6.2 argon2-cffi file:///opt/conda/conda-bld/argon2-cffi_1645000214183/work argon2-cffi-bindings file:///C:/b/abs_f11axiliot/croot/argon2-cffi-bindings_1736182463870/work asttokens file:///C:/b/abs_9662ywy9fp/croot/asttokens_1743630464377/work async-lru file:///C:/b/abs_e0hjkvwwb5/croot/async-lru_1699554572212/work attrs file:///C:/b/abs_89hmquz5ga/croot/attrs_1734533130810/work av17.0.0 babel file:///C:/b/abs_ffzt1bmjth/croot/babel_1737454394148/work backports.tarfile1.2.0 basicsr1.4.2 beautifulsoup4 file:///C:/b/abs_95vq944bnw/croot/beautifulsoup4-split_1756453107890/work bitsandbytes0.39.0 bleach file:///C:/b/abs_925i9psm3u/croot/bleach_1732292896852/work brotlicffi file:///C:/b/abs_f4lixvzmxt/croot/brotlicffi_1736183286104/work build1.3.0 CacheControl0.14.3 cachetools6.2.0 certifi2026.2.25 cffi file:///C:/b/abs_29_b57if3f/croot/cffi_1736184144340/work chardet5.2.0 charset-normalizer file:///croot/charset-normalizer_1721748349566/work cleo2.1.0 click8.3.1 cloudpickle3.1.2 colorama0.4.6 coloredlogs15.0.1 colorlog6.9.0 comm file:///C:/b/abs_67a8058udb/croot/comm_1709322909844/work contourpy1.3.2 crashtest0.4.1 cycler0.12.1 debugpy file:///C:/miniconda3/conda-bld/debugpy_1757067176466/work decorator file:///C:/miniconda3/conda-bld/decorator_1757341256088/work defusedxml file:///tmp/build/80754af9/defusedxml_1615228127516/work dependency-groups1.3.1 diffusers0.25.0 distlib0.4.0 dulwich0.22.8 einops0.7.0 exceptiongroup1.3.1 executing file:///C:/miniconda3/conda-bld/executing_1757061252959/work fastapi0.135.2 fastjsonschema file:///C:/b/abs_4ev90296ly/croot/python-fastjsonschema_1731939386416/work ffmpy1.0.0 filelock3.25.2 findpython0.6.3 flatbuffers25.12.19 fonttools4.62.1 fsspec2026.2.0 future1.0.0 fvcore0.1.5.post20221221 gradio4.24.0 gradio_client0.14.0 grpcio1.78.0 h110.16.0 hatch1.14.1 hatchling1.27.0 hf-xet1.4.2 httpcore1.0.9 httpx0.28.1 huggingface-hub0.25.2 humanfriendly10.0 hyperlink21.0.0 idna3.11 ImageIO2.37.3 importlib_metadata8.7.0 importlib_resources6.5.2 installer0.7.0 iopath0.1.10 ipykernel file:///C:/b/abs_6c9ggygp01/croot/ipykernel_1737660720620/work ipython file:///C:/b/abs_8eyhzleyrk/croot/ipython_1734548134403/work jaraco.classes3.4.0 jaraco.context6.0.1 jaraco.functools4.3.0 jedi file:///C:/b/abs_3a2kbnlclc/croot/jedi_1733987412687/work Jinja23.0.3 json5 file:///C:/b/abs_743lprxrv5/croot/json5_1730786818336/work jsonschema file:///C:/b/abs_4d8dstds3t/croot/jsonschema_1753206424024/work jsonschema-specifications file:///C:/b/abs_0brvm6vryw/croot/jsonschema-specifications_1699032417323/work jupyter-events file:///C:/b/abs_9cm3qlticu/croot/jupyter_events_1741184612840/work jupyter-lsp file:///C:/b/abs_7171flzdkg/croot/jupyter-lsp-meta_1745827033118/work jupyter_client file:///C:/b/abs_149bw133if/croot/jupyter_client_1737570986926/work jupyter_core file:///C:/b/abs_7c6fipznw3/croot/jupyter_core_1751991383524/work jupyter_server file:///C:/b/abs_cdpu8und98/croot/jupyter_server_1751996637146/work jupyter_server_terminals file:///C:/b/abs_adjrm9dtns/croot/jupyter_server_terminals_1744706714294/work jupyterlab file:///C:/b/abs_c7v27765d6/croot/jupyterlab_1756453154931/work jupyterlab_pygments file:///C:/b/abs_d5alfet8m6/croot/jupyterlab_pygments_1741124274578/work jupyterlab_server file:///C:/b/abs_fdi5r_tpjc/croot/jupyterlab_server_1725865372811/work keyring25.6.0 kiwisolver1.5.0 lazy-loader0.5 lightning-utilities0.15.3 lmdb2.1.1 Markdown3.10.2 markdown-it-py4.0.0 MarkupSafe2.1.3 matplotlib3.10.8 matplotlib-inline file:///C:/ci/matplotlib-inline_1661934094726/work mdurl0.1.2 mistune file:///C:/b/abs_77yql3poyz/croot/mistune_1741124004410/work more-itertools10.8.0 mpmath1.3.0 msgpack1.1.1 narwhals2.18.1 nbclient file:///C:/b/abs_a09c4t3h8x/croot/nbclient_1741124030330/work nbconvert file:///C:/b/abs_c27_60dzt8/croot/nbconvert-meta_1741191385337/work nbformat file:///C:/b/abs_c2jkw46etm/croot/nbformat_1728050303821/work nest-asyncio file:///C:/b/abs_65d6lblmoi/croot/nest-asyncio_1708532721305/work networkx3.4.2 notebook file:///C:/b/abs_ddnsjx06fh/croot/notebook_1756709315423/work notebook_shim file:///C:/b/abs_9ctyfgpncn/croot/notebook-shim_1741707829491/work nox2025.5.1 numpy1.26.4 omegaconf2.3.0 onnxruntime-gpu1.16.2 opencv-python4.11.0.86 orjson3.11.7 overrides file:///C:/b/abs_cfh89c8yf4/croot/overrides_1699371165349/work packaging26.0 pandas2.3.3 pandocfilters file:///C:/miniconda3/conda-bld/pandocfilters_1756977625119/work parso file:///C:/b/abs_834b4mj92b/croot/parso_1733963322289/work pathspec0.12.1 pbs-installer2025.9.2 pexpect4.9.0 pillow10.4.0 pipenv2025.0.4 pipx1.7.1 pkginfo1.12.1.2 platformdirs4.4.0 pluggy1.6.0 poetry2.1.4 poetry-core2.1.3 poetry-plugin-shell1.0.1 portalocker3.2.0 prometheus_client file:///C:/b/abs_8b175q_ub8/croot/prometheus_client_1744271638821/work prompt-toolkit file:///C:/b/abs_68uwr58ed1/croot/prompt-toolkit_1704404394082/work protobuf7.34.1 psutil file:///C:/miniconda3/conda-bld/psutil_1757104557256/work ptyprocess0.7.0 pure_eval file:///C:/miniconda3/conda-bld/pure_eval_1757067068391/work pycocotools2.0.11 pycparser file:///C:/miniconda3/conda-bld/pycparser_1757496059965/work pydantic2.12.5 pydantic_core2.41.5 pydub0.25.1 Pygments2.19.2 pyparsing3.3.2 pyproject-api1.9.1 pyproject_hooks1.2.0 pyreadline33.5.4 PySocks file:///C:/ci_310/pysocks_1642089375450/work python-dateutil2.9.0.post0 python-json-logger file:///C:/b/abs_0cm_mnox0z/croot/python-json-logger_1734370042436/work python-multipart0.0.22 pytz2026.1.post1 pywin32 file:///C:/b/abs_6c9w_vp9zi/croot/pywin32_1754670534373/work pywin32-ctypes0.2.3 pywinpty file:///C:/b/abs_883wh7sts8/croot/pywinpty_1741871674963/work PyYAML6.0.3 pyzmq file:///C:/b/abs_f3yte6j5yn/croot/pyzmq_1734711069724/work RapidFuzz3.14.1 referencing file:///C:/b/abs_09f4hj6adf/croot/referencing_1699012097448/work regex2026.2.28 requests file:///C:/b/abs_f53smfvswb/croot/requests_1756709376206/work requests-toolbelt1.0.0 rfc3339-validator file:///C:/b/abs_ddfmseb_vm/croot/rfc3339-validator_1683077054906/work rfc3986-validator file:///C:/b/abs_6e9azihr8o/croot/rfc3986-validator_1683059049737/work rich14.3.3 rpds-py file:///C:/b/abs_0c6z5kcdb6/croot/rpds-py_1736545465023/work ruff0.15.7 safetensors0.7.0 scikit-image0.24.0 scipy1.11.1 semantic-version2.10.0 Send2Trash file:///C:/b/abs_7e73ol18dl/croot/send2trash_1736542724140/work shellingham1.5.4 six1.17.0 sniffio file:///C:/b/abs_3akdewudo_/croot/sniffio_1705431337396/work soupsieve file:///C:/b/abs_bbsvy9t4pl/croot/soupsieve_1696347611357/work stack_data file:///C:/miniconda3/conda-bld/stack_data_1757067051465/work starlette1.0.0 sympy1.13.1 tabulate0.10.0 tb-nightly2.21.0a20251023 tensorboard-data-server0.7.2 termcolor3.3.0 terminado file:///C:/b/abs_25nakickad/croot/terminado_1671751845491/work tifffile2025.5.10 tinycss2 file:///C:/b/abs_df38owi5ma/croot/tinycss2_1738337725183/work tokenizers0.15.2 tomli file:///C:/b/abs_88e598m6o8/croot/tomli_1753774604115/work tomli_w1.2.0 tomlkit0.12.0 torch2.6.0cu126 torchaudio2.6.0cu126 torchmetrics1.2.1 torchvision0.21.0cu126 tornado file:///C:/b/abs_7dzpc171lf/croot/tornado_1748956950306/work tox4.30.2 tqdm4.67.3 traitlets file:///C:/b/abs_bfsnoxl4pq/croot/traitlets_1718227069245/work transformers4.36.2 triton-windows3.6.0.post26 trove-classifiers2025.9.9.12 typer0.24.1 typing-inspection0.4.2 typing_extensions4.15.0 tzdata2025.3 urllib32.6.3 userpath1.9.2 uv0.8.17 uvicorn0.42.0 virtualenv20.32.0 wcwidth file:///C:/b/abs_0c8p4c33bp/croot/wcwidth_1750352902378/work webencodings0.5.1 websocket-client file:///C:/b/abs_5dmnxxoci9/croot/websocket-client_1715878351319/work websockets11.0.3 Werkzeug3.1.7 win-inet-pton file:///C:/ci_310/win_inet_pton_1642658466512/work yacs0.1.8 yapf0.43.0 zipp3.23.0 zstandard0.24.0关键纠正Gradio 版本误区多数教程单纯建议将 Gradio 降级至 3.50.2这并非 Windows 稳定运行的核心解法。本次实战通跑成功不靠粗暴降级依赖而是通过代码层补丁修复 Gradio 原生兼容漏洞切勿将问题简化归类为版本降级即可解决。五、前置校验优先检查 Checkpoint 完整性Windows 部署 80% 基础故障并非代码逻辑问题而是本地权重资源残缺。启动项目前务必核对以下文件真实存在运行 python gradio_demo/app.py 自动下载后仍需手动检查文件大小及真实性如模型权重缺失则需手动搜索并下载补齐ckpt/densepose/model_final_162be9.pklckpt/humanparsing/parsing_atr.onnxckpt/humanparsing/parsing_lip.onnxckpt/openpose/ckpts/body_pose_model.pthckpt/ip_adapter/ip-adapter-plus_sdxl_vit-h.binckpt/image_encoder/config.jsonckpt/image_encoder/model.safetensors超高危坑点提醒以下两个文件最常为空白占位文件仅目录 文件名存在无真实模型数据ckpt/ip_adapter/ip-adapter-plus_sdxl_vit-h.binckpt/image_encoder/model.safetensors文件内部仅标注提示文本put ip adapter ckpt hereput image encoder ckpt here隐患程序初始阶段不会提示缺模型只会在from_pretrained()加载、AI 推理链路中隐性崩溃排查难度翻倍。核心原则补齐权重 → 校验完整性 → 再启动项目六、模型加载底层逻辑不止依赖本地目录即便手动补齐全部 ckpt 权重项目仍会远程拉取核心基础模型yisol/IDM-VTON该模型不存放于本地 ckpt 文件夹默认通过 Hugging Face Hub 机制联网加载。真实故障成因代码写法from_pretrained(yisol/IDM-VTON)看似简单调用实际极易失败配置 HF 镜像站点异常本地缓存目录优先级失效网络限制无法远程下载模型实测有效环境变量配置HF_ENDPOINThttps://hf-mirror.com HF_HOMEG:\huggingface_cache HUGGINGFACE_HUB_CACHEG:\huggingface_cache本地路径已缓存G:\huggingface_cache\models--yisol--IDM-VTON故障本质本地已有完整缓存但代码未优先读取本地快照仍强制走远程请求链路。七、Windows 稳定优化强制优先本地快照加载原生危险写法易联网报错base_path yisol/IDM-VTON工程级稳定修复方案读取系统HF_HOME/ 默认缓存路径定位目录下models--yisol--IDM-VTON精准指向内部snapshots真实模型目录将本地绝对快照路径传入from_pretrained()价值切断不稳定远程请求链路全程离线调用本地缓存是 Windows 部署稳定性核心优化点。八、Gradio 专属报错区分勿误判模型故障权重 基础模型全部就绪后服务可正常拉起但访问网页时大概率触发 Gradio 框架原生报错极易让人误以为模型损坏。典型报错一报错信息TypeError: unhashable type: dict根源旧版 Gradio Starlette 版本冲突TemplateResponse 模板渲染逻辑不兼容与 AI 推理无关。典型报错二报错信息TypeError: argument of type bool is not iterable根源Gradio 生成/info接口 API 概要时ImageEditor 组件参数解析异常。避坑总结两类报错均属于前端服务层兼容问题和 Diffusion 推理、OpenPose、DensePose、人体解析等核心算法链路完全无关。九、核心解决方案定制兼容补丁文件摒弃传统降级依赖的低效方案统一新增startup_utils.py兼容工具文件一站式解决全量问题本地模拟spaces模块兼容规避原生在线环境依赖项目启动自动校验 Checkpoint 真伪拦截占位无效文件封装模型加载逻辑报错精准提示权重缺失原因自动解析 Hugging Face 本地快照路径优先离线加载补丁修复模板渲染解决dict不可哈希报错补丁修复 API 结构解析规避布尔值迭代异常十、入口文件工程化规范调整针对gradio_demo/app.py做本地调试适配改造通过if __name__ __main__:标准化控制启动逻辑模块支持单独导入调试分层定位问题默认关闭公网共享纯本地局域网运行统一读取本地快照模型绝对路径标准化全局 CUDA 设备识别参数优化意义项目从「无脑启动 / 直接崩溃」升级为「分层可测、逐段校验」大幅降低排障成本。十一、验收标准不只看服务启动必测完整推理链路❌ 错误验收网页正常打开 部署成功✅ 标准验收调用底层试衣接口跑通全业务链实测验证调用start_tryon()函数全覆盖流程原始人物 / 服装图像读取预处理OpenPose 姿态检测Human Parsing 人体区域分割DensePose 密集姿态映射蒙版 Mask 精准生成正向提示词 Prompt 编码解析SDXL Diffusion 核心扩散推理最终合成图像回显输出全链路无崩溃、无异常抛出才代表后端 AI 管线彻底打通。十二、部署成功标准状态启动命令python gradio_demo/app.py正常日志提示Running on local URL: http://127.0.0.1:7860浏览器访问地址http://127.0.0.1:7860推理正常进度标识终端输出1/130/30属于预处理 扩散迭代正常进度日志并非报错浏览器最终加载出合成效果图即为部署完全达标。十三、日志甄别区分警告 Warning 致命 ErrorWindows 终端输出繁杂必须精准过滤无效信息✅ 无害非阻塞警告忽略即可FutureWarning版本迭代提示torch.meshgrid参数调用提醒torch.cuda.amp.autocast弃用告知Some weights ... were not used冗余权重提示以上不影响运行稳定仅为后续优化清理的技术遗留问题。❌ 必须优先解决的致命故障Traceback全链路异常堆栈RuntimeError/OSError运行时系统错误TypeError代码参数类型错误服务无法启动、网页空白打不开页面可访问点击生成瞬间崩溃Checkpoint 权重缺失 / 主模型加载失败十四、极简稳定落地流程汇总Git 克隆官方项目源码至本地创建 Python3.10 专属虚拟环境并激活按顺序安装 CUDA 版 PyTorch 项目全部依赖人工核验 ckpt 目录关键权重剔除占位无效文件确认本机 HF 缓存已预存yisol/IDM-VTON完整模型导入兼容补丁配置代码优先读取本地快照离线模型执行标准启动命令python gradio_demo/app.py浏览器访问本地地址http://127.0.0.1:7860上传参考人物图 目标服装图发起试衣推理核验前端正常输出合成效果图部署收尾十五、全文总结本次 Windows 本地落地 IDM-VTON并非修复单一小 Bug而是系统性解决整套工程适配难题纠正启动入口选择误区彻底补齐校验残缺 Checkpoint 权重规避 Hugging Face 远程联网不稳定风险优化本地模型缓存调用优先级代码补丁搞定 Gradio 多层版本兼容分层校验服务框架 AI 推理双链路最终落地效果闭环达标服务正常常驻 → 网页流畅访问 → 基础模型离线加载 → 姿态 / 分割预处理无误 → Diffusion 扩散推理稳定运行 → 浏览器正常输出高清试衣结果实现 IDM-VTON 在 Windows 环境下的稳定可用。十六、 精简速查表IDM-VTON Windows 部署・精简速查表 报错关键词排障手册一、极简标准部署流程10 步速通1. 克隆项目源码本地解压2. 新建 Python3.10 虚拟环境并激活1 venvpython -m venv .venv 激活2 condaconda env create -f environment.yaml conda activate idm3. 优先安装 CUDA11.8 适配 PyTorchpip install torch2.0.1 torchvision0.15.2 torchaudio2.0.2 --index-url https://download.pytorch.org/whl/cu1184. pip install -r requirements.txt需从 environment.yaml 文件转写或参考我们导出的版本5. 校验ckpt/下所有权重删除占位文本文件6. 配置 HF 本地缓存环境变量确认已有yisol/IDM-VTON缓存7. 引入startup_utils.py兼容补丁优先读取本地 snapshotfrom __future__ import annotations from pathlib import Path from typing import Any, Callable import os PROJECT_ROOT Path(__file__).resolve().parent class _LocalSpaces: staticmethod def GPU(fn: Callable[..., Any]) - Callable[..., Any]: return fn def load_spaces_module() - Any: try: import spaces # type: ignore except ModuleNotFoundError: return _LocalSpaces() return spaces def _is_placeholder_file(path: Path) - bool: if not path.is_file(): return False if path.stat().st_size 1024: return False try: content path.read_text(encodingutf-8).strip().lower() except UnicodeDecodeError: return False return content.startswith(put ) and ckpt here in content def validate_required_checkpoints() - None: required_files { densepose checkpoint: PROJECT_ROOT / ckpt / densepose / model_final_162be9.pkl, human parsing ATR checkpoint: PROJECT_ROOT / ckpt / humanparsing / parsing_atr.onnx, human parsing LIP checkpoint: PROJECT_ROOT / ckpt / humanparsing / parsing_lip.onnx, openpose checkpoint: PROJECT_ROOT / ckpt / openpose / ckpts / body_pose_model.pth, IP-Adapter checkpoint: PROJECT_ROOT / ckpt / ip_adapter / ip-adapter-plus_sdxl_vit-h.bin, image encoder config: PROJECT_ROOT / ckpt / image_encoder / config.json, image encoder checkpoint: PROJECT_ROOT / ckpt / image_encoder / model.safetensors, } missing [f{name}: {path} for name, path in required_files.items() if not path.exists()] placeholders [ f{name}: {path} for name, path in required_files.items() if _is_placeholder_file(path) ] if not missing and not placeholders: return problems [] if missing: problems.append(Missing required files:\n- \n- .join(missing)) if placeholders: problems.append(Placeholder files detected:\n- \n- .join(placeholders)) raise RuntimeError( Local startup prerequisites are incomplete.\n \n\n.join(problems) \n\nDownload the real checkpoints into the ckpt directory before starting the app. ) def load_component(component_name: str, loader: Any, base_path: str, **kwargs: Any) - Any: try: return loader.from_pretrained(base_path, **kwargs) except Exception as exc: raise RuntimeError( fFailed to load {component_name} from {base_path}. This app expects the Hugging Face model repository yisol/IDM-VTON to be reachable or already cached locally. ) from exc def resolve_model_base_path(repo_id: str) - str: cache_roots [ os.environ.get(HUGGINGFACE_HUB_CACHE), os.environ.get(HF_HOME), str(Path.home() / .cache / huggingface / hub), ] repo_dirname models-- repo_id.replace(/, --) for cache_root in cache_roots: if not cache_root: continue for hub_root in (Path(cache_root), Path(cache_root) / hub): repo_dir hub_root / repo_dirname snapshots_dir repo_dir / snapshots if not snapshots_dir.is_dir(): continue snapshots [path for path in snapshots_dir.iterdir() if path.is_dir()] if snapshots: return str(max(snapshots, keylambda path: path.stat().st_mtime)) return repo_id def get_launch_kwargs() - dict[str, Any]: return { share: os.environ.get(IDM_VTON_SHARE, 0) 1, show_api: False, server_name: os.environ.get(IDM_VTON_HOST, 127.0.0.1), } def patch_gradio_template_response() - None: import gradio.routes templates gradio.routes.templates original templates.TemplateResponse if getattr(original, _idm_vton_compat, False): return def compat_template_response(*args: Any, **kwargs: Any) - Any: if ( len(args) 2 and isinstance(args[0], str) and isinstance(args[1], dict) and request in args[1] ): context dict(args[1]) request context.pop(request) return original(request, args[0], context, *args[2:], **kwargs) return original(*args, **kwargs) compat_template_response._idm_vton_compat True # type: ignore[attr-defined] templates.TemplateResponse compat_template_response def patch_gradio_api_info() - None: import gradio.blocks original gradio.blocks.Blocks.get_api_info if getattr(original, _idm_vton_compat, False): return def compat_get_api_info(self: Any) - Any: try: return original(self) except TypeError as exc: message str(exc) if bool not in message and iterable not in message: raise return {named_endpoints: {}, unnamed_endpoints: {}} compat_get_api_info._idm_vton_compat True # type: ignore[attr-defined] gradio.blocks.Blocks.get_api_info compat_get_api_info8. 正确启动入口python gradio_demo/app.py9. 访问http://127.0.0.1:786010. 上传图测试全链路推理出图即可二、核心关键要点速记✅ 用gradio_demo/app.py禁止无脑降级 Gradio用代码兼容补丁修复冲突两大高危占位权重ip-adapterxxx.bin/model.safetensors必核验核心模型走HF 本地缓存绝对 snapshot 路径规避联网失败看日志1/1、30/30是正常推理进度非报错Warning 类提示可忽略Traceback / 运行报错才需处理三、高频报错关键词 根因 一键方案报错关键词核心根因快速解决办法TypeError: unhashable type: dictGradiostarlette 模板渲染不兼容加载 startup_utils.py 兼容补丁不降级版本TypeError: bool not iterableGradio ImageEditor 解析 API schema 异常复用统一 Gradio 兼容修复层模型卡在 from_pretrained 超时优先走远程、未读取本地 HF 缓存硬编码指向 HF_HOME 下 snapshot 真实目录提示缺少 xxx.pth/.onnxckpt 权重缺失 / 为占位文件重新下载完整权重逐文件校验大小spaces module not found误用根目录 app.py 启动切换为python gradio_demo/app.pyCUDA out of memory显存不足8G 以上显卡降低推理分辨率、batch 设 1依赖版本冲突连环报错安装顺序颠倒先装指定 PyTorch再装 requirements 依赖服务启动成功页面点生成无响应缓存未命中、模型路径错误强制本地离线 snapshot 加载逻辑