diff --git a/nodes/image_modal_nodes.py b/nodes/image_modal_nodes.py index aa726d0..c369c9a 100644 --- a/nodes/image_modal_nodes.py +++ b/nodes/image_modal_nodes.py @@ -209,8 +209,8 @@ class ModalMidJourneyGenerateImage: return { "required": { "prompt": ("STRING", {"default": "一幅宏大壮美的山川画卷", "multiline": True}), - "endpoint": ("STRING", {"default": "bowongai-dev--text-video-agent-fastapi-app.modal.run"}), - "timeout": ("INT", {"default": 120, "min": 10, "max": 600}), + "endpoint": ("STRING", {"default": "bowongai-test--text-video-agent-fastapi-app.modal.run"}), + "timeout": ("INT", {"default": 300, "min": 10, "max": 1200}), }, "optional": { "image": ("IMAGE",), @@ -225,8 +225,7 @@ class ModalMidJourneyGenerateImage: def process(self, prompt: str, endpoint: str, timeout: int, **kwargs): try: - logger.info("请求异步接口") - interval = 2 + logger.info("请求同步接口") format = "PNG" if "image" in kwargs and kwargs["image"] is not None: image = kwargs["image"] @@ -235,35 +234,25 @@ class ModalMidJourneyGenerateImage: f'image/{format.lower()}')} else: files = None - job_resp = send_request("post", f"https://{endpoint}/api/302/mj/async/generate/image?prompt={prompt}", + job_resp = send_request("post", f"https://{endpoint}/api/union/img/sync/generate/image", headers={'Authorization': 'Bearer bowong7777'}, + data={"prompt": prompt}, files=files, - timeout=150) + timeout=timeout) job_resp.raise_for_status() job_resp = job_resp.json() if not job_resp["status"]: raise Exception("生成失败, 可能因为风控") - job_id = job_resp["data"] - for _ in range(0, timeout // interval, interval): - logger.info("查询结果") - resp = send_request("get", f"https://{endpoint}/api/302/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"] - if isinstance(result_url, list): - result_list = [] - for url in result_url: - logger.success("img_url: " + url) - result_list.append(url_to_tensor(url).squeeze(0)) - result_list = torch.stack(result_list, dim=0) - return (result_list,) - logger.success("img_url: " + result_url) - return (url_to_tensor(result_url),) - sleep(interval) - raise Exception("等待超时") + result_url = job_resp["data"] + if isinstance(result_url, list): + result_list = [] + for url in result_url: + logger.success("img_url: " + url) + result_list.append(url_to_tensor(url).squeeze(0)) + result_list = torch.stack(result_list, dim=0) + return (result_list,) + logger.success("img_url: " + result_url) + return (url_to_tensor(result_url),) except Exception as e: raise e @@ -274,7 +263,7 @@ class ModalMidJourneyDescribeImage: return { "required": { "image": ("IMAGE",), - "endpoint": ("STRING", {"default": "bowongai-dev--text-video-agent-fastapi-app.modal.run"}), + "endpoint": ("STRING", {"default": "bowongai-test--text-video-agent-fastapi-app.modal.run"}), }, } @@ -293,7 +282,7 @@ class ModalMidJourneyDescribeImage: files={"img_file": ( 'image.' + format.lower(), tensor_to_image_bytes(image, format), f'image/{format.lower()}')}, - timeout=150) + timeout=300) job_resp.raise_for_status() job_resp = job_resp.json() if not job_resp["status"]: