⬇️ HiTem3D Downloader
Turn that HiTem3D URL into a file on your disk
- model_path
- status
The HiTem3D Generator doesn't actually hand you a 3D model. It hands you a URL - the mesh is sitting on HiTem3D's servers waiting to be pulled down. This node does the pulling. You feed it the model_url output from the Generator and it downloads the file into ComfyUI's output directory, names it something sensible, and gives you back a path you can use for previewing, further processing, or just finding your file later.
It's a small, single-purpose node, but it's the piece that turns "I generated a model" into "I can open this in Blender." Without it you'd be manually copy-pasting URLs into a browser, which is exactly the kind of friction this pack exists to remove.
How it works
Give it the model URL plus a base file_name, and it:
- Figures out the format from the URL's extension (
.glb,.obj,.stl,.fbx, defaulting to.glb). - Builds a timestamped filename -
file_name_YYYYMMDD_HHMMSS.glb- so you never accidentally overwrite a previous generation. - Saves it into
<ComfyUI output dir>/<output_directory>/(default folderhitem3d). - Returns the full path and a status string that includes the file size, e.g.
Downloaded successfully (3.42 MB).
The one clever bit is large-file handling. Set max_file_size_mb (default 50, range 10–500) as your "this is getting silly" threshold. Files over it get streamed with compress_large_files on; genuinely enormous files (over 100MB) get a .gz sibling alongside the original, and the model_path output then points at both, pipe-separated.
The inputs that matter
Only two are required:
model_url- wire this straight from the Generator'smodel_urloutput.file_name- the base name for your file. Pick something meaningful or you'll end up with a folder full ofmodel_20260816_114523.glb.
The optional ones are mostly set-and-forget. output_directory changes the subfolder inside ComfyUI's output dir. compress_large_files and max_file_size_mb only kick in for genuinely big meshes, which is rare at normal resolutions.
Wiring it up
HiTem3DNode → model_url → HiTem3DDownloaderNode → model_path → HiTem3DPreviewNode
The model_path string feeds straight into the HiTem3D 3D Preview node. The status output is nice for logging or a ShowText node. You'll find this exact chain in examples/hitem3d_basic_workflow.json.
Installing
Same pack, same drill - ComfyUI Manager (search "ComfyUI HiTem3D Integration") or:
cd ComfyUI/custom_nodes
git clone https://github.com/GeekatplayStudio/comfyui-hitem3d
cd comfyui-hitem3d
pip install -r requirements.txt
Restart ComfyUI afterward. No models, no heavy deps - just requests and Pillow. You do need valid API credentials saved in the config for generation itself, but the download itself is a plain HTTP fetch.
Where people get burned
- Downloads "failing" - the node bails early if the
model_urlis empty or starts with a ❌ (meaning generation already failed upstream). Fix the generation first; this node is downstream of it. - File not where you expected - it's not in the pack folder, it's under ComfyUI's output directory, in the subfolder you set. That's also where the 3D Preview looks for it.
- Big-file surprises - a 200MB mesh with compression off just writes the whole thing. That's fine, but check
statusfor the "Very Large File" message so you know what you're dealing with.
Simple, predictable, and it quietly saves you from a pile of timestamped duplicates. About the only thing it won't do is rescue you when the API itself already failed.
Inputs (5)
| Name | Type | Default | Description |
|---|---|---|---|
| model_url | STRING | — | |
| file_name | STRING | model | — |
| output_directoryopt | STRING | hitem3d | — |
| compress_large_filesopt | BOOLEAN | true | — |
| max_file_size_mbopt | INT | 5010–500 | — |
Outputs (2)
| Name | Type | Description |
|---|---|---|
| model_path | STRING | — |
| status | STRING | — |