Batch downloader for polyhaven.com. Download HDRIs, textures, and models in any sizes you want.
This project uses Poly Haven's Public API.
pip install polydownDownload all HDRIs:
polydown hdrisDownload all Textures:
polydown texturesDownload all Models:
polydown modelsNote: These commands will download all available sizes for every asset in the category.
Download specific sizes to a specific folder:
polydown hdris -f my_hdris_folder -s 2k 4kDownloads all HDRIs in 2k and 4k resolution to the
my_hdris_folder.
Download from a specific category:
polydown models -c decorative -f models_folder -s 1kDownloads all "decorative" models with 1k textures into
models_folder.
List available categories for an asset type:
polydown textures -cGranular Texture & Model Selection:
You can specify the specific file format (e.g. png, jpg, exr) and specific maps (e.g. diffuse, roughness) for both textures and models.
# Download only PNG textures
polydown textures -tf png
# Download only Diffuse and Roughness maps
polydown textures --maps Diffuse Rough
# Combine them: Download only EXR Normal maps
polydown textures -tf exr --maps nor_gl
# Works for models too (downloads specific texture maps for the model)
polydown models -tf jpg --maps Diffuse -s 1k| Argument | Description |
|---|---|
asset_type |
Type of asset to download: hdris, textures, models. |
-h, --help |
Show help message and exit. |
-f, --folder |
Target download folder. |
-c, --category |
Category to download (e.g., decorative, nature). If used without values, lists available categories. |
-s, --sizes |
Size(s) of downloaded assets. Example: 1k 2k 4k. |
-o, --overwrite |
Overwrite existing files. Otherwise, skips existing files. |
-no, --noimgs |
Do not download preview, render, or thumbnail images. |
-it, --iters |
Amount of iterations (limit number of assets). |
-t, --tone |
Download 8K Tonemapped JPG (HDRIs only). |
-ff, --fileformat |
File format for HDRIs (hdr, exr). |
-tf, --texture-format |
File format for Textures/Models (jpg, png, exr). |
--maps |
Texture maps to download (e.g., Diffuse, Rough, nor_gl). If used without values, lists available common map types. |
-w, --workers |
Amount of workers (threads) for concurrent downloads. |
-v, --version |
Show program's version number and exit. |
This project uses uv for dependency management.
-
Install
uv:curl -LsSf https://astral.sh/uv/install.sh | sh -
Sync dependencies:
uv sync
-
Run the CLI:
uv run polydown --help
-
Run tests:
uv run pytest
- Unit Tests
- Progressbar for current download task(s)
- Workers for concurrent downloads
- Select the file format to download

