Ino Get Controlnet Download Config
Pick a ControlNet from a list, get a download config string, wire it to the downloader
- ModelConfig
ControlNets are fiddly to install: you have to know the exact model file, find the right repo, download it into the right folder. Ino Get Controlnet Download Config takes all that bookkeeping and collapses it into a dropdown. You pick a ControlNet model by name, and it spits out a JSON config string describing exactly where to get it. That string plugs into the pack's download chain - most naturally InoHandleDownloadModel, which reads the config, picks the right host (HuggingFace, S3, Civitai), downloads the file, and returns the path.
So the full pattern for a self-bootstrapping workflow is: this node → config string → InoHandleDownloadModel → abs_path → a model loader. Once it runs, the ControlNet exists on disk and the workflow continues. That's the "download models from inside the graph" philosophy this pack is built around, and this node is the controlnet-shaped piece of it.
How it works
The available models come from a bundled CSV (controlnet_files.csv) that ships with the pack and gets read into the dropdown. When you pick one, the node looks up that row and serializes it to a JSON config string. The CSV columns give you a peek at what's in a config: name, weight_type, host, model_type, model_subfolder, repo_id, filename, subfolder, and revision. That's the same config shape the other "Get ... Download Config" nodes produce, which is why InoHandleDownloadModel can treat them all the same.
The honest caveat: the bundled ControlNet list is short. The shipped CSV has three entries, mostly Qwen-Image InstantX ControlNets (union and inpainting variants). If you want a model that isn't in the dropdown, you're looking at editing the CSV or using a config node that takes free-form fields instead. This node is convenient exactly as far as its list goes.
Inputs and outputs
- enabled - the pack-wide toggle; off returns an empty string.
- model - dropdown of ControlNet models from the bundled CSV.
Output: ModelConfig (STRING) - the JSON config, wired into InoHandleDownloadModel or a download node.
Installing it
Part of ComfyUI-InoNodes (Inoland). ComfyUI Manager → search "ComfyUI Ino Nodes" → install → restart. Manual:
cd ComfyUI/custom_nodes
git clone https://github.com/nobandegani/comfyui_ino_nodes
cd comfyui_ino_nodes
pip install -r requirements.txt
Restart after. Requires inopyutils (auto-installed) and a current ComfyUI; no keys unless the download host needs one.
Common issues
Two things to keep straight. First, this node does not download anything - it only produces a config string. If you wire it to nothing, you get a JSON string and no file; the download is the next node's job. Second, the dropdown is only as big as the CSV - if your model isn't listed, don't hunt for a "refresh" button; the list is static in the shipped data. And when you do download, remember the ControlNet weight/step guidance from the KB: a freshly installed ControlNet defaults to a weight of 1.0, and for most structure work you'll be easing that down or gating its step range rather than running it flat out.
Inputs (2)
| Name | Type | Default | Description |
|---|---|---|---|
| enabled | BOOLEAN | true | — |
| model | COMBO | 2 options: comfy-qwen-image-instantx-inpainting-fp16, comfy-qwen-image-instantx-union-fp16 |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| ModelConfig | STRING | — |