当前位置:   article > 正文

如何清空Comfyui的gpu缓存_comfyui 如何清理显存占用

comfyui 如何清理显存占用

由于我电脑上同时装了两个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
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • 60
  • 61
  • 62
  • 63
  • 64
  • 65
  • 66
  • 67
  • 68
  • 69
  • 70
  • 71
  • 72
  • 73
  • 74
  • 75
  • 76
  • 77
  • 78
  • 79
  • 80
  • 81
  • 82

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缓存的任务失败");
        }
    }

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24

在创建完用户绘图任务后立即创建一个空载任务,用来清理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/

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/笔触狂放9/article/detail/799194
推荐阅读
相关标签
  

闽ICP备14008679号