Use case

Proxies for ComfyUI: the variable reaches half your install

A proxy for ComfyUI: which lanes read the variable, why the API nodes ignore it, and the two mirror settings that fix the common case for free.

HProxy Team··Updated September 20, 2026·7 min read
HProxy.Use case

Free proxies won't hold up here.

Shared datacenter IPs get flagged and dropped fast. When it has to hold, gaming, streaming, accounts, you need mobile and residential IPs that read as a real device, from $0.44/GB, pay as you go.

See plans & pricing

ComfyUI has no proxy setting. Search its code for the word and you get 134 files, which looks promising until you read them. We read release v0.36.0 on 20 September 2026, and then measured what actually happens when you set the usual variables anyway.

The short answer: they reach half of your installation. Node installs and model downloads through the Manager obey them. The calls ComfyUI itself makes do not. The difference is one keyword argument.

The two halves

Two HTTP libraries are in play. One reads your environment by default. The other never does unless it is told to.

ComfyUI builds four sessions on the library that stays quiet. All four look like this:

self.client_session = aiohttp.ClientSession(timeout=timeout)

The Manager builds its session on the same library, like this:

async with aiohttp.ClientSession(trust_env=True, connector=...) as session:

That flag is the whole story. Its own documentation says what it controls:

Should proxies information from environment or netrc be trusted. Information is from HTTP_PROXY / HTTPS_PROXY environment variables or ~/.netrc file if present.

The default is off.

We measured it rather than assumed it

Reading a default argument is not proof that the assembled program behaves that way. So we pointed every proxy variable at a port where nothing listens, and asked each client for a small public URL.

A client that reads the variable cannot connect. A client that ignores it reaches the internet. No proxy account, no login, no customer traffic.

ClientThe variable wasResult
requests, plainsetfailed, so it read the variable
requests, with the flag offsetreturned 200, so it ignored the variable
the library ComfyUI uses, built the way ComfyUI builds itsetreturned 200, so it ignored the variable
the same, with the flag onsetfailed, so it read the variable

Measured on our own server on 20 September 2026, Python 3.12.3. Both directions agree, which is what makes it a proof rather than a reading.

Why searching the code misleads you

Almost every proxy in this codebase is Comfy's own relay to model vendors. The API nodes are full of paths like this:

/proxy/openai/v1/videos
/proxy/veo/{model}/generate
/proxy/krea/generate/image

Their own helper explains it: a URL starting that way is expanded to an absolute URL and gets authentication headers. That is a paid service route, not a network setting. It is also why a reader who greps for proxy comes away thinking support exists.

Models never pass through ComfyUI

Worth saying plainly, because it decides where the address belongs. The model manager registers a folder listing, a model listing and a preview route. There is no download route in the release.

So when a model download crawls, the thing to route is your browser or the Manager, not the server.

The cheaper fix, already in the project

Most people asking this question are not behind a company proxy. They are somewhere that GitHub and the model host answer slowly or not at all. The Manager ships an answer for exactly that, and it needs no address.

SettingWhat it rewritesWhich lane it fixes
GITHUB_ENDPOINTthe github.com prefix when cloning a nodeinstalling and updating custom nodes
HF_ENDPOINTthe model host in download URLsdownloading models through the Manager

Point either at a mirror and the traffic goes somewhere else entirely. Try that before you buy anything. We would rather say so than sell you a line that solves a problem you do not have.

The open proposal, and what it leaves

There is a pull request to add --http-proxy, --https-proxy and --no-proxy, open since 26 March 2026. It also reads a settings entry, and it masks the login before writing the startup line to the log, which is better manners than several shipped projects manage.

It changes two files: the argument parser and the startup file. It sets the variables and nothing else.

Its summary promises that all outbound traffic is routed, naming the aiohttp sites. Our measurement says that half cannot work that way. Those sessions need the flag where they are built, exactly as the Manager does it. The flags would work for the lanes that read the environment, which is real value, and the rest would stay direct.

This is not a complaint about the author. It is the same assumption the whole field makes: in our research corpus of 23,797 articles about proxies, 203 mention this library and 11 mention the flag that decides whether it obeys you.

Which proxy type fits it?

Start with what leaves your machine. The Manager's installs and downloads are yours, and they are the lanes an address can help. The API nodes send your prompt to Comfy, who then call the vendor, so your address is not what the vendor sees.

Residential, for hosts that answer a server address differently. Our own paired test is the honest size of it: 4 of 13 sites answered a residential address differently from a server one, and four refused both.

A generation box is one machine, which suits address authentication: no password in your environment, and the machine allowed by its address, up to 150 per plan on a Residential Premium plan. Model files are large, so watch the per gigabyte line, and keep big downloads on the mirror settings where you can. The residential proxies page lists the plans, and the plan API manages allowed addresses from code.

What breaks

  • Installs work, generation does not. That is the split above, working as designed.
  • You set the variable and nothing changed. Core reads no proxy variable at all. Check whether the lane you care about belongs to the Manager.
  • A SOCKS address fails on Windows. An open Manager issue reports it. Use an http address here.
  • You found proxy everywhere in the code. Those are vendor relay paths.
  • Your interface breaks behind your own reverse proxy. Different subject, and two open issues cover it: absolute API paths and a rejected check on a sub path.

What this page does not cover

We read the code as text and did not run ComfyUI. The measurement proves what the two libraries do with a proxy variable. It does not prove that a running install cannot be routed another way, such as a transparent proxy or a container rule, and those are outside this page. We did not test the Manager end to end, and we did not reproduce the Windows SOCKS failure. The default branch moves daily and the proposal may land. We will check by 20 October 2026 whether it is merged, whether any session gains the flag, and whether the settings entry appears in a release.

Where to go from here

Proxies for LibreChat is the same shape in another language: one variable, two resolvers, half the program routed. Proxies for TrendRadar covers another project whose own code offers mirrors instead of addresses. Proxies for last30days is where we measured a runtime that ignores the variables entirely.

Sources

  • The four sessions and the missing flag: server.py, comfy_api_nodes/util/client.py and comfy_api_nodes/util/download_helpers.py. Comfy-Org/ComfyUI, release v0.36.0 of 15 September 2026, read 20 September 2026.
  • No proxy option in the argument parser, and the note that variables set at startup exist for custom nodes: comfy/cli_args.py and main.py, same release.
  • No model download route: app/model_manager.py, same release.
  • The flag, its default and its documentation: aiohttp v3.13.5, aiohttp/client.py, read 20 September 2026.
  • The flag being passed, the downloads on the other library, and the two mirror settings: ComfyUI-Manager, tag 4.3, comfyui_manager/common/manager_util.py, manager_downloader.py and git_utils.py, with the project README, read 20 September 2026.
  • The open proposal, its summary and its two changed files: Comfy-Org/ComfyUI pull request 13179, read 20 September 2026.
  • Our own measurement of 20 September 2026: every proxy variable pointed at a closed port, four clients, output kept in the research folder of this page.
  • Our paired address test of 19 September 2026: 16 URLs, plain requests, two runs from our server and two through a residential line of our house plan.
  • Plans, allowed addresses and per gigabyte pricing. HProxy documentation, hproxy.com/docs, 20 September 2026.

Frequently asked questions

How do I set a proxy in ComfyUI?
There is no setting in the released version. The usual variables reach the Manager and the frontend update, and they do not reach the calls the server makes itself.
Why do node installs work through my proxy while the API nodes fail?
Because the Manager passes one keyword argument to its HTTP client, and ComfyUI does not. Same library, opposite result.
Is a proxy the right fix for a blocked GitHub?
Try the Manager's two endpoint settings first. They rewrite the host to a mirror, they are already in the project, and they cost nothing.
Will the open proposal fix this?
It adds three flags and sets the variables, which covers the lanes that read them. The other lanes need the flag at the session, which the patch does not add.
Does a proxy help my model downloads?
ComfyUI does not download models. Whatever you use to fetch them, a browser or the Manager, is the thing that needs the address.

Proxies that don't die mid-job

Residential, ISP, datacenter and mobile, verified by the same engine that runs tens of millions of checks. They read as a real device and hold up under load. Pay as you go, and your balance never expires. $0.44/GB is the 2,000 GB+ rate; a single gigabyte is $0.50/GB, with no minimum order.

129M+ proxy checks run · 100+ countries · HTTP / HTTPS / SOCKS · re-checked every few minutes · no signup

HProxy.

Honest guides and comparisons on proxies, scraping and staying unblocked, from the team that runs the network.

RSS feed