如何清空Comfyui的gpu缓存

news2024/12/23 10:44:04

由于我电脑上同时装了两个Comfyui作为我站点的绘图服务,一个是给正式服使用,一个是开发测试使用,在使用过程中经常会因为两个Comfyui服务跑图后没有自动释放显存导致爆显存。所以我需要让Comfyui跑完图之后可以自动释放显存。

我自己在网上找了几个方案,测试下来是没有效果,也有可能是我电脑的原因,大家也可以试看看。后来自己在使用的过程中发现,Comfyui在跑新的任务的时候,会把上一次加载到显存的内容给清空(如果加载的模型不一样的情况下),所以我就想着,每次在跑完一次图之后,自动跑个空载的任务(没有加载任何模型的工作流),这样就实现了显存自动释放的效果。

一、使用空载任务清理显存

于是我就在创建完用户的绘图任务后立马创建了一个空载任务,用来清理GPU的显存。

1、空载工作流workflow.json:

{
  "last_node_id": 2,
  "last_link_id": 1,
  "nodes": [
    {
      "id": 2,
      "type": "PreviewImage",
      "pos": [
        205.499643768773,
        298.78351573772534
      ],
      "size": [
        210,
        246
      ],
      "flags": {},
      "order": 1,
      "mode": 0,
      "inputs": [
        {
          "name": "images",
          "type": "IMAGE",
          "link": 1,
          "label": "images"
        }
      ],
      "properties": {
        "Node name for S&R": "PreviewImage"
      }
    },
    {
      "id": 1,
      "type": "EmptyImage",
      "pos": [
        -171,
        256
      ],
      "size": {
        "0": 315,
        "1": 130
      },
      "flags": {},
      "order": 0,
      "mode": 0,
      "outputs": [
        {
          "name": "IMAGE",
          "type": "IMAGE",
          "links": [
            1
          ],
          "shape": 3,
          "label": "IMAGE",
          "slot_index": 0
        }
      ],
      "properties": {
        "Node name for S&R": "EmptyImage"
      },
      "widgets_values": [
        1,
        1,
        1,
        0
      ]
    }
  ],
  "links": [
    [
      1,
      1,
      0,
      2,
      0,
      "IMAGE"
    ]
  ],
  "groups": [],
  "config": {},
  "extra": {},
  "version": 0.4
}

2、以下是具体java代码的实现:

    /**
     * 清理GPU显存
     */
    public void cleanGpuRam() {
        try {
            String comfyuiApi = sysParamsService.getValue("sd_img_url");
            //comfyui绘图完成后是否清理gpu显存
            String isCleanGpuRam = sysParamsService.getValue("comfyui_complete_is_clean_gpu_ram");
            String cleanApiJson = sysParamsService.getValue("comfyui_clean_gpu_ram_json");

            if ((DicEnums.YesOrNo.YES.getValue() + "").equals(isCleanGpuRam)) {
                String promptResult = HttpUtil.sendPost(comfyuiApi + "/prompt",
                        JSONObject.parseObject("{\n" +
                                "  \"client_id\": \"cleanGpuRam\",\n" +
                                "  \"prompt\": " + cleanApiJson +
                                "}"),
                        null
                );
            }
        } catch (Exception e) {
            log.error("执行清理GPU缓存的任务失败");
        }
    }

在创建完用户绘图任务后立即创建一个空载任务,用来清理GPU的显存。

需要注意的是,清理缓存的这步操作要做异常捕获。因为即使没有清空也不影响用户绘图任务的正常执行。

二、其他清理显存的方法介绍

网上找的其他方法虽然我使用没有效果,有可能是我使用方法不当或者说我电脑上的Comfyui环境有问题,所以在此我也把其他方法也列一下,大家如果使用有效的话,希望可以在评论区里告诉我一下正确的使用姿势!

方法1:在启动命令后边加上:–disable-smart-memory

  • 如果你是用命令行启动,那就在启动脚本中加上这个参数
  • 如果你用的是秋叶启动器,那就高级选项中,关闭智能显存优化
    在这里插入图片描述

但是我用了并没有效果。。。。。。。。不知道咋回事

方法2:使用ComfyUI-Easy-Use插件中提供的easy cleanGpuUsed节点

ComfyUI-Easy-Use插件地址:
https://github.com/yolain/ComfyUI-Easy-Use
在这里插入图片描述

这个用法是把easy cleanGpuUsed节点添加到工作流运行的末尾!

但是我用了并没有效果。。。。。。。。不知道咋回事

三、最后是介绍下Comfyui工作流封装成web站点、H5、小程序、App的源码介绍

项目中接入了国内外各大平台的gpt聊天模型,使用milvus作为向量数据库,可上传知识库文档。可AI接管微信、QQ钉钉、企业微信等社媒平台!绘图接入了comfyui和dalle,实现了电商换装、换脸、ai抠图、图片变高清、智能扩图、艺术二维码等功能。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
源码地址:
https://wailikeji.com/index.php/2023/07/15/chat_draw/

项目体验地址:
https://pcai.wailikeji.com/

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Python的Django部署uwsgi后自签名实现的HTTPS

通过SSL/TLS来加密和客户端的通信内容。提高网络安全性,但是会损耗部分的服务器资源。 HTTPS 的原理图。 web.key 是打死也不能给其他人的。一定要保存好。里面主要是私钥。是各种认证的根基。本地测试的话生成1024的即可,如果是生产环境推荐使用2048。…

高考后的抉择:专业优先还是学校优先?

随着2024年高考的帷幕落下,高考生们面临的一个重要抉择再度浮上心头:在分数受限的情况下,是选择一个心仪的专业,还是选择一个知名度更高的学校?这是一个困扰了众多考生和家长的长期难题。在这个关键的时刻,…

Vip-智能预估+大数据标签+人群全选=用户分群!

Mobpush用户分群功能升级,创建推送入口vip用户可进入自有选择标签创建“用户分群”,相比于免费标签,“用户标签”维度更丰富。在应用基础属性上,增加“品牌”、“网络状态”、“运营商”,众所周知,不同厂商…

公文出错事非小,这些公文写作的常见错误,你中过招吗?

公文是企事业单位、相关部门内外沟通交流的重要工具,不少“笔杆子”经常需要与公文打交道,每天会接触大量的公文。然而在公文撰写的细微之处,稍有不慎,便可能犯下一些常见的错误。这些错误如同蚁穴,虽小却足以破坏公文…

图片管理大革新:一键批量转换、美化与底片效果制作,轻松打造专业级图片库!

在数字时代,图片已成为我们生活、工作中不可或缺的一部分。然而,随着图片数量的不断增加,如何高效、便捷地管理、转换和美化这些图片,成为了许多人头疼的问题。今天,我们向您推荐一款全新的图片批量管理工具&#xff0…

边缘计算盒子是什么、有哪些作用?如何选型?这篇文章全面帮你了解!边缘计算云服务器ECS

一、边缘盒子是什么? 近年,边缘盒子被大家所了解,那么边缘盒子到底是什么呢? 边缘计算盒子内部配置了丰富的 AI 算法,这些算法可以帮助用户在很多场景下实现数据识别等作用。比如,在工地场景下安装边缘盒…

Nvidia jetson Orin/RK3588+AI仿生事件相机

EVS 事件相机 速度,性能,效率和安全,为自动驾驶、自动化和高速运动带来新的高度 采用SONY IMX646 EVS图像传感器,基于PROPHESEE METAVISION 技术 高帧率,120dB高动态范围 实现高速和高时间分辨率。现在已经没有帧率的概…

po文件并转换成mo文件

po文件转换成mo文件 简介 .po和.mo文件是WordPress中语言相关的两种文件。po 是Portable Object(可移植对象)的缩写,存放待翻译的字符串信息,可直接用文本编辑器打开编辑;mo 是Machine Object的缩写,二进制文件,程序…

SmartEDA电路仿真教学VS传统教学:谁将颠覆未来教育战场?

在科技飞速发展的今天,教育领域也迎来了前所未有的变革。传统的教学方式正面临着在线教学工具的强劲挑战,特别是在电路仿真教学领域,SmartEDA这样的在线工具正逐渐崭露头角。那么,SmartEDA电路仿真教学与传统教学之间,…

超支化聚合物(HBPs)应用潜力巨大 我国研究、产业化及应用取得了显著进展

超支化聚合物(HBPs)应用潜力巨大 我国研究、产业化及应用取得了显著进展 超支化聚合物简称HBPs,是一类高度支化的三维拓扑高分子,由沿聚合物骨架随机分布的树枝状单元、线性单元、末端单元组成。超支化聚合物结构独特,…

一名HR,在招聘嵌入式开发岗位,为什么感觉一年比一年难?

在开始前刚好我有一些资料,是我根据网友给的问题精心整理了一份「嵌入式的资料从专业入门到高级教程」, 点个关注在评论区回复“888”之后私信回复“888”,全部无偿共享给大家!!! 1.嵌入式学用不一致, 高…

【星海随笔】vue+vite

开头问一个问题&#xff0c;我发现有的人粉丝是点赞数的好几倍&#xff0c;可能和必须关注他才能阅读他的文章有关。 所以问一下怎么设置为关注才能查看该文章。 screen -ls #查看 id 列表 screen -S <session_name> # 创建一个会话 screen -R <session_id> # 根据…

高考填报志愿三连问,从人格优势分析兴趣和专业

“我的兴趣爱好什么&#xff1f;” “我的理想是什么&#xff1f;” “我想成为什么&#xff1f;” ------高考填报志愿三连问&#xff01; 最近我在知乎上看过一个比较有意义的提问&#xff0c;提问的也是高考填报志愿的同学&#xff0c;自从高考后&#xff0c;每日三连问&…

笔记本电脑升级实战手册[1]:开始之前的准备与清单

文章目录 前言&#xff1a;一、升级流程1. 备份2. 清灰换硅脂3. 扩展内存与硬盘4. 硬盘设置5. 系统重装6. 升级后性能测试 二、升级清单1. 工具清单2. 升级清单 总结&#xff1a; 前言&#xff1a; 将要毕业之际&#xff0c;发现我的笔记本电脑已经陪我“征战沙场”快有四年之…

iOS政策解读之三丨商务、设计和法律 “三重奏“

上一篇的iOS政策解读文章&#xff0c;我们从安全和性能两方面进行了学习和解读&#xff0c;这两个方面是最为重要&#xff0c;也是优先级最高的方面。 如果您还没来得及阅读&#xff0c;欢迎移步我们前两篇的解读文章&#xff1a; iOS政策解读之一丨App提交审核前注意事项必知…

3d怎么把歪的模型摆正?---模大狮模型网

在进行3D建模过程中&#xff0c;有时候会遇到模型出现歪曲或者旋转不正确的情况&#xff0c;这可能会影响到后续的设计和渲染效果。因此&#xff0c;学会将歪曲的模型摆正是一个非常重要的技巧。模大狮将介绍几种常用的方法&#xff0c;帮助您有效地将歪曲的3D模型摆正&#xf…

有什么简单易上手的CRM系统推荐?五款CRM软件评测

在数字化时代&#xff0c;企业急需一个能全面展示客户、销售和分析数据的CRM系统。当然&#xff0c;简单易用的CRM系统成了企业首选。选择系统时&#xff0c;同时要关注它的实际功能是否满足需求&#xff0c;是否容易上手&#xff0c;能否根据企业需求灵活定制&#xff0c;能否…

MyBatisX插件生成MyBatis Plus代码

MyBatis-Plus为我们提供了强大的mapper和service模板&#xff0c;能够大大的提高开发效率 但是在真正开发过程中&#xff0c;MyBatis-Plus并不能为我们解决所有问题&#xff0c;例如一些复杂的SQL&#xff0c;多表 联查&#xff0c;我们就需要自己去编写代码和SQL语句&#xf…

SVN 的忽略(Ignore)和递归(Recursively)以及忽略部分

SVN中忽略大家经常用到&#xff0c;但总是似懂非懂&#xff0c;下面就详细展开说明一下忽略如何设置。 两个忽略 通常设置忽略都是文件夹和里面的文件都忽略。 设置忽略我们通常只需要鼠标右键点击忽略就可以了&#xff0c;如图&#xff1a; 第一个忽略用的最多&#xff0c;…

滑动窗口算法——部分OJ题详解

目录 关于滑动窗口 部分OJ题详解 209.长度最小的子数组 3.无重复字符的最长字串 1004.最大连续1的个数Ⅲ 1658.将x减到0的最小操作数 904.水果成篮 438.找到字符串中所有字母异位词 30.串联所有单词的子串 76.最小覆盖子串 关于滑动窗口 其实滑动窗口也是通过双指针…