一个基于ComfuUI Api的 AIGC自动绘画实现方案

工作流程图

基本原理已经弄通,下一步要开始编码搬砖了。整个自动绘画的流程如下,暂就不整高深U什么L了,写个简单明了能容易看懂的流程图。UI借用了下墨刀里的AI绘画公开原型

部署节点

整个系统的后端服务典型部署需要3类节点

  • Aigc Server:用于提供针对用户的查询、显示、充值、扣点等服务
  • Aigc Agent:与ComfyUI一一对应,用于获取队列、转发websock通知、返还扣点的业务操作
  • ComfyUI Server:提供ComfyUI服务,需要开启API开发模式

流程说明

接下来我对整个流程进行详细描述:

  1. 为用户建立rabbitmq队列,用于获得进度推送消息。前端界面使用stompjs订阅用户对应的队列;
  2. 绘画前,如果是图生图,上传蒙版等操作,需要在提交前先存储到公用或临时存储(为什么不直接提交COMFYUI?因为多绘画节点时,不确定最终会落到哪个节点);
  3. 用户点击“立即创作”按钮,此时发起绘画请求,发送给Aigc Server检查用户账户是否够用;
  4. 如果账户够用,下一步一次轮询所有的绘画Agent,找到空闲或最小队列的节点(此处可以考虑优化,绘画的推送消息queue_remaining会推送剩余队列长度,可以存储到resis hashmap备查);
  5. 如果节点队列太长,也可以考虑直接返回一个确认消息,提示用户队列过长,可能会等待较长时间,是否确定提交。如果确定提交则继续走1的流程,覆盖一个无需重复询问的参数;提交后提示信息建议用户先操作其它功能,稍后在用户图片查看
  6. 如果有空闲的节点,则执行提交。提交时,先执行账户扣点(还是要先检查一下最新的账户 )。然后异步将OSS(或本地存储)的图片使用/upload/image或/upload/mask推送给ComfyUI节点,并根据流API数据及工作流数据替换参数后推送给COMFYUI
  7. ComfyUI节点此时开始异步的绘图,(Agent节点从启动后需要实现连接COMFYUI的Websocket的保活机制,如果无法连上时要标记Agent不可用)
  8. ComfyUI节点绘图过程会不断通过Websocket推送绘画Agent执行Node和状态信息,对于C端客户,我们不需要提供太复杂的信息,只需要将节点别名(记录在数据库)推送给用户,例如“WD姿态分析中”,对于KSampler的节点则推送进度信息前端展示进度条;
  9. 当出现异常时,系统记录异常,并展示绘画失败的信息通过RabbitMQ推送给用户(这里要推送用户的全局消息),并进行返点(根据任务的点数);
  10. 当ComfyUI给出完成状态消息时(Node==null),通过MQ推送完成的消息。此时如果界面是等待界面则关闭并弹出完成提示;如果用户已经不在等待界面,则推送一个全局消息;

以上是ComfyUI自动绘画核心实现流程,典型的流程例如文生图、图生图、线稿转实景、AI摄影。也可以实现基于ComfyUI的其它流程,例如文本转视频、AI音乐制作等。

如果开发过程出现变化,会同步更新此文档。有任何疑问请留言

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/320223.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

mac/windows下安装docker,minikube

1、安装docker Get Started | Docker 下载安装docker 就行 启动后,就可以正常操作docker了 使用docker -v 验证是否成功就行 2、安装minikube,是基于docker-desktop的 2.1、点击设置 2.2、选中安装,这个可能需要一点时间 这样安装后&…

【研发管理】产品经理知识体系-组合管理

导读:新产品开发的组合管理是一个重要的过程,它涉及到对一系列新产品开发项目进行策略性选择、优先级排序、资源分配和监控。这个过程旨在确保企业能够最大化地利用有限的资源,以实现其战略目标。 目录 1、组合管理、五大目标 2、组合管理的…

OpenCV的周期性噪声去除滤波器(70)

返回:OpenCV系列文章目录(持续更新中......) 上一篇:OpenCV如何通过梯度结构张量进行各向异性图像分割(69) 下一篇 :OpenCV如何为我们的应用程序添加跟踪栏(71) 目录 目标 理论 如何消除傅里叶域中的周期性噪声? 源代码 解释 结果 目…

详解基于 RAG 的 txt2sql 全过程

前文 本文使用通义千问大模型和 ChromaDB 向量数据库来实现一个完整的 text2sql 的项目,并基于实际的业务进行效果的展示。 准备 在进行项目之前需要准备下面主要的内容: python 环境通义千问 qwen-max 模型的 api-keyChromaDB 向量数据库acge_text_…

Sharding Capital: 为什么投资全链流动性基础设施 Entangle ?

写在前面:Entangle 项目的名称取自于量子纠缠(Quantum entanglement),体现了项目对于构建连接、关联和互通的愿景。就像量子纠缠将不同的粒子联系在一起,Entangle 旨在通过其跨链流动性和合成衍生品的解决方案将不同的区块链网络连接在一起&a…

django设计模式理解FBV和CBV

在 Web 开发中,FBV(Function-Based Views)和 CBV(Class-Based Views)是两种常见的视图设计模式,用于处理 HTTP 请求并生成相应的响应。下面是它们的简要解释: Function-Based Views (FBV) 在 …

激发创新活力,泸州老窖锻造人才“铁军”(内附长江酒道短评)

执笔 | 姜 姜 编辑 | 古利特 刚刚站上300亿元新台阶&#xff0c;泸州老窖再次传来喜讯。 <<<左右滑动查看更多>>> 4月28日&#xff0c;四川省庆祝“五一”国际劳动节大会在成都召开。泸州老窖股份有限公司工业4.0项目秘书长赵丙坤、泸州老窖酿酒有限责任公…

VS Code 远程连接 SSH 服务器

文章目录 一、安装 Remote - SSH 扩展并连接远程主机二、免密连接远程主机1. 生成 SSH 密钥对2. 将公钥复制到远程服务器3. 配置 SSH 客服端4. 连接测试 随着技术的不断迭代更新&#xff0c;在 Linux 系统中使用 Vim、nano 等基于 Shell 终端的编辑器&#xff08;我曾经也是个 …

利用AI大模型和Echarts 绘制知识图谱,实现文本信息提取和图数据库操作

引言 随着信息时代的到来&#xff0c;海量的文本数据成为了我们获取知识的重要来源。然而&#xff0c;如何从这些文本数据中提取出有用的信息&#xff0c;并将其以可视化的方式展示出来&#xff0c;一直是一个具有挑战性的问题。近年来&#xff0c;随着人工智能技术的发展&…

热敏电阻符号与常见术语详细解析

热敏电阻是一种电阻器&#xff0c;其特点是电阻值随温度的变化而显著变化&#xff0c;这使得它们成为非常有用的温度传感器。它们可以由单晶、多晶或玻璃、塑料等半导体材料制成&#xff0c;并分为两大类&#xff1a;正温度系数热敏电阻&#xff08;#PTC热敏电阻#&#xff09;和…

纯血鸿蒙APP实战开发——短视频切换实现案例

短视频切换实现案例 介绍 短视频切换在应用开发中是一种常见场景&#xff0c;上下滑动可以切换视频&#xff0c;十分方便。本模块基于Swiper组件和Video组件实现短视频切换功能。 效果图预览 使用说明 上下滑动可以切换视频。点击屏幕暂停视频&#xff0c;再次点击继续播放…

场外个股期权和场内个股期权的优缺点是什么?

场外个股期权和场内个股期权的优缺点 场外个股期权是指在沪深交易所之外交易的个股期权&#xff0c;其本质是一种金融衍生品&#xff0c;允许投资者在股票交易场所外以特定价格买进或卖出证券。场内个股期权是以单只股票作为标的资产的期权合约&#xff0c;其内在价值是基于标…

深度学习-线性回归+基础优化算法

目录 线性模型衡量预估质量训练数据参数学习训练损失最小化损失来学习参数显式解 总结基础优化梯度下降选择学习率 小批量随机梯度下降选择批量大小 总结线性回归的从零开始实现实现一个函数读取小批量效果展示这里可视化看一下 线性回归从零开始实现线性回归的简洁实现效果展示…

HCIP第二节

OSPF&#xff1a;开放式最短路径协议&#xff08;属于IGP-内部网关路由协议&#xff09; 优点&#xff1a;相比与静态可以实时收敛 更新方式&#xff1a;触发更新&#xff1a;224.0.0.5/6 周期更新&#xff1a;30min 在华为设备欸中&#xff0c;默认ospf优先级是10&#…

vue3+vite+js 实现移动端,PC端响应式布局

目前使用的是vue3vite&#xff0c;没有使用ts 纯移动端|PC端 这种适用于只适用一个端的情况 方法&#xff1a;amfe-flexible postcss-pxtorem相结合 ① 执行以下两个命令 npm i -S amfe-flexible npm install postcss-pxtorem --save-dev② main.js文件引用 import amfe-f…

使用固定公网地址远程访问开源服务器运维管理面板1Panel管理界面

文章目录 前言1. Linux 安装1Panel2. 安装cpolar内网穿透3. 配置1Panel公网访问地址4. 公网远程访问1Panel管理界面5. 固定1Panel公网地址 前言 1Panel 是一个现代化、开源的 Linux 服务器运维管理面板。高效管理,通过 Web 端轻松管理 Linux 服务器&#xff0c;包括主机监控、…

【前端】输入时字符跳动动画实现

输入时字符跳动动画实现 在前端开发中&#xff0c;为了提升用户体验&#xff0c;我们经常需要为用户的交互行为提供即时的反馈。这不仅让用户知道他们的操作有了响应&#xff0c;还可以让整个界面看起来更加生动、有趣。本文将通过一个简单的例子讲解如何实现在用户输入字符时…

更适合宝妈和上班族的兼职,每天2小时收入250+的微头条项目

许多人通过撰写微头条赚取收入&#xff0c;但这通常需要自己寻找素材&#xff0c;然后逐字逐句地进行改编创作&#xff0c;整个过程既繁琐又低效。 然而&#xff0c;如今全球范围内的AI工具正如雨后春笋般涌现。百度推出了文心一言&#xff0c;阿里巴巴推出了AI工具通义千问&a…

Stateflow基础知识笔记

01--Simulink/Stateflow概述 Stateflow是集成于Simulink中的图形化设计与开发工具&#xff0c;主要 用于针对控制系统中的复杂控制逻辑进行建模与仿真&#xff0c;或者说&#xff0c; Stateflow适用于针对事件响应系统进行建模与仿真。 Stateflow必须与Simulink联合使用&#…

20240503解决Ubuntu20.04和WIN10双系统下WIN10的时间异常的问题

20240503解决Ubuntu20.04和WIN10双系统下WIN10的时间异常的问题 2024/5/3 9:33 缘起&#xff1a;因为工作需要&#xff0c;编译服务器上都会安装Ubuntu20.04。 但是因为WINDOWS强悍的生态系统&#xff0c;偶尔还是有必须要用WINDOWS的时候&#xff0c;于是也安装了WIN10。 双系…