ComfyUI Node

Projectorz Output

The sink that hands your generated image back to Stable Projectorz

By tianlang0704·Created 2 years ago·Updated 2 years ago· 47
Projectorz Output
  • images
    name_prefixProjectorOutputBlob_

    Every bridge has a return trip, and this node is it. ProjectorzOutput takes the image your ComfyUI graph generated and ships it back to Stable Projectorz, where it lands on the mesh as a texture. If you're wiring up one of these Projectorz workflows and wondering where the "send result back" part happens - it's this node, and it's required. The README says as much: the workflow has Projectorz Controlnet Input on one end and Projectorz Output on the other, and Projectorz drives the whole loop.

    It's an output node (OUTPUT_NODE = True in the source), so you can't (and don't need to) connect anything to it. It's the final stop.

    What it does

    The bridge's /sdapi/v1/txt2img and /sdapi/v1/img2img endpoints queue your workflow and then wait. This node is what completes the picture: it saves every image in the batch to ComfyUI's output directory as ProjectorOutputBlob_<session>_<batch>_<count>.png, embedding the prompt and workflow metadata into the PNG. The bridge then reads those files back, base64-encodes them, and returns them to Stable Projectorz in the response body - exactly the shape the A1111 API that Projectorz expects.

    The images input is the batch of generated IMAGE tensors, normally coming off a VAEDecode. The name_prefix defaults to ProjectorOutputBlob_ and, like every prefix in this pack, gets rewritten by the bridge's JavaScript extension at runtime with the current session id. Don't hand-edit it.

    One detail in the source that saves real headaches: it dedupes filenames. If the output file already exists it appends an incrementing counter rather than overwriting, so running the same session id twice won't silently clobber your last generation.

    Why you need it even if you also have SaveImage

    It's tempting to skip this node and just use a regular SaveImage - and you can add one for your own previews, the sample workflow does. But SaveImage alone means nothing goes back to Projectorz. The generated texture never reaches the app, and from Projectorz's side the request just... hangs and times out, or returns nothing. Keep ProjectorzOutput wired to your final decoded image as the actual return channel, and treat SaveImage/PreviewImage as optional extras for your own eyes.

    Install

    Same drill as the rest of the pack - ComfyUI Manager (search "Stable Projectorz Bridge"), or:

    cd ComfyUI/custom_nodes
    git clone https://github.com/tianlang0704/ComfyUI-StableProjectorzBridge
    

    Restart. No models, no extra dependencies.

    Gotchas

    The main one is the silent empty fallback: if the bridge can't find any ProjectorOutputBlob_ files after the workflow runs, it returns a 1×1 white PNG rather than an error. That's how a mis-wired workflow (ProjectorzOutput missing, or the prefix broken) manifests: Projectorz "succeeds" and shows you a blank image. Also worth knowing - the whole thing is synchronous from Projectorz's perspective. The bridge polls ComfyUI's queue until it drains, so a long Flux generation just looks like a long-running request on the Projectorz side. That's normal. Let it cook.

    CategoryProjectorz

    Inputs (2)

    NameTypeDefaultDescription
    imagesIMAGE
    name_prefixSTRINGProjectorOutputBlob_

    Outputs (0)

    No outputs