Blender Inputs
Pull Depth, Render, and Camera Views Into ComfyUI
- camera_viewport
- render_viewport
- depth_viewport
- mist_viewport
- active_model
BlenderInputs is the ComfyUI side of a live Blender bridge. You build a rough 3D scene, and this node drags the viewport renders straight into your graph - the camera view, the real render, the depth pass, the mist pass, and even which model is active in Blender. That's the classic "ControlNet fully integrated with Blender" pipeline the community has been chasing since 2023: model the scene in 3D, render the structure passes, and feed them into a depth ControlNet so the generation obeys your camera. Model once, regenerate forever.
Before you get excited, the honest first warning: this node does nothing by itself. It's one of three nodes in the AIGODLIKE/Blender-IO pack, and the pack's README says it's only for AIGODLIKE's Blender add-on, ComfyUI-BlenderAI-node. Install the pack, install the add-on, connect them, and then it's magic. Without Blender connected, the node just throws. There are rival bridges, but if you're already in the AIGODLIKE ecosystem this is the transport layer that binds the two apps.
The naming trap
"Blender Inputs" means inputs that come from Blender into ComfyUI - not inputs you give to Blender. That direction confusion is the single most common way people misread this pack. The sibling node BlenderOutputs sends data the other way. Names are the opposite of what a newcomer guesses.
How it actually works
On every run, BlenderInputs inspects the current workflow to see which of its five outputs are actually wired up to something. For each linked output it asks the Blender add-on over a websocket for that pass at a given frame; Blender renders it, saves PNGs into ComfyUI's output folder, and replies with paths that the node loads into image tensors. Unlinked outputs aren't requested at all - so if camera_viewport is empty, check whether you wired it to anything.
IS_CHANGED returns the current time, which is ComfyUI's way of saying "never cache me" - this node re-pulls from Blender every single run. That's how you get live feedback while you move the camera around in the viewport.
The inputs that matter
Only two, and both optional:
- frame - which Blender scene frame to pull (default 1). Boring for a still, essential for animation or video passes.
- timeout - how many seconds to wait for Blender before giving up (default 30). Blender is not instant; if your scene is heavy, raise it.
The outputs
- camera_viewport (IMAGE) - what the active camera in the 3D viewport sees.
- render_viewport (IMAGE) - an actual render of the scene.
- depth_viewport (IMAGE) - the z-buffer depth pass: white near, black far.
- mist_viewport (IMAGE) - the atmospheric mist/fog pass: smoother and less aliased than raw z-depth, which is why a lot of people prefer it for depth ControlNet.
- active_model (STRING) - the path of the currently active model in Blender, useful for routing which object your workflow should care about.
Wire the image passes into a ControlNet depth preprocessor/loader and you've got a composition lock between your Blender camera and your generation - the move that turns Blender into a layout tool instead of a final renderer.
Installing it
The pack has no requirements.txt and no model downloads - it's pure plumbing. From the README:
cd ComfyUI/custom_nodes
git clone https://github.com/AIGODLIKE/Blender-IO.git
then restart ComfyUI. Or open ComfyUI Manager, search Blender-IO, and install. Either way you still need the Blender add-on side - the pack genuinely doesn't work without it.
Common issues
- "Blender not connected." This is the big one. The pack talks to the add-on over a websocket; no connected add-on, no data. Start Blender, enable ComfyUI-BlenderAI-node, and connect to your local ComfyUI instance before running the graph.
- Outputs come back empty/black. Usually an unwired output (it only fetches what's linked), or Blender timed out before saving the pass.
- The pack won't import at all. The code imports
torchaudioat module load; official ComfyUI installs ship it, but a hand-built environment that skipped it needspip install torchaudio. - The add-on side misbehaves on some Linux setups - community reports of empty node lists and "node X undefined" errors (Blender 4.1 / POP OS in the report). That's an add-on bug, not this node's.
The honest take: this is a niche, opinionated corner of ComfyUI, and the Blender add-on has a reputation for being finicky. If you just want a depth map now, a MiDaS/Depth Anything preprocessor node gets you there with zero Blender. Reach for BlenderInputs when you're genuinely working in Blender and want the scene itself driving the generation - that's where nothing else quite replaces it.
Inputs (2)
| Name | Type | Default | Description |
|---|---|---|---|
| frameopt | INT | 10–1048574 | 帧. |
| timeoutopt | INT | 301–1024 | Waiting Timeout. |
Outputs (5)
| Name | Type | Description |
|---|---|---|
| camera_viewport | IMAGE | — |
| render_viewport | IMAGE | — |
| depth_viewport | IMAGE | — |
| mist_viewport | IMAGE | — |
| active_model | STRING | — |