(Down)Load My Model
The name is a lie — this loader downloads nothing and loads even less
- my_model
Let's be upfront: (Down)Load My Model doesn't download anything, and "loading a model" means setting a variable to 1 and printing a message. The example workflow that ships with this pack labels it, in the author's own words, "just a mocking node, it doesn't actually do anything." So why does it exist, and why should you care?
Because it's a teaching prop. This node lives in ComfyUI-CustomNodes-Template, a "Use this template →" starter repo for writing your own custom nodes, from jhj0517 - the developer behind Whisper-WebUI and the finetuning-notebooks Colab trainers, a genuinely respected name in the local-AI scene. The loader is the template's demo of how a real model-loader node is structured, minus the actual model.
How it works
Open the source and you'll see every convention a serious loader uses, with nothing behind it:
model(required dropdown:Model A/Model B/Model C) - a fake list of available models. In the source this is just a Python list of three strings, and ComfyUI renders any list-of-strings as a dropdown. That's the lesson.device(required dropdown:cuda/cpu/auto) - passed to the mockload_model()and then ignored. You can pick anything; nothing touches a GPU.compute_type(optional dropdown:float32/float16) - the same story. It's there to show you how an optional dropdown is declared, and that's all it does.- Output
my_model(MY_MODEL) - a custom type invented by this pack, so the template can show how your own object types travel through a graph.
The one part that actually runs is a demo of comfy.utils.ProgressBar: the loader spins up a 5-step progress bar and sleeps through four of them, so a real "downloading / loading" feel appears even though nothing is happening. In the source header you'll also see the two lines every serious loader needs - folder_paths.models_dir to locate models and get_output_directory() for outputs - with the path my-custom-nodes appended. Strip out the mock, drop in real torch weight-loading, and this skeleton becomes an actual loader.
When you'd reach for it
Only two honest reasons: you're reading it to learn node authoring, or you forked the template and are replacing the mock with real code. If you saw the name and hoped for a downloader, skip it - there's no model file, no Hugging Face call, nothing cached. For real "give me a model" needs, use ComfyUI's built-in loaders or one of the many downloader utilities in the community.
Installing it
ComfyUI Manager won't find this pack in its index - the template isn't listed there, only jhj0517's functional packs (Moondream-Gaze-Detection, Kokoro-Onnx). Clone it directly:
cd ComfyUI/custom_nodes
git clone https://github.com/jhj0517/ComfyUI-CustomNodes-Template
Restart ComfyUI and the nodes appear under the CustomNodesTemplate category. Zero dependencies - requirements.txt is empty - so no pip install and no model downloads. Don't copy the README's clone command; it's the template's own placeholder (replace-this-with-your-github-repository-url.git).
Common issues
- It looks frozen for ~4 seconds. That's the fake progress bar sleeping. It's not a hang.
- Nothing appears in your models folder. Correct - the mock never writes a file, and
device/compute_typegenuinely do nothing. If you expected a real model, you misread the name. - The example workflow needs rgthree.
workflows/example-1.jsonends in aDisplay Any (rgthree)node, so load it only if rgthree-comfy is installed, or swap in your own display/preview node.
Inputs (3)
| Name | Type | Default | Description |
|---|---|---|---|
| model | COMBO | 3 options: Model A, Model B, Model C | |
| device | COMBO | 3 options: cuda, cpu, auto | |
| compute_typeopt | COMBO | 2 options: float32, float16 |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| my_model | MY_MODEL | — |