Nodes/ComfyUI-BespokeAI-3D/BespokeAI 3D Generation (URL)
ComfyUI Node

BespokeAI 3D Generation (URL)

The same image-to-3D node, but it fetches the picture for you

By SofianeAlla·Created 9 months ago·Updated 9 months ago· 1
BespokeAI 3D Generation (URL)
    • mesh_path
    • model_url
    • enhanced_image_url
    image_url
    api_key
    resolution1m
    with_texturetrue
    ai_enhancementtrue
    low_polyfalse
    segmentationfalse
    prompt
    poll_interval5
    max_poll_attempts120

    This is BespokeAI 3D Generation with the middleman removed. Where the main node needs a ComfyUI IMAGE tensor - which it base64-encodes and ships to the cloud - this one just takes a URL string and hands it straight to the BespokeAI API. The server downloads the image itself. Same backend, same credits, same outputs, one less input to plumb.

    Reach for it when your image isn't sitting in ComfyUI at all: a render already hosted on an object store, a reference photo you grabbed from the web, something produced by an external tool. You get to skip the Load Image node entirely - just paste the link and run. It's genuinely handy for scripting and for keeping workflows tidy when the source lives elsewhere.

    The one input that matters

    Where the sibling node has image, this one has image_url - required, plain text, no default. Everything else is identical: api_key (starts with bspk_, from bespokeai.build), resolution (500k / 1m / 1.5m), with_texture and ai_enhancement (both on by default), plus the same optional extras - low_poly, segmentation (still 500k-only), prompt, and the poll_interval / max_poll_attempts pair that governs how long it waits before timing out.

    The one trap that bites people: the URL has to be publicly reachable by BespokeAI's servers. That's not your machine fetching it - it's their edge function. localhost, a password-protected link, or a signed URL that expires in five minutes will fail. If you want to convert something from your own disk, that's what the regular image node (or a quick hosting step) is for. Worth noting the node strips whitespace around the URL before sending, so a stray space from copy-paste won't kill it - that's the one bit of fussiness the code actually handles for you.

    Everything else

    Installation is the same pack, one time: clone https://github.com/SofianeAlla/ComfyUI-BespokeAI-3D into ComfyUI/custom_nodes, pip install -r requirements.txt, restart - or find it via ComfyUI Manager by searching "BespokeAI". It shows up under BespokeAI/3D. No model files, no GPU, dependencies are just requests, Pillow, and numpy.

    Outputs match the main node exactly: mesh_path (the downloaded .glb saved to ComfyUI/output/bespokeai_3d/), model_url, and enhanced_image_url. Wire mesh_path into the pack's BespokeAI 3D Preview to orbit around the result. Internally this node literally instantiates the regular generation class and reuses its submit/poll/download methods, so the two behave identically - same error codes (401 bad key, 402 out of credits, 429 rate-limited), same 10-minute polling ceiling, same honest progress logs in the console. Pick the one that matches how your image enters the workflow; the results won't differ.

    CategoryBespokeAI/3D

    Inputs (10)

    NameTypeDefaultDescription
    image_urlSTRING
    api_keySTRING
    resolutionCOMBO1m3 options: 500k, 1m, 1.5m
    with_textureBOOLEANtrue
    ai_enhancementBOOLEANtrue
    low_polyoptBOOLEANfalse
    segmentationoptBOOLEANfalse
    promptoptSTRING
    poll_intervaloptFLOAT52–30
    max_poll_attemptsoptINT12010–600

    Outputs (3)

    NameTypeDescription
    mesh_pathSTRING
    model_urlSTRING
    enhanced_image_urlSTRING