快轉到主要內容

使用Docker部署ComfyUI,建立多個不同用途的AI生圖容器

· 民國114年乙巳年
· ·
分類   開源AI應用 AI繪圖教學
標籤   ComfyUI Docker
目錄
ComfyUI使用教學 - 點選展開系列文
8: 現在位置

以Ubuntu系統的Docker為例。非WSL。

此圖使用ComfyUI生成

為什麼要用Docker呢?使用Docker的好處在於不怕炸掉依賴。目前Linux安裝ComfyUI的方式是手動git clone再建立Python,可能Linux系統的Python一更新就會導致部分功能,要重新設定Python環境。Docker可以把Python環境包在容器裡面跟宿主機隔離,讓ComfyUI依賴的Python環境不受系統影響。

即使目前這個容器環境被弄壞了,也可以馬上換另一個頂上來,不需要再重新安裝一堆Python依賴。

另一個是部署多個ComfyUI容器的方式,實現資料隔離。你想想,ComfyUI有那麼多自訂節點的擴充套件,如果裝新的跟舊的衝突怎麼辦呢?利用Docker容器化能夠解決這個問題,建立多個容器,再用Docker volume的方式掛載進去,共享模型目錄。

1. 安裝Nvidia Container Toolkit
#

讓Docker容器內的程式能使用CUDA加速的技術。

參考Ubuntu安裝Nvidia專有驅動

2. 取得docker-compose
#

ComfyUI官方尚未提供Docker映像檔,所以我用第三方開發者維護的版本。目前我覺得YanWenKun寫的最好,它提供各種打包好的映像檔,提供Nvidia與AMD用戶選擇。

  1. 建立存放ComfyUI資料的目錄
mkdir ~/comfyui-docker

cd comfyui-docker
  1. 參考作者的Github,取得docker-compose檔案,例如我現在使用CUDA 12.6的版本
wget https://raw.githubusercontent.com/YanWenKun/ComfyUI-Docker/refs/heads/main/cu126-slim/docker-compose.yml
  1. 下載docker-compose之後,按需修改內容
services:

  comfyui:
    init: true
    container_name: comfyui
    build:
      context: .
      dockerfile: Dockerfile
    image: "yanwk/comfyui-boot:cu126-slim"
    ports:
      - "8188:8188"
    volumes:
      - "./storage:/root" #將容器內部的資料掛載到目前目錄下的storage,也可以是其他路徑
    environment:
      - CLI_ARGS=--listen # 加上listen,讓外部網路能存取ComfyUI
    security_opt:
      - "label=type:nvidia_container_t"
    deploy: # 讓容器能夠使用CUDA
      resources:
        reservations:
          devices:
            - driver: nvidia
              device_ids: ['0']
              capabilities: [gpu]
  1. 然後啟動容器
docker compose up -d
  1. 開啟瀏覽器http://Linux電腦IP:8188檢視網頁。

  2. 容器終端機輸出的訊息,請用docker logs --follow comfyui指令查看。

3. Docker版ComfyUI的資料目錄
#

我使用的ComfyUI容器資料目錄會掛載到目前目錄下的storage,裡面有ComfyUI目錄。Docker版ComfyUI資料目錄跟用Python手動部署的是一樣的。例如checkpoint的生圖模型就是放到models/checkpoints目錄。

ComfyUI使用教學 - 點選展開系列文
8: 現在位置

相關文章

Linux系統安裝ComfyUI,架設Stable Diffusion AI生圖服務
分類   開源AI應用 AI繪圖教學
標籤   ComfyUI Linux
ComfyUI Desktop桌面版安裝教學,免打指令 (Linux / Windows / macOS)
分類   開源AI應用 AI繪圖教學
標籤   ComfyUI Linux Windows MacOS
ComfyUI如何匯入工作流 (workflow) & 解決缺失的紅字節點
分類   開源AI應用 AI繪圖教學
標籤   ComfyUI

留言板

此處提供二種留言板。點選按鈕,選擇您覺得方便的留言板。要討論程式碼請用Giscus,匿名討論請用Disqus。

這是Disqus留言板,您可能會看到Disqus強制投放的廣告。為防止垃圾內容,有時留言可能會被系統判定需審核,導致延遲顯示,請見諒。若要上傳圖片請善用圖床網站。