From 1d56c920abca68b39d07723b4dfa94f9667c55e7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=BB=84=E6=B5=B7?= <10402852@qq.com> Date: Fri, 28 Jun 2024 08:46:12 +0800 Subject: [PATCH] 'commit' --- BaiHu/Test/TestImg2Img.py | 42 +++--------------- BaiHu/Util/CommonUtil.py | 31 +++++++++++++ .../__pycache__/CommonUtil.cpython-310.pyc | Bin 2638 -> 3410 bytes 3 files changed, 38 insertions(+), 35 deletions(-) diff --git a/BaiHu/Test/TestImg2Img.py b/BaiHu/Test/TestImg2Img.py index 4886ffa8..806d12f0 100644 --- a/BaiHu/Test/TestImg2Img.py +++ b/BaiHu/Test/TestImg2Img.py @@ -1,39 +1,11 @@ -import base64 -import json - - -def encode_image(image_path): - with open(image_path, "rb") as i: - b64 = base64.b64encode(i.read()) - return b64.decode("utf-8") - - -# 读取JSON文件 -json_file = r'../JSON/28_1.json' -with open(json_file, 'r', encoding='utf-8') as file: - payload = json.load(file) - -# 此处为读取一张图片作为输入图像 -refer_img = encode_image('../Image/28/1.jpg') -source_img = encode_image('../Image/1ae93e2587822c291362abf9504cb49ec.jpeg') - -payload["alwayson_scripts"]["ControlNet"]["args"][0]["input_image"] = source_img # 按用户输入的图片进行面部参考 -payload["init_images"] = [refer_img] # 图生图,风格参考图是输入 -payload["alwayson_scripts"]["ControlNet"]["args"][1]["input_image"] = refer_img -print(json.dumps(payload, sort_keys=False, ensure_ascii=False, indent=4)) # 生成可以正确显示中文的json格式输出 +from Util.CommonUtil import * # API地址 url = "http://192.168.1.21:7860" -# response = requests.post(url=f'{url}/sdapi/v1/img2img', json=payload) - -# if response.status_code != 200: -# print(response.text) -# exit(0) -# r = response.json() - -# image = Image.open(io.BytesIO(base64.b64decode(r['images'][0]))) - +# 用户输入的源图 +input_source_img = '../Image/1ae93e2587822c291362abf9504cb49ec.jpeg' +# 输出图片 +output_file = "../Out/Result.png" -# print(payload) -# image.show() -# image.save('output.png') +# 调用图生图 +img2img(url, 28, 1, input_source_img, output_file) diff --git a/BaiHu/Util/CommonUtil.py b/BaiHu/Util/CommonUtil.py index 163360ff..b31b7031 100644 --- a/BaiHu/Util/CommonUtil.py +++ b/BaiHu/Util/CommonUtil.py @@ -103,3 +103,34 @@ def split_4_image(image_path, out_path): bottom_right.save(fi) return res + + +# 图生图函数 +def img2img(url,model_id, prompt_id, input_source_img, output_file): + # JSON文件模板 + templet_file = r'../JSON/' + str(model_id) + '_' + str(prompt_id) + '.json' + # 模型图片 + input_refer_img = '../Image/' + str(model_id) + '/' + str(prompt_id) + '.jpg' + + # 读取JSON文件 + with open(templet_file, 'r', encoding='utf-8') as file: + payload = json.load(file) + + # 用户输入的图片 + source_img = encode_image(input_source_img) + # 模型固定的参考图片 + refer_img = encode_image(input_refer_img) + + # 在ControlNet的第一个图片中使用用户输入的图片,用此图片的人脸进行换脸操作 + payload["alwayson_scripts"]["ControlNet"]["args"][0]["input_image"] = source_img + # 图生图,风格参考图是输入 + payload["init_images"] = [refer_img] + payload["alwayson_scripts"]["ControlNet"]["args"][1]["input_image"] = refer_img + # 调用SD服务 + response = requests.post(url=f'{url}/sdapi/v1/img2img', json=payload) + if response.status_code != 200: + print(response.text) + exit(0) + r = response.json() + # 保存图片 + save_encoded_image(response.json()['images'][0], output_file) \ No newline at end of file diff --git a/BaiHu/Util/__pycache__/CommonUtil.cpython-310.pyc b/BaiHu/Util/__pycache__/CommonUtil.cpython-310.pyc index 01622a09dfbdd9c5d59f3c20d18dd7e4f3ebb616..d7e9bb6e622401192c29f38d3ab176e172303b9b 100644 GIT binary patch delta 1072 zcmZ8g&1(}u6rb7ek8GN@sj0QL6%iZ6#IHgHPxhpTih2--%CdGQ>Bc0x%ucL^jX~l? zL`3!?h)@q6Jc)SMt0xa07yJYK7rf}3q<-KI@6B)C`|W#gX5M@$e_bd>p64L=KAI02 zmFefjMZEX?#0&2Ltvo_xmg4KEI{*IjV->&6u4!BNX!cIKg@0t8ejFdm*7S8;{m|9- zFh2KT%6x*|RS1=9y9pkH2iMRVY$)>i7l;s{GWR}5+dr1Ii#?^09UqQZw)U( z@@*Z|@6Q8Zfoy;z1&k2I0;PC_D~Ku;1XvkkwSopZ)&BVOe|!e`41rUfn$)89Q}vlQ zFom+Grsiurux=oVG#Dcl4^h`Tjgqsw7$Z4uf(R{DM|fbvY{2ZKc4|@QAfhfv0mK6- zUO=hS#Ne5d=s!kj!Vr4PNYP6~r(Y?+n0cxU+|+HEboP$Qd%{ZHVapytYT-~%&Z)bn zyhek90GdR!JV}>oBLzd%aN%>CeXCZhU%q~2vz}wWuh&{h)a~0~yVMDqto{Sn`&z9P zH~A7AA+Jca42qP3_HJ+=$bPcT!&oH5*%(G$!K3yj6S)@fX2RjX5plzA4DArgcybZ$ z3b{#MM_VObV9hS-fHRL8} z;wB;xy~N*+DC5V$l52w9gPPdAQ1Cf0RK0NqVs(Jh_MwICm`9x$Dx-O6Qg0IV_%?&G zo4E_^EVs}I+l&+h>%?ugznYqmIcqTPuSv2dS-BYp_uElGiSsuOu_rWO5ewc$9CZ`M zm$HXi`6}4t);myKvI1&RSyW1D0WbcvG)tLR9c3Pu6$d-mg0Z0RO}UNo_>A}r;M|Oo zntXEnJgoS7_Q{?%Y7(wy-|T}6M B6dM2l delta 294 zcmca4bxwpYpO=@50SFeo&q=f7naC%@IAfyr3|7Wq22HVz7dn|4H77^0#4svN7GxHg ze453R@z!KfR&_>|$+oN(j2fHESQjud8gCY7?`Gsy2O4vWrL;6N<<{i29P*6%lh1NU zM%`l0%uT<=TArCwl5vYIBQ-NUqvRH6UTS$fM2HK-gbH(%B&;Sv}Ai{Gp2d^5V++=-Tc_tna0GoeRC;$Ke