Hi3D:Texture
Keep the mesh, trash the texture — re-skin any GLB from a reference image
- GLB
- image
- model_task
- GLB
- model_task
Hi3D:Texture is the smarter sibling in this pack. Where ImageTo3D rebuilds a whole mesh from a photo, this node keeps your existing geometry and regenerates just the texture map, driven by a reference image. That's a genuinely useful trick: the mesh is usually the slow, expensive part of the pipeline, and the auto-texture that comes out of it is often the weakest part. If you like the shape but the surface looks flat, wrong, or toy-like, re-skinning beats re-generating.
You can reach for it in two different spots. Feed it the model_task output straight from ImageTo3D to fix up a mesh you just made, or load an existing GLB from disk (via the pack's Hi3D:Load3DModel node, or any FILE_3D you have lying around) and give an old model a fresh look.
How it works
Like everything in this pack, it's a cloud call, not local inference. The node needs a mesh and a reference image, and there's a fork in how the mesh gets there:
- model_task connected - the node uses the model URL from the upstream ImageTo3D task directly. No re-upload, which means faster starts and one less thing to break.
- GLB connected - the mesh gets uploaded to Hi3D's object storage (Volcengine TOS, if you're curious) using a short-lived upload token, then referenced in the job.
Either way it submits a texture task, polls query-task every 10 seconds, and downloads the re-textured GLB when it's done. The resolution is picked automatically per model version - one less knob for you.
Inputs and outputs
- image - the required reference. This is the style you're painting onto the mesh. It's the whole game; get the lighting and composition right here.
- GLB (type
FILE_3D_GLB/FILE_3D) or model_task - one of these is required. Both at once is fine;model_taskjust wins because its URL is already up there. - model - note the list is shorter than ImageTo3D's:
hitem3dv1.5,hitem3dv2.0,hitem3dv2.1,scene-portraitv1.5. Default ishitem3dv2.1. - pbr - default on, but only v2.0/v2.1 support it. Pick a v1.5 model with pbr on and you'll get a hard error, so either leave it and stick to v2.0+, or turn it off.
- Outputs -
GLB(the re-textured model) andmodel_task, which you can chain onward if you want to keep iterating.
A nice touch in the source: if the upstream model_task carries the access key, the Texture node inherits it, so chained workflows don't need keys typed twice.
Installing and running
Same pack, same story: search Hi3D in ComfyUI Manager, or git clone https://github.com/dev-hitem/hitems3D-comfyUI into custom_nodes, pip install -r requirements.txt (tos + aiohttp, nothing heavy), restart. You need an API key from hi3d.ai in config.json or as Hi3D_ak/Hi3D_sk env vars. And a recent ComfyUI - it rides the newer API-node framework and FILE_3D file types.
The one thing that catches people: the reference image quality is what you get. A busy background or weird lighting bleeds straight into the new texture map, so treat this input like you're doing a product shoot, not a screenshot. And remember you're paying per job on Hi3D's stingy free tier - batch your experiments, don't iterate one upload at a time.
Inputs (7)
| Name | Type | Default | Description |
|---|---|---|---|
| ak | STRING | Hi3D API Access Key. Leave empty if configured in config.json or environment variables. | |
| sk | STRING | Hi3D API Secret Key. Leave empty if configured in config.json or environment variables. | |
| GLBopt | FILE_3D_GLB,FILE_3D | Input 3D model in GLB format. Either this or model_task is required. | |
| imageopt | IMAGE | Texture reference image (Required). The model will generate a new texture map based on this image. | |
| model_taskopt | HI3D_MODEL_TASK | Task output from ImageTo3D nodes. Automatically uses that model's URL if connected. | |
| modelopt | COMBO | hitem3dv2.1 | Model version used for texture generation. |
| pbropt | BOOLEAN | true | PBR开关(默认开启)。仅hitem3dv2.0/hitem3dv2.1支持。 |
Outputs (2)
| Name | Type | Description |
|---|---|---|
| GLB | FILE_3D_GLB | — |
| model_task | HI3D_MODEL_TASK | Task information to be passed to subsequent nodes |