文章目錄

ComfyUI 載入模型時,會依設定的模型來自動到目標資料夾找檔案,擴散模型、文字編碼器、VAE 預設都在每個 ComfyUI 專案自己的安裝目錄裡各有一個資料夾。我電腦上有兩個 ComfyUI 專案都用 MOSS-Image,它的模型總共約 12 GB,兩專案各下載一份就佔掉約 24 GB。ComfyUI 其實可以設定一個固定位置來放模型,所以我把模型搬到一個共用資料夾,再提供參數給每個專案來讓它知道這個位置,它們啟動後都會自動到共用資料夾找模型。最後兩個專案的模型選單都能列出同一批模型,新模型也只下載到共用資料夾。
本文的測試環境是 Windows 11 與 ComfyUI 0.43.2,接上共用資料夾的兩個專案分別是 comfy-cli 安裝的 ComfyUI,以及一個內嵌 ComfyUI 的生圖專案。後者原本自己存了約 22 GB 的 Qwen-Image 模型,搬進共用資料夾後,兩個專案都能選 MOSS-Image 和 Qwen-Image。
建立共用資料夾
改成共用之後,模型在硬碟上只剩一份,每個專案都到同一個資料夾找:
共用資料夾裡的子資料夾要和 ComfyUI models 底下的名稱一樣,模型才會出現在對應節點的選單,例如放在 diffusion_models 的檔案會列在「載入擴散模型」節點。我把共用資料夾建在 E:\models,目前只用到擴散模型、文字編碼器和 VAE 三種,其他類型等用到時再建,少了資料夾也不影響 ComfyUI 啟動:
1E:\models\
2├─ extra_model_paths.yaml
3├─ diffusion_models\
4├─ text_encoders\
5└─ vae\
接著把模型從原本專案的 models 搬進共用資料夾裡同名的子資料夾。原檔和共用資料夾在同一個磁碟機時,搬移只是改檔案的位置,MOSS-Image 約 12 GB 的模型不到一秒就搬完,跨磁碟機才要完整複製一次。
撰寫設定檔
模型搬好後,要寫一份 extra_model_paths.yaml 告訴 ComfyUI 共用資料夾的位置。我把它放在共用資料夾裡,最上層的 shared 是自己取的名稱,底下每一行是一種模型類型和它的子資料夾:
1shared:
2 base_path: .
3 is_default: true
4 checkpoints: checkpoints/
5 diffusion_models: diffusion_models/
6 text_encoders: text_encoders/
7 vae: vae/
8 loras: loras/
9 controlnet: controlnet/
10 clip_vision: clip_vision/
11 upscale_models: upscale_models/
12 embeddings: embeddings/
13 style_models: style_models/
14 model_patches: model_patches/
15 audio_encoders: audio_encoders/
16 latent_upscale_models: latent_upscale_models/
17 vae_approx: vae_approx/
18 hypernetworks: hypernetworks/
19 photomaker: photomaker/
20 gligen: gligen/
21 configs: configs/
base_path: . 表示子資料夾都從設定檔所在的位置算起,之後整個共用資料夾搬到別的磁碟機,設定檔也不用改。is_default: true 讓 ComfyUI 先找共用資料夾,再找專案自己的 models。要共用新的模型類型時,在這裡加一行就好,custom node 不在這份設定裡,仍然裝在各專案自己的 ComfyUI。
讓專案指向共用設定檔
設定檔寫好後,還要讓每個專案的 ComfyUI 啟動時讀到它。能改啟動指令的專案,加上 --extra-model-paths-config 參數指向這份設定檔。不想動啟動指令的專案,就在 main.py 同一層放一份 extra_model_paths.yaml,ComfyUI 啟動時會自動讀取。兩種做法擇一即可,改了設定都要重新啟動 ComfyUI 才會生效。
內嵌 ComfyUI 的生圖專案是由自己的啟動腳本執行 main.py,原本就用 --base-directory 把模型、輸出等資料夾指到專案裡。我在同一行加上設定檔的路徑,選單就同時列出專案自己的模型和共用資料夾的模型:
1python main.py --base-directory <專案資料夾> --extra-model-paths-config E:\models\extra_model_paths.yaml
comfy-cli 安裝的 ComfyUI 平常用 comfy launch 啟動,我沒有動啟動指令,改在工作區的 ComfyUI 資料夾、main.py 旁邊放一份設定檔。這份檔案不在共用資料夾裡,所以內容照抄共用資料夾那份,只把 base_path: . 改成完整路徑 base_path: E:/models,缺點是之後新增模型類型時兩份都要改。
Comfy Desktop 會自己產生設定檔,檔案開頭註明不要手動修改,要改用它的設定畫面。依官方說明,在 Settings 的 Storage 按「Add Shared Directory」加入共用資料夾,再按「Use for Model Downloads」,之後 Desktop 下載的模型就會存到這裡。
確認專案讀取共用資料夾
重新啟動後,ComfyUI 的 Log 會列出每個額外的搜尋路徑,出現共用資料夾的路徑就代表設定檔讀到了:
1[INFO] Adding extra search path diffusion_models E:\models\diffusion_models
2[INFO] Adding extra search path text_encoders E:\models\text_encoders
3[INFO] Adding extra search path vae E:\models\vae
接著打開節點的模型選單,挑一個只放在共用資料夾的模型來確認,因為同名檔案在選單只列一次,看不出用的是哪一份。我在 comfy-cli 安裝的 ComfyUI 放一個「載入擴散模型」節點,選單裡出現了原本只在生圖專案裡的 Qwen-Image:

兩個專案都讀得到之後,我才刪掉另一份重複的 MOSS-Image,硬碟上只留共用資料夾這一份。
新模型的下載位置
共用之後,新模型也要存進共用資料夾,不然又會多出一份。從網頁手動下載時,直接存到對應的子資料夾。用 comfy-cli 的 comfy model download 下載時,它預設存到工作區的 models,要用 --relative-path 寫上共用資料夾的完整路徑:
1comfy model download --url <模型網址> --relative-path E:\models\loras
總結
兩個 ComfyUI 專案改讀共用資料夾後,MOSS-Image 與 Qwen-Image 在硬碟上各只存一份,之後用 comfy-cli 下載的新模型也直接存進共用資料夾。