From 8f01c2cc66c27ab34591afb0945e30f6781be304 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=BB=84=E6=B5=B7?= <10402852@qq.com> Date: Mon, 1 Jul 2024 09:07:14 +0800 Subject: [PATCH] 'commit' --- BaiHu/Tools/TestComfyUIApi.py | 63 ++---------------- BaiHu/Util/ComfyUIUtil.py | 32 ++++++++- .../__pycache__/ComfyUIUtil.cpython-310.pyc | Bin 3380 -> 4332 bytes 3 files changed, 37 insertions(+), 58 deletions(-) diff --git a/BaiHu/Tools/TestComfyUIApi.py b/BaiHu/Tools/TestComfyUIApi.py index 1fcd667b..5f806d2c 100644 --- a/BaiHu/Tools/TestComfyUIApi.py +++ b/BaiHu/Tools/TestComfyUIApi.py @@ -1,67 +1,16 @@ -# system_stats -import json -import urllib.parse -import urllib.request - -import urllib.parse -import urllib.request from Util import ConfigUtil from Util.ComfyUIUtil import * -from Util.CommonUtil import * - - -def queue_prompt(server_address, client_id, prompt): - p = {"prompt": prompt, "client_id": client_id} - data = json.dumps(p).encode('utf-8') - req = urllib.request.Request("http://{}/prompt".format(server_address), data=data) - try: - urllib.request.urlopen(req) - except Exception as err: - print(err) - return json.loads(urllib.request.urlopen(req).read()) - - -''' -vram_total # 显存容量:25756696576 即24GB -vram_free # 显存剩余:25756696576 -torch_vram_total 16005464064 -torch_vram_free 331041996 -''' - -def getUse(server_address): - req = urllib.request.Request("http://{}/system_stats".format(server_address)) - res = json.loads(urllib.request.urlopen(req).read()) - - vram_total = res['devices'][0]['vram_total'] - vram_total_str = str(int(vram_total / 1024 / 1024 / 1024 + 0.5)) - vram_free = res['devices'][0]['vram_free'] - used_vram = vram_total - vram_free - used_vram_str = str(int((vram_total - vram_free) / 1024 / 1024 / 1024 + 0.5)) - used_lv = round(1.0 * (used_vram) / vram_total * 100, 2) - print("显存共:" + vram_total_str + "GB,已使用:" + used_vram_str + "GB,使用率:" + str(used_lv) + "% ") - - -# GET /system_stats -# 系统统计信息接口 # 打开配置文件 config = ConfigUtil.getConfig() - server_address = config.get('comfyui', 'server_address') -getUse(server_address) - -# 打开文件并读取内容 -file_path = r'../JSON/clearGPU.json' -with open(file_path, 'r', encoding='utf-8') as file: - prompt_data = json.load(file) -queue_prompt(server_address, "cleanGpuRam", prompt_data) +# 显示显卡使用率 +print('清理显存前:' + getUse(server_address)) -getUse(server_address) -# 如何清空Comfyui的gpu缓存 -# https://wailikeji.blog.csdn.net/article/details/140035515 +# 清理GPU缓存 +clearGPU(server_address) -# https://comfy.icu/node/easy-clearCacheAll -# https://github.com/comfyanonymous/ComfyUI/issues/3615 -# https://github.com/yolain/ComfyUI-Easy-Use/issues/124 +# 显示显卡使用率 +print('清理显存后:' + getUse(server_address)) diff --git a/BaiHu/Util/ComfyUIUtil.py b/BaiHu/Util/ComfyUIUtil.py index 6c8857fd..d7faa39d 100644 --- a/BaiHu/Util/ComfyUIUtil.py +++ b/BaiHu/Util/ComfyUIUtil.py @@ -1,3 +1,4 @@ +import os.path import urllib.parse import urllib.request @@ -57,7 +58,7 @@ def get_images(ws, server_address, client_id, prompt): if data['node'] is None and data['prompt_id'] == prompt_id: break # 执行完成 else: - #printf("我在这里...") + # printf("我在这里...") continue # 预览为二进制数据 history = get_history(server_address, prompt_id)[prompt_id] @@ -82,6 +83,35 @@ def get_images(ws, server_address, client_id, prompt): return output_images +# 获取显卡使用率 +def getUse(server_address): + req = urllib.request.Request("http://{}/system_stats".format(server_address)) + res = json.loads(urllib.request.urlopen(req).read()) + + vram_total = res['devices'][0]['vram_total'] + vram_total_str = str(int(vram_total / 1024 / 1024 / 1024 + 0.5)) + vram_free = res['devices'][0]['vram_free'] + used_vram = vram_total - vram_free + used_vram_str = str(int((vram_total - vram_free) / 1024 / 1024 / 1024 + 0.5)) + used_lv = round(1.0 * (used_vram) / vram_total * 100, 2) + return "显存共:" + vram_total_str + "GB,已使用:" + used_vram_str + "GB,使用率:" + str(used_lv) + "% " + + +# 如何清空Comfyui的gpu缓存 +# https://wailikeji.blog.csdn.net/article/details/140035515 + +# 清理GPU显存 +def clearGPU(server_address): + # 打开文件并读取内容 + file_path = r'../JSON/clearGPU.json' + if not os.path.exists(file_path): + file_path = r'./JSON/clearGPU.json' + with open(file_path, 'r', encoding='utf-8') as file: + prompt_data = json.load(file) + # 清理 + queue_prompt(server_address, "cleanGpuRam", prompt_data) + + # 生成图像 def generate_clip(server_address, prompt_data, client_id, output_path, myfilter): ws = websocket.WebSocket() diff --git a/BaiHu/Util/__pycache__/ComfyUIUtil.cpython-310.pyc b/BaiHu/Util/__pycache__/ComfyUIUtil.cpython-310.pyc index e445aeb690f4305e761af5fc55830a17374f5941..3e85484d0ab9d670da1bd7dbcc805cbe217fd6d8 100644 GIT binary patch delta 2232 zcmZuyO^g&p6z=N(>FJpraCe7=1s8$nD9i|gMx&wW5z_n!7QGdXLU2sEp>U*zV)vJ2- z>b+OjH~+akALVkM2H#%t-t<4kPxGVQ51>aiN*Y=~6x9PmQFDc^?^}Td<9fqBu2F-U z7q!5l7PW!8)S)iW49!pvs7JHZ2b!fhng{CB0a^f>qZ{Z(pm|!Pxgk1ykpu&j9Mejh zKKewH9qK9{6XHutBR)%v#XvMPwiGdS8;~NAh5}KyZmqT#_f7b)OUn z_j`YnF1g#2`h{^E<~e|r#Jqsi;Orbn7xW>EGXGq{5>}0Q)Qsh3kO&vRgT;p7=cBy? z#xLa}>I@-l0w_6r1o^E9+W>;>bkv}XSLH&?c%fG|H<#CKlbK<%8a8V)>@iRfIO>Dx z!^9>#@9`bIIrGx#`@3wwm4^}3eummF&Ge0|hLqzX>rax!EoMU@Bfjt?j0+oJ7&d_o zc3rDlr$})pNRIPI0fP*iXZ1vetr;-*S9?qM{%P#Fkg`aWJU)suP0s3bsTYc{C1kBt zXQ?41=W8~mR?Nee$ zLN9UNt^}4cAn+8a(weNTKdZOqPVsc_uJdO10IXUk0IOdH7z^4VXyPXTshuUuIwi|S zTf0iGk`9sPvZbVU8~V%6Rgib|wodgCh;C@+h}JQrD>H3_T3fWWW*4<3vP3%O+T5;2 z9hhvjjkdK(>)3rI0&wgWU*)TG;X zmk99rq6RrKFu6E9D`osbrE;ND5eq`HW)&_)b_FCNn+xkqaP&gz&GA~ZDkE8Igqo>o zGa!WTw}WX$jZAaKR%Cx2yiH-~whoZ^0DoNm;pW$uZ@&M{of}t@0T4{Qw)^IH-~Rsn zkGDSi>H%3_aO>j_@7(BKS=4upm9iXTjynj02r6gRB8966$B^b2ps4|2lUh7VAXYN{ zIN74)9FFlUa6$h5G2on>KZn9hA{edWNRV4$yKq<-4;b-uokEYIt>iPm{C!L@gh8`L*Hl$8@z6GKl;YhwlZ!*;a^=XewgJZ8i^;0eV8Z#Mc4$N`egK8!Qd0u z#@!O>su;lh>|eT>Bq0qf#Ql6XiqXNTb)JWkrB=NW30BJWqhTC}v2+C4m4boB1#WWz z%#)1sJviYBrH=*+z7GZaQNvM(32E=&%;>gt)i^hU4@yn4YP}K0vbWdUL#D1(J)d-+ z!Np9;6P9M8ImVS)s>&}qE2+1bt0XZxuc8WiN#~QeD?Tx|e^% z&qQ=V?TRH@#Hj@iiTL`^&-QJtqB}n79q|v2z607|v;kziR7jmjl+msH6%h13_jh*R z045kXA;U)bP}FQjEo3>C1{E%<$oI>=x>n2_K7lZWfXhE%gmS%lYTXx`5ltHGWvozQ c48Vo=8-86i-8Eg`h0k+s_i=ZF>*tIA0Ym8+A^-pY delta 1241 zcmZ8g&x;&I6rSoIGd(@sGn-x6b=NrV!X}{uo0SliMKPe5D541%BaTATnX271_H=b# zRqtjZIF|)M^bq>s-{5&YdGjWS;JI#sm!N-v9?W|+%NnK|zSs4t>izn@{(I}kjlPWI zu!Ya@AI1J>E06o8|QEvmJkf9 zV4187;sMarInaF*J*Y)3(hB6H((C9^0YZquR`G>l^MU*8jQp@huz`?t;05}AiC`09 z)Z3Q@7m(^{C2XouSVNH>W<@QO2|%bymP#zXt|KI{H z#|}cP`QAJJ{QnwO&;`#E*lJu`jp@!?NOKO`w71Y_k8<75m6k9~a9_0%Rxul9x^!~n zf68VT(Q^l=lu=ha6ysXw<-vS%UMaaS9a-zD*2=VP(dwBAv=4JGq)I{<;(gnl?FJg-1rsbrG`s**fwg~+4%}-=E;h2j?{d>XAHu{=8Mi2TW-GV+}$<4 z%{2%(Fm35tS;}c$kUF#vK8UF}!EsQ@d zq!LLypKtGUzBV6KW_t5+q*bQxn_x2C&kHR8UZ(h$>41+Oq2LvAyoS(x6JHoE@Dd-8 zwlgi#agkSdo8RIccJt)lIAUwBQVdT+ElgJ)3b0kdW-}ZN-+G5)lBl2jVo#OXMEt{c zAGw=5n@NWxhq_isl~+lnO%GYnwMxfG)x)5(NJfY|p2wKhWORG+Q?J2z5H~|0v