Nodes/ComfyUI-NetflixVoid/VOID Parse VLM Analysis
ComfyUI Node

VOID Parse VLM Analysis

Turning your VLM's rambling into the JSON the rest of the VOID graph demands

By jaskirat05·Created 5 months ago·Updated 5 months ago· 0
VOID Parse VLM Analysis
    • analysis_json
    • integral_belongings_json
    • affected_objects_json
    • scene_description
    • confidence
    raw_response

    Vision-language models are great at describing what's in a video and terrible at following your output-format instructions. The prompt built by VOID Prepare VLM Analysis begs for strict JSON, and the model will still occasionally answer with markdown fences, trailing prose, or a stray comma. This node is the cleanup crew: it takes the raw text your VLM returned and turns it into the structured data the grey-mask stage is waiting for.

    Without it, you'd be hand-copying JSON between a ShowText node and a text input - which is exactly how people burn an afternoon on a broken workflow. Wire the VLM's output here instead and the handoff is automatic.

    How it works

    It's a parser with opinions. It strips markdown code fences if present, then tries json.loads on the result; if that fails it hunts for the first { and last } and tries to parse the slice in between - a decent "the model wrapped the JSON in a sentence" fallback. Then it normalizes everything for the downstream stages:

    • confidence is clamped to [0, 1].
    • integral belongings are capped at 3, affected objects at 5 - the grey-mask stage has to actually mask each one, and the prompt already asks for those limits; this enforces them.
    • Every object gets sensible defaults (empty strings, zero frames) when the model skips a field, so a missing why won't crash the graph.
    • Trajectories and grid localizations are re-parsed into the exact {frame, row, col} structure VOID Build Grey Mask consumes, with object_size_grids defaulting to 2×2 when will_move is true but sizes are missing.

    The input and outputs that matter

    • raw_response (STRING) - the VLM's raw text. In the example workflow that's the text output of VOID Gemma 4 E2B Video Prompt; if you're using Qwen-VL or any other VLM instead, paste/route its output here.

    Outputs:

    • affected_objects_json (STRING) - this is the important wire; it goes into VOID Build Grey Mask. It's the list of things that move, fall, or vanish when the primary object is removed, complete with trajectories.
    • integral_belongings_json (STRING) - the bike/backpack-style items removed together with the subject.
    • analysis_json (STRING) - the whole normalized structure, pretty-printed, for inspection.
    • scene_description (STRING) - the model's "what the scene looks like without the object" text.
    • confidence (FLOAT) - how sure the VLM was; worth a look before trusting the result.

    Install

    Standard for the pack: ComfyUI Manager → search "ComfyUI-NetflixVoid", or clone https://github.com/jaskirat05/ComfyUI-NetflixVoid into custom_nodes and restart. No model downloads for this node; it's pure text processing.

    Common issues

    • "Failed to parse VLM response as JSON" - the model went fully off-script and there's no {...} to salvage. Your options: a stronger VLM, a longer/clearer prompt, or simply re-queue (greedy decoding means retries give the same answer, so change the model first).
    • Confidence is 0.0 but the graph runs - the model omitted the confidence field; the parser defaults it rather than failing. It means the rest of the analysis is probably thin too - check analysis_json in a ShowText node before trusting the output.
    • Items getting silently dropped - that 3/5 cap is doing its job. If your scene has more affected objects than that, the extras are cut; that's by design, and over-masking is explicitly preferred to under-masking in this workflow.
    CategoryVOID

    Inputs (1)

    NameTypeDefaultDescription
    raw_responseSTRING

    Outputs (5)

    NameTypeDescription
    analysis_jsonSTRING
    integral_belongings_jsonSTRING
    affected_objects_jsonSTRING
    scene_descriptionSTRING
    confidenceFLOAT