Nodes/PRYX ComfyUI Higgsfield/PRYX ComfyUI Higgsfield Advanced Request
ComfyUI Node

PRYX ComfyUI Higgsfield Advanced Request

The escape hatch for when the widgets don't cover the endpoint

By PRYX-STUDIO·Created 25 days ago·Updated 11 days ago· 2
PRYX ComfyUI Higgsfield Advanced Request
  • image
  • video
  • audio
  • references
  • end_image
  • image
  • video
  • remote_urls
  • request_id
  • credits (-1 unavailable)
  • usd (-1 unavailable)
  • status
◄modelalibaba-happy-horse-image-to-video►
◄arguments_json{}►
◄request_modeestimate_only►
◄max_usd0.00►
◄auto_savetrue►
◄timeout1800►

Every other node in this pack is a friendly form: pick a model, get the widgets that model documents, fill them in, queue. That's the right default and it's how you should build 95% of what you build here. Advanced Request exists for the other 5% - a field in the provider's API reference that no widget exposes, a request shape you're reproducing from the docs, or a job you want to construct as literal JSON because you're generating the node's parameters from something else.

The important thing: it does not let you point the pack somewhere new. You still pick a catalog model, the endpoint is still the catalog's endpoint, and the validation explicitly rejects attempts to override it - keys like base_url, endpoint, api_url, host and url_override are refused. This is "more direct control over the request body", not "an HTTP node".

How it works

Two required inputs:

  • model - a catalog model ID. This is what determines the endpoint, the parameter schema and the resulting media type.
  • arguments_json - a JSON object containing the model's request fields. {} is the default. A JSON array or malformed JSON raises a validation error.

Because there's no prompt socket on this node, the prompt lives in the JSON:

{
  "prompt": "Slow dolly-in on a rain-slicked street, neon reflections, 35mm",
  "resolution": "1080p",
  "duration": 5,
  "generate_audio": true
}

Optional inputs are the shared controls (request_mode, max_usd, auto_save, timeout) plus media sockets: image, video, audio, end_image, references. The media sockets appear only when the selected model's accepted media types call for them, same as the normal generators. Put your media on the sockets and let the pack convert, upload and map it - don't hand-write URL fields into the JSON, because the media mapping is what the upload flow fills in.

One genuinely nice detail: the {{ref:label}} alias resolution still applies here if your JSON has a prompt. Labels from a Reference Collector resolve to the model's documented tokens before upload, on the one endpoint that documents them.

The tradeoff, stated plainly

Validation is looser. Unknown keys are allowed through here, where a normal generator errors on them. That's the price of the flexibility - a typo'd key gets submitted and the provider decides what happens, rather than the node telling you at queue time. Similarly, per-field range and choice checks still apply to fields the catalog knows about, but anything outside that structure is on you and on the provider's API reference.

Which is precisely why the mode default matters. Keep request_mode at estimate_only for the first run: you get the full validation pass and a real credits/usd number with no paid request. Set a positive max_usd before you flip to generate, since 0 disables the limit outright.

Outputs

  • image and video - both native sockets, populated only for whichever one the selected model returns. An image model fills image; a video model fills video.
  • remote_urls - JSON text containing the provider result URLs. Note the plural: this is the one node that reports a list, matching the fact that it can front any model in the catalog.
  • request_id - empty on an estimate.
  • credits and usd - the provider's estimate, -1 when unavailable.
  • status - the JSON diagnostics blob: status, request ID, elapsed time, URLs, reference mapping, provider status when the provider supplies one.

Install

Manager: search PRYX ComfyUI Higgsfield, install, restart. Or:

cd ComfyUI/custom_nodes
git clone https://github.com/PRYX-STUDIO/pryx-comfyui-higgsfield.git pryx-comfyui-higgsfield
python -m pip install -r pryx-comfyui-higgsfield/requirements.txt

Windows portable: ..\python_embeded\python.exe -m pip install -r .\pryx-comfyui-higgsfield\requirements.txt. Install with the interpreter that runs ComfyUI - dropping dependencies into a different Python is the single most common way a custom-node pack "installs fine" and then fails to import. ComfyUI 0.35.0+, frontend 1.53.6+, Python 3.10–3.13; dependencies are higgsfield-client, httpx, jsonschema. Nothing to download into models/.

Credentials: Settings → PRYX ComfyUI Higgsfield → Credentials, one key-id:key-secret string, or HF_KEY / HF_API_KEY+HF_API_SECRET headlessly. Stored in ComfyUI's user directory, never written into the workflow - and worth a moment's thought, since this category of node is the one place where "it holds your key and calls a network endpoint by design" also describes a hostile node. Read a pack before trusting it with a paid credential; the request-safety details for this one are in the repo's SECURITY.md.

If your model ID looks misspelled, it might be - the catalog spells the Genjutsu pair higgsfiled-genjutsu-motion-transfer-v1-0 and ...object-swap-v1-0. Copy IDs out of the dropdown or the Model Catalog node's output rather than typing them.

CategoryPRYX/ComfyUI/Higgsfield

Inputs (11)

NameTypeDefaultDescription
modelCOMBOalibaba-happy-horse-image-to-videoCatalog model ID for an advanced request. The endpoint remains catalog-controlled.
arguments_jsonSTRING{}JSON object with catalog arguments. The API endpoint cannot be overridden.
request_modeoptCOMBOestimate_onlyEstimate cost without generating, or submit the paid generation request.
max_usdoptFLOAT0.000–10000Hard USD limit. Zero disables the limit; no generation is submitted above this value.
auto_saveoptBOOLEANtrueSave completed media in ComfyUI output; disable to keep it in the temporary directory.
timeoutoptFLOAT180010–7200Maximum local wait time in seconds. A timed-out remote generation is never submitted again.
imageoptIMAGEDirect image reference. The selected model defines whether it is required and the accepted limits.
videooptVIDEODirect video reference. The selected model defines whether it is required and the accepted limits.
audiooptAUDIODirect audio reference. The selected model defines whether it is required and the accepted limits.
referencesoptPRYX_HF_REFERENCESOrdered media references. The selected model defines accepted media types and limits.
end_imageoptIMAGEOptional final frame. Exactly one image; available only for models that support an end frame.

Outputs (7)

NameTypeDescription
imageIMAGE—
videoVIDEO—
remote_urlsSTRING—
request_idSTRING—
credits (-1 unavailable)FLOAT—
usd (-1 unavailable)FLOAT—
statusSTRING—