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

使用AMD CPU實例部署Stable Diffusion

更新時間:
一鍵部署
我的部署

本文介紹如何使用阿里云AMD CPU云服務器(g8a)和龍蜥容器鏡像,并基于Stable Diffusion模型搭建個人版文生圖服務

背景信息

Stable Diffusion是文本到圖像的潛在擴散模型,它可以根據文本提示詞生成對應的圖像。Stable Diffusion模型是擴散模型的變種,可以通過逐步對隨機高斯噪聲進行去噪以獲得感興趣的樣本。與傳統生成模型相比,Stable Diffusion可以在不需要復雜訓練過程或大量數據集的情況下生成真實感強、細節豐富的圖像。目前該項目已經應用于多種場景,包括計算機視覺、數字藝術、視頻游戲等領域。

創建ECS實例

  1. 前往實例創建頁

  2. 按照界面提示完成參數配置,創建一臺ECS實例。

    需要注意的參數如下,其他參數的配置,請參見自定義購買實例

    • 實例:Stable Diffusion模型的推理過程需要耗費大量的計算資源,運行時占用大量內存,為了保證模型運行的穩定,實例規格至少需要選擇ecs.g8a.16xlarge(256 GiB內存)。

    • 鏡像:Alibaba Cloud Linux 3.2104 LTS 64位。

    • 公網IP:選中分配公網IPv4地址,帶寬計費模式選擇按使用流量,帶寬峰值設置為100 Mbps。以加快模型下載速度。

      image..png

    • 系統盤:Stable Diffusion的運行需要下載多個模型文件,會占用大量存儲空間,為了保證模型順利運行,建議系統盤設置為100 GiB。

  3. 添加安全組規則。

    在ECS實例安全組的入方向添加安全組規則并放行22、443、7860端口(用于訪問WebUI服務)。具體操作,請參見添加安全組規則

  4. 創建完成后,在ECS實例頁面,獲取公網IP地址。

    說明

    公網IP地址用于進行AI對話時訪問WebUI服務。

    image.png

創建Docker運行環境

  1. 遠程連接該ECS實例。

    具體操作,請參見通過密碼或密鑰認證登錄Linux實例

  2. 安裝Docker。

    具體操作,請參見在Alibaba Cloud Linux 3實例中安裝Docker

  3. 創建并運行PyTorch AI容器。

    龍蜥社區提供了豐富的基于Anolis OS的容器鏡像,包括針對AMD優化過的PyTorch鏡像,可以直接使用該鏡像直接創建一個PyTorch運行環境。

    以下命令首先拉取容器鏡像,隨后使用該鏡像創建一個以分離模式運行的、名為pytorch-amd的容器,并將用戶的家目錄映射到容器中,以保留開發內容。

    sudo docker pull registry.openanolis.cn/openanolis/pytorch-amd:1.13.1-23-zendnn4.1
    sudo docker run -d -it --name pytorch-amd --net host -v $HOME:/root registry.openanolis.cn/openanolis/pytorch-amd:1.13.1-23-zendnn4.1

部署Stable Diffusion

手動部署

步驟一:安裝配置模型所需軟件

  1. 進入容器環境。

    sudo docker exec -it -w /root pytorch-amd /bin/bash
    重要

    后續命令需在容器環境中執行,如意外退出,請使用以上命令重新進入容器環境。如需查看當前環境是否為容器,可以執行cat /proc/1/cgroup | grep docker查詢(有回顯信息則為容器環境)。

  2. 安裝部署Stable Diffusion所需的軟件。

    yum install -y git git-lfs wget tmux mesa-libGL gperftools-libs
  3. 啟用Git LFS。

    下載預訓練模型需要Git LFS的支持。

    git lfs install

步驟二:下載源碼與模型

  1. 創建一個tmux session。

    tmux
    說明

    下載預訓練模型耗時較長,且成功率受網絡情況影響較大,建議在tmux session中下載,以免ECS斷開連接導致下載模型中斷。

  2. 下載Stable Diffusion WebUI項目源碼。

    git clone -b v1.5.2 https://github.com/AUTOMATIC1111/stable-diffusion-webui.git
  3. 下載Stable Diffusion WebUI項目源碼所需依賴模型。

    mkdir stable-diffusion-webui/repositories && cd $_
    git clone https://github.com/Stability-AI/stablediffusion.git stable-diffusion-stability-ai
    git clone https://github.com/Stability-AI/generative-models.git generative-models
    git clone https://github.com/crowsonkb/k-diffusion.git k-diffusion
    git clone https://github.com/sczhou/CodeFormer.git CodeFormer
    git clone https://github.com/salesforce/BLIP.git BLIP
  4. 將Stable Diffusion所需的依賴模型切換到指定分支,以保證生成結果的穩定。

    git -C stable-diffusion-stability-ai checkout cf1d67a6fd5ea1aa600c4df58e5b47da45f6bdbf
    git -C generative-models checkout 5c10deee76adad0032b412294130090932317a87
    git -C k-diffusion checkout c9fe758757e022f05ca5a53fa8fac28889e4f1cf
    git -C CodeFormer checkout c5b4593074ba6214284d6acd5f1719b6c5d739af
    git -C BLIP checkout 48211a1594f1321b00f14c9f7a5b4813144b2fb9
  5. 下載Stable Diffusion預訓練模型。

    cd ~ && mkdir -p stable-diffusion-webui/models/Stable-diffusion
    wget "https://www.modelscope.cn/api/v1/models/AI-ModelScope/stable-diffusion-v1-5/repo?Revision=master&FilePath=v1-5-pruned-emaonly.safetensors" -O stable-diffusion-webui/models/Stable-diffusion/v1-5-pruned-emaonly.safetensors
    mkdir -p ~/stable-diffusion-webui/models/clip
    git clone --depth=1 https://gitee.com/modelee/clip-vit-large-patch14.git ~/stable-diffusion-webui/models/clip/clip-vit-large-patch14
  6. 修改腳本文件,使Stable Diffusion運行時從本地調用ViT多模態模型。

    sed -i "s?openai/clip-vit-large-patch14?${HOME}/stable-diffusion-webui/models/clip/clip-vit-large-patch14?g" ~/stable-diffusion-webui/repositories/stable-diffusion-stability-ai/ldm/modules/encoders/modules.py

步驟三:部署運行環境

  1. 更換pip下載源。

    在安裝依賴包之前,建議您更換pip下載源以加速安裝。

    1. 創建pip文件夾。

      mkdir -p ~/.config/pip
    2. 配置pip安裝鏡像源。

      cat > ~/.config/pip/pip.conf <<EOF
      [global]
      index-url=http://mirrors.cloud.aliyuncs.com/pypi/simple/
      
      [install]
      trusted-host=mirrors.cloud.aliyuncs.com
      EOF
  2. 安裝Python運行依賴。

    pip install cython gfpgan open-clip-torch==2.8.0 httpx==0.24.1
    pip install git+https://github.com/openai/CLIP.git@d50d76daa670286dd6cacf3bcd80b5e4823fc8e1
  3. 設置環境變量OMP_NUM_THREADSGOMP_CPU_AFFINITY

    ZenDNN運行庫需要針對硬件平臺顯式設置環境變量OMP_NUM_THREADSGOMP_CPU_AFFINITY

    cat > /etc/profile.d/env.sh <<EOF
    export OMP_NUM_THREADS=\$(nproc --all)
    export GOMP_CPU_AFFINITY=0-\$(( \$(nproc --all) - 1 ))
    EOF
    source /etc/profile
  4. 運行腳本,自動化部署Stable Diffusion的運行環境。

    cd ~/stable-diffusion-webui
    venv_dir="-" ./webui.sh -f --skip-torch-cuda-test --exit

步驟四:進行AI對話

  1. 執行如下命令,開啟WebUI服務。

    export LD_PRELOAD=/usr/lib64/libtcmalloc.so.4
    export venv_dir="-" 
    python3 launch.py -f --skip-torch-cuda-test --skip-version-check --no-half --precision full --use-cpu all --listen

    當出現如下信息時,表示WebUI服務啟動成功。

    image.png

  2. 在瀏覽器地址欄輸入http://<ECS公網IP地址>:7860,進入Web頁面。

  3. prompt對話框中,輸入對話內容(僅支持英文Prompt,例如:Urban portrait of a skateboarder in mid-jump, graffiti walls background, high shutter speed),單擊Generate,即可開始AI對話。

    說明

    您也可以輸入其他Prompt,來挖掘Stable Diffusion更多能力。

    image.png

自動化部署

阿里云提供了自動部署腳本,可以一鍵部署運行Stable Diffusion模型。

  1. 下載自動部署腳本。

    wget https://help-static-aliyun-doc.aliyuncs.com/file-manage-files/en-US/20231213/bild/deploy_stable-diffusion_amd-docker.sh
  2. 進入容器環境。

    sudo docker exec -it -w /root pytorch-amd /bin/bash
    重要

    后續命令需在容器環境中執行,如意外退出,請使用以上命令重新進入容器環境。如需查看當前環境是否為容器,可以執行cat /proc/1/cgroup | grep docker查詢(有回顯信息則為容器環境)。

  3. 下載tmux并創建一個tmux session。

    yum install -y tmux
    tmux
    說明

    該腳本運行中會下載模型文件,耗時較長,建議在tmux session中啟動部署,以免ECS斷開連接導致部署中斷。

  4. 為自動化部署腳本添加執行權限。

    chmod +x deploy_stable-diffusion_amd-docker.sh
  5. 運行自動化部署腳本。

    ./deploy_stable-diffusion_amd-docker.sh

    當顯示結果如下所示時,說明自動部署腳本已完成。

    image.png

    說明

    該腳本運行時間較長,在tmux session中進行部署的過程中,如果斷開了ECS連接,重新登錄ECS實例后執行tmux attach命令即可恢復tmux session,查看腳本運行進度。

  6. 在瀏覽器地址欄輸入http://<ECS公網IP地址>:7860,進入Web頁面。

  7. prompt對話框中,輸入對話內容(僅支持英文Prompt,例如:Urban portrait of a skateboarder in mid-jump, graffiti walls background, high shutter speed),單擊Generate,即可開始AI對話。

    說明

    您也可以輸入其他Prompt,來挖掘Stable Diffusion更多能力。

    image.png