Nodes/KIE.ai Nodes Next/Hailuo Standard Image to Video
ComfyUI Node

Hailuo Standard Image to Video

6 or 10 seconds, 768P or 512P, and a default you should change

By felipederosilva·Created about a month ago·Updated a day ago· 3
Hailuo Standard Image to Video
  • image_url
  • end_image_url
  • video
  • url
  • all_urls_json
  • task_id
  • raw_json
  • credits_consumed
  • credits_left
◄promptEpic aerial shot: A lone samurai stands atop a jagged mountain peak as a storm of sakura petals is swept across the wind. Behind him, the sky is split in two — half daylight, half night. The shot pulls back to reveal that the mountain is actually the curved back of a sleeping dragon that spans across the horizon. Lightning crackles in the distance as the dragon's eye slowly opens, glowing with ancient magic. The samurai doesn’t flinch; he lowers his straw hat and places his hand on the hilt of his blade.►
◄duration10►
◄resolution768P►
◄prompt_optimizertrue►
◄nsfw_checkerfalse►
◄timeout_seconds1200►
◄callback_url►

What it is

The cheaper, more configurable half of the Hailuo 02 image-to-video pair, at KIE Next / Video / Hailuo. Same idea as the Pro node - a still plus a motion prompt, optionally an end frame - but here you get to pick duration and resolution, which the Pro tier doesn't expose.

This is the one to draft with. Six seconds at 512P costs a fraction of a Pro render, and motion is the part of a shot you need to see before you commit; composition you can already judge from your still. Once the take works, re-render at the higher setting or move up to Pro.

How it works

Both image sockets are uploaded to KIE (PNG, 10MB documented limit per file), the URLs go into the create-task request with the prompt, duration, resolution and optimizer flag, and the node polls until the video is ready. Then it downloads the MP4 and hands it back as a native ComfyUI VIDEO. Everything is server-side; your machine uploads two images and waits.

The inputs

  • image_url (required) - the first frame, and per KIE's docs the frame your clip's motion starts from.
  • end_image_url (required as this node is built) - the last frame. The vendor documents it as optional, the node lists it as required, so connect something or the run won't validate. Reusing the start image gives you a clip that returns to where it began, which is a perfectly respectable loop.
  • prompt (required) - up to 1500 characters of motion description.
  • duration - 10 (default) or 6 seconds. The default is the longer, pricier one; flip it to 6 while you're iterating.
  • resolution - 768P (default) or 512P. Note the units: these are Hailuo's own tiers, not the 480p/720p/1080p scale the Grok nodes use, so don't go looking for a 1080p option that isn't there.
  • prompt_optimizer - true by default. On, the service rewrites your prompt for the model; off, it uses your words as written. If you've dialled in a prompt and the output keeps drifting, this is the switch to flip.
  • nsfw_checker - false by default, with the provider's own caveat attached: filtering off means results come back as produced, with no guarantee anything is removed.
  • timeout_seconds (1200) and callback_url - leave the callback empty for normal ComfyUI use.

Outputs

video is your clip. url is the primary result URL and all_urls_json is every URL the task returned; task_id is the handle you'd wire into anything downstream - the pack's task-detail utility, or an extend/upscale node if the model family supports it; raw_json is the full provider response, the first thing to read when a task fails; and credits_consumed / credits_left give you cost and balance, both also drawn on the node after each successful run.

Install

Manager → search KIE.ai Nodes Next, or the manual route:

cd ComfyUI/custom_nodes
git clone https://github.com/felipederosilva/ComfyUI-KIE-Nodes-Next
python -m pip install -r ComfyUI-KIE-Nodes-Next/requirements.txt

Four light dependencies (requests, Pillow, numpy, PyYAML) and no model weights - the model isn't on your machine. Restart ComfyUI, then complete the one-time key setup at Settings → KIE.ai Nodes Next → Connection: the key is validated against KIE before saving, stored backend-side, and rendered afterwards as a masked fingerprint only. KIE_API_KEY works for servers. The pack builds its node menu from KIE's API docs index on first launch and re-checks it roughly daily, with one frontend reload during that initial sync.

Gotchas

  • Both frame sockets need something in them. The schema marks the end frame required even though the vendor doesn't. This is the most common "why won't it queue" in this folder.
  • The defaults are the expensive ones. 10 seconds at 768P is the setting you'd choose for a keeper, not for test number four.
  • 1500-character prompt cap, and the optimizer may rewrite it anyway.
  • 512P is genuinely soft. Fine for judging motion; not something you'd publish.
  • Current ComfyUI required for the VIDEO output - the pack raises an explicit update-ComfyUI error on old builds.
  • No key → No KIE API key configured. Settings step, one time.
CategoryKIE Next/Video/Hailuo

Inputs (9)

NameTypeDefaultDescription
promptSTRINGEpic aerial shot: A lone samurai stands atop a jagged mountain peak as a storm of sakura petals is swept across the wind. Behind him, the sky is split in two — half daylight, half night. The shot pulls back to reveal that the mountain is actually the curved back of a sleeping dragon that spans across the horizon. Lightning crackles in the distance as the dragon's eye slowly opens, glowing with ancient magic. The samurai doesn’t flinch; he lowers his straw hat and places his hand on the hilt of his blade.The text prompt describing the video to generate (Max length: 1500 characters)
image_urlIMAGE—
end_image_urlIMAGE—
durationoptCOMBO10The duration of the video in seconds. 10 seconds videos are not supported for 1080p resolution.
resolutionoptCOMBO768PThe resolution of the generated video.
prompt_optimizeroptBOOLEANtrueWhether to use the model's prompt optimizer (Boolean value (true/false))
nsfw_checkeroptBOOLEANfalseDefaults to false. You can set it to false based on your needs. If set to false, our content filtering will be disabled, and all results will be returned directly by the model itself. Note: There is no guarantee that everything can be filtered out; if you are not satisfied with the results, you will need to make your own arrangements.
timeout_secondsoptINT120030–7200—
callback_urloptSTRINGOptional KIE callback URL. Leave empty for normal ComfyUI use.

Outputs (7)

NameTypeDescription
videoVIDEO—
urlSTRING—
all_urls_jsonSTRING—
task_idSTRING—
raw_jsonSTRING—
credits_consumedFLOAT—
credits_leftFLOAT—