Nodes/PRYX ComfyUI Higgsfield/PRYX ComfyUI Higgsfield Image to Video
ComfyUI Node

PRYX ComfyUI Higgsfield Image to Video

Animate one still image with Kling, Seedance or Wan 3 — no checkpoints involved

By PRYX-STUDIO·Created 24 days ago·Updated 10 days ago· 2
PRYX ComfyUI Higgsfield Image to Video
  • image
  • audio
  • references
  • end_image
  • video
  • local_file
  • remote_url
  • request_id
  • credits (-1 unavailable)
  • usd (-1 unavailable)
  • status
◄modelalibaba-happy-horse-image-to-video►
◄seed-1►
◄duration5►
◄resolution720p►
◄aspect_ratioadaptive►
◄generate_audiotrue►
◄enable_thinkingfalse►
◄bitrate_modehigh►
◄modepro►
◄soundoff►
◄multi_shotsfalse►
◄multi_prompt►
◄cfg_scale0.50►
◄negative_prompt►
◄elements►
◄fps25►
◄camera_movementdolly_in►
◄aigc_watermarkfalse►
◄prompt_optimizertrue►
◄prompt_extendfalse►
◄prompt—►
◄request_modeestimate_only►
◄max_usd0.00►
◄auto_savetrue►
◄timeout1800►

You have a picture. You want it to move. Locally that means a 14B video model, a stack of quantized weights, twenty minutes of sampling and a clip still capped around five seconds. The Image to Video node is the other door: connect a still, write a prompt, get a clip from one of 22 documented Higgsfield endpoints - Kling 3.0 Standard/Pro/4K/Turbo, Kling 2.5 and 2.6, Seedance 2.0 and 2.5, Wan 3.0 and Wan 2.6/2.7, MiniMax H3 and Hailuo 2.3, LTX 2.5 fast and pro, PixVerse V6, Happy Horse.

Cost, though. Every one of those is a metered cloud call, and image-to-video is where the money actually goes. That's why this node defaults to estimate_only.

How it works

model picks the endpoint; the node then exposes that model's controls and its media sockets. Connect a native IMAGE - a Load Image, a local render, whatever - to image. Some models also take an explicit end_image (the Kling First/Last Frame variants, Seedance 2.0/2.5, Wan 3.0, MiniMax H3, LTX 2.5, PixVerse V6, Wan 2.7); the socket only appears when your selected model supports one, exactly one image.

The flow behind the canvas: validate inputs against the model's schema → upload any connected local media through Higgsfield's presigned upload flow → call the provider's estimate route → and only then, if request_mode is generate, submit the paid job and poll until it completes, with bounded retries and backoff, downloading the result into ComfyUI's output directory (or temp, if auto_save is off).

Polling is honest about its limits: progress events report phase and elapsed time, and the provider exposes no reliable percentage or ETA through this integration. A request that times out locally is never re-submitted - one deliberate generation, not two, which is the right call when each one costs money.

The inputs that matter

prompt is a connected input, not a text box - wire a Primitive/String or Config UI Prompt node into it. Then:

  • duration - the union of the models' allowed values shows as 5, 10, 6, 8, 15, with real ranges stretchier than that (some endpoints run to 30). Your model's actual set wins.
  • resolution and aspect_ratio - union lists again: 720p, 1080p, 480p, 4k, 2k, 2K, 360p, 540p, and ratios from 16:9 through adaptive and auto. adaptive is usually what you want for a still you didn't crop, since it follows the source frame.
  • seed - -1 omits it; the provider may ignore it even when set.
  • generate_audio / sound - whether the provider produces a soundtrack. Two fields because different models call it different things.
  • enable_thinking - reasoning mode on models that support it.
  • mode (std / pro / 4k) - this is the provider's quality tier, not billing. request_mode is the billing switch. Kling's README-era naming made this exact confusion common enough to be worth repeating.
  • bitrate_mode (standard / high), fps, camera_movement, negative_prompt, cfg_scale (0–1 here, per the catalog), aigc_watermark, prompt_optimizer, prompt_extend, elements (JSON), and multi_shots with multi_prompt - a JSON array of shot objects with prompt and duration, up to 6 items on models that support multi-shot.

audio and references sockets show up because some of these endpoints accept an audio track or ordered extra media. For several of them you simply don't get those sockets. Model limits are enforced before upload, and the status output carries the reference mapping after the run.

Outputs

video is a native VIDEO (or a local path fallback on ComfyUI builds without a wrapper - there's also local_file for that). remote_url is JSON text of the provider URL, useful for logging only. request_id is empty on estimates. credits and usd are the estimate, -1 when unavailable. status is the diagnostics blob: status, elapsed time, URLs, reference mapping, provider status.

In estimate_only the video output is intentionally empty. If you're staring at a blank output node, that's the first thing to check.

Install and credentials

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

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. ComfyUI 0.35.0+, frontend 1.53.6+, Python 3.10–3.13. Dependencies are higgsfield-client, httpx, jsonschema - nothing to download into models/, which is a nice change of pace.

Credentials go in Settings → PRYX ComfyUI Higgsfield → Credentials as one key-id:key-secret string, or HF_KEY / HF_API_KEY+HF_API_SECRET for headless. Stored locally; never a workflow value. Set max_usd positive before you flip to generate - zero means "no limit", which is not what most people mean.

When it goes wrong

A model missing from the dropdown is a capability or status filter, not an outage - refresh the catalog, restart, Ctrl+F5. Connected media rejected means the model wants a different media type, fewer items, or a specific source/end frame; run Reference Preview before blaming the node. And credentials validating does not guarantee the generation will: model availability, credits, content policy and duration limits are all provider-side, and the status output is where their answer lands.

CategoryPRYX/ComfyUI/Higgsfield

Inputs (29)

NameTypeDefaultDescription
modelCOMBOalibaba-happy-horse-image-to-videoCatalog model ID. Connect PRYX ComfyUI Higgsfield Model Catalog or choose a model from the dropdown.
seedoptINT-1-1–2147483647Optional deterministic seed. The provider may ignore it. Range: -1–2147483647. Use -1 to omit the seed and let the provider choose randomly.
durationoptCOMBO5Video duration in seconds. The selected model defines the valid range. Choices: 5, 10, 6, 8, 15 Range: 1–30.
resolutionoptCOMBO720pOutput resolution supported by the selected model. Choices: 720p, 1080p, 480p, 4k, 2k, 2K, 360p, 540p.
aspect_ratiooptCOMBOadaptiveOutput framing. Use the exact format shown in the choices. Choices: 16:9, 4:3, 1:1, 3:4, 9:16, adaptive, auto, 21:9.
generate_audiooptBOOLEANtrueSound
enable_thinkingoptBOOLEANfalseDeep Thinking
bitrate_modeoptCOMBOhighSelect the encoded video bitrate tier. Choices: standard, high.
modeoptCOMBOproProvider quality tier; separate from request_mode, which controls billing. Choices: std, pro, 4k.
soundoptCOMBOoffWhether the provider should generate a soundtrack. Choices: on, off.
multi_shotsoptBOOLEANfalseGenerate multiple shots when supported by the selected model.
multi_promptoptSTRINGJSON array of shot objects with prompt and duration; check the model limits. Items: 0–6. Enter valid JSON; leave blank to omit this optional field.
cfg_scaleoptFLOAT0.500–1How strongly the model follows the prompt. The catalog defines the valid range. Range: 0–1 Step: 0.01.
negative_promptoptSTRINGThings the model should avoid showing. Characters: 1–2048.
elementsoptSTRINGCatalog-defined model parameter. Enter valid JSON; leave blank to omit this optional field.
fpsoptCOMBO25Frames per second Choices: 24, 25, 48, 50.
camera_movementoptCOMBOdolly_inCamera motion preset supported by this model. Choices: dolly_in, dolly_out, dolly_left, dolly_right, jib_up, jib_down, static, focus_shift.
aigc_watermarkoptBOOLEANfalseInclude the provider's AI-generated-content watermark.
prompt_optimizeroptBOOLEANtrueProvider-specific prompt optimization setting.
prompt_extendoptBOOLEANfalseAllow the provider to expand the prompt.
promptoptSTRINGPrompt text. Connect a Config UI Prompt node for long prompts.
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.
imageoptIMAGEStart image. The selected model defines whether it is required.
audiooptAUDIODirect audio reference. The selected model defines whether it is required and the accepted limits.
referencesoptPRYX_HF_REFERENCESOptional ordered references; the selected model defines the limit.
end_imageoptIMAGEOptional last frame. Exactly one image; available only for models supporting end frames.

Outputs (7)

NameTypeDescription
videoVIDEO—
local_fileSTRING—
remote_urlSTRING—
request_idSTRING—
credits (-1 unavailable)FLOAT—
usd (-1 unavailable)FLOAT—
statusSTRING—