Nodes/Gadzoinks/Gadzoinks
ComfyUI Node

Gadzoinks

A Save Image node that ships your outputs to an iPhone app

By GadzoinksOfficial·Created 2 years ago·Updated about a year ago· 0
Gadzoinks
  • images
  • dynprompt
    upload_imagetrue
    private_storagefalse
    age
    set_name

    Gadzoinks is a cloud uploader dressed as a ComfyUI node, and that's the whole pitch. You finish a workflow, wire your image into it instead of (or next to) Save Image, and the render shows up in the Gadzoinks iPhone app - ready to browse, organize into sets, and keep. It doesn't call any generation API and needs no key. What it needs is an account, and the account lives in a specific mobile app, not in the ComfyUI ecosystem. If you already use Gadzoinks to manage your AI images, this node is the missing pipeline between "generated" and "in my phone." If you've never heard of it before, you're probably not the audience - it's a convenience bridge for one product, not a general tool.

    Worth being clear about the trust trade up front: every image you run through this node leaves your machine and hits an AWS-hosted endpoint (hardcoded in the source) before landing in S3. That's the point, but it's also the privacy consideration nobody else will raise for you.

    How it works

    Under the hood it's the SaveImageGadzoinks class - an output node that behaves like ComfyUI's built-in Save Image but adds an upload step. On every run it converts your IMAGE tensor to a PIL image, writes a full-resolution PNG to your output folder (note the gz_ prefix - this thing saves locally and to the cloud, so you keep your local copy), plus a 160px thumbnail. Then it POSTs metadata to the Gadzoinks API, gets back a presigned S3 URL, and pushes both files up. Your prompt workflow JSON rides along as embedded PNG metadata and is sent to the server too - that's what lets the app rebuild a "worksheet" for an image you like.

    There's a second, more ambitious layer: the same pack can turn your ComfyUI machine into a remote render server - flip on "Gadzoinks remote control" in settings and the app can push jobs to your queue. That's the qservermode path, and it's fiddly: it calls 127.0.0.1:8188 hardcoded in places, so a non-default ComfyUI port breaks the remote stuff. The node's core job, though, is just "save and upload."

    The inputs that matter

    Five required inputs, and you'll touch maybe three:

    • upload_image - set this false to skip the upload and just save locally. Handy when you're playing around and don't want to spam your cloud library.
    • private_storage - true makes the image visible only to you. Default false means it's public-ish; leave this on for anything you wouldn't post yourself.
    • age - a three-way rating: 17, 12, or 4 (R/PG/G in Gadzoinks terms). You must pick one.
    • set_name - optional, but it's the feature. Name a batch and the app groups every image sharing that name into one set you can triage with a couple of taps.
    • images - your IMAGE, straight out of the VAE decode.

    There's one optional input, dynprompt, which pulls the computed prompt from a GPromptsData node in a dynamic prompt so the app gets richer metadata. Skip it unless you're deep in that workflow style.

    It has no outputs - it's a terminal node, like Save Image. Results show up in the UI gallery and, upload permitting, in your Gadzoinks library.

    Installing it

    ComfyUI Manager is the easy route: search "Gadzoinks" and install the GadzoinksOfficial/gadzoinks_ComfyUI pack, then restart. Or the manual route:

    cd ComfyUI/custom_nodes
    git clone https://github.com/GadzoinksOfficial/gadzoinks_ComfyUI
    

    Restart ComfyUI. Dependencies are light - just requests, python-dateutil, and pywin32 on Windows. No model files, no checkpoints. Then do the part the README glosses over: create an account in the iOS app, grab your handle and authkey, and drop them into Settings → Gadzoinks in ComfyUI (not the node itself). Without those, the node has nothing to authenticate with.

    Where people get burned

    • "Handle / Authkey not set" alert - you ran the node before putting credentials in Settings, or you set them and didn't restart. The node even sleeps mid-run trying to coax the frontend into handing over auth; it's a hack that occasionally fails. Set the values, restart, run again.
    • API error 400/401 - bad handle or authkey. Double-check both, they're easy to typo.
    • Status 403 - the server rejected the request, often on visibility or rating grounds. The message usually arrives as a popup alert.
    • It's slow-ish and chatty - every run makes multiple HTTP round-trips and writes two files to disk. Normal, not a bug.
    • The real trap is expectation mismatch: this isn't a community utility with years of discussion behind it. Nobody on r/comfyui is troubleshooting it, because it's a thin bridge for one commercial app. If the app isn't part of your workflow, use a plain save node instead.

    Bottom line: exactly one person in a thousand googles this node, and it's the one who already has the app. For them it works as advertised - save locally, ship to cloud, rate it, organize it. Everyone else can skip it without guilt.

    CategoryGadzoinks

    Inputs (6)

    NameTypeDefaultDescription
    upload_imageBOOLEANtrue
    private_storageBOOLEANfalse
    ageCOMBO3 options: 17, 12, 4
    set_nameSTRING
    imagesIMAGE
    dynpromptoptDYNPROMPT

    Outputs (0)

    No outputs