添加链接
link管理
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接
通过函数计算部署ComfyUI以实现一个AIGC图像生成系统

通过函数计算部署ComfyUI以实现一个AIGC图像生成系统

更新时间:

方案概览

ComfyUI是一款基于节点工作流稳定扩散算法的全新WebUI。如果您需要高质量的图像生成功能,建议您使用函数计算提供的ComfyUI模型,也可以自定义ComfyUI模型、安装插件以满足定制化创作需求。函数计算基于Serverless应用中心开发“ComfyUI应用模板”,简化开发者的部署流程。同时可以充分利用 函数计算 按需付费,弹性伸缩等优势,高效地为用户提供基于ComfyUI模型的绘画生成服务。

免费产品模板-流程图 (2)

本方案的技术架构包括以下基础设施和云服务:

  • 函数计算 :用于提供ComfyUI模型的应用服务。

  • 文件存储 NAS :用于存放预训练的ComfyUI模型和生成的图片。

  • 专有网络 VPC :用于配置专有网络,方便 函数计算 访问 文件存储 NAS

部署准备

开始部署前,请按以下指引完成账号申请、账号充值。

准备账号

  1. 如果您还没有阿里云账号,请访问 阿里云账号注册页面 ,根据页面提示完成注册。阿里云账号是您使用云资源的付费实体,因此是部署方案的必要前提。

  2. 为了节省成本,建议您根据情况领取新客户试用套餐,函数计算使用额度详情请参见 试用额度

入门:部署 ComfyUI

  1. 登录 函数计算3.0控制台 ,在左侧导航栏,单击 应用

    当左上角显示 函数计算 FC 3.0 时,表示当前控制台为3.0控制台。

    image

  2. 在应用页面,点击 创建应用 ,选择 通过模板创建应用 ,在 人工智能 页签找到 流程式 AI 图片生成 ComfyUI 光标移至该卡片,然后单击 立即创建

    image

  3. 在创建应用页面,设置以下配置项,然后单击 创建应用

    重点配置项说明如下,如果您没有特殊要求,其余配置项保持默认值即可。

    配置项名称

    说明

    示例值

    角色名

    创建应用所需的权限。首次创建应用的用户,需要单击 前往授权 配置角色权限。

    image

    image.png

    AliyunFCServerlessDevsRole

    地域

    地域选择可以选择距离自己较近的区域,目前支持华东1(杭州)、华东2(上海)。

    由于当前模板涉及GitHub以及HuggingFace等网站的访问,国内部分地域可能无法直接使用。

    华东1(杭州)

    内置模型

    选择内置风格。

    黏土风格

  4. 在弹出的对话框,仔细阅读应用创建提醒信息,勾选涉及的计费项和 我已经了解上面的内容,并同意上述描述 ,然后单击 同意并继续部署

    image

  5. 部署完成后,在 环境详情 页面,直接点击 访问域名 右侧的域名,开始体验ComfyUI图片生成。

    重要
    • 请注意保护域名的安全,不要泄露给其他人,以防产生额外费用。

    • ***.devsapp.net域名是CNCF SandBox项目Serverless Devs社区所提供,仅供学习和测试使用,不可用于任何生产使用;社区会对该域名进行不定期地拨测,并在域名下发30天后进行回收,强烈建议您绑定自定义域名以获得更好的使用体验,详细请见 配置自定义域名

    image

  6. 首次打开ComfyUI,遇到无法访问此网站情况,无需刷新等待10 秒即可进入。

    说明

    这里等待10秒主要是函数计算基于Serverless应用中心开发ComfyUI应用模板有冷启动。冷启动是指在函数调用链路中的代码下载、启动函数实例、进程初始化及代码初始化等环节。如果您希望消除冷启动带来的影响,可以配置预留实例,详情请参考 配置预留实例

    image.png

  7. ComfyUI提供默认工作流,点击 Queue Prompt ,测试制作自己的第一张图。第一张图的出图时间大概需要15秒,后续出图时间大概3秒左右。

    说明

    第一张图耗时更长是需要加载模型到内存。Queue Size表示正在等待出图的个数。请您在看到Queue Size:1之后,耐心等待出图。下图中箭头所指的绿框表示当前工作流执行所处的位置,您可以通过观察绿框的移动查看工作流的执行进度。

    image

    您也可以自己定义提示词,点击 Queue Prompt ,如下图所示。

    • 正向提示词 Spring, flowers, willows, little birds, distant green mountains, a boy is climbing up to the mountains, smiles, Pictrue highlight, rich details

    • 反向提示词 loli,nsfw, logo, test, badhandv4, EasyNegative, mutated hands and fingers, poorly drawn face, extra limb, missing limb, disconnected limbs, malformed hands, ugly

    image

用ComfyUI自制黏土风格滤镜

为了让您更直观的感受ComfyUI强大的绘图能力,我们提供了预置的工作流文件、内置大模型和Lora模型,让您基于函数计算轻松部署ComfyUI应用,快速生成各类风格滤镜的图片。本文以黏土风格滤镜为例介绍相关的操作步骤。

  1. 下载预置的JSON文件,首先,请下载 workflow.json 文件。

    导入JSON文件至ComfyUI,打开ComfyUI,点击 Load 按钮,选择并导入已经下载好的workflow.json文件。

    说明

    ComfyUI的工作流可以保存为一个JSON文件,方便您保存和分享工作流的配置,但您不需要关心JSON文件的具体内容。建议您下载别人配置好的工作流JSON文件,在ComfyUI页面加载,快速体验和使用已有工作流。建议您访问 ComfyUI示例 查看ComfyUI官方提供的一些工作流示例。

    image

  2. 在图片区Load Image对话框选择choose file to upload导入需要制成“黏土风格”的原图。

    说明

    如果找不到该选项,可以滚动鼠标滑轮将模型放大。

    image

  3. 选择好原图,点击右侧 Queue Prompt 等待图片生成

    image

  4. 因为ComfyUI基于Serverless函数计算产品部署,因此生成第一张图的时候需要冷启动时间,第一张图生成需要等待30秒,后续每张图生成时间为2-5秒。

    经过实测,人物肖像表现会更好。建议您用人物照片进行测试。

    image

进阶:管理模型及更多功能探索

当前已实现通过函数计算部署ComfyUI并生成图片的功能。您还可以通过自定义模型和节点等操作以满足您实际业务场景下的个性化需求。如果您需要将生成的绘画进行保存、下载等操作,则需要使用阿里云提供的存储服务,这里以文件存储NAS为例,下面介绍具体的操作方法。

绑定文件管理NAS。通过 函数计算控制台 的网络配置,绑定专有网络、交换机。若无相关资源,需要先创建。

  1. 进入到函数控制台。

    环境详情 页面,选择 资源信息 下的函数名称进入。

    image

  2. 函数详情 页签,选择 配置页签 ,在左侧导航栏,单击 网络,然后 进行 编辑 ,配置完成后点击 部署

    • 自动配置

      如果您未创建过NAS,可以选择 自动配置 函数计算 将自动为您部署所有配置。

    • 自定义配置

      如果您之前创建过NAS,并且希望继续进行挂载,可以选择 自定义配置 ,然后依次选择 专用网络 交换机 安全组 信息。

      重点配置项说明如下,如果您没有特殊要求,其余配置项保持默认值即可。

      配置项名称

      示例值

      允许访问VPC

      配置方式

      自定义配置

      专有网络

      选择您已有的VPCxxxx

      交换机

      选择您已有的交换机xxxx

      安全组

      选择您已有的安全组xxxx

      image

  3. 函数详情 页签,点击 配置 ,点击 存储 ,点击 NAS 文件系统 编辑 ,进行NAS挂载设置。

    • 自动配置

      如果您未创建过NAS,可以选择 自动配置 函数计算 将自动为您部署所有配置,点击 部署

    • 自定义配置

      进行NAS挂载设置,依次选择 NAS 文件系统 挂载点 数据传输方式 ,输入 远端目录 ,函数 本地目录 请填写 /mnt/auto /mnt/auto/comfyui ,如果您曾经在当前NAS中使用过Stable Diffusion应用,可以考虑将远端目录设置为 /fc-stable-diffusion-plus ,本地目录设置为 /mnt/auto ,输入完成点击 部署

      大模型对文件 IO 要求较高,建议创建通用性能型 NAS 实例,NAS会根据存储的文件大小进行计费,不同规格的 NAS 计费单价不一致,请参考 计费概述

      image

  4. 函数详情 页签,点击 实例 ,再点 登录实例 进入ComfyUI终端。

    函数计算支持登入运行中的函数实例,建议您在终端中执行需要的操作(如手动安装自定义节点、依赖等)。

    重要

    在Serverless环境下,您的所有改动都不会真正保存,您需要将改动的文件放置在NAS中以持久化。

    image

  5. 创建NAS浏览器应用,便于像访问本地文件系统一样访问NAS文件系统。

    1. 登录 NAS控制台

    2. 选择 文件系统列表 ,选择目标 文件系统ID/名称 。在目标文件系统的 操作 列,单击 image.png 图标 >浏览器

      image.jpeg

    3. 点击 浏览器 会在函数计算 应用 面板创建对应应用,点击目标应用进入,您可以在 环境详情 页签点击 访问域名 进行文件管理。

      image

    4. 借助文件存储NAS的文件浏览器功能,您可以方便地进行云上文件管理。

      image

  6. 您可以使用ComfyUI-Manager安装所需的节点,下面以安装中文翻译插件 AIGODLIKE-COMFYUI-TRANSLATION 为例介绍操作方法。

    重要

    安装过程中请不要关闭页面。安装完成后,除去需要点击restart外,还需要刷新页面。

    安装过程中可能会访问Github、HuggingFace等境外网站,由于网络问题可能会导致访问较慢或失败,您可以在网络上检索如何解决类似的问题。

    1. 点击 Manager ,点击 Install Custom Nodes

      image.jpeg

    2. 搜索需要安装的节点名称:AIGODLIKE-COMFYUI-TRANSLATION,点击install。

      image.jpeg

    3. 安装完成,您可以在设置里将语言改为中文。

      image

    4. 加速依赖下载。

      使用国内 pypi 镜像加速依赖下载。编辑 /mnt/auto/comfyui/root/.pip/pip.conf 文件,设置镜像源为阿里云。

      [global]
      index-url = http://mirrors.aliyun.com/pypi/simple/
      [install]
      trusted-host = https://mirrors.aliyun.com
    5. (可选)解决缺失节点的问题。

      导入第三方的工作流,可能会遇到节点不存在的报错,可以借助ComfyUI Manager安装缺失的节点。部分节点升级后,可能仍然提示未安装,可参考 ComfyUI Guides 的相关讨论解决。

      image.jpeg

      image.jpeg

  7. 为了让您能够简单快捷地体验ComfyUI不同工作流带来的全新体验,我们提供了预置的JSON文件,具体操作如下。

    1. 下载预置的JSON文件,首先,请下载 controlnet.json 文件。

      导入JSON文件至ComfyUI,打开ComfyUI,点击 Load 按钮,选择并导入已经下载好的controlnet.json文件。

      说明

      ComfyUI的工作流可以保存为一个JSON文件,方便您保存和分享工作流的配置,但您不需要关心JSON文件的具体内容。建议您下载别人配置好的工作流JSON文件,在ComfyUI页面加载,快速体验和使用已有工作流。建议您访问 ComfyUI示例 查看ComfyUI官方提供的一些工作流示例。

      image

    2. 选择好原图,点击右侧 Queue Prompt 等待图片生成

      image

    3. 展示了使用 ControlNet 对比直接输出的差异。

      image.jpeg

    4. (可选)解决Queue Prompt时报错的问题。

      导入JSON文件后,Queue Prompt时可能会出现报错。如果报错提示Value not in list,表示ComfyUI无法找到模型名称。

      image 请在对应Load节点中重新选择模型名称,然后重试Queue Prompt。

      image

      image

完成及清理

在本方案中,您部署了ComfyUI应用使用了 函数计算 产品,创建了函数资源,创建模型管理器使用了 文件存储 NAS 产品,增加了NAS挂载点。 函数计算 的函数不调用不会计费, 文件存储 NAS 只要有模型存储在NAS文件系统下,就会收费。

  • 删除ComfyUI使用的函数

    1. 登录 函数计算控制台 ,在左侧导航栏,单击 应用

    2. 在应用页面,找到目标应用,单击右侧 操作 列的 删除应用

    3. 在弹出的对话框,勾选 我已确定资源删除的风险,依旧要删除上面已选择的资源 ,然后单击 删除应用及所选资源

      image

  • 删除模型管理器使用的NAS

    1. 登录 NAS文件存储控制台 ,在左侧导航栏选择 文件系统 > 文件系统列表

    2. 在文件系统列表,找到目标文件系统,在其右侧操作列,单击 image ,然后单击 删除

      image

    3. 在弹出的对话框,单击 移除 ,移除挂载点,然后单击 删除

      image