今天繼續閱讀杰克艾米粒這本超棒的 "Stable Diffusion:與杰克艾米立攜手專精 AI 繪圖" 來完善我的 SD 設定, 安裝 5 個推薦必裝外掛, 安裝方法與前一篇安裝中文化界面相同, 就是在 "Extensions" 頁籤的 "Install from URL" 子頁籤的 "URL for extension's git repository" 框中輸入外掛的 git 網址, 按 "Install" 鈕即可安裝, 參考 :
安裝網址可在此書的旗標服務專區取得 :
以下是安裝提示詞輔助工具 sd-webui-prompt-all-in-one 的紀錄, 不知道是不是我的電腦最早安裝了 Python 3.12 (SD Webui 用的是自帶的 Python 3.10) 造成干擾還是其他原因, 過程並不是像書中那麼順利.
https://github.com/Physton/sd-webui-prompt-all-in-one.git
然後按底下的 "Install(安裝)" 鈕 :
安裝完畢會在最底下出現 "Installed into C:\Users\USER\Downloads\sd.webui\webui\extensions\sd-webui-prompt-all-in-one. Use Installed tab to restart."
切到 "擴充功能"/"已安裝" 頁籤, 按 "更新並重新啟動使用者介面" 鈕 :
但是重新執行 run.bat 時慘劇發生了, 出現 "Python API call failed" 錯誤, 原因是找不到 "_cffi_backend" 模組 :
Installing sd-webui-prompt-all-in-one: chardet
Installing sd-webui-prompt-all-in-one: execjs
Installing sd-webui-prompt-all-in-one: pathos
Installing sd-webui-prompt-all-in-one: boto3
Installing sd-webui-prompt-all-in-one: aliyunsdkcore
Installing sd-webui-prompt-all-in-one: aliyunsdkalimt
Python 3.10.6 (tags/v3.10.6:9c7b4bd, Aug 1 2022, 21:53:49) [MSC v.1932 64 bit (AMD64)]
Version: v1.10.1
Commit hash: 82a973c04367123ae98bd9abdf80d9eda9b910e2
Launching Web UI with arguments: --xformers
ModuleNotFoundError: No module named '_cffi_backend'
thread '<unnamed>' panicked at C:\Users\runneradmin\.cargo\registry\src\index.crates.io-6f17d22bba15001f\pyo3-0.20.3\src\err\mod.rs:788:5:
Python API call failed
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
Traceback (most recent call last):
File "C:\Users\USER\Downloads\sd.webui\webui\launch.py", line 48, in <module>
main()
File "C:\Users\USER\Downloads\sd.webui\webui\launch.py", line 44, in main
start()
File "C:\Users\USER\Downloads\sd.webui\webui\modules\launch_utils.py", line 465, in start
import webui
File "C:\Users\USER\Downloads\sd.webui\webui\webui.py", line 13, in <module>
initialize.imports()
File "C:\Users\USER\Downloads\sd.webui\webui\modules\initialize.py", line 26, in imports
from modules import paths, timer, import_hook, errors # noqa: F401
File "C:\Users\USER\Downloads\sd.webui\webui\modules\paths.py", line 60, in <module>
import sgm # noqa: F401
File "C:\Users\USER\Downloads\sd.webui\webui\repositories\generative-models\sgm\__init__.py", line 1, in <module>
from .models import AutoencodingEngine, DiffusionEngine
File "C:\Users\USER\Downloads\sd.webui\webui\repositories\generative-models\sgm\models\__init__.py", line 1, in <module>
from .autoencoder import AutoencodingEngine
File "C:\Users\USER\Downloads\sd.webui\webui\repositories\generative-models\sgm\models\autoencoder.py", line 12, in <module>
from ..modules.diffusionmodules.model import Decoder, Encoder
File "C:\Users\USER\Downloads\sd.webui\webui\repositories\generative-models\sgm\modules\__init__.py", line 1, in <module>
from .encoders.modules import GeneralConditioner
File "C:\Users\USER\Downloads\sd.webui\webui\repositories\generative-models\sgm\modules\encoders\modules.py", line 5, in <module>
import kornia
File "C:\Users\USER\Downloads\sd.webui\system\python\lib\site-packages\kornia\__init__.py", line 11, in <module>
from . import augmentation, color, contrib, core, enhance, feature, io, losses, metrics, morphology, tracking, utils, x
File "C:\Users\USER\Downloads\sd.webui\system\python\lib\site-packages\kornia\x\__init__.py", line 2, in <module>
from .trainer import Trainer
File "C:\Users\USER\Downloads\sd.webui\system\python\lib\site-packages\kornia\x\trainer.py", line 11, in <module>
from accelerate import Accelerator
File "C:\Users\USER\Downloads\sd.webui\system\python\lib\site-packages\accelerate\__init__.py", line 3, in <module>
from .accelerator import Accelerator
File "C:\Users\USER\Downloads\sd.webui\system\python\lib\site-packages\accelerate\accelerator.py", line 35, in <module>
from .checkpointing import load_accelerator_state, load_custom_state, save_accelerator_state, save_custom_state
File "C:\Users\USER\Downloads\sd.webui\system\python\lib\site-packages\accelerate\checkpointing.py", line 24, in <module>
from .utils import (
File "C:\Users\USER\Downloads\sd.webui\system\python\lib\site-packages\accelerate\utils\__init__.py", line 133, in <module>
from .launch import (
File "C:\Users\USER\Downloads\sd.webui\system\python\lib\site-packages\accelerate\utils\launch.py", line 23, in <module>
from ..commands.config.config_args import SageMakerConfig
File "C:\Users\USER\Downloads\sd.webui\system\python\lib\site-packages\accelerate\commands\config\__init__.py", line 19, in <module>
from .config import config_command_parser
File "C:\Users\USER\Downloads\sd.webui\system\python\lib\site-packages\accelerate\commands\config\config.py", line 25, in <module>
from .sagemaker import get_sagemaker_input
File "C:\Users\USER\Downloads\sd.webui\system\python\lib\site-packages\accelerate\commands\config\sagemaker.py", line 35, in <module>
import boto3 # noqa: F401
File "C:\Users\USER\Downloads\sd.webui\system\python\lib\site-packages\boto3\__init__.py", line 17, in <module>
from boto3.session import Session
File "C:\Users\USER\Downloads\sd.webui\system\python\lib\site-packages\boto3\session.py", line 17, in <module>
import botocore.session
File "C:\Users\USER\Downloads\sd.webui\system\python\lib\site-packages\botocore\session.py", line 26, in <module>
import botocore.client
File "C:\Users\USER\Downloads\sd.webui\system\python\lib\site-packages\botocore\client.py", line 15, in <module>
from botocore import waiter, xform_name
File "C:\Users\USER\Downloads\sd.webui\system\python\lib\site-packages\botocore\waiter.py", line 20, in <module>
from botocore.docs.docstring import WaiterDocstring
File "C:\Users\USER\Downloads\sd.webui\system\python\lib\site-packages\botocore\docs\__init__.py", line 15, in <module>
from botocore.docs.service import ServiceDocumenter
File "C:\Users\USER\Downloads\sd.webui\system\python\lib\site-packages\botocore\docs\service.py", line 14, in <module>
from botocore.docs.client import (
File "C:\Users\USER\Downloads\sd.webui\system\python\lib\site-packages\botocore\docs\client.py", line 18, in <module>
from botocore.docs.example import ResponseExampleDocumenter
File "C:\Users\USER\Downloads\sd.webui\system\python\lib\site-packages\botocore\docs\example.py", line 13, in <module>
from botocore.docs.shape import ShapeDocumenter
File "C:\Users\USER\Downloads\sd.webui\system\python\lib\site-packages\botocore\docs\shape.py", line 19, in <module>
from botocore.utils import is_json_value_header
File "C:\Users\USER\Downloads\sd.webui\system\python\lib\site-packages\botocore\utils.py", line 39, in <module>
import botocore.httpsession
File "C:\Users\USER\Downloads\sd.webui\system\python\lib\site-packages\botocore\httpsession.py", line 45, in <module>
from urllib3.contrib.pyopenssl import (
File "C:\Users\USER\AppData\Roaming\Python\Python310\site-packages\urllib3\contrib\pyopenssl.py", line 43, in <module>
import OpenSSL.SSL # type: ignore[import-untyped]
File "C:\Users\USER\AppData\Roaming\Python\Python310\site-packages\OpenSSL\__init__.py", line 8, in <module>
from OpenSSL import SSL, crypto
File "C:\Users\USER\AppData\Roaming\Python\Python310\site-packages\OpenSSL\SSL.py", line 10, in <module>
from OpenSSL._util import (
File "C:\Users\USER\AppData\Roaming\Python\Python310\site-packages\OpenSSL\_util.py", line 6, in <module>
from cryptography.hazmat.bindings.openssl.binding import Binding
File "C:\Users\USER\AppData\Roaming\Python\Python310\site-packages\cryptography\hazmat\bindings\openssl\binding.py", line 15, in <module>
from cryptography.exceptions import InternalError
File "C:\Users\USER\AppData\Roaming\Python\Python310\site-packages\cryptography\exceptions.py", line 9, in <module>
from cryptography.hazmat.bindings._rust import exceptions as rust_exceptions
pyo3_runtime.PanicException: Python API call failed
請按任意鍵繼續 . . .
將上面訊息貼給 ChatGPT 求解, 它建議在 sd.webui 底下建一個 venv 虛擬環境安裝所需模組 :
pip install chardet execjs pathos boto3 aliyunsdkcore aliyunsdkalimt
但安裝完再次執行 run.bat 錯誤依舊, 因為虛擬環境會依據我電腦的 Python 版本 (3.12) 來安裝套件, 這跟 webui 自帶的 3.10 根本無關 (雖然是餿主意, 但也不能怪 AI, 因為它也不知道我的電腦環境). 所以只好問它如何移除 sd-webui-prompt-all-in-one 外掛恢復原狀, 建議如下 :
先到 sd.webui\webui\extensions 資料夾下刪除 sd-webui-prompt-all-in-one 這個目錄 :
然後往上跳一層到 sd.webui\webui 資料夾下刪除 config.json, ui-config.json 這兩個檔案 (啟動時會重新建立), 另外最好還要刪除 tmp 與 cache 這兩個暫存資料夾以清掉殘留快取 :
當然上面建立的 venv 虛擬環境資料夾也無用藥刪除 (先 deactivat 跳出).
但重新執行 run.bat 仍然出現上面一樣找不到 "_cffi_backend" 模組的錯誤訊息, 再次求教 ChatGPT, 它這回的解決方案中有一個是建議手動安裝 _cffi_backend 模組, 先切換到 webui 自帶的 Python 資料夾 sd.webui\system\python 下, 執行下列安裝指令 :
PS C:\Users\USER\Downloads\sd.webui\system\python> .\python.exe -m pip install --force-reinstall cffi
Collecting cffi
Downloading cffi-1.17.1-cp310-cp310-win_amd64.whl.metadata (1.6 kB)
Collecting pycparser (from cffi)
Using cached pycparser-2.22-py3-none-any.whl.metadata (943 bytes)
Downloading cffi-1.17.1-cp310-cp310-win_amd64.whl (181 kB)
Using cached pycparser-2.22-py3-none-any.whl (117 kB)
Installing collected packages: pycparser, cffi
Successfully installed cffi-1.17.1 pycparser-2.22
然後重新執行 run.bat 果然就恢復原狀了 :
但之前安裝的中文版擴充外掛設定被刪掉了 (外掛還在), 所以要重新設定.
系統恢復後我又再次安裝 sd-webui-prompt-all-in-one 外掛, 這次就順利完成了 :
可見頁面上增加了很多與 prompt 相關的按鈕.
經過這次波折也搞清楚如果 webui 自帶的 Python 缺少甚麼套件或模組, 原來是要到它底下的 python 目錄中去安裝.
沒有留言 :
張貼留言