Nodes/ComfyTV/Load 3D Model from Asset
ComfyUI Node

Load 3D Model from Asset

Bring a 3D model into ComfyTV's Scene3D pipeline, preview included

By jtydhr88·Created 3 months ago·Updated about 15 hours ago· 725
Load 3D Model from Asset
    • model
    • image
    project_id
    parent_output_id0
    asset_url
    asset_id0
    categoryall
    captured_image

    ComfyTV isn't just a video suite - the author's roots are in 3D (they shipped ComfyUI-InstantMesh before this), and the pack carries a Scene3D stage with multi-camera viewports, PBR materials, and mesh tools. Every one of those flows starts with a model on a wire. Load 3D Model from Asset is that start: pick a model from your project library and it comes out on a COMFYTV_MODEL output, with a preview image to go with it.

    The nice touch is the second output. The node body embeds a real 3D preview viewport, and whatever angle you leave it at becomes a COMFYTV_IMAGE snapshot. So one stage hands you both the model and a "hero shot" of it - handy when you want to drop a rendered thumbnail into a contact sheet or drive an image stage off the model's appearance without rendering the scene first.

    How it works

    Selecting a model in the node body writes its payload URL into the internal asset_url input, and the stage emits it as the model output (type COMFYTV_MODEL). Meanwhile the preview viewport's current view is captured to captured_image - an internal /view? URL, per its tooltip - which becomes the image output. The project_id, parent_output_id, and asset_id inputs are frontend bookkeeping for lineage and debugging; leave them alone. category just remembers your last library filter.

    Unlike the image/audio/video asset loaders, this one has two real outputs to think about:

    • model (COMFYTV_MODEL) - wire this into Scene3D, the geometry workshop, or the PBR material stage.
    • image (COMFYTV_IMAGE) - the preview snapshot, for anything that wants a picture of the model.

    Installing ComfyTV

    It's one pack with ~190 stages, so installing this node is installing ComfyTV:

    cd ComfyUI/custom_nodes
    git clone https://github.com/jtydhr88/ComfyTV
    

    Restart the ComfyUI backend fully (not just refresh the browser) and stages appear under the ComfyTV category; ComfyUI Manager finds it by searching "ComfyTV". It ships zero extra Python dependencies - it uses what ComfyUI already bundles, and the 3D preview runs in the browser. No model downloads for this loader, though the 3D generation workflows in the pack do reference model files (see the pack's models.md for those).

    The README's install warning applies double here because of that Preview-only-in-the-right-instance behavior: on macOS, ComfyUI Desktop, or multi-install setups, the relative cd can clone into the wrong ComfyUI. Read the running instance's path from the startup log, clone into that instance's custom_nodes by absolute path (quotes if it has spaces/parentheses), verify ComfyTV/__init__.py is top-level, and restart the backend - not just the tab.

    Common issues

    • Preview renders black or the stage errors. The 3D viewport needs a model actually selected. If the library is empty, you're likely in the wrong project - assets are per-project.
    • COMFYTV_MODEL won't connect to another pack's model nodes. Expected; the typed wire is pack-internal. Bridge nodes exist for plugging third-party plugins into a ComfyTV pipeline.
    • The image output is a stale angle. It's whatever the viewport last showed. Spin the model the way you want the thumbnail before you run.

    If your ComfyTV work is image and video only, you can skip this stage entirely. The day you want a 3D shot in a workflow, though, this is the cleanest on-ramp in the pack.

    CategoryComfyTV/Input

    Inputs (6)

    NameTypeDefaultDescription
    project_idSTRINGInternal — populated by the projectStore on the frontend.
    parent_output_idINT00–2147483647Internal — lineage parent set by spawn handlers on the frontend.
    asset_urlSTRINGInternal — payload URL of the asset picked in the node body. Becomes this stage's output.
    asset_idINT00–2147483647Internal — library id of the picked asset (lineage/debug only).
    categorySTRINGallInternal — last-selected category filter, persisted so the node remembers it.
    captured_imageSTRINGInternal — /view? URL of the preview-viewport snapshot. Written by the 3D preview in the node body; becomes the `image` output.

    Outputs (2)

    NameTypeDescription
    modelCOMFYTV_MODEL
    imageCOMFYTV_IMAGE