ComfyUI Extension: ComfyUI-Lux3D
Run ComfyUI workflows without the setup
No installs, no CUDA version roulette, no GPU sitting idle on your bill. Bring a workflow and run it in the browser.
A ComfyUI extension providing nodes for generating 3D models from images and rendering/visualizing 3D assets within your workflow.
Looking for a different extension?
Custom Nodes (3)
README
ComfyUI-Lux3D & LuxReal Engine Nodes
<div align="center">🌐 Official Website: Lux3D China | Lux3D Global
</div>A ComfyUI extension for converting 2D images into 3D models in your workflow. Supports real-time rendering, scene template switching, material preview, and rendering of various render passes (channel maps).
Related Project
Looking for a Skill Hub version of Lux3D? Try Lux3d on ClawHub for a workflow-focused skill entry.
Industry Applications
From gaming to e-commerce, Lux3D powers the next generation of 3D content creation.
E-Commerce
Create 3D product visualizations for immersive shopping experiences.
- Product configurators
- AR Try-On
- Virtual Showrooms
Game Development
Rapidly prototype and generate assets for your game worlds.
- Props & Environment
- Character Accessories
- Level Design
Industrial Design
Visualize concepts and prototypes with speed and precision.
- Concept Visualization
- Digital Twins
- Rapid Prototyping
Furniture & Interior
Rapidly digitize furniture and create realistic 3D assets for interior planning.
- Furniture Digitization
- Room Planning
- Virtual Staging
Features
Lux3D Node (Image to 3D)
<img src="figures/image.png?msec=1772184417471" title="" alt="imagepng" width="382">-
Accepts ComfyUI standard
IMAGEinput via node connections -
api_keycan be provided via node parameters or read from a config file -
Supports task submission and status polling
-
Waits up to 15 minutes (60 polls × 15-second interval)
-
Outputs the generated 3D model URL
Lux3D Text to 3D Node
<img src="figures/text-2-3d.png" title="" alt="text-2-3d.png" width="403">-
Converts text prompts into 3D models
-
Supports optional reference images for better control
-
Multiple style options: photorealistic, cartoon, anime, hand_painted, cyberpunk, fantasy, glass
-
api_keycan be provided via node parameters or read from a config file
LuxReal Engine Node
<img src="figures/image%20(1).png?msec=1772184444279" title="" alt="image 4png" width="503">-
Supports up to 5 Lux3D inputs and 5 local file inputs
-
Build and update real-time rendering setups (render designs)
-
api_keycan be provided via node parameters or read from a config file -
Real-time WebSocket message push
-
Offline rendering outputs 6 image passes:
-
Render Image (RGB)
-
Material ID Pass (Material Id)
-
Model ID Pass (Model Id)
-
Depth (Depth EXR)
-
Diffuse (Diffuse)
-
Normal (Normal)
-
-
Configurable output resolution (1K/2K/4K/8K) and aspect ratio (1:1 / 16:9 / 9:16 / 4:3 / 3:4)
Installation
Install via ComfyUI CLI (Recommended)
comfy node install lux3d
Install via ComfyUI Manager
-
Open ComfyUI.
-
Go to Manager → Custom Nodes.
-
Click Install via URL.
-
Enter: https://github.com/manycore-research/ComfyUI-Lux3D.git
Manual Installation
- Clone this repo into ComfyUI’s
custom_nodesdirectory:
cd path/to/ComfyUI/custom_nodes
git clone [email protected]:manycore-research/ComfyUI-Lux3D.git
- Install dependencies (if needed):
pip install -r requirements.txt
- Configure the API key:
-
Add
lux3d_api_keytoconfig.txt, or -
Enter it directly in the node parameter field when using the node.
- Restart ComfyUI.
Usage
How to Get lux3d_api_key
Click the link, leave your personal information, and we will send the api_key to your email.
If you have any questions, please contact [email protected]. We will respond as soon as possible.
Using the Lux3D Node (Image to 3D)
-
In ComfyUI's node library, find
Lux3Dunder theLux3Dcategory, or double click the blank area to add..png)
-
Connect an
IMAGEinput port. -
Run the workflow.
-
The node returns a download URL for the generated 3D model.
.png)
Using the Lux3D Text to 3D Node
-
In ComfyUI's node library, find
Lux3D Text to 3Dunder theLux3Dcategory..png)
-
Enter a text prompt describing the object you want to generate.
-
(Optional) Connect a reference
IMAGEinput to guide the generation. -
Select a style from the dropdown:
photorealistic: Realistic photo style (default)cartoon: Cartoon styleanime: Anime stylehand_painted: Hand-painted stylecyberpunk: Cyberpunk stylefantasy: Fantasy styleglass: Glass texture style
-
Run the workflow.
-
The node returns a download URL for the generated 3D model.
Using the LuxReal Engine Node
-
In the ComfyUI workspace, find
LuxReal Engineunder theLux3Dcategory in the node menu. -
Connect input ports:
-
lux3d_input: connect up to 5 glb_model_url outputs from Lux3D nodes.
-
file_input: connect a local GLB model path or directly enter a .glb file path.
.png)
-
Upload models and synchronize them to the render scene.
<img title="" src="figures/image%20(5).png" alt="image (5).png" data-align="inline"> -
Edit the scene:
-
Switch scene templates:

-
Switch lighting presets:

-
Edit object transforms:

- Configure parameters:
-
resolution: output resolution (1K/2K/4K/8K) -
ratio: aspect ratio (1:1 / 16:9 / 9:16 / 4:3 / 3:4) -
lux3d_input_1~5: Lux3D output URLs -
file_input_1~5: local file paths (supports GLB/OBJ) -
seed: random seed
-
Connect output ports:
.png)
-
render_image: rendered image -
material_ch: material -
model_ch: model -
depth: depth -
diffuse: diffuse -
normal: normal
- Run the workflow:
-
Input objects are rendered in real time within the scene
-
The node pushes an iframe URL to the frontend via WebSocket
-
Load the iframe to view the rendered content
Node Explanation
Lux3D Node (Image to 3D)
Core node for converting a 2D image into a 3D model.
Inputs
| Name | Type | Description |
| ------------- | -------- | ------------------------------------------------------------ |
| image | IMAGE | Input image; accepts ComfyUI standard IMAGE via connection |
| base_api_path | STRING | API server base URL |
| lux3d_api_key | STRING | Invitation code (optional) |
Outputs
| Name | Type | Description | | ------------- | ------ | -------------------------------------- | | glb_model_url | STRING | Download URL of the generated 3D model |
Lux3D Text to 3D Node
Core node for converting text prompts into 3D models.
Inputs
| Name | Type | Description | | ------------- | -------- | ------------------------------------------------------------ | | prompt | STRING | Text prompt describing the object to generate | | style | Enum | Style type: photorealistic, cartoon, anime, hand_painted, cyberpunk, fantasy, glass | | base_api_path | STRING | API server base URL | | lux3d_api_key | STRING | Invitation code (optional) | | image | IMAGE | Optional reference image (optional) |
Outputs
| Name | Type | Description | | ------------- | ------ | -------------------------------------- | | glb_model_url | STRING | Download URL of the generated 3D model |
LuxReal Engine Node
Node for real-time rendering and material preview.
Inputs
| Name | Type | Default | Description | | --------------- | -------- | --------------- | -------------------------------------------- | | resolution | Enum | 1K | Output resolution (1K/2K/4K/8K) | | ratio | Enum | 16:9 | Aspect ratio (1:1 / 16:9 / 9:16 / 4:3 / 3:4) | | lux3d_input_1~5 | STRING | None | Lux3D output URLs | | file_input_1~5 | STRING | None | Local file paths (supports GLB/OBJ) | | base_api_path | STRING | Default API URL | API server base URL | | seed | INT | 0 | Random seed | | _upload_cache | STRING | {} | Upload cache (auto-passed) |
Outputs
| Name | Type | Description | | ------------ | ----- |------------------------| | render_image | IMAGE | Final rendered image | | material_ch | IMAGE | Material channel image | | model_ch | IMAGE | Model channel image | | depth | IMAGE | Depth map | | diffuse | IMAGE | Diffuse | | normal | IMAGE | Normal |
Examples
-
Use Lux3D + LuxReal Engine to generate an object model and render images:
- (To be added)
-
Use Lux3D + LuxReal Engine with local models to create combined objects and arrange a scene for rendering:
- (To be added)
-
Use LuxReal Engine to generate object/channel passes and re-generate parts of an object’s materials after editing:
- (To be added)
FAQ
1.When installing plugins through comfyui-manager, if you encounter security level issues, please modify the corresponding security level in the comfyui-manager configuration file and then retry the installation.
Development
Project Structure
comfyui-lux3d/
├── __init__.py # Node registration
├── lux3d_node.py # Lux3D core node implementation
├── luxreal_engine.py # LuxReal Engine node implementation
├── render/ # Rendering modules
│ ├── __init__.py
│ ├── offline_render.py # Offline rendering
│ ├── build_render_design.py# Render design builder
│ ├── image_to_torch.py # Image conversion utilities
│ └── model_upload.py # Model upload utilities
├── sso/ # SSO authentication config
│ └── sso_token.py # SSO token loader
├── upload/ # Upload module
│ ├── __init__.py
│ └── upload.py # Upload implementation
├── js/ # Frontend JavaScript
│ └── lux3d_viewer.js # 3D viewer
├── requirements.txt # Dependencies
├── config.txt.example # Example config
└── README.md # Documentation
Dependencies
| Dependency | Version | Purpose | License | | -------------- |-----------------------------------------------------------------------| -------------------------------- | ----------- | | requests | >=2.25.0 | HTTP client for API calls | Apache 2.0 | | Pillow | >=9.0.0 | Image processing | BSD | | NumPy | >=1.21.0 | Numerical computing | BSD | | OpenEXR | ==3.4.4 (python_version == "3.12");==3.2.4(python_version == "3.11") | EXR image processing (for depth) | BSD |
Configuration
config.txt.example
Copy config.txt.example to config.txt and set:
lux3d_api_key=your_lux3d_api_key
Changelog
(To be added)
License
Run ComfyUI workflows without the setup
No installs, no CUDA version roulette, no GPU sitting idle on your bill. Bring a workflow and run it in the browser.