fix: send ws after cd logic
This commit is contained in:
parent
2f33bcf497
commit
c115c22a91
@ -395,7 +395,7 @@ async def comfy_deploy_run(request):
|
|||||||
# We proxy the request to Comfy Deploy, this is a native run
|
# We proxy the request to Comfy Deploy, this is a native run
|
||||||
if "is_native_run" in data:
|
if "is_native_run" in data:
|
||||||
async with aiohttp.ClientSession() as session:
|
async with aiohttp.ClientSession() as session:
|
||||||
pprint(data)
|
# pprint(data)
|
||||||
# headers = request.headers.copy()
|
# headers = request.headers.copy()
|
||||||
# headers['Content-Type'] = 'application/json'
|
# headers['Content-Type'] = 'application/json'
|
||||||
async with session.post(data.get("native_run_api_endpoint"), json=data, headers={
|
async with session.post(data.get("native_run_api_endpoint"), json=data, headers={
|
||||||
@ -403,7 +403,7 @@ async def comfy_deploy_run(request):
|
|||||||
'Authorization': request.headers.get('Authorization')
|
'Authorization': request.headers.get('Authorization')
|
||||||
}) as response:
|
}) as response:
|
||||||
data = await response.json()
|
data = await response.json()
|
||||||
print(data)
|
# print(data)
|
||||||
|
|
||||||
if "cd_token" in data:
|
if "cd_token" in data:
|
||||||
token = data["cd_token"]
|
token = data["cd_token"]
|
||||||
@ -1002,24 +1002,14 @@ async def send_json_override(self, event, data, sid=None):
|
|||||||
target_sid = sid
|
target_sid = sid
|
||||||
if target_sid == "comfy_deploy_instance":
|
if target_sid == "comfy_deploy_instance":
|
||||||
target_sid = None
|
target_sid = None
|
||||||
|
|
||||||
# now we send everything
|
# now we send everything
|
||||||
await asyncio.wait([
|
await asyncio.wait([
|
||||||
asyncio.create_task(send(event, data, sid=target_sid)),
|
asyncio.create_task(send(event, data, sid=target_sid)),
|
||||||
asyncio.create_task(self.send_json_original(event, data, sid))
|
asyncio.create_task(self.send_json_original(event, data, sid))
|
||||||
])
|
])
|
||||||
|
|
||||||
if prompt_id in comfy_message_queues:
|
|
||||||
comfy_message_queues[prompt_id].put_nowait({
|
|
||||||
"event": event,
|
|
||||||
"data": data
|
|
||||||
})
|
|
||||||
|
|
||||||
asyncio.create_task(update_run_ws_event(prompt_id, event, data))
|
asyncio.create_task(update_run_ws_event(prompt_id, event, data))
|
||||||
# event_emitter.emit("send_json", {
|
|
||||||
# "event": event,
|
|
||||||
# "data": data
|
|
||||||
# })
|
|
||||||
|
|
||||||
if event == 'execution_start':
|
if event == 'execution_start':
|
||||||
await update_run(prompt_id, Status.RUNNING)
|
await update_run(prompt_id, Status.RUNNING)
|
||||||
@ -1058,7 +1048,7 @@ async def send_json_override(self, event, data, sid=None):
|
|||||||
return
|
return
|
||||||
prompt_metadata[prompt_id].last_updated_node = node
|
prompt_metadata[prompt_id].last_updated_node = node
|
||||||
class_type = prompt_metadata[prompt_id].workflow_api[node]['class_type']
|
class_type = prompt_metadata[prompt_id].workflow_api[node]['class_type']
|
||||||
logger.info(f"At: {calculated_progress * 100}% - {class_type}")
|
logger.info(f"At: {round(calculated_progress * 100)}% - {class_type}")
|
||||||
await send("live_status", {
|
await send("live_status", {
|
||||||
"prompt_id": prompt_id,
|
"prompt_id": prompt_id,
|
||||||
"current_node": class_type,
|
"current_node": class_type,
|
||||||
@ -1087,7 +1077,6 @@ async def send_json_override(self, event, data, sid=None):
|
|||||||
if prompt_id in prompt_metadata:
|
if prompt_id in prompt_metadata:
|
||||||
node = data.get('node')
|
node = data.get('node')
|
||||||
class_type = prompt_metadata[prompt_id].workflow_api[node]['class_type']
|
class_type = prompt_metadata[prompt_id].workflow_api[node]['class_type']
|
||||||
logger.info(f"Executed {class_type} {data}")
|
|
||||||
node_meta = {
|
node_meta = {
|
||||||
"node_id": node,
|
"node_id": node,
|
||||||
"node_class": class_type,
|
"node_class": class_type,
|
||||||
@ -1095,12 +1084,16 @@ async def send_json_override(self, event, data, sid=None):
|
|||||||
if class_type == "PreviewImage":
|
if class_type == "PreviewImage":
|
||||||
logger.info("Skipping preview image")
|
logger.info("Skipping preview image")
|
||||||
return
|
return
|
||||||
|
await update_run_with_output(prompt_id, data.get('output'), node_id=data.get('node'), node_meta=node_meta)
|
||||||
|
logger.info(f"Executed {class_type} {data}")
|
||||||
else:
|
else:
|
||||||
logger.info(f"Executed {data}")
|
logger.info(f"Executed {data}")
|
||||||
|
|
||||||
await update_run_with_output(prompt_id, data.get('output'), node_id=data.get('node'), node_meta=node_meta)
|
if prompt_id in comfy_message_queues:
|
||||||
# await update_run_with_output(prompt_id, data.get('output'), node_id=data.get('node'))
|
comfy_message_queues[prompt_id].put_nowait({
|
||||||
# update_run_with_output(prompt_id, data.get('output'))
|
"event": event,
|
||||||
|
"data": data
|
||||||
|
})
|
||||||
|
|
||||||
# Global variable to keep track of the last read line number
|
# Global variable to keep track of the last read line number
|
||||||
last_read_line_number = 0
|
last_read_line_number = 0
|
||||||
@ -1262,7 +1255,7 @@ async def upload_with_retry(session, url, headers, data, max_retries=3, initial_
|
|||||||
response.raise_for_status() # This will raise an exception for 4xx and 5xx status codes
|
response.raise_for_status() # This will raise an exception for 4xx and 5xx status codes
|
||||||
|
|
||||||
response_text = await response.text()
|
response_text = await response.text()
|
||||||
logger.info(f"Response body: {response_text[:1000]}...")
|
# logger.info(f"Response body: {response_text[:1000]}...")
|
||||||
|
|
||||||
logger.info("Upload successful")
|
logger.info("Upload successful")
|
||||||
return response # Successful upload, exit the retry loop
|
return response # Successful upload, exit the retry loop
|
||||||
@ -1319,13 +1312,13 @@ async def upload_file(prompt_id, filename, subfolder=None, content_type="image/p
|
|||||||
target_url = f"{file_upload_endpoint}?file_name={filename}&run_id={prompt_id}&type={content_type}&version=v2"
|
target_url = f"{file_upload_endpoint}?file_name={filename}&run_id={prompt_id}&type={content_type}&version=v2"
|
||||||
|
|
||||||
start_time = time.time() # Start timing here
|
start_time = time.time() # Start timing here
|
||||||
logger.info(f"Target URL: {target_url}")
|
# logger.info(f"Target URL: {target_url}")
|
||||||
result = await async_request_with_retry("GET", target_url, disable_timeout=True, token=token)
|
result = await async_request_with_retry("GET", target_url, disable_timeout=True, token=token)
|
||||||
end_time = time.time() # End timing after the request is complete
|
end_time = time.time() # End timing after the request is complete
|
||||||
logger.info("Time taken for getting file upload endpoint: {:.2f} seconds".format(end_time - start_time))
|
logger.info("Time taken for getting file upload endpoint: {:.2f} seconds".format(end_time - start_time))
|
||||||
ok = await result.json()
|
ok = await result.json()
|
||||||
|
|
||||||
logger.info(f"Result: {ok}")
|
# logger.info(f"Result: {ok}")
|
||||||
|
|
||||||
async with aiofiles.open(file, 'rb') as f:
|
async with aiofiles.open(file, 'rb') as f:
|
||||||
data = await f.read()
|
data = await f.read()
|
||||||
@ -1338,7 +1331,7 @@ async def upload_file(prompt_id, filename, subfolder=None, content_type="image/p
|
|||||||
"Content-Length": size,
|
"Content-Length": size,
|
||||||
}
|
}
|
||||||
|
|
||||||
logger.info(headers)
|
# logger.info(headers)
|
||||||
|
|
||||||
if ok.get('include_acl') is True:
|
if ok.get('include_acl') is True:
|
||||||
headers["x-amz-acl"] = "public-read"
|
headers["x-amz-acl"] = "public-read"
|
||||||
@ -1542,7 +1535,7 @@ async def update_run_with_output(prompt_id, data, node_id=None, node_meta=None):
|
|||||||
"output_data": data,
|
"output_data": data,
|
||||||
"node_meta": node_meta,
|
"node_meta": node_meta,
|
||||||
}
|
}
|
||||||
pprint(body)
|
# pprint(body)
|
||||||
have_upload_media = False
|
have_upload_media = False
|
||||||
if data is not None:
|
if data is not None:
|
||||||
have_upload_media = 'images' in data or 'files' in data or 'gifs' in data or 'mesh' in data
|
have_upload_media = 'images' in data or 'files' in data or 'gifs' in data or 'mesh' in data
|
||||||
|
Loading…
x
Reference in New Issue
Block a user