Higgsfield - Custom Model (Advanced)
Point it at any endpoint you can read the docs for
- references
- result
- request_id
The pack ships six verified presets: two image routes, four Seedance video routes. Higgsfield's catalog is bigger than six. HFAdvancedGenerate is the escape hatch - give it a model ID and a request body copied straight out of that model's API reference, and it will run the same submit-poll-download lifecycle the preset nodes use. It's the node for "the route I want exists, nobody wired it up."
It's also the node most likely to waste your credits, because it validates almost nothing about the payload - it can check that your JSON is well-formed, not that this model wants duration rather than seconds. You get coverage; you own the schema.
How it works
You fill in two fields. model_id is the route path from the Higgsfield catalog - the shape the node accepts is vendor/model-name/action, like bytedance/seedance-2.5/text-to-video or marketing-studio/image/sunburst. URLs are rejected outright, as are the API's internal requests/ and files/ paths; this is a generation endpoint field, not a general HTTP fetcher, which is a nice small piece of hardening.
parameters_json is that route's request body, as a JSON object. Before anything is sent, the node parses it (rejecting NaN/Infinity and anything that isn't a non-empty object) and then walks every string value looking for placeholders: $ref1, $ref2, and so on. A placeholder has to be the entire string value, not part of a longer URL - the field is swapped wholesale once the reference is uploaded. Empty the field of references and those placeholders go to the API as literal "$ref1" text, which is a 422 with your credits intact if you're lucky. Every reference you connected must appear in the body somewhere, or the node stops before submitting.
The README's worked example:
{
"prompt": "Combine the subject from the first image with the setting of the second image.",
"image_urls": ["$ref1", "$ref2"],
"resolution": "2k",
"aspect_ratio": "auto",
"quality": "high",
"enhance_prompt": false
}
Then generation_id (your local take label - change it for a new paid generation, keep it to resume or reuse) and timeout_seconds (30–7200, default 1800, the local patience budget) behave exactly as on the preset nodes. references takes the same HF_REFERENCES chain from Reference Images or Reference File.
Outputs: result, which is an HF_RESULT - a bundle of the saved files plus the request metadata, not images. Feed it into Result Images or Result Video to get something a normal node understands. request_id comes out alongside it and is the handle you paste into Resume Request later.
Install
The whole pack, once:
cd ComfyUI/custom_nodes
git clone https://github.com/w0ver/Higgsfield-api-comfyui-nodes ComfyUI-Higgsfield
Restart, then look under Higgsfield/Advanced, or install via ComfyUI Manager by searching "Higgsfield". requirements.txt is one line of requests, so there's no model download and no compile step in your future. Credentials are the real setup and they're shared with every other node here: Configure API.bat on Windows, or HF_API_KEY_ID + HF_API_KEY_SECRET exported to the ComfyUI backend on anything else (a .env file is not read automatically).
Where people get burned
- Copy the body from the docs, not from a memory of the preset node. The advanced node doesn't map friendly dropdown values to API fields for you;
resolution,duration,aspect_ratioand friends have to be exactly what that route documents. - Model not available on your account shows up as HTTP 403, 404, 423 or 503 - the pack's own notes cover all four: access, model access, temporarily blocked, and disabled/not ready. Nothing about your JSON will fix those.
- HTTP 422 is the generic "this model didn't like those fields" and it's the one you'll see most. Cut the body down to the required fields first, get one result, then add the optional knobs back one at a time.
- A network hiccup on the POST looks like a plain failure but isn't always one. The pack deliberately refuses to replay a submission whose outcome is unknown, to avoid generating (and billing) twice. If you're unsure, check the Higgsfield console before changing
generation_id. - No output media - the node raises "Completed response has no image/video outputs," which usually means the route returns something other than the two media shapes this pack can save. Audio-only and 3D output are explicitly outside its scope.
- Don't throw away
ComfyUI/user/__higgsfield/. That folder holds the credential, the request database and the dedupe record. Delete it and every piece of recovery behaviour in the pack stops working.
Inputs (5)
| Name | Type | Default | Description |
|---|---|---|---|
| model_id | STRING | bytedance/seedance-2.0/text-to-video | — |
| parameters_json | STRING | {"prompt":"A cinematic coastal road","resolution":"720p","duration":5,"aspect_ratio":"16:9","generate_audio":true} | — |
| generation_id | STRING | take-1 | Change for a NEW paid generation. Keep unchanged to resume/reuse a result. |
| timeout_seconds | INT | 180030–7200 | — |
| referencesopt | HF_REFERENCES | — |
Outputs (2)
| Name | Type | Description |
|---|---|---|
| result | HF_RESULT | — |
| request_id | STRING | — |