背景
本文为您介绍如何基于平台基础镜像,构建 SD-ComfyUI 自定义镜像,并导入模型、部署 Comfy-UI 服务进行在线推理。
说明:
平台默认容器内模型根目录为固定路径即"/data/model"。
平台默认推理服务端口为8501。
一、构建自定义镜像
本节为您介绍,如何基于平台基础镜像构建自定义镜像,并上传到自定义镜像仓库,进行部署服务使用。
平台基础镜像
1. 内置特性如下:
内置图生视频插件 ComfyUI-VideoHelperSuite
内置 SD 模型 v1-5-pruned-emaonly.ckpt
2. 获取镜像:
基础镜像为:
cc.ccs.tencentyun.com/tione-public-images/ti-cloud-stable-diffusion-webui:comfyui-v0.0.1-062483
拉取到本地:
docker pull ccr.ccs.tencentyun.com/tione-public-images/ti-cloud-stable-diffusion-webui:comfyui-v0.0.1-062483
构建自定义镜像
1. 当自定义镜像名中含有 stable-diffusion-webui 字符串时可以使用平台 UI 界面,您部署好服务后,在服务列表页的服务管理,操作里会出现打开 WebUI 页面按钮。![](https://qcloudimg.tencent-cloud.cn/image/document/dd9744e3526fa16fe93464e5b11b52d2.png)
![](https://qcloudimg.tencent-cloud.cn/image/document/dd9744e3526fa16fe93464e5b11b52d2.png)
2. 以下用自定义镜像 ccr.ccs.tencentyun.com/test/stable-diffusion-webui:comfyui-1.0.1,举例说明:
自定义镜像 Dockerfile。
FROM ccr.ccs.tencentyun.com/tione-public-images/ti-cloud-stable-diffusion-webui:comfyui-v0.0.1-062483ENV DEBIAN_FRONTEND=noninteractive PIP_PREFER_BINARY=1ENV ROOT=/stable-diffusion##### ----- 【您按需进行替换: Begin】 ---------# already exit ComfyUI codes in base imageRUN rm -rf ${ROOT}RUN --mount=type=cache,target=/root/.cache/pip \\git clone https://github.com/comfyanonymous/ComfyUI.git ${ROOT} && \\cd ${ROOT} && \\git checkout master && \\git reset --hard 062483823738ed610d8d074ba63910c90e9d45b7 && \\pip install -r requirements.txt##### ----- 【您按需进行替换: End】 ---------WORKDIR ${ROOT}RUN chmod u+x /docker/entrypoint.sh && cp /docker/extra_model_paths.yaml ${ROOT}ENV NVIDIA_VISIBLE_DEVICES=all PYTHONPATH="${PYTHONPATH}:${PWD}" CLI_ARGS=""EXPOSE 7860ENTRYPOINT ["/docker/entrypoint.sh"]CMD python -u main.py --listen --port 8501 ${CLI_ARGS}
构建自定义镜像。
您需要将ccr.ccs.tencentyun.com/test/stable-diffusion-webui:comfyui-1.0.1 替换为自己的镜像仓库名称:
docker build -f Dockerfile -t ccr.ccs.tencentyun.com/test/stable-diffusion-webui:comfyui-1.0.1 .
将自定义镜像推送至镜像仓库。
二、模型导入
第一步:前置准备,购买 CVM 和 CFS
1. 登录 CFS 控制台,在左侧导航栏中选择文件系统,单击创建,选择您需要的存储类型,完成对应配置。![](https://qcloudimg.tencent-cloud.cn/image/document/ab6ce07656f71af988b240a03f9712df.png)
![](https://qcloudimg.tencent-cloud.cn/image/document/ab6ce07656f71af988b240a03f9712df.png)
2. 登录 CFS 控制台,在左侧导航栏中选择实例,单击新建,进行购买。
说明:
1. CFS、CVM 地域请选择 TIONE 支持的地域:北京、上海、广州。
2. CFS、CVM 网络请保持一致。
3. 在 CVM 上挂载 CFS,可参考 在 Windows 客户端上使用 CFS 文件系统。
示例可参考:
sudo mount -t nfs -o vers=4.0,noresvport 192.168.0.14:/ /data
第二步:将模型上传到 CFS
假设 ${CFS_DIR} 为 CFS 挂载目录,如示例 ${CFS_DIR} = /data/comfyui:
1. 基础模型存放在 ${CFS_DIR}/models/Stable-diffusion 下,当此路径下无模型时,平台会使用内置模型 v1-5-pruned-emaonly.ckpt。
2. 插件存放在 ${CFS_DIR}/config/model/config/comfy/custom_nodes 下,平台镜像中内置了插件 ComfyUI-VideoHelperSuite。
3. 模型元信息存放在 ${CFS_DIR}/.cache 下,平台镜像中内置了 hugging face models--openai--clip-vit-large-patch14。
说明:
因涉及 Hugging Face 的软件许可和合规问题,平台上无法访问访问 Hugging Face 等外网,因此模型涉及的元信息需手动存放至此。
4. Lora 等目录结构可同 stable diffusion webui, 均存放至 ${CFS_DIR}/models/ 下。
![](https://qcloudimg.tencent-cloud.cn/image/document/9e4bc571ed97d84ce90cfaa890532ad4.png)
![](https://qcloudimg.tencent-cloud.cn/image/document/9e4bc571ed97d84ce90cfaa890532ad4.png)
三、服务部署
1. 登录 TI-ONE 控制台,在左侧导航栏中选择模型服务 > 在线服务,单击新建服务,进入新建页面。
2. 您可填写服务名称,模型来源选择“CFS”,选择该地域下的 CFS,CFS 挂载路径为自定义的模型所在路径(例如 comfyiui),运行环境选择自定义,选择算力,配置其他您需要的信息,单击启动服务,当您服务状态为运行中时,即部署完成,可进行推理。![](https://qcloudimg.tencent-cloud.cn/image/document/863426c679ce12eb58b11eb27bc6b0de.png)
![](https://qcloudimg.tencent-cloud.cn/image/document/863426c679ce12eb58b11eb27bc6b0de.png)
四、UI 界面使用
如 构建自定义镜像 中所述,当自定义镜像名中含有 stable-diffusion-webui 字符串时可以使用平台 UI 界面,您部署好服务后,在服务列表页的服务管理,操作里会出现打开 WebUI 页面按钮。
![](https://qcloudimg.tencent-cloud.cn/image/document/3fa59ba680f32ec18d01ff74cf16e090.png)
![](https://qcloudimg.tencent-cloud.cn/image/document/3fa59ba680f32ec18d01ff74cf16e090.png)
案例一:文生图
1. ComfyUI 示例如下:![](https://qcloudimg.tencent-cloud.cn/image/document/18d13d2aade2309027d0d8f375b7b2bc.png)
![](https://qcloudimg.tencent-cloud.cn/image/document/18d13d2aade2309027d0d8f375b7b2bc.png)
2. 单击“Queue Prompt” 进行生图,如下图:![](https://qcloudimg.tencent-cloud.cn/image/document/3215f951075ce1efe490059f1137bbfa.png)
![](https://qcloudimg.tencent-cloud.cn/image/document/3215f951075ce1efe490059f1137bbfa.png)
案例二:图生视频
1. 将 svd 模型文件上传至CFS ${CFS_DIR}/models/Stable-diffusion。![](https://qcloudimg.tencent-cloud.cn/image/document/28bc562f922a5800d971fbff16cfa3e6.png)
![](https://qcloudimg.tencent-cloud.cn/image/document/28bc562f922a5800d971fbff16cfa3e6.png)
说明:
2. 如 模型导入第二步 所述,将 svd 模型文件放在 /models/Stable-diffusion 路径下。![](https://qcloudimg.tencent-cloud.cn/image/document/b41b2bf5f9210e02f011dac6df8480f2.png)
![](https://qcloudimg.tencent-cloud.cn/image/document/b41b2bf5f9210e02f011dac6df8480f2.png)
3. 打开界面,上传 workflow,图生视频的工作流示例如下:![](https://qcloudimg.tencent-cloud.cn/image/document/5b32ede12c610938804f73b09f99c273.png)
![](https://qcloudimg.tencent-cloud.cn/image/document/5b32ede12c610938804f73b09f99c273.png)
说明:
4. 单击“Queue Prompt” 进行推理,得到视频,如下:![](https://qcloudimg.tencent-cloud.cn/image/document/4380d488556215c20e881d2f242a99bf.gif)
![](https://qcloudimg.tencent-cloud.cn/image/document/4380d488556215c20e881d2f242a99bf.gif)