如何使用阿里云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

  • 25
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要配置阿里云的yum源,你可以按照以下步骤操作: 1. 首先,将阿里云的CentOS-7.repo文件下载到/etc/yum.repos.d/目录下,可以使用命令wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo。 2. 进入该目录,编辑CentOS-Base.repo文件,添加以下内容: ``` [AppStream] name=AppStream baseurl=file:///yum/local/AppStream enabled=1 gpgcheck=0 ``` 这样就将AppStream源配置为使用本地的/yum/local/AppStream目录作为源。 3. 然后,挂载你的ISO镜像文件到/yum/local/目录下,使用命令mount -o loop /home/iso/AnolisOS-8.2-QU2-x86_64-dvd.iso /yum/local/。 4. 最后,确保你的配置文件中添加了AppStream或BaseOS,否则在使用yum命令时会出现错误。在CentOS-Base.repo文件中找到[base]和[updates]部分,分别在这两个部分下方添加以下内容: ``` baseurl=file:///yum/local/BaseOS ``` 这样就将BaseOS源配置为使用本地的/yum/local/BaseOS目录作为源。 这样,你就成功配置了阿里云的yum源,可以使用yum命令来安装、更新和管理软件包了。请注意,根据你的实际情况,可能需要调整文件路径和镜像文件名。<span class="em">1</span><span class="em">2</span><span class="em">3</span><span class="em">4</span> #### 引用[.reference_title] - *1* *2* *4* [龙蜥 配置本地yum源](https://blog.csdn.net/Python_00/article/details/129941623)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *3* [Linux修改默认的yum下载源为阿里云的地址](https://blog.csdn.net/huchaun/article/details/122041595)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值