Nodes/Protoface/Protoface Tripo H3.1 · Image to 3D
ComfyUI Node

Protoface Tripo H3.1 · Image to 3D

Quads, orientation, and where the texture lands

By protoface-ai·Created 22 days ago·Updated 13 days ago· 0
Protoface Tripo H3.1 · Image to 3D
    • model.3d
    • files
    • run id
    ◄image▾►
    ◄auto_sizefalse►
    ◄face_limit▾►
    ◄geometry_qualitystandard►
    ◄image_seed▾►
    ◄model_seed▾►
    ◄orientationdefault►
    ◄pbrtrue►
    ◄quadfalse►
    ◄texturetrue►
    ◄texture_alignmentoriginal_image►
    ◄texture_qualitystandard►
    ◄texture_seed▾►
    ◄generation_id0►
    ◄request_scope►

    Single-image-to-3D is the job that actually works in this field. You have a picture - generated, photographed, whatever - and a hosted model invents the geometry behind it. Tripo H3.1's image-to-3D operation costs 20 credits a job in the Protoface catalog, double its text-to-3D sibling, and the extra controls it exposes over that sibling are precisely about the two things that make or break an image-driven reconstruction: which way the model faces, and where the texture ends up.

    What it is

    The Protoface pack's node over Tripo AI's hosted image-to-3D API. Native ComfyUI image in, FILE_3D out, no local weights. Tripo is the same lab (VAST) that shipped the MIT TripoSR - the sub-second feed-forward model that's stayed useful long after its quality was surpassed, because it's tiny and permissive. H3.1 is their current hosted generation, and the reason to reach for it over Hunyuan or a local install is the mesh controls: quad topology, explicit face limits, split seeds for geometry and texture.

    Worth keeping the KB's 3D verdict in frame: topology is what no one has solved, and quads are the closest thing to a real lever on it. If you're handing the mesh to a modeller afterwards, quad output can save an hour of retopo; if you're printing it, none of that matters and you're overpaying for topology you'll never use.

    The inputs, in the order they matter

    image (required) is the reconstruction source. It takes a native ComfyUI image in Image mode, or a Protoface Reuse Result Asset handle in References mode - the latter if the picture came from another node in this graph, so you skip the second upload. The picture's quality decides most of the result: one clean subject, plain background, even light. A busy scene gets you a busy lump.

    orientation - default or align_image. The field's own description is the useful bit: align_image auto-rotates the model to match the input image. If your reference is three-quarter view and you want the result to sit in that same orientation in a scene, this is the switch that does it, instead of you rotating by eye in Blender.

    texture_alignment - original_image (default) aligns textures to the input image, geometry aligns them to the generated geometry. The default is generally what you want for a straight reconstruction; the geometry option matters when the texture you care about is bound to the surface the model invented rather than the photo you gave it.

    quad - four-sided topology instead of triangles. The single most consequential boolean on the node for downstream editing.

    face_limit - optional (1,000–2,000,000); leave it unset and the model adaptively chooses. Set it when a realtime target needs a number you can defend.

    texture / pbr / texture_quality - textures on by default, PBR materials on by default, quality standard or detailed. (geometry, no texture) is the cheap shape-check configuration.

    auto_size - real-world scaling, which matters the moment the asset joins a scene next to anything with a known size.

    geometry_quality - standard or detailed.

    image_seed, model_seed, texture_seed - Set-mode and optional. Geometry and texture are separately seeded, so you can hold a shape you like and reroll only its paint.

    Plus generation_id - the paid job's identity; keep it fixed to reuse or resume, increment to buy a fresh generation, and don't confuse it with any seed - and request_scope, the non-secret per-node scope the frontend assigns and headless clients must provide.

    Outputs

    model.3d, files, run id. The extension follows the provider's actual content type (GLB, GLTF, OBJ, STL, PLY, FBX are all possible), so confirm before feeding a strict downstream node. Send files to Protoface Save File for the original in output/, and keep run id for Protoface Resume Run if a job times out - it retrieves the run without submitting anything new.

    Install

    cd ComfyUI/custom_nodes
    git clone --branch v0.1.0 --depth 1 https://github.com/protoface-ai/protoface-comfyui.git protoface
    python -m pip install -r protoface/requirements.txt
    

    Or Manager → search Protoface → protoface-nodes → restart → reload the browser. Needs ComfyUI 0.41.0+ and Python 3.10+; install the requirements with ComfyUI's interpreter (httpx, jsonschema, Pillow, av), then enter an API key from the Protoface panel in the lower right - or set PROTOFACE_API_KEY / PROTOFACE_API_KEY_FILE on a headless server.

    Traps

    Quad is not free quality. It gives you cleaner topology on an asset whose silhouette is still an invention; a bad reference produces well-formed garbage.

    Orientation surprises. align_image matches the photo's camera, not the world's up-axis. If the mesh arrives lying on its side, that's usually the input photo's angle being faithfully reproduced.

    Key in memory only. Restart ComfyUI and you're logged out. And a fixed generation_id with a changed image is a trap in both directions - the pack treats changed inputs as a new request, but the journal can still hand back the recorded run, so increment deliberately when you want a different model.

    CategoryProtoface/3D/tripo3d

    Inputs (15)

    NameTypeDefaultDescription
    imageCOMBOA public URL, a data URI, or an asset id.
    auto_sizeBOOLEANfalseAuto-scale the model to real-world dimensions.
    face_limitCOMBOTarget number of faces for the generated mesh. If not set, the model adaptively determines the count.
    geometry_qualityCOMBOstandardQuality level for geometry.
    image_seedCOMBOSeed for the text-to-image step.
    model_seedCOMBOSeed for geometry generation reproducibility.
    orientationCOMBOdefaultModel orientation. 'align_image' auto-rotates to match the input image.
    pbrBOOLEANtrueWhether to generate PBR (Physically Based Rendering) materials. If true, texture is also enabled.
    quadBOOLEANfalseGenerate quad (4-sided) mesh topology instead of triangles.
    textureBOOLEANtrueWhether to generate textures for the model.
    texture_alignmentCOMBOoriginal_imageHow textures are aligned. 'original_image' aligns to input image, 'geometry' aligns to generated geometry.
    texture_qualityCOMBOstandardQuality level for textures. 'detailed' produces higher-resolution textures.
    texture_seedCOMBOSeed for texture generation reproducibility.
    generation_idINT00–9007199254740991Keep fixed to reuse/resume this paid job. Increment for a fresh paid generation; independent of the model seed.
    request_scopeSTRINGAutomatically assigned per node. Headless clients must supply a stable unique workflow/node ID. This is not a secret.

    Outputs (3)

    NameTypeDescription
    model.3dFILE_3D—
    filesPROTOFACE_FILE—
    run idSTRING—