Nodes/PopNow/PopNow Generate
ComfyUI Node

PopNow Generate

One node, 248 models, and a JSON field you have to get right

By popnow-ai·Created 24 days ago·Updated about 20 hours ago· 0
PopNow Generate
  • image
  • image
  • url
  • path
◄modelgoogle/nano-banana-2.1/text-to-image►
◄promptA lighthouse on a cliff at dusk, warm window light►
◄options{"aspect_ratio": "16:9", "resolution": "1k"}►
◄image_fieldimage_url►

The escape hatch

PopNow's pack ships a node per model - one for Kling, one for Nano Banana Pro, and so on down a catalog of a couple of hundred. PopNow Generate is the node that ignores all of that: you type a model's call name, put the rest of its settings in a JSON blob, and it runs whatever you asked for. It's the same node type as the standalone popnow_api.py that popnow.ai's docs handed out before this pack existed, so older workflows open fine and keep working.

Reach for it in three situations. The catalog grew a model this morning and your install hasn't restarted. You want to sweep one parameter across five models without wiring five nodes. Or you want a video model's output as a file on disk rather than a VIDEO socket, which is exactly what this node hands you.

Inputs, and the one that trips everyone

  • model - a call name from popnow.ai/docs/models, like minimax/h3/image-to-video. The default is google/nano-banana-2.1/text-to-image, which is a decent smoke test.
  • prompt - what to make. Here's the subtlety: your prompt is placed in the field named prompt, or in text for speech models, and it's only inserted if options doesn't already set that field. A prompt in the widget loses to a prompt in the JSON.
  • options - the model's other fields as a JSON object: {"resolution": "2k"}, {"duration_seconds": 5}, {"aspect_ratio": "9:16"}. Not an array, not a bare number. Malformed JSON fails before anything is sent, which is the good outcome.
  • image (optional) - an IMAGE you want sent along. It's uploaded for you.
  • image_field - where that image goes. image_url for most video models, image_urls for editing models - note the plural: a field whose name ends in s receives the whole batch, so batching three images into one socket sends three references.

Outputs are image, url and path, and they behave differently by model type, which is the single most confusing thing about this node:

  • Image models: image holds the result, url is the signed link, path is empty.
  • Video and audio models: the file is downloaded to ComfyUI/output/popnow_<task id>.mp4 (or .webm/.mp3/.wav) and returned in path. The image output returns a blank 64×64 placeholder so the graph doesn't break. If you wired a Preview Image to it and see a black square, nothing is wrong - look at path.
  • url is a signed link with a short life, roughly twenty minutes. Fine for a download, useless for anything you save and reopen tomorrow.

What it costs

Each run is quoted first, capped by Settings > PopNow > Max credits per run, and refunded if it fails. The node prints the final charge and the task id when it finishes. One arithmetic warning: the README says a credit is $0.001, while the node descriptions price things as if a credit were a cent (Nano Banana Pro at "16.08 credits / $0.1608"), which happens to match real market rates. Don't do budget math off the README - read the badge and the quote.

Install

cd ComfyUI/custom_nodes
git clone https://github.com/popnow-ai/popnow-comfyui

Restart, then add your key at Settings > PopNow (or export POPNOW_API_KEY). Restart again - the catalog is fetched at startup, and a stale node list is the most common "my model is missing" cause. If you still have custom_nodes/popnow_api.py from the old single-file install, delete it; you'd be running two copies of the same node type.

There are no dependencies to install and no weights to download, which is both the pack's selling point and its catch: everything you generate leaves your machine and hits a vendor's filter. That's the deal with any API node - you cannot get around a closed model's moderation by patching something local, because there's nothing local to patch.

Troubleshooting

No PopNow API key is set and PopNow 401 are the same problem wearing two hats: no key, wrong key, revoked key. 40201 is an empty wallet. 400 naming a field means the model doesn't accept that value - the node's description links the model page, and the options JSON is where you fix it. 40004 means the combination isn't servable. 40310 wants you to verify your email. content_rejected and generation_failed are the model's answer and are refunded.

If an error ends in request_id ..., keep that string - it's the exact handle support needs. And remember that cancel only stops your side of the wait: the task keeps generating on PopNow and is charged if it lands.

Last thing: PopNow itself has no real community footprint yet - searching the usual discussion archives returns nothing. The node works and the source is readable and MIT, but you're early, so keep credits small and read the code before you trust it with a long workflow.

CategoryPopNow

Inputs (5)

NameTypeDefaultDescription
modelSTRINGgoogle/nano-banana-2.1/text-to-imageA call name from https://popnow.ai/docs/models, such as minimax/h3/image-to-video.
promptSTRINGA lighthouse on a cliff at dusk, warm window light—
optionsSTRING{"aspect_ratio": "16:9", "resolution": "1k"}The model's other fields as JSON, such as {"resolution": "2k"}.
imageoptIMAGEUploaded for you and put in image_field.
image_fieldoptSTRINGimage_urlWhich field gets the image: image_url for most video models, image_urls for editing.

Outputs (3)

NameTypeDescription
imageIMAGE—
urlSTRINGSigned file URL, valid for about 20 minutes.
pathSTRINGSaved video or audio file, in ComfyUI/output.