Nodes/ComfyUI-CineSpatial/CineSpatial · WorkerHealth
ComfyUI Node

CineSpatial · WorkerHealth

The ComfyUI node that does nothing except tell you what's broken

By Vighneshjs·Created about a month ago·Updated about a month ago· 0
CineSpatial · WorkerHealth
    • health_json

    Installing this pack gives you eight nodes, and seven of them will fail on you the first time you run them - because the actual AI lives in a separate service, not in ComfyUI. This is the eighth node, the one that refuses to fail. It doesn't process anything. It just asks the runner, "are you alive, and is each model actually ready?" and hands you the answer as JSON.

    That answer is more useful than it sounds, because the whole pack is built around a principle the README states bluntly: model success is never inferred from node registration or a matching filename. A checkpoint existing on disk isn't proof the model loads. WorkerHealth is the honesty layer - it reports readiness as booleans, split into things that are actually distinguishable.

    What it reports

    The node calls the fixed loopback endpoint http://127.0.0.1:8199/v1/health (short 3-second timeout) and returns one health_json string with three parts:

    • adapter_configured - is the gateway service itself up?
    • operation_runners - booleans for the six operations: separate_soundtrack, transcribe_align_dialogue, detect_active_speaker, classify_audio_events, ground_visual_sources, query_separate_event.
    • models - booleans for the model slots: bandit, whisper, talknet, beats, audiosep, grounding_dino, sam.

    Every value is true or false, nothing in between. That's the point: the runner distinguishes a missing checkpoint from an absent backend from an operation that is genuinely ready, and this node just surfaces the distinction instead of guessing.

    The graceful-degradation detail is worth knowing. If the runner is down entirely, the node doesn't throw - it returns a report with everything false, so you can see the failure in the graph instead of a red error bubble. Since release 0.1.4 the pack also registers a GET /cinespatial/health route on ComfyUI's own server, so an external orchestrator can poll readiness without loading a workflow.

    Inputs and outputs

    There are no inputs at all - not even optional ones. It's an output node, so the JSON prints straight into the UI when you run it, and you can wire health_json (a STRING) into a text display or a logger if you want it captured.

    Install and the one gotcha

    Same as the rest of the pack - ComfyUI Manager's Git URL installer, or:

    cd ComfyUI/custom_nodes
    git clone https://github.com/Vighneshjs/ComfyUI-CineSpatial
    

    then restart ComfyUI. There's nothing to pip-install (requirements.txt is deliberately empty) and no models to download through this pack.

    The gotcha: this node is only as useful as the runner it pokes. Install the separate cinespatial core/runner package and start its loopback gateway first:

    cinespatial-runner --config /opt/cinespatial/runner.json
    

    Troubleshooting

    Run this node before anything else in the pack - it's your first move, not a last resort.

    • Everything false → the runner isn't running, isn't bound to 127.0.0.1:8199, or its health schema doesn't match the pack's 0.1. Check the runner process and config.
    • adapter_configured true but one operation false → that specific backend's checkpoint is missing or unloadable. The runner distinguishes checkpoint-missing from backend-absent for exactly this reason; treat the two differently instead of reinstalling the whole pack.
    • A worker node later says "CineSpatial runner service is unavailable or invalid" → you skipped this step. That's the pack's error for "the loopback service is unreachable," and a glance at a WorkerHealth report would have told you in three seconds.

    It's not a glamorous node - it's a health check wearing a ComfyUI costume. But for a pack where every real node depends on an external service, it's the difference between debugging for ten minutes and debugging for ten seconds.

    CategoryCineSpatial/Diagnostics

    Inputs (0)

    No inputs

    Outputs (1)

    NameTypeDescription
    health_jsonSTRING—