方案概览
ComfyUI是一款基于节点工作流稳定扩散算法的全新WebUI。如果您需要高质量的图像生成功能,建议您使用函数计算提供的ComfyUI模型,也可以自定义ComfyUI模型、安装插件以满足定制化创作需求。函数计算基于Serverless应用中心开发“ComfyUI应用模板”,简化开发者的部署流程。同时可以充分利用函数计算按需付费,弹性伸缩等优势,高效地为用户提供基于ComfyUI模型的绘画生成服务。
本方案的技术架构包括以下基础设施和云服务:
函数计算:用于提供ComfyUI模型的应用服务。
文件存储 NAS:用于存放预训练的ComfyUI模型和生成的图片。
专有网络 VPC:用于配置专有网络,方便函数计算访问文件存储 NAS。
部署准备
开始部署前,请按以下指引完成账号申请、账号充值。
准备账号
入门:部署ComfyUI
登录函数计算3.0控制台,在左侧导航栏,单击应用。
当左上角显示函数计算 FC 3.0时,表示当前控制台为3.0控制台。
在应用页面,点击创建应用,选择通过模板创建应用,在人工智能页签找到流程式 AI 图片生成 ComfyUI,光标移至该卡片,然后单击立即创建。
在创建应用页面,设置以下配置项,然后单击创建应用。
重点配置项说明如下,如果您没有特殊要求,其余配置项保持默认值即可。
配置项名称
说明
示例值
角色名
创建应用所需的权限。首次创建应用的用户,需要单击前往授权配置角色权限。
AliyunFCServerlessDevsRole
地域
地域选择可以选择距离自己较近的区域,目前支持华东1(杭州)、华东2(上海)。
由于当前模板涉及GitHub以及HuggingFace等网站的访问,国内部分地域可能无法直接使用。
华东1(杭州)
内置模型
选择内置风格。
黏土风格
在弹出的对话框,仔细阅读应用创建提醒信息,勾选涉及的计费项和我已经了解上面的内容,并同意上述描述,然后单击同意并继续部署。
等待约1分钟,部署状态变为部署成功,表示应用部署成功,并生成访问域名。单击访问域名后的链接,开始体验ComfyUI图片生成。
重要请注意保护域名的安全,不要泄露给其他人,以防产生额外费用。
***.devsapp.net域名是CNCF SandBox项目Serverless Devs社区所提供,仅供学习和测试使用,不可用于任何生产使用;社区会对该域名进行不定期地拨测,并在域名下发30天后进行回收,强烈建议您绑定自定义域名以获得更好的使用体验,详细请见配置自定义域名。
首次打开ComfyUI,遇到无法访问此网站情况,无需刷新等待10 秒即可进入。
说明这里等待10秒主要是函数计算基于Serverless应用中心开发ComfyUI应用模板有冷启动。冷启动是指在函数调用链路中的代码下载、启动函数实例、进程初始化及代码初始化等环节。如果您希望消除冷启动带来的影响,可以配置预留实例,详情请参考配置预留实例。
ComfyUI提供默认工作流,点击Queue Prompt,测试制作自己的第一张图。第一张图的出图时间大概需要15秒,后续出图时间大概3秒左右。
说明第一张图耗时更长是需要加载模型到内存。Queue Size表示正在等待出图的个数。请您在看到Queue Size:1之后,耐心等待出图。下图中箭头所指的绿框表示当前工作流执行所处的位置,您可以通过观察绿框的移动查看工作流的执行进度。
您也可以自己定义提示词,点击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
用ComfyUI自制黏土风格滤镜
为了让您更直观的感受ComfyUI强大的绘图能力,我们提供了预置的工作流文件、内置大模型和Lora模型,让您基于函数计算轻松部署ComfyUI应用,快速生成各类风格滤镜的图片。本文以黏土风格滤镜为例介绍相关的操作步骤。
下载预置的JSON文件,首先,请下载workflow.json文件。
导入JSON文件至ComfyUI,打开ComfyUI,点击Load按钮,选择并导入已经下载好的workflow.json文件。
说明ComfyUI的工作流可以保存为一个JSON文件,方便您保存和分享工作流的配置,但您不需要关心JSON文件的具体内容。建议您下载别人配置好的工作流JSON文件,在ComfyUI页面加载,快速体验和使用已有工作流。建议您访问ComfyUI示例查看ComfyUI官方提供的一些工作流示例。
在图片区Load Image对话框选择choose file to upload导入需要制成“黏土风格”的原图。
说明如果找不到该选项,可以滚动鼠标滑轮将模型放大。
选择好原图,点击右侧Queue Prompt等待图片生成。
因为ComfyUI基于Serverless函数计算产品部署,因此生成第一张图的时候需要冷启动时间,第一张图生成需要等待30秒,后续每张图生成时间为2-5秒。
经过实测,人物肖像表现会更好。建议您用人物照片进行测试。
进阶:通过文件存储NAS保存生成的图片
当前已实现通过函数计算部署ComfyUI并生成图片的功能。如果您需要将生成的绘画进行保存、下载等操作,则需要使用阿里云提供的存储服务,这里以文件存储NAS为例,下面介绍具体的操作方法。
绑定文件管理NAS。通过函数计算控制台的网络配置,绑定专有网络、交换机。若无相关资源,需要先创建。
进入到函数控制台。
在环境详情页面,选择资源信息下的函数名称进入。
在函数详情页签,选择配置页签,在左侧导航栏,单击网络,然后进行编辑,配置完成后点击部署。
自动配置
如果您未创建过专有网络 VPC,可以选择自动配置,函数计算将自动为您部署所有配置。
自定义配置
如果您之前创建过VPC,并且希望继续进行挂载,可以选择自定义配置,然后依次选择专用网络、交换机、安全组信息。
重点配置项说明如下,如果您没有特殊要求,其余配置项保持默认值即可。
配置项名称
示例值
允许访问VPC
是
配置方式
自定义配置
专有网络
选择您已有的VPCxxxx
交换机
选择您已有的交换机xxxx
安全组
选择您已有的安全组xxxx
在函数详情页签,点击配置,点击存储,点击NAS 文件系统的编辑,进行NAS挂载设置。
自动配置
如果您未创建过NAS,可以选择自动配置,函数计算将自动为您部署所有配置,点击部署。部署完成后请再次点击编辑,将函数本地目录设置为
/mnt/auto
,输入完成点击部署。自定义配置
进行NAS挂载设置,依次选择NAS 文件系统、挂载点、数据传输方式。远端目录可以为任意路径,函数本地目录请填写
/mnt/auto
。如果您曾经在当前NAS中使用过Stable Diffusion应用,可以考虑将远端目录设置为/fc-stable-diffusion-plus
。输入完成点击部署。大模型对文件 IO 要求较高,建议创建通用性能型 NAS 实例,NAS会根据存储的文件大小进行计费,不同规格的 NAS 计费单价不一致,请参考计费概述。
在函数详情页签,点击实例,再点登录实例进入ComfyUI终端。
函数计算支持登入运行中的函数实例,建议您在终端中执行需要的操作(如手动安装自定义节点、依赖等)。
重要在Serverless环境下,您的所有改动都不会真正保存,您需要将改动的文件放置在NAS中以持久化。
创建NAS浏览器应用,便于像访问本地文件系统一样访问NAS文件系统。
登录NAS控制台。
选择文件系统列表,选择目标文件系统ID/名称。在目标文件系统的操作列,单击图标>浏览器。如果您未创建过NAS浏览器应用,请按照提示进行部署,部署完成后即可开始使用NAS浏览器。
通过NAS浏览器,您可以在
<远端挂载目录>/comfyui/output
路径中查看或下载ComfyUI生成的图片。
进阶:在ComfyUI中安装自定义节点
您可以通过自定义节点以满足您实际业务场景下的个性化需求。您可以使用ComfyUI-Manager安装所需的节点,下面以安装中文翻译插件AIGODLIKE-COMFYUI-TRANSLATION为例介绍操作方法。
安装过程中请不要关闭页面。安装完成后,除去需要点击restart外,还需要刷新页面。
安装过程中可能会访问Github、HuggingFace等境外网站,由于网络问题可能会导致访问较慢或失败,您可以在网络上检索如何解决类似的问题。
点击Manager,点击Install Custom Nodes。
说明如果出现提示"The custom node DB is currently being updated",说明ComfyUI正在更新节点数据库。您可能需要等待1分钟左右,当数据库更新完成后,会自动跳转到节点列表。
在节点列表,搜索需要安装的节点名称:AIGODLIKE-COMFYUI-TRANSLATION,点击install。
安装完成,您可以在设置里将语言改为中文。
加速依赖下载。
使用国内 pypi 镜像加速依赖下载。编辑
/mnt/auto/comfyui/root/.pip/pip.conf
文件,设置镜像源为阿里云。[global] index-url = http://mirrors.aliyun.com/pypi/simple/ [install] trusted-host = https://mirrors.aliyun.com
(可选)解决缺失节点的问题。
导入第三方的工作流,可能会遇到节点不存在的报错,可以借助ComfyUI Manager安装缺失的节点。部分节点升级后,可能仍然提示未安装,可参考ComfyUI Guides的相关讨论解决。
进阶:加载ComfyUI工作流文件
您可以通过自定义工作流文件以满足您实际业务场景下的个性化需求。为了让您能够简单快捷地体验ComfyUI不同工作流带来的全新体验,我们提供了预置的JSON文件,具体操作如下。
下载预置的JSON文件,首先,请下载controlnet.json文件。
导入JSON文件至ComfyUI,打开ComfyUI,点击Load按钮,选择并导入已经下载好的controlnet.json文件。
说明ComfyUI的工作流可以保存为一个JSON文件,方便您保存和分享工作流的配置,但您不需要关心JSON文件的具体内容。建议您下载别人配置好的工作流JSON文件,在ComfyUI页面加载,快速体验和使用已有工作流。建议您访问ComfyUI示例查看ComfyUI官方提供的一些工作流示例。
选择好原图,点击右侧Queue Prompt等待图片生成。
展示了使用 ControlNet 对比直接输出的差异。
(可选)解决Queue Prompt时报错的问题。
导入JSON文件后,Queue Prompt时可能会出现报错。如果报错提示Value not in list,表示ComfyUI无法找到模型名称。
请在对应Load节点中重新选择模型名称,然后重试Queue Prompt。
完成及清理
在本方案中,您部署了ComfyUI应用使用了函数计算产品,创建了函数资源,创建模型管理器使用了文件存储 NAS产品,增加了NAS挂载点。函数计算的函数不调用不会计费,文件存储 NAS只要有模型存储在NAS文件系统下,就会收费。
删除ComfyUI使用的函数
登录函数计算控制台,在左侧导航栏,单击应用。
在应用页面,找到目标应用,单击右侧操作列的删除应用。
在弹出的对话框,勾选我已确定资源删除的风险,依旧要删除上面已选择的资源,然后单击删除应用及所选资源。
删除模型管理器使用的NAS
登录NAS文件存储控制台,在左侧导航栏选择 。
在文件系统列表,找到目标文件系统,在其右侧操作列,单击,然后单击删除。
在弹出的对话框,单击移除,移除挂载点,然后单击删除。