Nodes/Aholo World Generate/Aholo World Wait
ComfyUI Node

Aholo World Wait

Aholo World Wait

By manycoretech·Created 2 months ago·Updated 2 months ago· 2
Aholo World Wait
    • world_id
    • name
    • cover
    • scene
    • status
    • progress
    • pano_url
    • spz_url
    • ply_url
    • lod_meta_url
    • up_axis
    • create_time
    • update_time
    world_id
    regioncn
    api_key
    timeout_seconds1800
    poll_interval_seconds3.0

    Aholo World Wait does exactly one thing, and it's the thing that makes the whole pack usable: it takes the world_id from Aholo World Generate, polls the cloud until the 3D scene is actually built, and then hands you the URLs. Without it you'd have an async task ID and no idea when - or whether - your world finished. With it, text-to-3D becomes a block in your graph that resolves into downloadable assets.

    Here's the mechanism. Building an explorable 3D space takes real compute, so Aholo's API is asynchronous: Generate submits the job and returns immediately; Wait sits in a loop hitting GET /world/v1/{worldId} every few seconds, watching the status crawl through PENDINGPREPROCESSINGRUNNING until it lands on a terminal state - SUCCEEDED, or the failure quartet FAILED / CANCELED / TIMEOUT / REJECTED. On success it sanity-checks that the required asset fields actually came back, then raises if they didn't. The defaults in the source: poll every 3 seconds, give up after 1800 seconds (30 minutes). The node is marked not_idempotent - every run is a fresh poll, so re-executing a graph genuinely waits again instead of faking a cached answer.

    The inputs worth setting

    Three of the five are plumbing you set once and match to the Generate node:

    • world_id - comes straight from Generate's output. If you bypass Generate and paste in an old ID, it still works; this node doesn't care who created the job.
    • region - must match what Generate used (cn vs com). Mismatch here is a classic "it worked before, now it 401s" moment.
    • api_key - same env-var fallback as its sibling: leave empty and it reads AHOLO_API_KEY.
    • timeout_seconds - 60 to 3600, default 1800. When a big, detailed world is cooking, 30 minutes isn't overkill. If your scene fails on the regular, this is where you'll notice.
    • poll_interval_seconds - 1 to 30, default 3. Lower it if you're impatient and want a faster fail; there's little point below ~2.

    The outputs that matter

    Thirteen outputs, but you'll live in a handful. The three you actually want are the asset URLs:

    • pano_url - a 360 panorama of the scene. The instant preview.
    • spz_url - the compressed gaussian-splat file, the format most splat viewers (SuperSplat and friends) load happily.
    • ply_url - the raw .ply gaussian splat dump, for splat-heavy pipelines or conversion.

    Gaussian splatting is the right representation for a whole scene - that's the whole reason this pack exists, per the KB's 3D-gen coverage: splats render a set photorealistically from any angle, and you should not force them into a mesh unless you know why you need one. The supporting cast: cover (a thumbnail), scene (usually ai_gen), status (expect SUCCEEDED), progress (0.0–1.0), up_axis (Y or Z - handy when you're importing into a 3D tool), and lod_meta_url, which is empty until LOD post-processing finishes - an empty string there is normal, not an error. world_id, name, create_time, and update_time are bookkeeping.

    One ComfyUI gotcha: string outputs don't render on the node, so you won't see the URLs on canvas. After a success the node shows a text preview (status, world_id, and all four URLs), but to actually use them, wire pano_url / spz_url / ply_url into a text display or save node, or feed them downstream for download and viewing.

    Installation and trouble

    Same story as Generate - one clone, one requirements.txt, ComfyUI Manager search "Aholo World Generate", and you need ComfyUI >= 0.3.0:

    cd ComfyUI/custom_nodes
    git clone https://github.com/manycoretech/ComfyUI-Aholo-World-Generate.git
    pip install -r requirements.txt
    

    The friction is the key, not the node: an Aholo API key from labs.aholo3d.cn/api-keys or labs.aholo3d.com/api-keys, set in the field or as AHOLO_API_KEY. If it errors with a SUCCEEDED but missing asset fields message, that's Aholo's side slipping up - retry the run. And the honest warning from the API-wrapper playbook: this whole pack is a paid cloud call with your key inside, so your data leaves the machine and every successful scene costs credits. Watch a scene render, grab the splat, and decide whether the convenience beats the bill - that's the tradeoff the entire category sits on.

    CategoryAholo/World

    Inputs (5)

    NameTypeDefaultDescription
    world_idSTRINGWorldAsyncOperation.worldId
    regionCOMBOcn2 options: cn, com
    api_keySTRINGAholo API Key;留空则读取环境变量 AHOLO_API_KEY。申请:https://labs.aholo3d.cn/api-keys (国内)或 https://labs.aholo3d.com/api-keys (海外)
    timeout_secondsINT180060–3600轮询超时(秒)
    poll_interval_secondsFLOAT3.01–30轮询间隔(秒)

    Outputs (13)

    NameTypeDescription
    world_idSTRINGWorldDetail.worldId
    nameSTRINGWorldDetail.name
    coverSTRINGWorldDetail.cover
    sceneSTRINGWorldDetail.scene(Spatial Gen 成功示例为 ai_gen)
    statusSTRINGWorldOpenApiTaskStatus
    progressFLOATWorldDetail.progress [0.0, 1.0]
    pano_urlSTRINGassets.imagery.panoUrl
    spz_urlSTRINGassets.splats.urls.spzPath
    ply_urlSTRINGassets.splats.urls.plyPath
    lod_meta_urlSTRINGassets.splats.urls.lodMetaPath(LOD 后处理完成后才有,可为空)
    up_axisSTRINGassets.semanticsMetadata.upAxis(Y 或 Z)
    create_timeINTWorldDetail.createTime,Unix 毫秒
    update_timeINTWorldDetail.updateTime,Unix 毫秒