Nodes/comfyui-mixlab-nodes/3DImage ♾️Mixlab
ComfyUI Node Runs on cloud

3DImage ♾️Mixlab

An in-browser 3D viewport that renders back into your graph

By MixLabPro·Created 3 years ago·Updated 2 months ago· 1,859
3DImage ♾️Mixlab
  • upload
  • material
  • IMAGE
  • MASK
  • BG_IMAGE
  • MATERIAL

3DImage puts a small 3D viewport inside a ComfyUI node. You load or manipulate a 3D scene in the browser - orbit it, frame it - and the node renders that view back out as a flat IMAGE (plus a mask and background) that the rest of your graph can generate on top of. It's the interactive front-end of the mixlab pack's 3D corner, the part shadowcz007 built so you can pose a 3D object and use the render as a conditioning base for image generation, instead of hunting for the perfect reference photo.

The point isn't to be a 3D modeler. It's to give you controllable geometry as an input. Line up a rendered angle, hand the IMAGE and MASK to ControlNet/depth and img2img, and you get a generation that matches a pose or layout you set in 3D - the kind of precise composition that's a nightmare to coax out of text alone. It pairs with the pack's image-to-3D flow (TripoSR), so you can go photo → rough 3D → reframed render → new generation.

How it works

The node hosts a 3D view (a three.js-style viewport) in the browser. You interact with it there; when the graph runs, it captures the current view and outputs it as rendered layers. Because it's an interactive browser widget, it lives on the front end and needs the browser cooperating (see troubleshooting).

The inputs and outputs that matter

  • upload (THREED) - the 3D scene/model, via the pack's 3D widget. Required.
  • material (IMAGE, optional) - an image to apply as material/texture on the geometry.

Outputs:

  • IMAGE - the rendered view. This is the one you feed into ControlNet/img2img.
  • MASK - the subject silhouette, for isolating it from the background.
  • BG_IMAGE - the background layer.
  • MATERIAL - the material/texture image.

How to install it

Via ComfyUI Manager: search comfyui-mixlab-nodes, install, restart. Or clone the pack:

cd ComfyUI/custom_nodes
git clone https://github.com/shadowcz007/comfyui-mixlab-nodes.git

then pip install -r requirements.txt (or install.bat on the Windows portable build) and restart. If you're driving this from the pack's image-to-3D pipeline, that side needs model downloads the README spells out: TripoSR (model.ckpt into models/triposr) and facebook/dino-vitb16 into models/triposr/facebook/dino-vitb16. The 3DImage viewport itself is a browser widget, but the "photo → 3D" step that feeds it depends on those files.

Common issues & troubleshooting

The viewport is blank or won't load a model. This is an interactive browser feature, and the pack's browser features want a secure context - serve ComfyUI over HTTPS (https://127.0.0.1), especially on a LAN or cloud instance. On plain http the 3D widget can fail to initialize. Also confirm the folder is named exactly comfyui-mixlab-nodes; a zip install leaves -main on it and breaks the pack's app/interactive UI.

Image-to-3D produces nothing. That's the TripoSR side, not this node. Missing models/triposr/model.ckpt or the dino-vitb16 files is the usual cause - download both to the exact paths above and restart.

It won't run headless. Same story as the pack's other interactive nodes: 3DImage assumes a live browser you can orbit the scene in. A batch/serverless backend with no interactive UI isn't its environment.

The render doesn't line up with my ControlNet. Make sure you're feeding the IMAGE (and MASK for isolation) into a matching preprocessor - a depth or lineart ControlNet expects its own preprocessing of this render, not the raw viewport dump used as a color reference.

Category♾️Mixlab/3D

Inputs (2)

NameTypeDefaultDescription
uploadTHREED
materialoptIMAGE

Outputs (4)

NameTypeDescription
IMAGEIMAGE
MASKMASK
BG_IMAGEIMAGE
MATERIALIMAGE