From c50f4864ca6c0392413f55d2c2ce174ac25139e9 Mon Sep 17 00:00:00 2001 From: Robin Huang Date: Mon, 21 Apr 2025 11:14:42 -0700 Subject: [PATCH] [API Nodes] Send empty request body instead of empty dictionary. (#8) --- comfy_api_nodes/apis/client.py | 10 +++++++--- comfy_api_nodes/nodes_api.py | 16 ++++++---------- 2 files changed, 13 insertions(+), 13 deletions(-) diff --git a/comfy_api_nodes/apis/client.py b/comfy_api_nodes/apis/client.py index 2a98cc301..9e0676a62 100644 --- a/comfy_api_nodes/apis/client.py +++ b/comfy_api_nodes/apis/client.py @@ -298,8 +298,8 @@ class SynchronousOperation(Generic[T, R]): verify_ssl=self.verify_ssl, ) - # Convert request model to dict - request_dict = self.request.model_dump(exclude_none=True) + # Convert request model to dict, but use None for EmptyRequest + request_dict = None if isinstance(self.request, EmptyRequest) else self.request.model_dump(exclude_none=True) # Debug log for request logging.debug(f"[DEBUG] API Request: {self.endpoint.method.value} {self.endpoint.path}") @@ -315,7 +315,11 @@ class SynchronousOperation(Generic[T, R]): ) # Debug log for response - logging.debug(f"[DEBUG] API Response: {json.dumps(resp, indent=2)}") + logging.debug("=" * 50) + logging.debug("[DEBUG] RESPONSE DETAILS:") + logging.debug("[DEBUG] Status Code: 200 (Success)") + logging.debug(f"[DEBUG] Response Body: {json.dumps(resp, indent=2)}") + logging.debug("=" * 50) # Parse and return the response return self._parse_response(resp) diff --git a/comfy_api_nodes/nodes_api.py b/comfy_api_nodes/nodes_api.py index be2bd59f0..740c40a05 100644 --- a/comfy_api_nodes/nodes_api.py +++ b/comfy_api_nodes/nodes_api.py @@ -10,13 +10,6 @@ from comfy.comfy_types.node_typing import FileLocator import json import av - -def check_auth_token(auth_token): - """Verify that an auth token is present.""" - if auth_token is None: - raise Exception("Please login first to use this node.") - return auth_token - class IdeogramTextToImage(ComfyNodeABC): """ Generates images synchronously based on a given prompt and optional parameters. @@ -281,14 +274,15 @@ class MinimaxVideoNode: task_result = video_generate_operation.execute() file_id = task_result.file_id - + if file_id is None: + raise Exception("Request was not successful. Missing file ID.") file_retrieve_operation = SynchronousOperation( endpoint=ApiEndpoint( path="/proxy/minimax/files/retrieve", method=HttpMethod.GET, request_model=EmptyRequest, response_model=MinimaxFileRetrieveResponse, - query_params={"file_id": file_id}, + query_params={"file_id": int(file_id)}, ), request=EmptyRequest(), auth_token=auth_token, @@ -296,8 +290,10 @@ class MinimaxVideoNode: file_result = file_retrieve_operation.execute() file_url = file_result.file.download_url - + if file_url is None: + raise Exception(f"No video was found in the response. Full response: {file_result.model_dump()}") logging.info(f"Generated video URL: {file_url}") + _, filename = folder_paths.download_url_to_file("comfyapinodes", file_url, folder_paths.get_output_directory()) # Construct the save path full_output_folder, filename, counter, subfolder, filename_prefix = (