added rate_limit check to other hunyuan3d nodes
Some checks are pending
Python Linting / Run Ruff (push) Waiting to run
Python Linting / Run Pylint (push) Waiting to run

This commit is contained in:
bigcat88 2026-02-14 10:40:01 +02:00
parent 5a5a6abd98
commit ab7abc34ca

View File

@ -27,6 +27,14 @@ from comfy_api_nodes.util import (
) )
def _is_tencent_rate_limited(status: int, body: object) -> bool:
return (
status == 400
and isinstance(body, dict)
and "RequestLimitExceeded" in str(body.get("Response", {}).get("Error", {}).get("Code", ""))
)
def get_file_from_response( def get_file_from_response(
response_objs: list[ResultFile3D], file_type: str, raise_if_not_found: bool = True response_objs: list[ResultFile3D], file_type: str, raise_if_not_found: bool = True
) -> ResultFile3D | None: ) -> ResultFile3D | None:
@ -129,6 +137,7 @@ class TencentTextToModelNode(IO.ComfyNode):
EnablePBR=generate_type.get("pbr", None), EnablePBR=generate_type.get("pbr", None),
PolygonType=generate_type.get("polygon_type", None), PolygonType=generate_type.get("polygon_type", None),
), ),
is_rate_limited=_is_tencent_rate_limited,
) )
if response.Error: if response.Error:
raise ValueError(f"Task creation failed with code {response.Error.Code}: {response.Error.Message}") raise ValueError(f"Task creation failed with code {response.Error.Code}: {response.Error.Message}")
@ -280,6 +289,7 @@ class TencentImageToModelNode(IO.ComfyNode):
EnablePBR=generate_type.get("pbr", None), EnablePBR=generate_type.get("pbr", None),
PolygonType=generate_type.get("polygon_type", None), PolygonType=generate_type.get("polygon_type", None),
), ),
is_rate_limited=_is_tencent_rate_limited,
) )
if response.Error: if response.Error:
raise ValueError(f"Task creation failed with code {response.Error.Code}: {response.Error.Message}") raise ValueError(f"Task creation failed with code {response.Error.Code}: {response.Error.Message}")
@ -368,11 +378,7 @@ class TencentModelTo3DUVNode(IO.ComfyNode):
Url=await upload_3d_model_to_comfyapi(cls, model_3d, file_format), Url=await upload_3d_model_to_comfyapi(cls, model_3d, file_format),
) )
), ),
is_rate_limited=lambda status, body: ( is_rate_limited=_is_tencent_rate_limited,
status == 400
and isinstance(body, dict)
and "RequestLimitExceeded" in str(body.get("Response", {}).get("Error", {}).get("Code", ""))
),
) )
if response.Error: if response.Error:
raise ValueError(f"Task creation failed with code {response.Error.Code}: {response.Error.Message}") raise ValueError(f"Task creation failed with code {response.Error.Code}: {response.Error.Message}")
@ -459,6 +465,7 @@ class Tencent3DTextureEditNode(IO.ComfyNode):
Prompt=prompt, Prompt=prompt,
EnablePBR=True, EnablePBR=True,
), ),
is_rate_limited=_is_tencent_rate_limited,
) )
if response.Error: if response.Error:
raise ValueError(f"Task creation failed with code {response.Error.Code}: {response.Error.Message}") raise ValueError(f"Task creation failed with code {response.Error.Code}: {response.Error.Message}")
@ -532,6 +539,7 @@ class Tencent3DPartNode(IO.ComfyNode):
data=To3DUVTaskRequest( data=To3DUVTaskRequest(
File=To3DUVFileInput(Type=file_format.upper(), Url=model_url), File=To3DUVFileInput(Type=file_format.upper(), Url=model_url),
), ),
is_rate_limited=_is_tencent_rate_limited,
) )
if response.Error: if response.Error:
raise ValueError(f"Task creation failed with code {response.Error.Code}: {response.Error.Message}") raise ValueError(f"Task creation failed with code {response.Error.Code}: {response.Error.Message}")