Comfy-Org/ComfyUI · error · ValueError
multi-view mode requires Small or Base model. The loaded mod
Error message
multi-view mode requires Small or Base model. The loaded model (head_type='{diffusion.head_type}') does not support cross-view attention or camera pose estimation. Switch mode to 'mono', or load Small or Base model for mult-view. What it means
Depth-Anything-3 node raises this when multi-view mode is selected but the loaded checkpoint's diffusion head cannot do cross-view attention or camera-pose estimation. Capability is inferred from the model: head_type must be 'dualdpt' (Small/Base models) or the model must carry a camera decoder (cam_dec). Mono/Metric checkpoints have neither, so multi-view is impossible for them.
Source
Thrown at comfy_extras/nodes_depth_anything_3.py:273
)
@classmethod
def execute(cls, da3_model, image, resolution, resize_method, mode) -> io.NodeOutput:
mode_val = mode["mode"] # "mono" or "multiview"
if mode_val == "mono":
return cls._execute_mono(da3_model, image, resolution, resize_method)
# Capability checks for multi-view mode.
diffusion = da3_model.model.diffusion_model
pose_method = mode["pose_method"]
ref_view_strategy = mode["ref_view_strategy"]
has_cam_dec = diffusion.cam_dec is not None
has_dualdpt = diffusion.head_type == "dualdpt"
if not has_cam_dec and not has_dualdpt:
raise ValueError(
"multi-view mode requires Small or Base model. The loaded model "
f"(head_type='{diffusion.head_type}') does not support cross-view "
"attention or camera pose estimation. Switch mode to 'mono', or "
"load Small or Base model for mult-view."
)
if pose_method == "cam_dec" and not has_cam_dec:
raise ValueError(
"pose_method='cam_dec' requires a camera decoder, but the loaded "
f"model (head_type='{diffusion.head_type}') does not have one. "
"Use pose_method='ray_pose' instead."
)
if pose_method == "ray_pose" and not has_dualdpt:
raise ValueError(
"pose_method='ray_pose' requires a DualDPT head, but the loaded "
f"model has a '{diffusion.head_type}' head. "
"Use pose_method='cam_dec' instead."
)View on GitHub (pinned to 1c6d8d45b3)
Solutions
- Set the node's mode to 'mono' for Mono/Metric checkpoints.
- Or load the DA3 Small or Base model, which has a dualdpt head / camera decoder and supports multi-view.
- Keep one workflow per model family instead of hot-swapping checkpoints.
Defensive patterns
Strategy: validation
Validate before calling
diffusion = da3_model.model.diffusion_model
supports_multiview = diffusion.cam_dec is not None or diffusion.head_type == 'dualdpt'
if mode_val != 'mono' and not supports_multiview:
mode_val = 'mono' # or raise with a clear message before queueing Type guard
def da3_supports_multiview(da3_model) -> bool:
d = da3_model.model.diffusion_model
return d.cam_dec is not None or d.head_type == 'dualdpt' Prevention
- Pair each DA3 checkpoint variant with its own saved workflow (Mono/Metric -> mono, Small/Base -> multi ok).
- When swapping checkpoints, re-check mode, pose_method, and output widgets together.
- Remember the capability rule: multiview needs cam_dec or head_type=='dualdpt'.
When it happens
Trigger: Loading a DA3 Mono or Metric checkpoint and running the DA3 node with mode='multi' (or any non-'mono' mode value). The check reads da3_model.model.diffusion_model.head_type and .cam_dec directly.
Common situations: Swapping DA3 checkpoints in a shared workflow without switching the mode back to 'mono'; downloading the smaller Mono model first and following a multi-view tutorial written for Base; mixing up model naming (Small/Base vs Mono/Metric variants).
Related errors
- pose_method='cam_dec' requires a camera decoder, but the loa
- pose_method='ray_pose' requires a DualDPT head, but the load
- apply_sky_clip=True requires a sky tensor in the da3_geometr
- INVALID_TAG_FILTER
- Connect at least one keyframe image.
AI-assisted analysis of Comfy-Org/ComfyUI@1c6d8d45b3 (2026-08-14).
Data as JSON: /api/errors/d16d83c3054862f1.
Report an issue: GitHub.