Nodes/ComfyUI/Load MoGe Model
ComfyUI Node Runs on cloud

Load MoGe Model

MoGe gives you the whole geometry, not just a depth map

By Comfy-Org·Created 4 years ago·Updated about 12 hours ago· 130,663
Load MoGe Model
    • MOGE_MODEL
    model_name

    Depth estimation has a spectrum, and MoGe sits at the ambitious end. Load MoGe Model is the loader for the Monocular Geometry Estimator from Microsoft Research and Tsinghua University - the model that doesn't stop at "how far away is each pixel" but goes on to reconstruct where each pixel actually is in 3D. It landed natively in ComfyUI in May 2026, joining the geometry-estimation folder that Depth Anything 3 also uses.

    Why MoGe is different

    A depth map is a grayscale image: white close, black far. MoGe's output is an affine-invariant point map - per-pixel 3D coordinates that encode the geometry more completely than a single depth value - plus a validity mask that excludes regions with undefined geometry (the sky, mostly). From that point map you can derive camera shift, focal length, and a depth map, or go straight to a mesh. The community's own summary of it, repeated approvingly across the ecosystem, is that it's the most accurate normalized-depth model available and can generate meshes from single images (just not with back faces).

    The use cases that follow from that are the 3D-flavored ones: turning one image into a mesh for a game-asset pipeline, parallax effects, and geometry work where "a flat depth map" isn't enough. For plain ControlNet depth conditioning, MoGe is overkill - that's still Depth Anything territory. But the moment you want geometry, this is the loader that gets you there without leaving core ComfyUI.

    How the loader works

    One input, model_name, listing files from models/geometry_estimation/. It loads the checkpoint and wraps it; the output is a single MOGE_MODEL object.

    That output feeds the MoGe family of nodes:

    • MoGeInference - runs the model on an image, producing the point map, depth, mask, and (on v2) normals
    • MoGePointMapToMesh / MoGeRender - geometry and visualization
    • MoGePanoramaInference - the party trick: splits an equirectangular panorama into 12 perspective views, runs inference on each, and merges the depth maps back into one consistent panorama

    Getting the model

    Drop the MoGe weights into models/geometry_estimation/ and refresh - the folder is shared with DA3, so give files clear names. ComfyUI won't fetch it for you.

    What to watch for

    The honest gotcha is expectations around scale. MoGe's point map is affine-invariant, meaning relative geometry is right but absolute scale isn't guaranteed - the panorama node even notes that per-view scales wouldn't align across seams, so it ignores metric scale when merging. If you need real-world units, this is the wrong tool.

    Second, the output is a different data type (MOGE_MODELMOGE_GEOMETRY), so don't try to wire it into a ControlNet conditioning chain expecting a depth image. It's a geometry pipeline, not a preprocessor. If your workflow has been "depth map in, parallax out," MoGe is a genuine upgrade - a cleaner, more complete skeleton for that effect than any depth map alone.

    Categorymodel/loaders

    Inputs (1)

    NameTypeDefaultDescription
    model_nameCOMBO0 options:

    Outputs (1)

    NameTypeDescription
    MOGE_MODELMOGE_MODEL