Nodes/Dustin ComfyUI Nodes/Dustin Marble Generate Video World
ComfyUI Node

Dustin Marble Generate Video World

Turn a video clip into a navigable 3D world, one API call at a time

By zihualiu1997·Created 4 months ago·Updated 4 months ago· 1
Dustin Marble Generate Video World
    • world_json
    • world_id
    • marble_url
    • asset_urls_json
    api_key
    video_modevideo_url
    text_prompt
    modelmarble-1.1
    display_name
    seed-1
    disable_recaptionfalse
    poll_interval_seconds15
    max_wait_seconds600
    video_url
    media_asset_id
    video_path

    Video-to-world is where Marble's whole pitch lands hardest: point a camera around a space, and the model reconstructs that space as a 3D world you can move through. Dustin Marble Generate Video World is the node that makes that happen from inside ComfyUI - it takes either a public video URL or a local file, starts a world generation against the World Labs Marble API, and polls until the ~5-minute job is done. It's the video-specific sibling of the pack's flagship Generate World node, slimmed down to the two video modes and none of the image baggage.

    How it works

    The video_mode dropdown is the whole shape of the node. video_url takes a publicly reachable URL (a direct link to an mp4/mov/mkv); video_file takes a local file - either via media_asset_id from the pack's Upload Video node, or via video_path directly, in which case the node uploads it inline for you. Either way it builds a type: video world prompt, POSTs it to worlds:generate, and polls the operation until it completes or max_wait_seconds runs out.

    The inputs that matter

    • video_mode - video_url (default) or video_file. Your choice here decides which of the three optional inputs actually matters.
    • video_url - fill this in for URL mode. The README's recommended formats: mp4, mov, mkv.
    • media_asset_id - for file mode, from the Upload Video node. This is the wiring pattern: Upload Video → media_asset_id → this node.
    • video_path - the inline-upload shortcut for file mode. Handy for one-offs; the separate upload node wins when you're iterating.
    • text_prompt - optional guidance that rides alongside the footage.
    • model - marble-1.1 (default), marble-1.1-plus, marble-1.0, marble-1.0-draft.
    • seed - -1 omits it.
    • disable_recaption - off by default; flip it on to stop Marble auto-rewriting your prompt.
    • max_wait_seconds - default 600, the thing to raise when five minutes isn't enough.

    Same four outputs as every generate node in this pack: world_json, world_id, marble_url, and asset_urls_json - the last one feeding the thumbnail preview, panorama preview, and interactive 360 viewer.

    Where it trips people up

    The most common failure is mode confusion: you set video_mode to video_url, leave video_url empty, and get "video_url is required." Flip the mode or fill the field - it doesn't auto-detect between the two like Generate World does for its wider set. Second: for video_file with media_asset_id, that ID has to come from an upload that actually succeeded - if Upload Video errored, this will too. And the usual Marble caveats all apply: your footage leaves the machine, you're paying per generation, and the wait is minutes, not seconds. Run the draft model to iterate on prompts before spending full-model calls on a final world.

    Install

    cd ComfyUI/custom_nodes
    git clone https://github.com/zihualiu1997/dustin-comfyui-nodes
    

    Restart ComfyUI, or install "dustin-comfyui-nodes" via ComfyUI Manager. The pack pulls in requests automatically; a World Labs API key is the only other requirement. No model downloads, no local GPU - the whole job happens on Marble's side, which is exactly the trade you're signing up for.

    CategoryDustin Nodes/Marble

    Inputs (12)

    NameTypeDefaultDescription
    api_keySTRING
    video_modeCOMBOvideo_url2 options: video_url, video_file
    text_promptSTRING
    modelCOMBOmarble-1.14 options: marble-1.1, marble-1.1-plus, marble-1.0, marble-1.0-draft
    display_nameSTRING
    seedINT-1-1–4294967295
    disable_recaptionBOOLEANfalse
    poll_interval_secondsINT155–120
    max_wait_secondsINT60060–3600
    video_urloptSTRING
    media_asset_idoptSTRING
    video_pathoptSTRING

    Outputs (4)

    NameTypeDescription
    world_jsonSTRING
    world_idSTRING
    marble_urlSTRING
    asset_urls_jsonSTRING