FL HF Dataset Downloader
Pull a Hugging Face repo straight into your workflow
- download_path
Hugging Face is the ecosystem's upstream for datasets and base models - anything worth training on tends to land there first. FL_HFDatasetDownloader is the node that fetches a repo down to local disk without you leaving ComfyUI: give it a repo ID, it calls huggingface_hub's snapshot_download and pulls the whole thing with several workers running in parallel.
How it works
Under the hood this is a thin wrapper around snapshot_download - the same mechanism the huggingface_hub library uses everywhere, so it inherits that function's caching (repeat downloads of the same repo/revision are cheap) and resumability. You set the repo, tell it whether it's a dataset, model, or space, pick a local output directory, and it downloads with as many parallel workers as you allow. The default repo_id shown in the node (jjuik2014/FaceVid-1K-Part) is a face-video dataset - a hint that this node gets reached for a lot in face-model and talking-avatar training pipelines, though obviously it'll pull any public (or token-accessible) repo.
The inputs and outputs that matter
Required:
repo_id- the Hugging Face repo, e.g.owner/name.repo_type(dataset/model/space, defaultdataset) - has to match what the repo actually is.local_dir- where it lands (default./output/HF-Downloads).max_workers(1–20, default 10) - parallel download threads.download_trigger(BOOLEAN, default false) - nothing downloads until this is true.
Output: download_path, a STRING pointing at where the files landed - feed that straight into whatever node reads the dataset next (a directory-crawl node, a training script, a caption loader).
How to install it
Part of the ComfyUI_Fill-Nodes pack. ComfyUI Manager: search ComfyUI_Fill-Nodes, install, restart. Manual:
cd ComfyUI/custom_nodes
git clone https://github.com/filliptm/ComfyUI_Fill-Nodes
pip install -r ComfyUI_Fill-Nodes/requirements.txt
then restart. Needs the huggingface_hub package for snapshot_download - usually already present as a transitive dependency of other nodes, but the requirements install covers it if not.
Common issues & troubleshooting
Nothing happens, and that's by design. download_trigger defaults to false specifically so this node doesn't re-download a multi-gigabyte dataset every time you queue the workflow. Flip it to true when you actually want the fetch to run, and back to false once it's done if you're re-running the rest of the graph repeatedly.
Gated repos need a token, and there's no visible api_key input here. Some Hugging Face repos (Flux Dev being the famous example) sit behind an access gate - you request access, the author can grant or revoke it at any time, and downloading requires an authenticated token. This node's schema has no explicit API key field, so gated-repo access depends on your environment already being authenticated (e.g. a cached huggingface-cli login token) - public repos work with no setup at all.
Large repos take a while regardless of max_workers. More workers helps with many small files, but a repo dominated by a few huge safetensors files won't speed up much past a handful of parallel workers - don't crank it to 20 expecting a linear speedup.
repo_type mismatches fail outright. Point it at a model repo while repo_type is set to dataset (or vice versa) and the download will error rather than silently doing the wrong thing - double-check the repo's actual type on huggingface.co if you're not sure.
Inputs (5)
| Name | Type | Default | Description |
|---|---|---|---|
| repo_id | STRING | jjuik2014/FaceVid-1K-Part | — |
| repo_type | COMBO | dataset | 3 options: dataset, model, space |
| local_dir | STRING | ./output/HF-Downloads | — |
| max_workers | INT | 101–20 | — |
| download_trigger | BOOLEAN | false | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| download_path | STRING | — |