diff --git a/comfy/ldm/depth_anything_3/transform.py b/comfy/ldm/depth_anything_3/transform.py index f3ce8f6be..3f5541412 100644 --- a/comfy/ldm/depth_anything_3/transform.py +++ b/comfy/ldm/depth_anything_3/transform.py @@ -165,6 +165,9 @@ def pose_encoding_to_extri_intri( quat = pose_encoding[..., 3:7] fov_h = pose_encoding[..., 7] fov_w = pose_encoding[..., 8] + # Normalize to unit quaternion. CameraDec outputs raw values; a near-zero + # quaternion causes two_s = 2/norm² → inf in quat_to_mat → NaN extrinsics. + quat = quat / quat.norm(dim=-1, keepdim=True).clamp(min=1e-6) R = quat_to_mat(quat) extrinsics = torch.cat([R, T[..., None]], dim=-1) H, W = image_size_hw