diff --git a/ai_diffusion/comfy_client.py b/ai_diffusion/comfy_client.py index 6476ce15a..e6540b018 100644 --- a/ai_diffusion/comfy_client.py +++ b/ai_diffusion/comfy_client.py @@ -190,8 +190,8 @@ async def connect(url=default_url, access_token=""): _ensure_supported_style(client) return client - async def _get(self, op: str): - return await self._requests.get(f"{self.url}/{op}") + async def _get(self, op: str, timeout: float | None = 30): + return await self._requests.get(f"{self.url}/{op}", timeout=timeout) async def _post(self, op: str, data: dict): return await self._requests.post(f"{self.url}/{op}", data) @@ -380,9 +380,10 @@ async def disconnect(self): async def try_inspect(self, folder_name: str) -> dict[str, Any]: try: - return await self._get(f"api/etn/model_info/{folder_name}") - except NetworkError: - return {} # server has old external tooling version + return await self._get(f"api/etn/model_info/{folder_name}", timeout=90) + except NetworkError as e: + log.error(f"Error while inspecting models in {folder_name}: {str(e)}") + return {} @property def queued_count(self): diff --git a/ai_diffusion/network.py b/ai_diffusion/network.py index aea560738..19f80c01d 100644 --- a/ai_diffusion/network.py +++ b/ai_diffusion/network.py @@ -92,7 +92,7 @@ def http( data: dict | QByteArray | None = None, bearer="", headers: Headers | None = None, - timeout: int | None = None, + timeout: float | None = None, ): self._cleanup() @@ -105,7 +105,7 @@ def http( for key, value in headers: request.setRawHeader(key.encode("utf-8"), value.encode("utf-8")) if timeout is not None: - request.setTransferTimeout(timeout) + request.setTransferTimeout(int(timeout / 1000)) assert method in ["GET", "POST", "PUT"] if method == "POST": @@ -131,7 +131,7 @@ def http( self._requests[reply] = Request(url, future) return future - def get(self, url: str, bearer="", timeout: int | None = None): + def get(self, url: str, bearer="", timeout: float | None = None): return self.http("GET", url, bearer=bearer, timeout=timeout) def post(self, url: str, data: dict, bearer=""): diff --git a/ai_diffusion/updates.py b/ai_diffusion/updates.py index fe1444d94..44f72e8e2 100644 --- a/ai_diffusion/updates.py +++ b/ai_diffusion/updates.py @@ -71,7 +71,7 @@ async def _check(self): self.state = UpdateState.checking log.info(f"Checking for latest plugin version at {self.api_url}") result = await self._net.get( - f"{self.api_url}/plugin/latest?version={self.current_version}", timeout=10000 + f"{self.api_url}/plugin/latest?version={self.current_version}", timeout=10 ) self.latest_version = result.get("version") if not self.latest_version: