日本熟妇hd丰满老熟妇,中文字幕一区二区三区在线不卡 ,亚洲成片在线观看,免费女同在线一区二区

使用SD-WebUI容器鏡像加速文本生成圖像

Stable Diffusion WebUI(以下簡稱SD-WebUI)通過DeepGPU工具(例如Deepytorch)加速了模型的計算和推理性能,您無需深入了解復雜的機器學習模型推理優化細節,便可開箱即用。對于需要文本生成圖像的業務場景,在GPU實例上部署SD-WebUI容器鏡像后可以提供更快的計算速度和更高的推理性能。本文為您介紹如何在GPU實例上部署SD-WebUI容器鏡像加速文本生成圖像。

背景信息

SD-WebUI是一個基于Gradio庫的瀏覽器界面,用于使用Stable Diffusion生成圖像,提供了一個簡單易用的界面,加速實現文本生成圖像。SD-WebUI的優點:

  • 相比Pytorch+xformer方案,在FP16精度下使用SD-WebUI進行模型的推理優化具有更好的性能,其加速性能提升1.5~4.0倍。

  • 相比預編譯優化方案,使用SD-WebUI進行模型的推理優化具有更好的靈活性,具有線上免編譯、高效切換等特性。

  • 支持Controlnet/Lora等功能的優化和熱插拔,可以獲得更高的推理性能和更快的文生圖體驗。

關于Stable Diffusion的更多信息,請參見Stable Diffusion

重要
  • 阿里云不對第三方模型Stable Diffusion的合法性、安全性、準確性進行任何保證,阿里云不對由此引發的任何損害承擔責任。

  • 您應自覺遵守第三方模型Stable Diffusion的用戶協議、使用規范和相關法律法規,并就使用第三方模型的合法性、合規性自行承擔相關責任。

準備工作

獲取SD-WebUI容器鏡像詳細信息,以便您在GPU實例上部署該容器鏡像時使用。例如,創建GPU實例時需要提前了解容器鏡像適用的GPU實例類型,拉取容器鏡像時需要提前獲取鏡像地址等信息。

  1. 登錄容器鏡像服務控制臺

  2. 在左側導航欄,單擊制品中心

  3. 倉庫名稱搜索框,搜索sd-webui,并選擇目標鏡像egs/sd-webui

    鏡像詳情如下所示:

    鏡像名稱

    版本信息

    鏡像地址

    優勢

    SD-WebUI

    • SD-WebUI:4.3.9-full

    • Python:3.10

    • PyTorch:2.1.2

    • CUDA:12.1.1

    • cuDNN:8.9.0.131

    • 基礎鏡像:Ubuntu 22.04

    egs-registry.cn-hangzhou.cr.aliyuncs.com/egs/sd-webui:4.3.9-full-pytorch2.1.2-ubuntu22.04

    SD-WebUI鏡像僅支持以下GPU實例規格族選擇,更多信息,請參見GPU計算型(gn/ebm/scc系列)

    • gn6e、ebmgn6e

    • gn7i、ebmgn7i、ebmgn7ix

    • gn7e、ebmgn7e、ebmgn7ex

    SD-WebUI

    • SD-WebUI:4.3.5-full

    • Python:3.10

    • PyTorch:2.1.2

    • CUDA:12.1.1

    • cuDNN:8.9.0.131

    • 基礎鏡像:Ubuntu 22.04

    egs-registry.cn-hangzhou.cr.aliyuncs.com/egs/sd-webui:4.3.5-full-pytorch2.1.2-ubuntu22.04

操作步驟

  1. 創建GPU實例并安裝Tesla驅動。

    具體操作,請參見創建GPU實例

    在GPU實例上使用SD-WebUI容器鏡像,需要提前在該實例上安裝Tesla驅動且驅動版本應為535或更高,建議您通過ECS控制臺購買GPU實例時,同步選中安裝GPU驅動

    說明

    下圖以Ubuntu 20.04操作系統的gn7i實例規格為例,實例創建完成后,會自動安裝Tesla驅動、CUDA、cuDNN庫等,相比手動安裝方式更快捷。

    llm.png

  2. 遠程連接GPU實例。

    具體操作,請參見使用Workbench工具以SSH協議登錄Linux實例

  3. 執行以下命令,安裝Docker環境。

    sudo apt-get update
    sudo apt-get -y install ca-certificates curl
    
    sudo install -m 0755 -d /etc/apt/keyrings
    sudo curl -fsSL http://mirrors.cloud.aliyuncs.com/docker-ce/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc
    sudo chmod a+r /etc/apt/keyrings/docker.asc
    
    
    echo \
      "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] http://mirrors.cloud.aliyuncs.com/docker-ce/linux/ubuntu \
      $(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \
      sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
    
    sudo apt-get update
    sudo apt-get install -y docker-ce docker-ce-cli containerd.io
  4. 執行以下命令,檢查Docker是否安裝成功。

    docker -v

    如下圖回顯信息所示,表示Docker已安裝成功。

    version.jpg

  5. 執行以下命令,安裝nvidia-container-toolkit。

    curl -fsSL https://nvidia.github.io/libnvidia-container/gpgkey | sudo gpg --dearmor -o /usr/share/keyrings/nvidia-container-toolkit-keyring.gpg \
      && curl -s -L https://nvidia.github.io/libnvidia-container/stable/deb/nvidia-container-toolkit.list | \
        sed 's#deb https://#deb [signed-by=/usr/share/keyrings/nvidia-container-toolkit-keyring.gpg] https://#g' | \
        sudo tee /etc/apt/sources.list.d/nvidia-container-toolkit.list
    sudo apt-get update
    sudo apt-get install -y nvidia-container-toolkit
  6. 設置Docker開機自啟動并重啟Docker服務。

    sudo systemctl enable docker 
    sudo systemctl restart docker
  7. 執行以下命令,查看Docker是否已啟動。

    sudo systemctl status docker

    如下圖回顯所示,表示Docker已啟動。

    docker restart.jpg

  8. 執行以下命令,拉取SD-WebUI鏡像。

    sudo docker pull <SD-WebUI鏡像地址>

    請將代碼中的<SD-WebUI鏡像地址>替換為您在準備工作中獲取的SD-WebUI鏡像地址,示例如下:

    sudo docker pull egs-registry.cn-hangzhou.cr.aliyuncs.com/egs/sd-webui:4.3.5-full-pytorch2.1.2-ubuntu22.04
  9. 執行以下命令,運行SD-WebUI容器。

    h_mdir=/host/models/ # host models dir
    c_mdir=/workspace/stable-diffusion-webui/models # container dir
    sudo mkdir -p ${h_mdir}/Stable-diffusion
    cd ${h_mdir}/Stable-diffusion
    
    # 下載標準SD-1.5模型
    sudo wget https://aiacc-inference-public-v2.oss-accelerate.aliyuncs.com/aiacc-inference-webui/models/v1-5-pruned-emaonly.safetensors
    
    # 啟動容器
    sudo docker run -c 32 --gpus all -it \
    -v ${h_mdir}/Stable-diffusion/:${c_mdir}/Stable-diffusion/ \
    -v ${h_mdir}/ControlNet/:${c_mdir}/ControlNet/ \
    -v ${h_mdir}/Lora/:${c_mdir}/Lora/ \
    -p 5001:5001 egs-registry.cn-hangzhou.cr.aliyuncs.com/egs/sd-webui:4.3.5-full-pytorch2.1.2-ubuntu22.04

    SD-WebUI容器啟動后,SD-WebUI服務自動啟動。如果您需要修改服務啟動命令或默認端口,請參照以下命令進行修改。例如,如需更改服務器監聽端口為5002時,即將--port 5001修改為--port 5002;如需更改模型檢查點的目錄為/example/path/ckpts時,即將--ckpt-dir ./ckpts修改為/example/path/ckpts

    cd /workspace/stable-diffusion-webui
    python -u ./launch.py --ckpt-dir ./ckpts --listen --port 5001 --enable-insecure-extension-access --disable-safe-unpickle --api --xformers --skip-install

測試驗證

  1. 在安全組中,為您本地主機的IP(公網IP)開放入方向的訪問SD-WebUI的端口。

    本示例以開放入方向5001端口為例,具體操作,請參見添加安全組規則

    5001端口.jpg

  2. 在瀏覽器中,輸入http://<GPU實例的公網IP>:5001訪問SD-WebUI網站。

  3. 在Web頁面的文生圖頁簽下,輸入文本提示詞,單擊生成/Generate,等待生成圖像。

    2024-09-23_18-31-03.jpg