{"record":{"id":"4de66fe1a9e8c1fb","repo":"Comfy-Org/ComfyUI","slug":"geometry-has-no-sky-output-run-with-mono-metric-m","errorCode":null,"errorMessage":"geometry has no sky output; run with Mono/Metric models.","messagePattern":"geometry has no sky output; run with Mono/Metric models\\.","errorType":"validation","errorClass":"ValueError","httpStatus":null,"severity":"error","filePath":"comfy_extras/nodes_depth_anything_3.py","lineNumber":437,"sourceCode":"            apply_sky_clip = output[\"apply_sky_clip\"]\n            if apply_sky_clip and \"sky\" not in da3_geometry:\n                raise ValueError(\n                    \"apply_sky_clip=True requires a sky tensor in the da3_geometry input, but none is present. \"\n                    \"Run with Mono/Metric models or set apply_sky_clip=False.\"\n                )\n            depth = da3_geometry[\"depth\"]\n            sky = da3_geometry.get(\"sky\")\n            if apply_sky_clip and sky is not None:\n                depth = torch.stack([\n                    da3_preprocess.apply_sky_aware_clip(depth[i], sky[i])\n                    for i in range(depth.shape[0])\n                ], dim=0)\n            grey = cls._depth_to_image(depth, sky, normalization)  # (B,H,W,3) greyscale\n            result = _turbo(grey[..., 0]) if output_val == \"depth_colored\" else grey\n\n        elif output_val == \"sky_mask\":\n            if \"sky\" not in da3_geometry:\n                raise ValueError(\"geometry has no sky output; run with Mono/Metric models.\")\n            sky = da3_geometry[\"sky\"]\n            if output[\"colored\"]:\n                result = _turbo(sky)\n            else:\n                result = sky.unsqueeze(-1).expand(*sky.shape, 3).contiguous()\n\n        elif output_val == \"confidence\":\n            if \"confidence\" not in da3_geometry:\n                raise ValueError(\"da3_geometry has no confidence output; run with Small/Base models.\")\n            conf = _normalize_confidence(da3_geometry[\"confidence\"])\n            if output[\"colored\"]:\n                result = _turbo(conf)\n            else:\n                result = conf.unsqueeze(-1).expand(*conf.shape, 3).contiguous()\n\n        else:\n            raise ValueError(f\"Unknown output mode: {output_val}\")\n","sourceCodeStart":419,"sourceCodeEnd":455,"githubUrl":"https://github.com/Comfy-Org/ComfyUI/blob/1c6d8d45b3693bfbb32385b410d813a7fd6be216/comfy_extras/nodes_depth_anything_3.py#L419-L455","documentation":"DA3 geometry decode node raises this when output='sky_mask' is requested but the geometry dict has no 'sky' entry. Sky maps are only emitted by Mono/Metric DA3 models, so the requested output simply does not exist for the loaded model.","triggerScenarios":"Selecting 'sky_mask' as the output while the upstream DA3 node ran a Small/Base model (or any mode that doesn't populate the 'sky' key).","commonSituations":"Output dropdown left on 'sky_mask' after a checkpoint swap; following a Mono-model sky-segmentation workflow with a Small model.","solutions":["Switch the output to 'depth'/'depth_colored'/'confidence' as supported by your model.","Or load a Mono/Metric DA3 model, which produces sky geometry."],"exampleFix":null,"handlingStrategy":"type-guard","validationCode":"if output_val == 'sky_mask' and 'sky' not in da3_geometry:\n    raise ValueError('this model has no sky output; use depth or confidence instead')","typeGuard":"def geometry_has_sky(geo: dict) -> bool:\n    return 'sky' in geo","tryCatchPattern":null,"preventionTips":["Check dict keys of da3_geometry before selecting an output mode.","Map model family to available outputs: Mono/Metric -> sky, Small/Base -> confidence."],"tags":["comfyui","depth-anything-3","optional-output","sky"],"backgroundTag":null,"analyzedSha":"1c6d8d45b3693bfbb32385b410d813a7fd6be216","analyzedAt":"2026-08-14T19:37:18.893Z","schemaVersion":2},"datasetVersion":"2026-08-15T17:31:12.345Z"}