PRYX ComfyUI Higgsfield Advanced Request
The escape hatch for when the widgets don't cover the endpoint
- image
- video
- audio
- references
- end_image
- image
- video
- remote_urls
- request_id
- credits (-1 unavailable)
- usd (-1 unavailable)
- status
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
imageandvideo- both native sockets, populated only for whichever one the selected model returns. An image model fillsimage; a video model fillsvideo.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.creditsandusd- the provider's estimate,-1when 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.
Inputs (11)
| Name | Type | Default | Description |
|---|---|---|---|
| model | COMBO | alibaba-happy-horse-image-to-video | Catalog model ID for an advanced request. The endpoint remains catalog-controlled. |
| arguments_json | STRING | {} | JSON object with catalog arguments. The API endpoint cannot be overridden. |
| request_modeopt | COMBO | estimate_only | Estimate cost without generating, or submit the paid generation request. |
| max_usdopt | FLOAT | 0.000–10000 | Hard USD limit. Zero disables the limit; no generation is submitted above this value. |
| auto_saveopt | BOOLEAN | true | Save completed media in ComfyUI output; disable to keep it in the temporary directory. |
| timeoutopt | FLOAT | 180010–7200 | Maximum local wait time in seconds. A timed-out remote generation is never submitted again. |
| imageopt | IMAGE | Direct image reference. The selected model defines whether it is required and the accepted limits. | |
| videoopt | VIDEO | Direct video reference. The selected model defines whether it is required and the accepted limits. | |
| audioopt | AUDIO | Direct audio reference. The selected model defines whether it is required and the accepted limits. | |
| referencesopt | PRYX_HF_REFERENCES | Ordered media references. The selected model defines accepted media types and limits. | |
| end_imageopt | IMAGE | Optional final frame. Exactly one image; available only for models that support an end frame. |
Outputs (7)
| Name | Type | Description |
|---|---|---|
| image | IMAGE | — |
| video | VIDEO | — |
| remote_urls | STRING | — |
| request_id | STRING | — |
| credits (-1 unavailable) | FLOAT | — |
| usd (-1 unavailable) | FLOAT | — |
| status | STRING | — |