How do I speed up model downloads on a cloud GPU?
Short answer: On a CloudGPU instance, run cloudgpu-net on in the shell you download from; it turns on download acceleration for Hugging Face, GitHub and similar sites for that shell (run cloudgpu-net off before pip installs, which can be slower while it is on). Then download only the files you need (hf download --dry-run, --include), set HF_XET_HIGH_PERFORMANCE=1, and run separate downloads in parallel. Skip hf_transfer: the Hugging Face docs mark HF_HUB_ENABLE_HF_TRANSFER as deprecated because all transfers now go through hf-xet (environment variables, read 2026-11-03).
Download time on a running instance is billed time (per minute, rounded up, 1-minute minimum), so a shorter download is a smaller bill.
Step 1: Turn on download acceleration with cloudgpu-net
Every CloudGPU instance has the cloudgpu-net command:
cloudgpu-net status # is acceleration on in this shell?
cloudgpu-net on # turn it on for the current shell
# ... run your hf download / git clone / wget commands here ...
cloudgpu-net off # turn it off again, e.g. before pip install
What to know:
- It applies to the current shell only. A new terminal tab, a new SSH session or a new
tmuxwindow starts without it, so runcloudgpu-net onthere too. - It covers Hugging Face, GitHub and similar sites.
pipcan be slower while it is on. Install packages first (or aftercloudgpu-net off), then turn it on for the model downloads.
Step 2: Download less
A file you skip takes no time at all. Many repos hold several copies of the same weights (.safetensors plus .bin, or a dozen GGUF quantizations). List them first; according to the Hugging Face docs, --dry-run “lists all files to download on the repo and checks whether they are already downloaded or not” (download guide, read 2026-11-03):
pip install -U "huggingface_hub" # do this before cloudgpu-net on
cloudgpu-net on
hf download Qwen/Qwen2.5-7B-Instruct --dry-run
hf download Qwen/Qwen2.5-7B-Instruct --include "*.safetensors" "*.json" "tokenizer*" \
--local-dir ~/models/qwen2.5-7b-instruct
For a GGUF repo, name the one file you want instead of the whole repo:
hf download <org>/<model>-GGUF <file-name>-Q4_K_M.gguf --local-dir ~/models
Step 3: Use hf_xet high-performance mode, not hf_transfer
Older tutorials say pip install hf_transfer and HF_HUB_ENABLE_HF_TRANSFER=1. The current Hugging Face docs say that variable is deprecated: “all file transfers go through the hf-xet binary package”, and “hf_transfer can’t be used anymore”. hf_xet is installed with huggingface_hub 0.32.0 and later. For more speed, the docs describe HF_XET_HIGH_PERFORMANCE, which “will try to saturate the network bandwidth of this machine and utilize all CPU cores for parallel upload/download activity”:
export HF_XET_HIGH_PERFORMANCE=1
hf download black-forest-labs/FLUX.1-schnell flux1-schnell.safetensors --local-dir ~/models
Two related notes from the same page (read 2026-11-03): HF_XET_NUM_CONCURRENT_RANGE_GETS “is no longer used” because download concurrency has been adaptive since hf_xet 1.3.0, and environment variables “are read at import time”, so export them before you start the command. The old command name huggingface-cli appears in many guides; the current docs use hf.
Step 4: Resume instead of starting over
Run long downloads inside tmux so an SSH drop does not stop them (and run cloudgpu-net on inside the tmux window):
tmux new -s dl
cloudgpu-net on
hf download <org>/<model> --local-dir ~/models/<model>
# detach: Ctrl-b then d · come back: tmux attach -t dl
If a download stops, run the same command again; files that are already complete are not fetched again. If it fails with timeouts, the Hugging Face docs give a default HF_HUB_DOWNLOAD_TIMEOUT of 10 seconds; raise it and rerun:
export HF_HUB_DOWNLOAD_TIMEOUT=60
Interrupted downloads into the cache can leave .incomplete files; per the CLI guide, hf cache prune removes them.
Step 5: Run downloads in parallel
Separate repos (for example a model, its text encoder and a LoRA) can download at the same time from one shell:
cloudgpu-net on
hf download <org>/<model-a> --local-dir ~/models/a > a.log 2>&1 &
hf download <org>/<model-b> --local-dir ~/models/b > b.log 2>&1 &
wait && echo "all downloads finished"
For a single large file from a plain HTTPS URL (a GitHub release asset, a direct link), aria2c splits the file into several connections. Per the aria2 manual (read 2026-11-03), -x is “the maximum number of connections to one server for each download” (default 1), -s downloads “a file using N connections” (default 5) and -c continues a partial download:
apt-get install -y aria2 # if it is missing; you are root on the instance
aria2c -x 8 -s 8 -c -d ~/models -o model.safetensors "https://example.com/path/model.safetensors"
For GitHub repositories you only need to run, a shallow clone skips the history:
git clone --depth 1 https://github.com/<owner>/<repo>.git
Step 6: Check, then clean up
df -h ~ # free space before and after
hf cache verify <org>/<model> --local-dir ~/models/<model>
cloudgpu-net off
Downloaded models are deleted when you destroy the instance, so keep your download commands in a script and run them on the next instance; you can also run them from a startup script that starts when the instance is handed over. Token setup, gated repos and cache vs --local-dir are covered in how to download a Hugging Face model on a cloud GPU.
Frequently asked questions
What does cloudgpu-net do?
It is a command on every CloudGPU instance: cloudgpu-net on turns on download acceleration for Hugging Face, GitHub and similar sites in the current shell, cloudgpu-net off turns it off, and cloudgpu-net status shows the state. pip can be slower while it is on, so turn it off before installing packages.
Should I still install hf_transfer?
No. The Hugging Face docs mark HF_HUB_ENABLE_HF_TRANSFER as deprecated and say hf_transfer can no longer be used, because all transfers go through hf-xet. Set HF_XET_HIGH_PERFORMANCE=1 instead (read 2026-11-03).
How do I resume a Hugging Face download that stopped?
Run the same hf download command again; complete files are not downloaded again. Run long downloads in tmux, and raise HF_HUB_DOWNLOAD_TIMEOUT (default 10 seconds) if they fail with timeouts.
Can I download several models at once?
Yes. Start separate hf download commands in the background with & and wait for them, or use aria2c with -x and -s for a single large file from a direct URL.
Why is pip slow after cloudgpu-net on?
pip can be slower while download acceleration is on. Run cloudgpu-net off before pip install, then turn it on again for model downloads.
Sources (read 2026-11-03, Asia/Shanghai)
- Hugging Face environment variables (HF_HUB_ENABLE_HF_TRANSFER deprecated, HF_XET_HIGH_PERFORMANCE, HF_XET_NUM_CONCURRENT_RANGE_GETS no longer used, HF_HUB_DOWNLOAD_TIMEOUT default 10 s, variables read at import time): https://huggingface.co/docs/huggingface_hub/package_reference/environment_variables
- Hugging Face download guide (–dry-run, hf_xet installed from huggingface_hub 0.32.0): https://huggingface.co/docs/huggingface_hub/guides/download
- Hugging Face CLI guide (–include/–exclude, --local-dir, .incomplete files and hf cache prune): https://huggingface.co/docs/huggingface_hub/guides/cli
- aria2 manual (-x, -s, -c): https://aria2.github.io/manual/en/html/aria2c.html
- CloudGPU billing terms (per minute, rounded up, 1-minute minimum): https://cloudgpu.app/terms
The Deploy page lists the cards you can start. Prices are on https://cloudgpu.app/pricing and are not repeated here.
Last updated: 2026-11-03 (Asia/Shanghai).