I pasted into the linux shell 30 commands with different urls to download 30 different models, like this:
comfy --skip-prompt model download \
--set-civitai-api-token <TOKEN> \
--url "<URL>" \
--relative-path "models/loras/"
╭───────────────────────────────────────────────────────── Traceback (most recent call last) ─────────────────────────────────────────────────────────╮
│ /root/.local/share/uv/tools/comfy-cli/lib/python3.14/site-packages/httpx/_transports/default.py:101 in map_httpcore_exceptions │
│ │
│ 98 │ if len(HTTPCORE_EXC_MAP) == 0: │
│ 99 │ │ HTTPCORE_EXC_MAP = _load_httpcore_exceptions() │
│ 100 │ try: │
│ ❱ 101 │ │ yield │
│ 102 │ except Exception as exc: │
│ 103 │ │ mapped_exc = None │
│ 104 │
│ │
│ /root/.local/share/uv/tools/comfy-cli/lib/python3.14/site-packages/httpx/_transports/default.py:250 in handle_request │
│ │
│ 247 │ │ │ extensions=request.extensions, │
│ 248 │ │ ) │
│ 249 │ │ with map_httpcore_exceptions(): │
│ ❱ 250 │ │ │ resp = self._pool.handle_request(req) │
│ 251 │ │ │
│ 252 │ │ assert isinstance(resp.stream, typing.Iterable) │
│ 253 │
│ │
│ /root/.local/share/uv/tools/comfy-cli/lib/python3.14/site-packages/httpcore/_sync/connection_pool.py:256 in handle_request │
│ │
│ 253 │ │ │ │ closing = self._assign_requests_to_connections() │
│ 254 │ │ │ │
│ 255 │ │ │ self._close_connections(closing) │
│ ❱ 256 │ │ │ raise exc from None │
│ 257 │ │ │
│ 258 │ │ # Return the response. Note that in this case we still have to manage │
│ 259 │ │ # the point at which the response is closed. │
│ │
│ /root/.local/share/uv/tools/comfy-cli/lib/python3.14/site-packages/httpcore/_sync/connection_pool.py:236 in handle_request │
│ │
│ 233 │ │ │ │ │
│ 234 │ │ │ │ try: │
│ 235 │ │ │ │ │ # Send the request on the assigned connection. │
│ ❱ 236 │ │ │ │ │ response = connection.handle_request( │
│ 237 │ │ │ │ │ │ pool_request.request │
│ 238 │ │ │ │ │ ) │
│ 239 │ │ │ │ except ConnectionNotAvailable: │
│ │
│ /root/.local/share/uv/tools/comfy-cli/lib/python3.14/site-packages/httpcore/_sync/connection.py:103 in handle_request │
│ │
│ 100 │ │ │ self._connect_failed = True │
│ 101 │ │ │ raise exc │
│ 102 │ │ │
│ ❱ 103 │ │ return self._connection.handle_request(request) │
│ 104 │ │
│ 105 │ def _connect(self, request: Request) -> NetworkStream: │
│ 106 │ │ timeouts = request.extensions.get("timeout", {}) │
│ │
│ /root/.local/share/uv/tools/comfy-cli/lib/python3.14/site-packages/httpcore/_sync/http11.py:136 in handle_request │
│ │
│ 133 │ │ │ with ShieldCancellation(): │
│ 134 │ │ │ │ with Trace("response_closed", logger, request) as trace: │
│ 135 │ │ │ │ │ self._response_closed() │
│ ❱ 136 │ │ │ raise exc │
│ 137 │ │
│ 138 │ # Sending the request... │
│ 139 │
│ │
│ /root/.local/share/uv/tools/comfy-cli/lib/python3.14/site-packages/httpcore/_sync/http11.py:106 in handle_request │
│ │
│ 103 │ │ │ │ │ reason_phrase, │
│ 104 │ │ │ │ │ headers, │
│ 105 │ │ │ │ │ trailing_data, │
│ ❱ 106 │ │ │ │ ) = self._receive_response_headers(**kwargs) │
│ 107 │ │ │ │ trace.return_value = ( │
│ 108 │ │ │ │ │ http_version, │
│ 109 │ │ │ │ │ status, │
│ │
│ /root/.local/share/uv/tools/comfy-cli/lib/python3.14/site-packages/httpcore/_sync/http11.py:177 in _receive_response_headers │
│ │
│ 174 │ │ timeout = timeouts.get("read", None) │
│ 175 │ │ │
│ 176 │ │ while True: │
│ ❱ 177 │ │ │ event = self._receive_event(timeout=timeout) │
│ 178 │ │ │ if isinstance(event, h11.Response): │
│ 179 │ │ │ │ break │
│ 180 │ │ │ if ( │
│ │
│ /root/.local/share/uv/tools/comfy-cli/lib/python3.14/site-packages/httpcore/_sync/http11.py:217 in _receive_event │
│ │
│ 214 │ │ │ │ event = self._h11_state.next_event() │
│ 215 │ │ │ │
│ 216 │ │ │ if event is h11.NEED_DATA: │
│ ❱ 217 │ │ │ │ data = self._network_stream.read( │
│ 218 │ │ │ │ │ self.READ_NUM_BYTES, timeout=timeout │
│ 219 │ │ │ │ ) │
│ 220 │
│ │
│ /root/.local/share/uv/tools/comfy-cli/lib/python3.14/site-packages/httpcore/_backends/sync.py:126 in read │
│ │
│ 123 │ │
│ 124 │ def read(self, max_bytes: int, timeout: float | None = None) -> bytes: │
│ 125 │ │ exc_map: ExceptionMapping = {socket.timeout: ReadTimeout, OSError: ReadError} │
│ ❱ 126 │ │ with map_exceptions(exc_map): │
│ 127 │ │ │ self._sock.settimeout(timeout) │
│ 128 │ │ │ return self._sock.recv(max_bytes) │
│ 129 │
│ │
│ /root/.local/share/uv/python/cpython-3.14.4-linux-x86_64-gnu/lib/python3.14/contextlib.py:162 in __exit__ │
│ │
│ 159 │ │ │ │ # tell if we get the same exception back │
│ 160 │ │ │ │ value = typ() │
│ 161 │ │ │ try: │
│ ❱ 162 │ │ │ │ self.gen.throw(value) │
│ 163 │ │ │ except StopIteration as exc: │
│ 164 │ │ │ │ # Suppress StopIteration *unless* it's the same exception that │
│ 165 │ │ │ │ # was passed to throw(). This prevents a StopIteration │
│ │
│ /root/.local/share/uv/tools/comfy-cli/lib/python3.14/site-packages/httpcore/_exceptions.py:14 in map_exceptions │
│ │
│ 11 │ except Exception as exc: # noqa: PIE786 │
│ 12 │ │ for from_exc, to_exc in map.items(): │
│ 13 │ │ │ if isinstance(exc, from_exc): │
│ ❱ 14 │ │ │ │ raise to_exc(exc) from exc │
│ 15 │ │ raise # pragma: nocover │
│ 16 │
│ 17 │
╰─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
ReadTimeout: The read operation timed out
The above exception was the direct cause of the following exception:
╭───────────────────────────────────────────────────────── Traceback (most recent call last) ─────────────────────────────────────────────────────────╮
│ /root/.local/share/uv/tools/comfy-cli/lib/python3.14/site-packages/comfy_cli/tracking.py:78 in wrapper │
│ │
│ 75 │ │ │ logging.debug(f"Tracking command: {command_name} with arguments: {filtered_k │
│ 76 │ │ │ track_event(command_name, properties=filtered_kwargs) │
│ 77 │ │ │ │
│ ❱ 78 │ │ │ return func(*args, **kwargs) │
│ 79 │ │ │
│ 80 │ │ return wrapper │
│ 81 │
│ │
│ /root/.local/share/uv/tools/comfy-cli/lib/python3.14/site-packages/comfy_cli/command/models/models.py:342 in download │
│ │
│ 339 │ │ │ print(f"Model downloaded successfully to: {output_path}") │
│ 340 │ else: │
│ 341 │ │ print(f"Start downloading URL: {url} into {local_filepath}") │
│ ❱ 342 │ │ download_file(url, local_filepath, headers, downloader=resolved_downloader) │
│ 343 │
│ 344 │
│ 345 @app.command() │
│ │
│ /root/.local/share/uv/tools/comfy-cli/lib/python3.14/site-packages/comfy_cli/file_utils.py:178 in download_file │
│ │
│ 175 │ if downloader == "aria2": │
│ 176 │ │ return _download_file_aria2(url, local_filepath, headers) │
│ 177 │ │
│ ❱ 178 │ with httpx.stream("GET", url, follow_redirects=True, headers=headers) as response: │
│ 179 │ │ if response.status_code == 200: │
│ 180 │ │ │ content_length = response.headers.get("Content-Length") │
│ 181 │ │ │ total = int(content_length) if content_length is not None else None │
│ │
│ /root/.local/share/uv/python/cpython-3.14.4-linux-x86_64-gnu/lib/python3.14/contextlib.py:141 in __enter__ │
│ │
│ 138 │ │ # they are only needed for recreation, which is not possible anymore │
│ 139 │ │ del self.args, self.kwds, self.func │
│ 140 │ │ try: │
│ ❱ 141 │ │ │ return next(self.gen) │
│ 142 │ │ except StopIteration: │
│ 143 │ │ │ raise RuntimeError("generator didn't yield") from None │
│ 144 │
│ │
│ /root/.local/share/uv/tools/comfy-cli/lib/python3.14/site-packages/httpx/_api.py:159 in stream │
│ │
│ 156 │ │ timeout=timeout, │
│ 157 │ │ trust_env=trust_env, │
│ 158 │ ) as client: │
│ ❱ 159 │ │ with client.stream( │
│ 160 │ │ │ method=method, │
│ 161 │ │ │ url=url, │
│ 162 │ │ │ content=content, │
│ │
│ /root/.local/share/uv/python/cpython-3.14.4-linux-x86_64-gnu/lib/python3.14/contextlib.py:141 in __enter__ │
│ │
│ 138 │ │ # they are only needed for recreation, which is not possible anymore │
│ 139 │ │ del self.args, self.kwds, self.func │
│ 140 │ │ try: │
│ ❱ 141 │ │ │ return next(self.gen) │
│ 142 │ │ except StopIteration: │
│ 143 │ │ │ raise RuntimeError("generator didn't yield") from None │
│ 144 │
│ │
│ /root/.local/share/uv/tools/comfy-cli/lib/python3.14/site-packages/httpx/_client.py:868 in stream │
│ │
│ 865 │ │ │ timeout=timeout, │
│ 866 │ │ │ extensions=extensions, │
│ 867 │ │ ) │
│ ❱ 868 │ │ response = self.send( │
│ 869 │ │ │ request=request, │
│ 870 │ │ │ auth=auth, │
│ 871 │ │ │ follow_redirects=follow_redirects, │
│ │
│ /root/.local/share/uv/tools/comfy-cli/lib/python3.14/site-packages/httpx/_client.py:914 in send │
│ │
│ 911 │ │ │
│ 912 │ │ auth = self._build_request_auth(request, auth) │
│ 913 │ │ │
│ ❱ 914 │ │ response = self._send_handling_auth( │
│ 915 │ │ │ request, │
│ 916 │ │ │ auth=auth, │
│ 917 │ │ │ follow_redirects=follow_redirects, │
│ │
│ /root/.local/share/uv/tools/comfy-cli/lib/python3.14/site-packages/httpx/_client.py:942 in _send_handling_auth │
│ │
│ 939 │ │ │ request = next(auth_flow) │
│ 940 │ │ │ │
│ 941 │ │ │ while True: │
│ ❱ 942 │ │ │ │ response = self._send_handling_redirects( │
│ 943 │ │ │ │ │ request, │
│ 944 │ │ │ │ │ follow_redirects=follow_redirects, │
│ 945 │ │ │ │ │ history=history, │
│ │
│ /root/.local/share/uv/tools/comfy-cli/lib/python3.14/site-packages/httpx/_client.py:979 in _send_handling_redirects │
│ │
│ 976 │ │ │ for hook in self._event_hooks["request"]: │
│ 977 │ │ │ │ hook(request) │
│ 978 │ │ │ │
│ ❱ 979 │ │ │ response = self._send_single_request(request) │
│ 980 │ │ │ try: │
│ 981 │ │ │ │ for hook in self._event_hooks["response"]: │
│ 982 │ │ │ │ │ hook(response) │
│ │
│ /root/.local/share/uv/tools/comfy-cli/lib/python3.14/site-packages/httpx/_client.py:1014 in _send_single_request │
│ │
│ 1011 │ │ │ ) │
│ 1012 │ │ │
│ 1013 │ │ with request_context(request=request): │
│ ❱ 1014 │ │ │ response = transport.handle_request(request) │
│ 1015 │ │ │
│ 1016 │ │ assert isinstance(response.stream, SyncByteStream) │
│ 1017 │
│ │
│ /root/.local/share/uv/tools/comfy-cli/lib/python3.14/site-packages/httpx/_transports/default.py:249 in handle_request │
│ │
│ 246 │ │ │ content=request.stream, │
│ 247 │ │ │ extensions=request.extensions, │
│ 248 │ │ ) │
│ ❱ 249 │ │ with map_httpcore_exceptions(): │
│ 250 │ │ │ resp = self._pool.handle_request(req) │
│ 251 │ │ │
│ 252 │ │ assert isinstance(resp.stream, typing.Iterable) │
│ │
│ /root/.local/share/uv/python/cpython-3.14.4-linux-x86_64-gnu/lib/python3.14/contextlib.py:162 in __exit__ │
│ │
│ 159 │ │ │ │ # tell if we get the same exception back │
│ 160 │ │ │ │ value = typ() │
│ 161 │ │ │ try: │
│ ❱ 162 │ │ │ │ self.gen.throw(value) │
│ 163 │ │ │ except StopIteration as exc: │
│ 164 │ │ │ │ # Suppress StopIteration *unless* it's the same exception that │
│ 165 │ │ │ │ # was passed to throw(). This prevents a StopIteration │
│ │
│ /root/.local/share/uv/tools/comfy-cli/lib/python3.14/site-packages/httpx/_transports/default.py:118 in map_httpcore_exceptions │
│ │
│ 115 │ │ │ raise │
│ 116 │ │ │
│ 117 │ │ message = str(exc) │
│ ❱ 118 │ │ raise mapped_exc(message) from exc │
│ 119 │
│ 120 │
│ 121 class ResponseStream(SyncByteStream): │
╰─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
ReadTimeout: The read operation timed out
I pasted into the linux shell 30 commands with different urls to download 30 different models, like this:
The installation visually glitches in the console, like in the screenshot:
Plus I've got a long errors like this: