一臺電腦裝多套Stable Diffusion時共享模型文件的方法

我電腦里裝了三套Stable Diffusion ui:
a1111 webui
comfyui
秋葉整合包
一堆大模型、LoRA、ControlNet,再加上一些vae、upscale放大模型等,我自己常用的有90G左右,復(fù)制三份實在占地,更新版本也麻煩。
可以將所有模型集中放在一個位置,然后給各SD ui指定模型位置即可。
通常有兩種方法:
方式一,mklink符號鏈接
它類似一個文件夾的指針或快捷方式,這樣可以把各SD ui的模型文件夾例如models,指向同一個集中存放的模型文件夾。
示例,用mklink創(chuàng)建一個符號鏈接,將C盤A目錄指向D盤B目錄:
????mklink?/d?C:\XXX\A?D:\XXX\B
微軟mklink文檔:
https://learn.microsoft.com/zh-cn/windows-server/administration/windows-commands/mklink
例如我的模型文件夾是:
????D:\ai\models\sd\webui_using
該文件夾下面分類放了一些常用的模型文件:

以SD webui為例,將其安裝目錄stable-diffusion-webui下的models文件夾通過mklink映射到上圖的webui_using:
打開cmd命令提示符,運行:
????mklink /d H:\stable-diffusion-webui\models D:\ai\models\sd\webui_using
注意,提前將models里的模型全移到webui_using里。如果創(chuàng)建失敗,可以刪除models空文件夾再試,切記提前備份好模型以防刪錯。
這樣就可以了,簡單測試可以用,但webui社群里有人說這種方式有些插件不太兼容。
方式二,命令行啟動參數(shù)
我現(xiàn)在用的是第二種方法,通過命令行啟動參數(shù),為每套SD ui指定對應(yīng)的模型位置。
Stable Diffusion A1111 webui的GitHub上有各種文件夾對應(yīng)的參數(shù)變量:
https://github.com/AUTOMATIC1111/stable-diffusion-webui/wiki/Command-Line-Arguments-and-Settings
以我的為例:

包含了大模型、VAE、textural inversion、LoRA、upscaler、controlnet等。
1. 對Stable Diffusion A1111 webui:
將以上參數(shù)添加在webui安裝根目錄下的webui-user.bat文件的COMMANDLINE_ARGS后面:

提示:
COMMANDLINE_ARGS后面各個參數(shù)不要空行,連起來寫成一行,空格隔開。
最好將原本W(wǎng)indows路徑里的?\?,改為?/ 。
即:
????D:\ai\models\sd\webui_using\XXX
改為:
????D:/ai/models/sd/webui_using/XXX
正常運行webui-user.bat啟動即可。
2. 對秋葉包:
啟動參數(shù)復(fù)制粘貼在啟動器左側(cè)高級選項?->?最下方的自定義參數(shù):

將需要改的模型文件夾參數(shù)粘貼進去即可,這里可以用換行,每行一個。
正常啟動SD即可。
3. 對ComfyUI:
ComfyUI的自定義參數(shù)是存在其根目錄下的extra_model_paths.yaml文件里,默認(rèn)文件是extra_model_paths.yaml.example,直接改文件名或復(fù)制后改名。
然后用文本編輯器打開它。
它默認(rèn)是在這里直接指定A1111 webui的模型文件位置,然后ComfyUI會去加載它。如果你只用了這兩套ui,可以按默認(rèn)的稍作修改。

如果也和我一樣,還有秋葉包,以及其他XXX ui,那么可以在這個文件里專門去指定ComfyUI要讀取的目錄,把A1111部分注釋掉:

提示,同樣將原本W(wǎng)indows路徑里的 \ ,改為 / 。
正常啟動ComfyUI即可。
至此,絕大部分的模型文件都指定好了,如果你只需要指定其中一兩個文件夾,也是可以的,例如只指定大模型、LoRA、ControlNet,通常這三大件最占空間。
其中有個特例,是AnimateDiff,它目前在webui里沒有啟動參數(shù),而是在webui啟動后的Settings里設(shè)置。
啟動webui,在Setting里,左側(cè)下方找到AnimateDiff,然后在最上邊填入AnimateDiff的模型文件夾路徑即可,這里不需要修改?\ 為 /?:

秋葉包同理。
ComfyUI里,在extra_model_paths.yaml配置文件里添加一個custom_nodes,后面填上AnimateDiff模型文件夾路徑(暫時未測,應(yīng)該可以)。
????custom_nodes: path/custom_nodes
Cheers??

公知小抖B:實驗編程
社群加V:floatbug
群將滿,加V煩請注明:來源(嗶哩嗶哩)、學(xué)校單位、專業(yè)行業(yè)、作品集/B站/小紅書/Ins/Tw等,便于高效交流謝謝。