Nodes/ComfyUI-Lux3D/Lux3D Text to 3D
ComfyUI Node

Lux3D Text to 3D

Type 'steampunk coffee table' and actually get a GLB back

By manycore-research·Created 7 months ago·Updated 2 days ago· 120
Lux3D Text to 3D
  • reference_image
  • task_id
  • lux3d_zip
  • glb
  • ply
base_api_pathhttps://api.aholo3d.cn
prompt
stylephotorealistic
versionG1-Turbo
face_count200000
output_formatdefault
enable_pbrdefault
ai_predict_sizedefault

Text-to-3D has a dirty secret in the open ecosystem: it's almost never actually text-to-3D. It's text-to-image with a 2D model, then image-to-3D on whatever came out, wired into one graph and marketed as a single step. Lux3D Text to 3D is the honest version of that promise - you type a prompt, optionally hand it a reference image, and a 3D model comes back - because the two-stage pipeline runs entirely on Lux3D's servers instead of on your machine.

That makes it the sibling of Lux3D Image to 3D, and the trade is the same: zero local 3D model, zero VRAM, zero compiled CUDA dependencies, but every run is a metered cloud call. For a quick concept model or a product idea you want to see in the round, that's a fair deal - especially since local text-to-3D is even more of an install and VRAM slog than image-to-3D.

How it works

Same machinery as the rest of the pack: the node validates your prompt, builds a payload, POSTs it to /lux3d/v1/generate/text-to-3d/task/create, then polls task/get every 15 seconds for up to about 15 minutes. The optional reference image (public URL, upstream STRING, or one connected IMAGE) is uploaded to Lux3D's asset service before the task is submitted, and the returned glb/ply are URLs, not files.

The inputs that matter

  • prompt - multiline, and the one input you actually have to get right. Describe the object, its style, what it's made of. "Retro sci-fi lamp, brushed metal, teal glow" will beat "lamp" every time.
  • style - this is the differentiator, and the reason you might reach for this node over a generic image-to-3D. Seven presets: photorealistic (default), cartoon, anime, hand_painted, cyberpunk, fantasy, glass. No prompt engineering to force an anime look - it's a dropdown.
  • reference_image - optional. Paste a URL, connect a STRING, or drop in one local IMAGE. A reference anchors the shape when your prompt alone would be ambiguous ("the one from that mood board").
  • version / face_count / output_format / enable_pbr / ai_predict_size - shared with Image to 3D. G1-Turbo by default, 200k face count, and remember enable_pbr only applies to G1-Turbo, and not to PLY-only output.

Outputs are task_id, lux3d_zip, glb, ply. Plug the non-empty glb into Lux3D Viewer to inspect it in the canvas.

Install

# ComfyUI Manager → Custom Nodes → Install via URL
# https://github.com/manycore-research/ComfyUI-Lux3D.git
# or:
comfy node install lux3d
# or manually:
cd path/to/ComfyUI/custom_nodes
git clone https://github.com/manycore-research/ComfyUI-Lux3D.git
pip install -r requirements.txt

Then set the API key in the environment that starts ComfyUI - LUX3D_API_KEY_CN for the default https://api.aholo3d.cn endpoint, LUX3D_API_KEY_INTL for https://api.aholo3d.com. Keys come from labs.aholo3d.cn or labs.aholo3d.com. No model files to download; the requirements are just requests, Pillow, and numpy.

Where people get burned

Empty prompt → immediate error, so that one's self-explanatory. If you set a reference image but the node errors, double-check the URL is a public HTTP(S) link - a local path pasted into the widget won't work unless it's a connected IMAGE socket, which is what triggers the upload. And set your expectations on geometry quality: generated 3D is a great silhouette and a lousy wireframe. Static props, concept blocks, product mockups - fantastic. Game-ready topology you can rig directly - still not a thing from any generator, cloud or local. If a style comes back off, remember the server-side pipeline is doing the text-to-image part too, so prompt and style preset fight each other; keep the prompt describing the object, and let the dropdown carry the look.

CategoryLux3D/Generate

Inputs (9)

NameTypeDefaultDescription
base_api_pathSTRINGhttps://api.aholo3d.cnUse https://api.aholo3d.cn or https://api.aholo3d.com. The matching server API key environment variable is used.
promptSTRING
styleCOMBOphotorealistic7 options: photorealistic, cartoon, anime, hand_painted, cyberpunk, fantasy, +1
reference_imageSTRING,IMAGEOptional public HTTP(S) URL or connected IMAGE/STRING.
versionCOMBOG1-Turbo2 options: G1, G1-Turbo
face_countINT2000000–300000Defaults to 200000; use 0 to omit the field.
output_formatCOMBOdefaultG1 always returns ZIP + GLB and optionally PLY; G1-Turbo follows the selected combination.
enable_pbrCOMBOdefaultG1-Turbo only; omit for PLY-only output.
ai_predict_sizeCOMBOdefault3 options: default, true, false

Outputs (4)

NameTypeDescription
task_idSTRING
lux3d_zipSTRING
glbSTRING
plySTRING