rishh76 commited on
Commit
61b7bf4
·
verified ·
1 Parent(s): 603a74b

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +69 -8
app.py CHANGED
@@ -27,15 +27,76 @@ def tryon(person_img, garment_prompt, seed, randomize_seed):
27
  if randomize_seed:
28
  seed = random.randint(0, MAX_SEED)
29
  # Generate garment image from prompt
30
- garment_img = generate_garment_image(garment_prompt)
31
-
32
- encoded_person_img = cv2.imencode('.jpg', cv2.cvtColor(person_img, cv2.COLOR_RGB2BGR))[1].tobytes()
33
- encoded_person_img = base64.b64encode(encoded_person_img).decode('utf-8')
34
- encoded_garment_img = cv2.imencode('.jpg', cv2.cvtColor(garment_img, cv2.COLOR_RGB2BGR))[1].tobytes()
35
- encoded_garment_img = base64.b64encode(encoded_garment_img).decode('utf-8')
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
36
 
37
- # Rest of the function remains the same
38
- # ...
 
 
39
 
40
  def start_tryon(person_img, garment_prompt, seed, randomize_seed):
41
  start_time = time.time()
 
27
  if randomize_seed:
28
  seed = random.randint(0, MAX_SEED)
29
  # Generate garment image from prompt
30
+ # Generate garment image from prompt
31
+ garment_img = generate_garment_image(garment_prompt)
32
+
33
+ encoded_person_img = cv2.imencode('.jpg', cv2.cvtColor(person_img, cv2.COLOR_RGB2BGR))[1].tobytes()
34
+ encoded_person_img = base64.b64encode(encoded_person_img).decode('utf-8')
35
+ encoded_garment_img = cv2.imencode('.jpg', cv2.cvtColor(garment_img, cv2.COLOR_RGB2BGR))[1].tobytes()
36
+ encoded_garment_img = base64.b64encode(encoded_garment_img).decode('utf-8')
37
+
38
+ url = "http://" + os.environ['tryon_url'] + "Submit"
39
+ token = os.environ['token']
40
+ cookie = os.environ['Cookie']
41
+ referer = os.environ['referer']
42
+ headers = {'Content-Type': 'application/json', 'token': token, 'Cookie': cookie, 'referer': referer}
43
+ data = {
44
+ "clothImage": encoded_garment_img,
45
+ "humanImage": encoded_person_img,
46
+ "seed": seed
47
+ }
48
+
49
+ response = requests.post(url, headers=headers, data=json.dumps(data), timeout=50)
50
+ print("post response code", response.status_code)
51
+ if response.status_code == 200:
52
+ result = response.json()['result']
53
+ status = result['status']
54
+ if status == "success":
55
+ uuid = result['result']
56
+ print(uuid)
57
+ else:
58
+ return None, seed, f"Error: HTTP {response.status_code}"
59
+
60
+ post_end_time = time.time()
61
+ print(f"post time used: {post_end_time-post_start_time}")
62
+
63
+ get_start_time = time.time()
64
+ time.sleep(9)
65
+ Max_Retry = 10
66
+ result_img = None
67
+ for i in range(Max_Retry):
68
+ try:
69
+ url = "http://" + os.environ['tryon_url'] + "Query?taskId=" + uuid
70
+ response = requests.get(url, headers=headers, timeout=15)
71
+ print("get response code", response.status_code)
72
+ if response.status_code == 200:
73
+ result = response.json()['result']
74
+ status = result['status']
75
+ if status == "success":
76
+ result = base64.b64decode(result['result'])
77
+ result_np = np.frombuffer(result, np.uint8)
78
+ result_img = cv2.imdecode(result_np, cv2.IMREAD_UNCHANGED)
79
+ result_img = cv2.cvtColor(result_img, cv2.COLOR_RGB2BGR)
80
+ info = "Success"
81
+ break
82
+ elif status == "error":
83
+ return None, seed, "Too many users, please try again later"
84
+ else:
85
+ print(response.text)
86
+ info = "URL error, please contact the admin"
87
+ except requests.exceptions.ReadTimeout:
88
+ print("timeout")
89
+ info = "Too many users, please try again later"
90
+ except Exception as err:
91
+ print(f"Error: {err}")
92
+ time.sleep(1)
93
+ get_end_time = time.time()
94
+ print(f"get time used: {get_end_time-get_start_time}")
95
 
96
+ return result_img, seed, info
97
+ except Exception as e:
98
+ print(f"An error occurred: {str(e)}")
99
+ return None, seed, f"An error occurred: {str(e)}"
100
 
101
  def start_tryon(person_img, garment_prompt, seed, randomize_seed):
102
  start_time = time.time()