来源 | 火山引擎云原生
自 2023 年推出至今,Stable Diffusion 已吸引了大量用户前往 Stability AI 等网站进行体验,在 AI 绘画的场景下,Stable Diffusion 已经成为当前最火的解决方案。
就在 8 月,Stable Diffusion 初创团队又推出了新的 AI 绘画模型 FLUX.1 ,该模型拥有 12B 的参数(远远超过了最新版本的 Stable Diffusion 的参数规模),并且使用了更新的生图技术方案,一经推出就受到了业界极大的关注。以下是一些由 FLUX.1 生成的图片样张——
当前 FLUX.1 提供了 3 个版本,分别是:
- FLUX.1 [pro] : 商业化版本,具有最好的生图能力,当前仅支持 API 调用;
- FLUX.1 [dev] : 非商业化的开发版本,具有和 pro 相近的生图能力,支持独立部署;
- FLUX.1 [schnell] : 开源的极速版本,相对较小,面向个人开发者使用,支持独立部署。
到这里相信大家已经跃跃欲试,想赶紧体验一下 FLUX.1 模型的强大能力。本文将介绍一种基于容器服务,通过火山引擎 持续交付 CP(Code Pipeline)的应用交付能力实现快速拉起 FLUX.1 服务的方案,通过这种方案,你可以规避外网访问慢、数据隐私等问题,部署一个属于自己的 FLUX.1。
基于 AI 应用模板,快速拉起 FLUX.1
在本方案中,我们将主要用到火山引擎持续交付 CP 的 AI 应用功能,它提供预置模板,集成了主流的 AI 框架,封装了操作系统、AI 框架、依赖库等应用环境,可以帮助用户快速部署 AI 应用,降低开发难度。
我们将使用 AI 应用模板——SDComfyUI 实现 FLUX.1 模型服务的拉起,整个服务拉起过程包括以下几个步骤:
-
相关模型下载 : 从官方下载 FLUX.1 模型,并上传到火山引擎对象存储 TOS 中;
-
部署环境准备 : 使用火山引擎容器服务 VKE 创建 Kubernetes 集群作为模型服务的部署环境,并且将集群导入到持续交付 Kubernetes 集群配置中,作为后续模型服务的部署环境;
-
创建 AI 模型应用,拉起服务 : 使用持续交付 CP 的 AI 应用模板 SDComfyUI 实现 FLUX.1 模型服务的拉起,并且配置公网 IP,支持服务通过公网访问;
-
完成 ComfyUI 配置,体验 FLUX.1 文生图能力 : 完成 ComfyUI 关于 FLUX.1 文生图编排配置,实现基于 FLUX.1 文生图功能。
步骤一:相关模型下载
◇ 依赖资源下载
这里我们以 FLUX.1[schnell] 版本为例,需要下载的相关模型资源有 2 个:
- FLUX.1[schnell] 模型下载: https://huggingface.co/black-forest-labs/FLUX.1-schnell ;
- 文生图依赖 CLIP 下载: https://huggingface.co/comfyanonymous/flux\_text\_encoders 。
◇ 上传资源到 TOS
我们需要将上述资源上传到火山引擎对象存储 TOS 中,这里推荐使用 TOS Browser 工具完成资源的上传,具体可参考官方文档: https://www.volcengine.com/docs/6349/148776 。
-
FLUX.1[schnell] 模型上传到 TOS 路径: tos://mybucket/flux-demo/flux-schnell;
-
文生图依赖 CLIP 上传到 TOS 路径: tos://mybucket/flux-demo/clip。
步骤二:部署环境准备
1. 准备一个火山引擎容器服务 VKE 集群,并已安装 csi-tos 和 nvidia-device-plugin 组件: https://www.volcengine.com/docs/6460/101014 。
2. 将 VKE 集群导入到持续交付 CP 的 Kubernetes 集群中:登录 CP 控制台 https://console.volcengine.com/cp/v2/overview ,在左侧菜单栏选择【资源管理】-【Kubernetes 集群】页面,点击【创建部署资源】,导入准备好的 VKE 集群。
步骤三:创建 AI 模型应用,拉起服务
1. 创建工作区:打开 CP 控制台 https://console.volcengine.com/cp/v2/overview ,在左侧菜单栏选择 【工作区】,点击“创建工作区”,参考下图配置,完成工作区创建:
2. 基于 AI 应用模板 SDComfyUI 完成 ComfyUI 服务拉起:进入到刚刚创建的工作区 “flux-demo”,左侧菜单栏选择【应用管理】,点击“立即创建应用”。
3. 选择 【AI 应用】-【Stable Diffusion ComfyUI】,点击下一步:
4. 完成应用基础信息配置填写:
5. 完成部署集群信息的填写,选中刚刚导入的 VKE 集群:
6. 完成模型、资源挂载配置:FLUX 模型挂载配置如下图所示。
VAE 模型挂载配置:
CLIP 模型挂载配置:
完成服务规格配置,如果是企业用户,这里推荐使用弹性容器实例 VCI 的方式部署,它允许用户为模型实际运行所需要的资源付费,可以有效减少资源浪费,控制云成本。资源配置类型选择【GPU 计算型】-【vci.gni3.12c-64gi】(NVIDIA GPU 显卡,适用于大规模部署的生成式 AI 推理等场景):
完成访问配置,选择负载均衡(公网),选择一个 CLB 实例配置。如果没有,可以通过“新建负载均衡”按钮进行快速创建:
完成以上配置之后,点击“确定”,触发应用的创建和部署。
7. 等待服务拉起,并且通过公网 IP 访问 ComfyUI 服务。
由于应用本身的镜像很大,第一次部署等待的时间可能会比较长,估计在 15min 左右;服务拉起后,可以在应用【基本信息】页面看到应用实例状态,等到应用实例“运行状态”到了“Running”,则表明应用启动成功:
可以通过【访问设置】-【负载均衡(公网)】查看服务公网访问 IP,具体位置如下图所示:
直接在浏览器中输入公网 IP,即可访问 ComfyUI 服务:
步骤四:完成 ComfyUI 配置,体验能力
ComfyUI 默认的编排针对 Stable Diffusion 文生图过程,和 FLUX.1 的编排有较大差别。FLUX.1 文生图的编排可以参考以下配置: https://bytedance.larkoffice.com/docx/Uam7dDMLioZ7A1x3L5yc0NAYnlc 。
可以将该编排配置文件下载到本地,然后通过 ComfyUI 页面完成编排文件的导入; 导入后,完整的编排信息如下图所示:
以上我们就完成了 FLUX.1 文生图的编排配置,我们可以输入一些提示词,体验模型的文生图效果——
- 提示词 :A cat wearing sunglasses, a busy road, a colorful sky, and the sunset
- 提示词 :Little Red Riding Hood is walking alone in the dark forest with an oil lamp in her hand, dark sky and smoky background
- 提示词 :Detailed cinematic dof render of an old dusty detailed CRT monitor on a wooden desk in a dim room with items around, messy dirty room. On the screen are the letters “FLUX” glowing softly. High detail hard surface render
小结
以上就是基于火山引擎容器服务 VKE 和持续交付 CP 快速拉起 FLUX.1 模型的全过程,欢迎感兴趣的用户开通产品服务进行体验。
- END -
相关链接
[1] 火山引擎: www.volcengine.com
[ 2] AI 应用功能上线:一站式拉起 Stable-Diffusion-WebUI 服务
[3] 如何在火山引擎云上部署 Langchain-ChatGLM
[4] 如何基于火山引擎弹性容器快速部署 MagicAnimate 应用
[5] 如何在火山引擎云上部署 Stable Diffusion
火山引擎云原生团队
火山引擎云原生团队主要负责火山引擎公有云及私有化场景中 PaaS 类产品体系的构建,结合字节跳动多年的云原生技术栈经验和最佳实践沉淀,帮助企业加速数字化转型和创新。产品包括容器服务、镜像仓库、分布式云原生平台、函数服务、服务网格、持续交付、可观测服务等。