Nodes/ComfyUI-DepthAnythingV3/DA3_CreateCameraParams
ComfyUI Node

DA3_CreateCameraParams

Set a camera for Depth Anything 3 conditioning

By PozzettiAndrea·Created 9 months ago·Updated 2 months ago· 434
DA3_CreateCameraParams
    • camera_params
    image_width512
    image_height512
    cam_x0.00
    cam_y0.00
    cam_z0.00
    rot_x0.0
    rot_y0.0
    rot_z0.0
    focal_length0
    fov_degrees60

    This node builds a camera definition - position, rotation, and field of view - that you can feed into DepthAnything_V3 to condition the depth estimate on a known camera. It's a niche node, and you should know that up front: most people never touch it. Depth Anything 3 predicts the camera on its own, so you only reach for this when you actually want to override that guess with a camera you specify.

    What "camera conditioning" means here

    DA3 doesn't just estimate depth - it estimates the camera that took the shot (its pose and focal length), because depth and camera geometry are entangled. Normally that's inferred. But the main-series and Nested models support camera conditioning: you can tell the model "assume this camera," and it'll produce depth consistent with those parameters. That's what this node's output plugs into. Note the capability caveat from the README - camera conditioning is a feature of the main series and Nested only; the Mono and Metric variants ignore it.

    The inputs

    Two required, both about the frame:

    • image_width and image_height (both default 512) - the pixel dimensions of the view you're describing. Match them to your actual image.

    Then the optional camera controls, all defaulting to a neutral, centered camera:

    • cam_x, cam_y, cam_z - the camera's position in space.
    • rot_x, rot_y, rot_z - its rotation, in degrees.
    • focal_length and fov_degrees (default 60) - the lens. fov_degrees is the intuitive one: a wider FOV is a wide-angle lens, narrower is more telephoto. If you set an explicit focal_length it takes precedence; otherwise the 60° FOV drives it.

    The single output is camera_params (a CAMERA_PARAMS), which wires into the camera_params input on DepthAnything_V3. That's its only destination.

    When you'd actually use it

    Honestly? Rarely, and that's fine. The default "let DA3 predict the camera" path is what almost every workflow wants and it works well. Reach for this node when you have real camera metadata you want to honor, when you're building a multi-view setup with cameras you're placing deliberately, or when you're experimenting and want to see how forcing a particular FOV or position changes the reconstruction. For plain "make me a depth map" or "make me a point cloud from this photo," skip it entirely and leave camera_params unconnected.

    Common issues

    If connecting this node makes your depth worse, that's the expected failure mode - a wrong camera is worse than a predicted one. The model's own estimate is usually good, so if you don't have a real reason to override it, don't. If it seems to do nothing, check your model: Mono and Metric variants don't support camera conditioning, so the params get ignored - load a main-series or Nested model if you need this to bite. And make sure image_width/image_height match your actual input; a mismatch between the camera you describe and the image you feed produces geometry that doesn't line up.

    CategoryDepthAnythingV3

    Inputs (10)

    NameTypeDefaultDescription
    image_widthINT5121–8192
    image_heightINT5121–8192
    cam_xoptFLOAT0.00-100–100
    cam_yoptFLOAT0.00-100–100
    cam_zoptFLOAT0.00-100–100
    rot_xoptFLOAT0.0-180–180
    rot_yoptFLOAT0.0-180–180
    rot_zoptFLOAT0.0-180–180
    focal_lengthoptFLOAT00–10000
    fov_degreesoptFLOAT601–180

    Outputs (1)

    NameTypeDescription
    camera_paramsCAMERA_PARAMS