Andrea Pozzetti 04452c15a2 predict_metric_depth: emit layer_0/1_points_raw point-map outputs
Adds two new IMAGE outputs (B, 1536, 1536, 3) — per-pixel (X, Y, Z) in
camera space — alongside the existing scalar metric_depth outputs.
Mirrors MoGe2Inference's depth_raw / points_raw pairing so SHARP can
feed PanoramaDepthMerge.face_points directly.

Motivation: PanoramaDepthMerge.face_points expects a 3D point map, not
a depth scalar. Wiring layer_0_metric_depth (which is depth replicated
to 3 channels for IMAGE compatibility) into face_points silently
produced wrong geometry: the merger's ||points|| computation gave
||(d, d, d)|| = d × sqrt(3) per pixel and treated it as ray distance,
inflating everything by ~73% with no shape-mismatch error.

The new points are computed as:
  x_cam = (u - cx) / fx
  y_cam = (v - cy) / fy
  points[u, v] = (x_cam * Z, y_cam * Z, Z)
By construction ||points|| equals the correct ray distance — what
PanoramaDepthMerge consumes via np.linalg.norm. Intrinsics rescaled to
the 1536² depth grid via the same sx/sy ratio used elsewhere; relies
on the existing fx<2.0 normalized-K sniff at the top of execute() so
PanoPack-style normalized K is auto-converted before the math runs.

Output socket order: layer_0_metric_depth, layer_1_metric_depth,
extrinsics_mdepth, intrinsics_mdepth, layer_0_points_raw,
layer_1_points_raw. New outputs appended at the END so existing
workflows that wired extrinsics_mdepth / intrinsics_mdepth by slot
index continue to work — those slots (2, 3) are unchanged.

Log line gains a ||v|| range for the layer-0 point map so the user can
sanity-check that depth × unprojection produced scene-scale 3D
positions (||v|| ≈ Z at face centers, ~sqrt(3)·Z at 90° face corners).
2026-05-29 08:54:41 +02:00
2026-05-11 10:57:28 +02:00
2026-05-27 18:11:47 +02:00
2026-05-29 00:24:18 +02:00
2026-03-11 01:17:30 +01:00
2026-03-10 23:46:48 +01:00
2026-02-20 20:36:46 +01:00
2025-12-21 20:58:18 +01:00
2026-02-20 20:23:46 +01:00
2026-05-19 17:52:04 +02:00
2026-05-27 18:11:57 +02:00
2026-05-27 13:07:48 +02:00

Warning

Warning, uses experimental package comfy-env to attempt a one click isolated install. Will download and use pixi package manager.

ComfyUI-Sharp

Installation

Three options, in order of speed → reliability:

  1. ComfyUI Manager (recommended) — search for Sharp in the Manager and click Install from the highest version displayed. If that doesn't work, try nightly.
  2. Manager via Git URL — in ComfyUI Manager: "Install via Git URL" with https://github.com/PozzettiAndrea/ComfyUI-Sharp.git.
  3. Manual (most reliable):
    cd ComfyUI/custom_nodes
    git clone https://github.com/PozzettiAndrea/ComfyUI-Sharp.git
    cd ComfyUI-Sharp
    pip install -r requirements.txt --upgrade
    python install.py
    

Please report any problems you hit during installation or use of my nodes — open a Discussion or Issue. Very grateful for your help! 🙏


ComfyUI wrapper for SHARP by Apple - monocular 3D Gaussian Splatting in under 1 second.

2 Example workflows.

Workflow 1: standard/user input focal length. Workflow

https://github.com/user-attachments/assets/479fb066-4d40-4d7c-a8d4-d1224fc22efa

Workflow 2: focal length extraction from exif data.

Workflow_exif

https://github.com/user-attachments/assets/b0c3e196-aa93-4380-8f8b-9c19b833b818

Note: for PLY inference this model is good on its own, but for the Gaussian Viewer node, you're going to need to install this node as well! https://github.com/PozzettiAndrea/ComfyUI-GeometryPack

Model auto-downloads on first run. For offline use, place sharp_2572gikvuh.pt in ComfyUI/models/sharp/.

Model architecture

Workflow

Nodes

  • Load SHARP Model - (down)Load the SHARP model
  • SHARP Predict - Generate 3D Gaussians from a single image
  • Load Image with EXIF - Load image and auto-extract focal length from EXIF (35mm equivalent)

Images with EXIF data get focal length auto-calculated when using the Load Image with EXIF node.

Community

Questions or feature requests? Open a Discussion on GitHub.

Join the Comfy3D Discord for help, updates, and chat about 3D workflows in ComfyUI.

Credits

Thanks to Apple for releasing SHARP as open source.

S
Description
No description provided
Readme GPL-3.0
309 MiB
Languages
Python 100%