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 polydown
Download all HDRIs:
polydown hdris
Download all Textures:
polydown textures
Download all Models:
polydown models
Note: 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 4k
Downloads 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 1k
Downloads all "decorative" models with 1k textures into
models_folder.
List available categories for an asset type:
polydown textures -c
Granular 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