通過在ECS實例(非GPU實例)上綁定一個EAIS實例,即可生成一款新規格的GPU實例,該方式相比直接購買GPU實例,可以實現GPU資源的彈性使用(例如您可以根據實際需要綁定EAIS實例,即可靈活為ECS實例提供GPU資源),并為您降低部署成本和使用成本。本文為您介紹如何將EAIS實例綁定到ECS實例上,通過安裝EAIS軟件包的方式手動部署Stable-Diffusion。
背景信息
Stable-Diffusion是一個圖片生成模型,您可以使用EAIS實例來部署Stable-Diffusion,也可以直接在GPU實例上部署。在ECS實例上綁定EAIS實例來部署Stable-Diffusion的方式,相比直接購買GPU實例部署,可以從如下方面節省成本。更多EAIS實例優勢,請參見低成本。
更多Stable-Diffusion信息,請參見Stable-Diffusion。
更多GPU實例信息,請參見什么是GPU云服務器。
節省部署成本:
在您使用ECS實例(非GPU實例)完成環境搭建之前,您無需創建EAIS實例,此時,僅有ECS實例(非GPU實例)在計費。如果您直接購買GPU實例然后在GPU實例上部署環境,將花費更多的成本用于部署環境。
節省使用成本:
GPU資源靈活掛載:當您部署好Stable-Diffusion后,如果您暫時不需要執行Stable-Diffusion任務,您可以前往EAIS控制臺解綁并釋放EAIS實例。然后在您需要執行任務時,再重新創建并綁定EAIS實例,此時,您在ECS實例上部署的環境沒有任何影響。因此,您只需要長期擁有一臺相比GPU實例更便宜的ECS實例,然后在需要使用GPU時掛載一臺EAIS實例,該方式可以節省更多成本。
說明使用EAIS控制臺和調用CreateEaisEi創建的EAIS實例,還可以通過停止或啟動EAIS實例來靈活地為ECS實例提供GPU能力。只有啟動EAIS實例時才會計費,停止EAIS實例即可結束計費,因此,還可以節省更多成本。
單價便宜:對比計費單價,使用EAIS實例比相同算力的GPU實例更加便宜。
計費說明
在部署和使用Stable-Diffusion的過程中,涉及的計費內容如下:
環境說明
本教程將以如下EAIS實例與ECS實例為例,為您介紹如何使用EAIS實例部署Stable-Diffusion。
ECS實例:
實例規格:ecs.g7.xlarge(4 vCPU、16 GiB內存)
操作系統:Ubuntu 20.04
系統盤容量:100 GiB
EAIS實例規格:eais.ei-a6.2xlarge
ECS實例和EAIS實例的地域和可用區:華北2(北京) 可用區I
說明ECS實例與EAIS實例處于同一個可用區時,可以提高推理性能。您可以在EAIS實例規格支持的地域和可用區下創建ECS實例。EAIS實例規格支持的地域和可用區信息,請參見實例規格限制。
步驟一:創建ECS實例
步驟二:在ECS實例上部署Stable-Diffusion環境
遠程連接ECS實例。
具體操作,請參見在Linux或macOS環境中使用用戶名密碼驗證。
安裝Docker。
執行如下命令,安裝Docker依賴包。
apt-get update apt install -y software-properties-common
執行如下命令,安裝Docker。
curl -fsSL https://mirrors.ustc.edu.cn/docker-ce/linux/ubuntu/gpg | apt-key add - add-apt-repository \ "deb [arch=amd64] https://mirrors.ustc.edu.cn/docker-ce/linux/ubuntu \ $(lsb_release -cs) \ stable" apt-get update apt-get install -y docker-ce
執行如下命令,下載Pytorch官方的Docker鏡像。
docker pull pytorch/pytorch:1.13.1-cuda11.6-cudnn8-devel
執行如下命令,啟動Docker容器。
docker run --net host -it pytorch/pytorch:1.13.1-cuda11.6-cudnn8-devel
安裝EAIS軟件包。
部署Stable-Diffusion環境。
執行如下命令,安裝stable-diffusion webui運行依賴的軟件包。
apt-get install -y git libgl1 libglib2.0-dev
執行如下命令,下載stable-diffusion源碼。
git clone https://github.com/AUTOMATIC1111/stable-diffusion-webui cd stable-diffusion-webui
執行如下命令,安裝stable-diffusion webui運行依賴的Python軟件包。
說明由于使用
git clone
命令安裝stable-diffusion webui運行依賴的Python軟件包可能會安裝失敗,建議您提前將待安裝的軟件包存放到OSS上,然后運行命令直接從阿里云OSS上下載并安裝軟件包,本教程以該方式為例進行操作。pip3 install -r requirements.txt -i https://mirrors.aliyun.com/pypi/simple pip3 install -r requirements_versions.txt -i https://mirrors.aliyun.com/pypi/simple wget https://aiacc-inference-public.oss-cn-beijing.aliyuncs.com/stable-diffusion/CLIP.tar.gz tar zxf CLIP.tar.gz pip3 install CLIP/ -i https://mirrors.aliyun.com/pypi/simple wget https://aiacc-inference-public.oss-cn-beijing.aliyuncs.com/stable-diffusion/open_clip.tar.gz tar zxf open_clip.tar.gz pip3 install open_clip/ -i https://mirrors.aliyun.com/pypi/simple python3 launch.py --skip-torch-cuda-test --exit pip3 install markupsafe==2.0.1 -i https://mirrors.aliyun.com/pypi/simple
可選:執行如下命令,下載Stable-Diffusion預訓練模型。
您可以使用該命令下載Stable-Diffusion預訓練模型用于推理,您也可以在運行Stable-Diffusion程序時,等待程序自動下載該模型。
wget https://aiacc-inference-public.oss-cn-beijing.aliyuncs.com/stable-diffusion/v1-5-pruned-emaonly.safetensors -P models/Stable-diffusion/
步驟三:創建EAIS實例并綁定至ECS實例
創建EAIS實例。
具體操作,請參見創建EAIS實例。
創建EAIS實例時,您需要注意如下配置項,未提及的配置項您根據實際情況設置即可。
配置項
配置示例
地域
華北2(北京)
實例規格
eais.ei-a6.2xlarge
將EAIS實例綁定至步驟一:創建ECS實例創建的ECS實例。
具體操作,請參見綁定ECS實例。
步驟四:啟動EAIS實例
僅使用EAIS控制臺和調用CreateEaisEi創建的EAIS實例需要執行本操作。
綁定EAIS實例至ECS實例后,您必須要啟動EAIS實例才能使用EAIS提供的GPU能力,具體操作,請參見啟動EAIS實例。
步驟五:啟動Stable-Diffusion Web服務
遠程連接ECS實例。
具體操作,請參見在Linux或macOS環境中使用用戶名密碼驗證。
可選:執行如下命令,查看EAIS實例的相關信息。
eais_smi
您可以查看EAIS實例規格、EAIS GPU使用率等,回顯如下。
執行如下命令,啟動Stable-Diffusion Web服務。
python3 launch.py --listen --api --enable-insecure-extension-access --skip-install
回顯信息如下,表示成功啟動Stable-Diffusion Web服務。此時,您需要查看Stable-Diffusion Web服務的端口,默認為7860,如圖所示。
為ECS實例配置安全組規則。
你需要在您的ECS實例安全組規則中添加7860端口的訪問權限,其中授權對象為您用來訪問Stable-Diffusion Web服務的IP地址或IP地址段。具體操作,請參見添加安全組規則。
在您的本地機器上使用瀏覽器訪問
http://ECS實例的公網IP地址:7860
,檢查Stable-Diffusion Web服務是否搭建成功。如果成功訪問網站,如圖所示,表示您已成功搭建Stable-Diffusion Web服務。
(可選)步驟六:停止EAIS實例
僅使用EAIS控制臺和調用CreateEaisEi創建的EAIS實例支持執行本操作。
當您暫時不需要EAIS實例提供的GPU能力時,可以停止EAIS實例,從而避免不必要的計費。具體操作,請參見停止EAIS實例。
(可選)步驟七:解綁并釋放EAIS實例
為滿足您業務的靈活性,您可以根據需要解除ECS實例與已綁定的EAIS實例之間的關聯,然后再釋放EAIS實例,從而實現GPU資源的彈性使用。
相關文檔
您也可以通過EAIS提供的鏡像部署Stable-Diffusion,請參見(推薦)使用EAIS提供的鏡像快速部署Stable-Diffusion。
如果您需要通過EAIS實例部署ChatGLM-6B,請參見使用EAIS實例部署ChatGLM-6B。
如果您需要通過EAIS實例部署ChatGLM2-6B,請參見使用EAIS實例部署ChatGLM2-6B。