Nodes/ComfyUI_AgnesAI_Nodes/🎬 Agnes Image-to-Video
ComfyUI Node

🎬 Agnes Image-to-Video

Animate Any Image by Handing Its URL to Agnes

By Watchcats211·Created 3 months ago·Updated 3 months ago· 2
🎬 Agnes Image-to-Video
  • config
  • images
  • audio
  • url
image_url
promptThe scene comes to life with gentle motion, clouds drifting, water flowing
duration5.0s (121 frames)
frame_rate24
negative_promptblurry, low quality, distorted, deformed
seed-1
num_inference_steps30

Turn a still image into a moving one - clouds drifting, water flowing, a portrait glancing up - without running a single video diffusion pass on your machine. Agnes_Image2Video is the pack's chain-closer: give it a public image URL plus a motion prompt, and it returns the finished clip as ComfyUI frames, the extracted audio, and the original video URL.

The catch is right there in the input: image_url has to be a public URL. The Agnes API can't see your local files. That's why the pack also ships Agnes_ImageToURL (uploads a local image and returns a URL) and why Agnes_Text2Image returns a url output alongside its IMAGE - this node is designed to sit at the end of either chain:

LoadImage → Agnes_ImageToURL → Agnes_Image2Video → VHS_VideoCombine
Agnes_Text2Image → [url] → Agnes_Image2Video → VHS_VideoCombine

How it works

This is an async cloud job wearing a synchronous face. The node POSTs to {base_url}/videos with the model agnes-video-v2.0, the image URL, prompt, a num_frames parsed from the duration preset, frame_rate, and num_inference_steps. The API answers with a task ID, and the node then polls {base_url}/videos/{task_id} every ten seconds until the job completes - up to a hard 15-minute ceiling. When it lands, the node downloads the mp4 into ComfyUI's output/ directory, decodes every frame with OpenCV into a [N, H, W, C] tensor batch, and extracts the audio track into the AUDIO format that VideoHelperSuite (VHS) understands.

In plain terms: the node will freeze your graph for minutes while the video cooks. That's normal. It's a cloud queue, not a local sampler.

The inputs that matter

  • config - from Agnes_Config.
  • image_url - must start with http. Connect Agnes_Text2Image's url or Agnes_ImageToURL's output, or paste a hosted URL.
  • prompt - describe the motion, not the scene. The default ("clouds drifting, water flowing") is a fine starting point; your job is to say what should move and how.
  • duration - five presets from 3.4s (81 frames) to 13.4s (321 frames). The frame counts follow the 8n+1 pattern video models like, and the node enforces it.
  • frame_rate - 12 to 60, default 24.

Optional: negative_prompt (defaults to a generic "blurry, low quality" list), seed (-1 = random), and num_inference_steps (10–100, default 30 - more steps, better quality, slower).

Install

Same pack, same ritual - ComfyUI Manager or:

cd ~/ComfyUI/custom_nodes
git clone https://github.com/Watchcats211/ComfyUI_AgnesAI_Nodes.git

Restart, and you'll also want ComfyUI-VideoHelperSuite installed, because that's how you turn the images + audio outputs into a previewable mp4 inside ComfyUI. The node itself depends on torch, numpy, opencv-python (for frame decoding), and optionally imageio-ffmpeg as a fallback for audio extraction - all things a normal ComfyUI already has or can get easily.

Common issues

  • Blank video out. If image_url is empty or doesn't start with http, the node skips gracefully and returns an empty 64×64 frame batch plus empty audio. A missing or expired upload from Agnes_ImageToURL produces exactly this - watch the console for "[Agnes] Image-to-Video skipped".
  • "It's frozen, is it hung?" Probably not. Check the console: it prints [Agnes] [elapsed] status (progress%) while polling. If a 13.4s clip is grinding, that's a cloud queue with a long line.
  • No audio track. Some generated clips come back silent. The node's audio extraction handles it - it just prints that no audio was found and returns a placeholder.
  • It costs money/credits per clip. Unlike a local model, every run spends your Agnes balance. A 321-frame clip is the expensive end of the range; don't treat the longest duration as the default.

That last point is the real personality of this node: it's convenience, not ownership. You trade local control and free re-runs for never downloading a video model. For one-off animating of a nice image, that's a fair swap - and the pack gives you every piece of the chain to make it painless.

CategoryAgnesAI

Inputs (8)

NameTypeDefaultDescription
configAGNES_CONFIGAgnes configuration from Agnes_Config node
image_urlSTRINGPublic image URL. Connect from Agnes_Text2Image's 'url' output, or paste a URL.
promptSTRINGThe scene comes to life with gentle motion, clouds drifting, water flowingDescribe the motion you want in the video
durationCOMBO5.0s (121 frames)Video duration
frame_rateINT2412–60Frames per second
negative_promptoptSTRINGblurry, low quality, distorted, deformedWhat to avoid in the video
seedoptINT-1-1–2147483647Random seed (-1 for random)
num_inference_stepsoptINT3010–100Inference steps (more = better quality, slower)

Outputs (3)

NameTypeDescription
imagesIMAGE
audioAUDIO
urlSTRING