基于ACK托管集群Pro版和GPU节点,可以快速部署ComfyUI应用,解决本地性能瓶颈和复杂环境配置的问题。
适用范围
集群版本为1.22及以上,GPU节点显存需为16GB及以上的ACK托管集群Pro版。
设置NVIDIA驱动为535及以上版本,本示例为GPU节点池添加标签
ack.aliyun.com/nvidia-driver-version
,驱动版本为550.144.03
。
步骤一:准备模型数据
本文以sdxl-turbo模型(文生图模型,单步即可出图)为例,演示如何下载模型,上传至OSS,并在ACK中创建PV和PVC进行持久化存储。
下载模型文件到本地。
安装Git、Git LFS(Large File Support)插件。
macOS
安装Git。
官方维护的 macOS Git 安装程序可以在 Git 官方网站下载。
brew install git
安装Git LFS(Large File Support)插件拉取大文件内容。
brew install git-lfs
Windows
安装Git。
可在Git 官方网站下载合适版本并安装。
安装Git LFS(Large File Support)插件拉取大文件内容。
目前lfs已经集成在了Git for Windows 中,直接下载和使用最新版本的Windows Git即可。
Linux
安装Git。
以RedHat系列的Linux系统为例,其余系统安装,请参见Git 官方网站。
yum install git
安装Git LFS(Large File Support)插件拉取大文件内容。
yum install git-lfs
下载sdxl-turbo模型。
GIT_LFS_SKIP_SMUDGE=1 git clone https://www.modelscope.cn/AI-ModelScope/sdxl-turbo.git cd sdxl-turbo git lfs pull
将下载的sdxl-turbo文件夹上传至OSS。
安装ossutil,用于管理OSS资源。
创建Bucket存储空间。
ossutil mb oss://<Your-Bucket-Name>
在OSS创建名为sdxl-turbo的目录。
ossutil mkdir oss://<Your-Bucket-Name>/sdxl-turbo
上传模型文件至OSS。
ossutil cp -r ./sdxl-turbo oss://<Your-Bucket-Name>/sdxl-turbo
配置存储卷PV。
登录容器服务管理控制台,进入集群详情页。
在左侧导航栏,选择 。
在存储卷页面,单击右上角的创建。
在创建存储卷对话框中配置参数。
存储卷类型:OSS
名称:sdxl-turbo-model
总量:20Gi
访问模式:ReadWriteMany
访问证书:选择新建保密字典
可选参数:
-o umask=022 -o max_stat_cache_size=0 -o allow_other
Bucket ID:选择Bucket。
OSS Path:/sdxl-turbo
访问域名:公网域名
参数配置完成后,单击创建。
配置存储声明PVC。
在左侧导航栏,选择 。
在创建存储声明页面中,填写界面参数。
存储声明类型:OSS
名称:sdxl-turbo-model
分配模式:已有存储卷
已有存储卷:选择已有存储卷
总量:20Gi
创建成功后可以在列表中看到
sdxl-turbo-model
,并且已绑定(Bound)相应的存储卷。
步骤二:配置Models部署参数
登录容器服务管理控制,在左侧导航栏选择集群列表。
在集群列表页面,单击目标集群名称,然后在左侧导航栏,选择。找到comfyui组件,按页面引导完成创建。
在comfyui参数配置界面中,修改
persistence
参数的模型配置信息,其余保持默认。persistence: - mountPath: "/app/ComfyUI/models/checkpoints" #修改模型来源 annotations: helm.sh/resource-policy: keep persistentVolumeClaim: existingClaim: "sdxl-turbo-model" #修改为以上创建的PVC accessModes: ReadWriteMany storageClass: oss #存储卷类型修改为oss size: 20Gi subPath: ""
修改模型来源:
mountPath:"/app/ComfyUI/models/checkpoints"
修改为已创建PVC:
existingClaim:"sdxl-turbo-model"
修改存储卷类型:
storageClass:oss
步骤三:访问并测试服务
使用kubectl命令将ComfyUI服务转发到本地8080端口。
确保本地8080端口未被占用,且保持终端窗口开启以维持端口转发。更多信息,请参考port-forward。
kubectl port-forward svc/ack-comfyui 8080:8188
预期输出:
Forwarding from 127.0.0.1:8080 -> 8188 Forwarding from [::1]:8080 -> 8188
在本地通过浏览器访问服务
http://localhost:8080
。下载sdxl-turbo示例工作流,并在ComfyUI页面单击
Load
,将获取的工作流加载到ComfyUI中。设置提示词,在CLIP Text Encode(Prompt)文本框输入:
beautiful landscape scenery glass bottle with a galaxy inside cute fennec fox snow HDR sunset
在ComfyUI页面,依次设置
Extra Options
->Auto Queue
,然后单击Queue Prompt
,生成图片如下所示。