Apple Silicon 的 Stable Diffusion 安裝指南

前言

這篇文章雖然和Apple Silicon無直接關係,但近年來,我不小心幾次陷入這個陷阱,所以我想特別記錄下來,並稍微吐槽一下。

近年來,大型科技公司紛紛推廣他們的雲端服務,操作系統也紛紛加入了整合式雲端硬碟功能。這些服務對於日常文書處理來說非常方便,但對於軟體開發或延伸應用程式開發來說,情況就不一樣了。這些雲端文件存儲在路徑和權限管理方式方面都有一套隱藏的邏輯,當您按照許多開發者所提供的步驟進行操作時,可能會遇到一些奇怪的權限、路徑或連接問題。而這些問題的根本原因,往往就是因為您將程式放在雲端文件夾中。這一點非常重要,但大多數開發者往往不會特別提醒您所以我要特別強調,也認為這應該也要列為基礎常識!😆

不要將程式放在雲端服務路徑下!

特別是Windows的 Document 文件夾或macOS的 Documents 文件夾。這些都是Microsoft和Apple操作系統預設同步的文件夾。只要您將程式放在這些文件夾中,很有可能會遇到執行上的問題。所以,請記住這一點,以免踩進這個坑中。

安裝套件管理員Homebrew

安裝 Stable Diffusion WebUI

  1. 請在非 iCloud 同步資料夾下建立 Folder。
    首選建立位置可在 /Users/xxxx

  2. 輸入以下指令

    1
    cd /Users/xxxx
  3. 建立 Pyenv Virtualenv 環境
    目前 Stable Diffusion 預設使用 Python 版本為 3.10.0,故先用 Pyenv 安裝 Python 3.10.0

    1
    pyenv install 3.10.0
  4. 創建命名為「AI」的虛擬環境

    1
    pyenv virtualenv 3.10.0 AI
  5. 將當前目錄套用「AI」的虛擬環境

    1
    pyenv local AI
  6. 執行 Stable Diffusion 文件下載

    1
    git clone https://github.com/AUTOMATIC1111/stable-diffusion-webui
  7. 執行 Stable Diffusion 安裝

    1
    /webui.sh
    1. 當你完成安裝後就會出現以下瀏覽器視窗

    安裝中英文雙語介面

    1. 進入 Extensions 頁面,點選 Available,取消勾選 localization,再點選 Load from:

    2. 搜尋 zh_TW Localization localization進行繁體中文化的安裝,執行該項目的 Install

    3. 搜尋 Bilingual Localization 進行雙語介面的安裝,執行該項目的 Install

    4. 接下來進入 Installed,執行 Apply and restart UI 進行套用

    5. 接下來點選 Settings,在右側選單尋找到 Bilingual Localization 進入選單,將語言切換成 zh_TW,最後在執行 Apply settings以及 Reload UI,即可大功告成了!

    6. 最終的雙語介面

    這邊就是我想要小小的吐槽的地方了,當你將檔案安裝在雲端硬碟同步資料夾下,執行套件安裝就會出現以下錯誤

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    *** Error completing request
    *** Arguments: ('https://github.com/harukaxxxx/stable-diffusion-webui-localization-zh_TW.git', ['ads', 'installed'], 0, '') {}
    Traceback (most recent call last):
    File "/Users/xxxx/Documents/02_Program/Stable_Diffusion/stable-diffusion-webui/modules/call_queue.py", line 57, in f
    res = list(func(*args, **kwargs))
    File "/Users/xxxx/Documents/02_Program/Stable_Diffusion/stable-diffusion-webui/modules/ui_extensions.py", line 397, in install_extension_from_index
    ext_table, message = install_extension_from_url(None, url)
    File "/Users/xxxx/Documents/02_Program/Stable_Diffusion/stable-diffusion-webui/modules/ui_extensions.py", line 385, in install_extension_from_url
    raise err
    File "/Users/xxxx/Documents/02_Program/Stable_Diffusion/stable-diffusion-webui/modules/ui_extensions.py", line 377, in install_extension_from_url
    os.rename(tmpdir, target_dir)
    TimeoutError: [Errno 60] Operation timed out: '/Users/xxxx/Documents/02_Program/Stable_Diffusion/stable-diffusion-webui/tmp/stable-diffusion-webui-localization-zh_TW' -> '/Users/xxxx/Documents/02_Program/Stable_Diffusion/stable-diffusion-webui/extensions/stable-diffusion-webui-localization-zh_TW'

    所以請千萬注意

    不要將程式放在雲端服務路徑下!