总览
ComfyUI 是一个为 Stable Diffusion 专门设计的基于节点的图形用户界面(GUI)。它使用户能够通过链接不同的块(称为节点)来构建复杂的图像生成工作流程。与 SD-WebUI 相比,ComfyUI 提供了极高的自由度和灵活性,支持高度的定制化和工作流复用。
本文为您介绍如何基于平台基础镜像,构建 ComfyUI 自定义镜像,并导入 SD 模型、部署 ComfyUI 服务进行在线推理。
说明:
平台默认容器内模型根目录为固定路径即"/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. 以下用自定义镜像 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 或 GooseFSx
1. 登录 CFS 控制台 或 GooseFSx 控制台,在左侧导航栏中选择文件系统,单击创建,选择您需要的存储类型,完成对应配置。(GooseFSx 可忽略此步)

2. 登录 CFS 控制台 或 GooseFSx 控制台,在左侧导航栏中选择实例,单击新建,进行购买。
说明:
1. CFS、GooseFS、CVM 地域请选择 TIONE 支持的地域:北京、上海、广州。
2. CFS、GooseFS、CVM 网络请保持一致。
3. 在 CVM 上挂载 CFS,可参考 在 Windows 客户端上使用 CFS 文件系统。
4. 在 CVM 上挂载 GooseFSx,可参考 管理 GooseFSx 客户端。
示例可参考:
sudo mount -t nfs -o vers=4.0,noresvport 192.168.0.14:/ /data
第二步:将模型上传到 CFS 或 GooseFSx
假设 ${CFS_DIR} 为 CFS 或 GooseFSx 挂载目录,如示例 ${DATA_DIR} = /data/comfyui:
1. 基础模型存放在 ${DATA_DIR}/models/Stable-diffusion 下,当此路径下无模型时,平台会使用内置模型 v1-5-pruned-emaonly.ckpt。
2. 插件存放在 ${DATA_DIR}/config/model/config/comfy/custom_nodes 下,平台镜像中内置了插件 ComfyUI-VideoHelperSuite。
3. 模型元信息存放在 ${DATA_DIR}/.cache 下,平台镜像中内置了 hugging face models--openai--clip-vit-large-patch14。
说明:
因涉及 Hugging Face 的软件许可和合规问题,平台上无法访问访问 Hugging Face 等外网,因此模型涉及的元信息需手动存放至此。
4. Lora 等目录结构可同 stable diffusion webui, 均存放至 ${DATA_DIR}/models/ 下。


三、服务部署
1. 登录 TI-ONE 控制台,在左侧导航栏中选择模型服务 > 在线服务,单击新建服务,进入新建页面。
2. 您可填写服务名称,模型来源选择“CFS 或 GooseFS”,选择该地域下的 CFS 或 GooseFS,挂载路径为自定义的模型所在路径(例如 comfyiui),运行环境选择自定义,选择算力,配置其他您需要的信息,单击启动服务,当您服务状态为运行中时,即部署完成,可进行推理。
四、UI 界面使用
您部署好服务后,在服务列表页的服务管理,操作里会出现打开 WebUI 页面按钮。


案例一:文生图
1. ComfyUI 示例如下:


2. 单击“Queue Prompt” 进行生图,如下图:

案例二:图生视频
1. 将 svd 模型文件上传至 CFS ${CFS_DIR}/models/Stable-diffusion。

说明:
2. 如 模型导入第二步 所述,将 svd 模型文件放在 /models/Stable-diffusion 路径下。

3. 打开界面,上传 workflow,图生视频的工作流示例如下:

说明:
4. 单击“Queue Prompt” 进行推理,得到视频,如下:
