Nodes/Pixal3D-ComfyUI/Pixal3D Camera Control
ComfyUI Node

Pixal3D Camera Control

The manual camera helper

By Saganaki22·Created 3 months ago·Updated 2 months ago· 204
Pixal3D Camera Control
  • image
  • manual_fov
fov_degrees49.1
distance2.00
mesh_scale1.00

By default, Pixal3D's Image To 3D node lets MoGe estimate the camera and field of view straight from your image, and that usually works. But "usually" isn't "always": MoGe can frame too tight, leave too much headroom, or just pick a view you didn't want. Pixal3D Camera Control is the manual override - a small helper node that turns a friendly FOV-in-degrees slider into the radians- and distance-values the generator actually wants, bundled into one socket.

What it does

It has three number inputs and one optional image input, and it produces exactly one output: a manual_fov value of type PIXAL3D_CAMERA. Wire that into the optional manual_fov input on Pixal3D Image To 3D, set camera_mode=manual there, and the generation uses your framing instead of MoGe's guess.

The inputs that matter:

  • fov_degrees (5 to 140, default 49.134) - horizontal field of view. The default happens to be the same field of view Pixal3D's demo uses, so you can keep it and only adjust if the framing is off. The node converts it to radians internally because that's what the generator's manual_camera_angle_x expects.
  • distance (0.1 to 20, default 2) - how far back the camera sits. Push it up to fit more of the subject, drop it to fill the frame.
  • mesh_scale (0.05 to 10, default 1) - used for camera fitting. The tooltip says it plainly: usually keep 1.0.

There's also an optional image input, and this is the trap to watch for: it's purely for the widget's preview. The node does not output an image, and connecting your image here does not feed the generator. You still connect Load Image directly to Pixal3D Image To 3D's image input. People wire the image into the camera node, scratch their heads at the missing output, and lose ten minutes.

Why you'd bother

Two main reasons. First, framing: extend_pixel on Image To 3D can nudge MoGe's fitting, but a real slider is easier to tune than a pixel offset, and if MoGe frames something badly you'll see it. Second - and this is the one the README pushes - manual camera mode is a core part of the lowest-VRAM path. When you set load_moge=false on the Model Loader, MoGe isn't loaded at all, which frees VRAM, but then camera_mode=moge has nothing to estimate from. Manual mode with this node is the workaround, and it works fine: you're setting three numbers instead of letting a network guess.

That's the whole tradeoff in one sentence: MoGe costs VRAM and saves you three sliders; this node costs three sliders and saves you VRAM. On a tight card, that's a real win. On a big card where MoGe framing is fine, you don't need this node at all.

Wiring it up

A minimal manual-camera workflow:

Load Image -> Pixal3D Camera Control image        (preview only)
Pixal3D Camera Control manual_fov -> Pixal3D Image To 3D manual_fov
Pixal3D Image To 3D camera_mode=manual

When manual_fov is connected and camera_mode=manual, it overrides Image To 3D's own manual_camera_angle_x, manual_distance, and mesh_scale inputs. Connected and camera_mode=moge? The manual_fov input is ignored entirely, so if you've wired it and nothing seems to happen, that's the first thing to check.

Install

Part of the Saganaki22/Pixal3D-ComfyUI pack - ComfyUI Manager, search Pixal3D, install the normal/stable entry, restart. Manual install is the usual clone into ComfyUI/custom_nodes plus pip install -r requirements.txt. No extra downloads beyond what the pack needs; this node is pure glue.

It's the least glamorous node in the pack, and that's fine. It exists so that when the automatic camera gets it wrong - or you turned MoGe off to fit the model in VRAM - you have a boring, reliable knob to turn instead of fighting radians in a text field.

CategoryPixal3D

Inputs (4)

NameTypeDefaultDescription
fov_degreesFLOAT49.15–140Horizontal field of view in degrees. The camera helper converts this to manual_camera_angle_x radians.
distanceFLOAT2.000.1–20Camera distance for Pixal3D manual camera mode.
mesh_scaleFLOAT1.000.05–10Scale used for camera fitting. Usually keep 1.0.
imageoptIMAGEOptional preview image for the camera widget. This node does not output an image; connect Load Image directly to Pixal3D Image To 3D.

Outputs (1)

NameTypeDescription
manual_fovPIXAL3D_CAMERA