Stable Diffusion启动报错:hook.py加载失败求修复方案
问题概况
启动Stable Diffusion WebUI时,程序可正常运行,但出现脚本加载错误,核心提示为找不到scripts.logging模块。已尝试重装Python和Stable Diffusion,问题未解决。启动参数为--xformers --autolaunch --no-half-vae。
核心错误日志
*** Error loading script: hook.py Traceback (most recent call last): File "C:\Stable Diffusion\stable-diffusion-webui\modules\scripts.py", line 319, in load_scripts script_module = script_loading.load_module(scriptfile.path) File "C:\Stable Diffusion\stable-diffusion-webui\modules\script_loading.py", line 10, in load_module module_spec.loader.exec_module(module) File "<frozen importlib._bootstrap_external>", line 883, in exec_module File "<frozen importlib._bootstrap>", line 241, in _call_with_frames_removed File "C:\Stable Diffusion\stable-diffusion-webui\scripts\hook.py", line 10, in <module> from scripts.logging import logger ModuleNotFoundError: No module named 'scripts.logging'
修复方案
检查
logging.py文件是否存在
前往路径C:\Stable Diffusion\stable-diffusion-webui\scripts,确认是否有logging.py文件。如果缺失,从对应Commit版本(当前版本Commit哈希为25004d4eeef015d8f886c537d3a5a9f54d07898e)的源码中获取该文件,放入scripts目录。修改hook.py的导入语句
如果logging.py已存在,打开C:\Stable Diffusion\stable-diffusion-webui\scripts\hook.py,将第10行的from scripts.logging import logger修改为相对导入:from .logging import logger,保存后重新启动。清理脚本缓存
删除C:\Stable Diffusion\stable-diffusion-webui\scripts目录下的__pycache__文件夹,然后重新启动程序,避免旧缓存导致的导入问题。验证虚拟环境完整性
打开命令提示符,执行以下命令激活虚拟环境:C:\Stable Diffusion\stable-diffusion-webui\venv\Scripts\activate.bat激活后执行
python -m pip install --upgrade pip更新pip,再尝试启动WebUI。
内容的提问来源于stack exchange,提问作者confusedperson

