Nodes/ComfyUI HiTem3D Integration/⬇️ HiTem3D Downloader
ComfyUI Node

⬇️ HiTem3D Downloader

Turn that HiTem3D URL into a file on your disk

By GeekatplayStudio·Created 10 months ago·Updated 8 months ago· 22
⬇️ HiTem3D Downloader
    • model_path
    • status
    model_url
    file_namemodel
    output_directoryhitem3d
    compress_large_filestrue
    max_file_size_mb50

    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:

    1. Figures out the format from the URL's extension (.glb, .obj, .stl, .fbx, defaulting to .glb).
    2. Builds a timestamped filename - file_name_YYYYMMDD_HHMMSS.glb - so you never accidentally overwrite a previous generation.
    3. Saves it into <ComfyUI output dir>/<output_directory>/ (default folder hitem3d).
    4. 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's model_url output.
    • file_name - the base name for your file. Pick something meaningful or you'll end up with a folder full of model_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_url is 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 status for 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.

    CategoryHiTem3D

    Inputs (5)

    NameTypeDefaultDescription
    model_urlSTRING
    file_nameSTRINGmodel
    output_directoryoptSTRINGhitem3d
    compress_large_filesoptBOOLEANtrue
    max_file_size_mboptINT5010–500

    Outputs (2)

    NameTypeDescription
    model_pathSTRING
    statusSTRING