FIX midjourney修图改为异步
This commit is contained in:
parent
c8eabc01fc
commit
5fee351bbd
|
|
@ -203,7 +203,8 @@ class ModalMidJourneyGenerateImage:
|
||||||
"required": {
|
"required": {
|
||||||
"prompt": ("STRING", {"default": "一幅宏大壮美的山川画卷", "multiline": True}),
|
"prompt": ("STRING", {"default": "一幅宏大壮美的山川画卷", "multiline": True}),
|
||||||
"image": ("IMAGE",),
|
"image": ("IMAGE",),
|
||||||
"endpoint": ("STRING", {"default": "bowongai-dev--bowong-ai-video-gemini-fastapi-webapp.modal.run"}),
|
"endpoint": ("STRING", {"default": "bowongai-dev--text-video-agent-fastapi-app.modal.run"}),
|
||||||
|
"timeout": ("INT", {"default": 120, "min": 10, "max": 600}),
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -213,15 +214,13 @@ class ModalMidJourneyGenerateImage:
|
||||||
OUTPUT_NODE = False
|
OUTPUT_NODE = False
|
||||||
CATEGORY = "不忘科技-自定义节点🚩/图片/Midjourney"
|
CATEGORY = "不忘科技-自定义节点🚩/图片/Midjourney"
|
||||||
|
|
||||||
def process(self, prompt: str, image:torch.Tensor, endpoint: str):
|
def process(self, prompt: str, image:torch.Tensor, endpoint: str, timeout: int):
|
||||||
try:
|
try:
|
||||||
logger.info("请求同步接口")
|
logger.info("请求异步接口")
|
||||||
|
interval = 2
|
||||||
format = "PNG"
|
format = "PNG"
|
||||||
job_resp = send_request("post", f"https://{endpoint}/mj_router/sync/generate/image",
|
job_resp = send_request("post", f"https://{endpoint}/api/mj/async/generate/image?prompt={prompt}",
|
||||||
headers={'Authorization': 'Bearer bowong7777'},
|
headers={'Authorization': 'Bearer bowong7777'},
|
||||||
data={
|
|
||||||
"prompt": prompt,
|
|
||||||
},
|
|
||||||
files={"img_file": (
|
files={"img_file": (
|
||||||
'image.' + format.lower(), tensor_to_image_bytes(image, format),
|
'image.' + format.lower(), tensor_to_image_bytes(image, format),
|
||||||
f'image/{format.lower()}')},
|
f'image/{format.lower()}')},
|
||||||
|
|
@ -230,9 +229,20 @@ class ModalMidJourneyGenerateImage:
|
||||||
job_resp = job_resp.json()
|
job_resp = job_resp.json()
|
||||||
if "失败" in job_resp["msg"] or "fail" in job_resp["msg"] or "error" in job_resp["msg"]:
|
if "失败" in job_resp["msg"] or "fail" in job_resp["msg"] or "error" in job_resp["msg"]:
|
||||||
raise Exception("生成失败")
|
raise Exception("生成失败")
|
||||||
result_url = job_resp["data"]
|
job_id = job_resp["data"]
|
||||||
logger.success("img_url: "+result_url)
|
for _ in range(0, timeout//interval, interval):
|
||||||
return (url_to_tensor(result_url),)
|
logger.info("查询结果")
|
||||||
|
resp = send_request("get", f"https://{endpoint}/api/mj/async/query/status?task_id={job_id}",
|
||||||
|
headers={'Authorization': 'Bearer bowong7777'}, timeout=30)
|
||||||
|
resp.raise_for_status()
|
||||||
|
if resp.json()["status"]:
|
||||||
|
if "fail" in resp.json()["msg"]:
|
||||||
|
raise Exception("生成失败,可能因为风控")
|
||||||
|
result_url = resp.json()["data"]
|
||||||
|
logger.success("img_url: "+result_url)
|
||||||
|
return (url_to_tensor(result_url),)
|
||||||
|
sleep(interval)
|
||||||
|
raise Exception("等待超时")
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
raise e
|
raise e
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue