Video
Generate video from text or an image, extend, restyle, relight and upscale clips, and make faces talk or move with Nodaro's video tools for AI assistants.
The video tools let an assistant create and transform video in Nodaro: generate a clip from text or from an image, extend or restyle it, relight it, upscale it, and make a face talk or copy a movement. Each tool starts a job and returns its id, and the result is saved to your library. Every video tool needs the workflows:execute permission. Video jobs usually take 2 to 10 minutes.
| Tool | What it does |
|---|---|
generate_video | Text to video, with optional references |
animate_image | Image to video, with an optional end frame |
extend_video | Continues a clip forward in time |
modify_video | Restyles or edits a clip with a prompt |
relight_video | Relights a clip, or swaps its background, from its own pixels |
video_upscale | Upscales a clip |
lip_sync | Makes a face speak or sing an audio track |
speech_to_video | Animates a portrait to a speech clip |
motion_transfer | Copies the motion of a video onto a character image |
face_swap | Replaces a face in a video |
stop_video_pro, continue_video_pro | Stops or resumes a long Generate Video Pro run |
generate_video
Creates a video from a text prompt. It works like the Generate Video node.
Permission: workflows:execute. Credits: the price of the model, which most models set by duration and resolution. Check the model's pricing in list_models before you quote a cost.
| Parameter | Type | Notes |
|---|---|---|
prompt | string | The description of the video, up to 8,000 characters. Required unless a preset supplies it. |
model | string | The model id. Default seedance-2-fast. An unknown id falls back to the default. |
duration | number | Seconds. The nearest supported value is used. -1 lets Seedance 2 choose the length. |
aspect_ratio | string | For example 16:9, 9:16 or 1:1. Default 16:9. An unsupported value falls back. |
resolution | string | For example 480p, 720p, 1080p or 4k, depending on the model. Leave it out for the model's lowest resolution, which is its cheapest. |
sound | boolean | Generates sound, on models that can. |
negative_prompt | string | What to avoid, up to 8,000 characters. |
seed | integer | A fixed seed, on models that support it. |
reference_image_urls | array | Reference images for identity or style, as URLs or Nodaro ids. Each model has its own limit, for example 30 on Seedance 2.5, 9 on Seedance 2 and MiniMax Hailuo 3, 7 on Gemini Omni and 3 on VEO 3.1. Models without references ignore them. |
reference_video_urls | array | Reference videos for style or motion, on models that take them. |
reference_video_captions | array | What each reference video is for, in the same order, up to 500 characters each. Each caption becomes a line such as @video_1: … in the prompt. |
reference_audio_urls | array | Reference audio that drives the motion, on models that take it. |
presetId | string | A preset from list_node_presets. Fields you pass override it. |
structured | object | Structured details added to the prompt, as on generate_image. |
described_references | array | Up to 10 { name, description } entries for a subject you can name but have no picture of. |
connected_references, reference_order | array | Advanced. Labeled, ordered references in the editor's own format, up to 14. |
Returns: a job id. In clients with MCP Apps, the card plays the video when it is ready.
With Seedance, write a video with several moments as Shot 1: … Shot 2: …, use one camera move per shot, and describe the sound in the prompt. get_node_skill with generate-video returns the prompting rules of each model family.
A reference video tells the model to copy something from the clip. Say what it is for in reference_video_captions. For example, a grey clay render of a 3D scene is a layout guide, not a look; without a caption, the model may copy the grey clay look too.
Model notes
| Model | What to know |
|---|---|
Seedance 2 (seedance-2) | Accepts resolution: "4k" and aspect_ratio: "adaptive" or "21:9". |
Seedance 2 Fast and Mini (seedance-2-fast, seedance-2-mini) | 480p and 720p only. |
Seedance 2.5 (seedance-2-5) | 480p, 720p or 1080p, and up to 30 seconds in one call. Up to 30 reference images, 10 videos and 10 audio clips. |
MiniMax Hailuo 3 (minimax-h3) | Up to 9 reference images, 3 videos and 3 audio clips. resolution is 2K (default) or the cheaper 768P, and audio is always on. A text-only video needs a concrete aspect ratio. Reference videos are 2 to 15 seconds each, 15 seconds in total, and reference audio must come with an image or video reference. |
Wan 3.0 (wan-3, wan-3-prime) | Up to 10 reference images, 5 videos and 5 audio clips, each clip 1 to 15 seconds and 15 seconds in total per type. duration is 2 to 30 seconds, default 5. resolution is 480p, 720p or 1080p. wan-3-prime is faster and costs more. |
Gemini Omni Flash (gemini-omni-flash) | The cheaper, faster version of Gemini Omni. duration is 4, 6, 8 or 10 seconds, default 8. aspect_ratio is 16:9 or 9:16. resolution is 720p, 1080p or 4k. |
VEO 3.1 Quality (veo3) | Has no reference mode; use VEO 3.1 Fast or Lite for references. |
On Seedance 2, MiniMax Hailuo 3 and Wan 3.0, a start or end frame passed together with references becomes one more reference image, described in the prompt as the opening or closing frame. On Seedance, reference videos are billed by the input duration plus the output duration, so longer reference clips reserve more credits.
animate_image
Animates a still image into a video. Pass an end frame too, and the video moves from the first picture to the second. It works like the image-to-video mode of Generate Video.
Permission: workflows:execute. Credits: the price of the model.
| Parameter | Type | Notes |
|---|---|---|
image_url or image_asset_id | string | The first frame. |
end_frame_url or end_frame_asset_id | string | The last frame. Choose a model whose features in list_models include end-frame. |
prompt | string | What happens in the video, up to 8,000 characters. |
model | string | Default seedance-2-fast. An unknown id falls back to the default. |
duration, aspect_ratio, resolution, sound | As on generate_video. | |
reference_image_urls, reference_video_urls, reference_audio_urls | array | References at each model's own limits, for example 30 images on Seedance 2.5, 9 on Seedance 2 and MiniMax Hailuo 3, and 7 on Gemini Omni, Kling 3 Omni and Grok. |
loop_trim | object | Trims the result to its cleanest loop point: enabled, frames_to_test (1 to 64), and quality, lossless or precise. |
described_references, connected_references, reference_order | array | As on generate_video. |
The tool chooses the mode from what you pass: frames (a first and an optional last frame) or references. Reference videos and audio cannot be combined with an end frame. For a seamless loop, use the same image as the first and the last frame, turn sound off, then join the copies with combine_videos and add sound with merge_video_audio.
Returns: a job id.
extend_video
Continues a clip forward in time. Choose the model first: two models continue a video they generated, and one extends any video.
Permission: workflows:execute. Credits: the price of the extension model.
| Model | Maker | Modes | Credits | Details |
|---|---|---|---|---|
| Seedance 2 Extend | Bytedance | Video extension | from 260 | Extend ANY video: generates the continuation (audio included) and trim-stitches it into one seamless clip. |
| VEO Extend | Video extension | from 190 | Extend an existing VEO 3.1 clip by another segment. | |
| Runway Extend | Runway | Video extension | 320 | Extend a Runway video by another clip. |
| Parameter | Type | Notes |
|---|---|---|
model | string | Required. seedance-2-extend, veo-extend or runway-extend. |
prompt | string | Required. What happens next, up to 8,000 characters. With seedance-2-extend, describe only the continuation. |
video_url or video_asset_id | string | seedance-2-extend only: the video to extend, from any source. |
kie_task_id | string | veo-extend and runway-extend only: the task id of the earlier VEO or Runway generation, from its job output. |
duration | integer | seedance-2-extend: seconds to add, from 4 to 15. Default 8. |
generate_audio | boolean | seedance-2-extend: continues the soundtrack. Default true. |
resolution | string | seedance-2-extend: 480p, 720p (default), 1080p or 4k. Match the source for the cleanest join. |
reference_image_urls | array | seedance-2-extend: up to 8 reference images, named @image_1 to @image_8 in the prompt in list order. |
veo_quality | string | veo-extend: fast or quality. |
runway_resolution | string | runway-extend: 720p or 1080p. |
seed | integer | From 10,000 to 99,999. |
Returns: a job id. seedance-2-extend generates what happens next, with audio, and joins it to the source in one clip.
modify_video
Restyles or edits an existing clip with a prompt. It works like the Video to Video node.
Permission: workflows:execute. Credits: the price of the model.
| Parameter | Type | Notes |
|---|---|---|
prompt | string | Required. The change, up to 8,000 characters. |
video_url or video_asset_id | string | Required, one of the two. The source clip. |
model | string | wan (default, Wan 2.6, the general choice), wan-flash, wan-videoedit, luma-modify, runway-aleph, happyhorse-edit or seedance-2-5. An unknown id falls back to wan. |
duration | string | Wan and Wan Flash: 5 or 10 seconds. |
resolution | string | Wan and Wan Flash: 720p or 1080p. Seedance 2.5: 480p to 1080p. |
aspect_ratio | string | Runway Aleph only: 16:9, 9:16, 4:3, 3:4, 1:1 or 21:9. |
audio | boolean | Wan Flash only: keeps or regenerates the audio. |
multi_shots | boolean | Wan Flash only: allows scene changes within the clip. |
reference_image_url | string | Runway Aleph only: a style reference image. |
reference_image_urls | array | Seedance 2.5 only: up to 30 images, cited in the prompt as {image:1}, {image:2} and so on. |
seed | integer | A fixed seed. |
With seedance-2-5, the prompt is an instruction that edits the whole clip. The result keeps the source's length and aspect ratio, and the clip must be 4 to 30 seconds long. It is billed like a Seedance 2.5 run with a reference video: input seconds plus output seconds, reserved for the longest clip and settled to the delivered length.
Returns: a job id.
relight_video
Relights a clip, swaps or restyles its background, or composites new elements, using the source video's own pixels. It runs Beeble SwitchX and works like the Relight & Switch node.
Permission: workflows:execute. Credits: set by the number of frames and the output resolution.
| Parameter | Type | Notes |
|---|---|---|
video_url or video_asset_id | string | The source clip: at most 240 frames and 2,770,000 pixels per frame. |
prompt | string | The new lighting or look, up to 2,000 characters. Pass a prompt, a reference image, or both. |
reference_image_url | string | A reference image for the new look. Strongly recommended. |
alpha_mode | string | auto (default) masks the main subject. fill restyles the whole frame. select uses mask_url as one keyframe mask. custom uses mask_url as a mask video for every frame. |
mask_url | string | Required for select and custom. |
alpha_keyframe_index | integer | For select: the frame, counted from 0, that the mask describes. |
max_resolution | string | 720 or 1080 (default). |
seed | integer | A fixed seed. |
Returns: a job id. Results carry a SwitchX attribution.
video_upscale
Upscales a clip to a higher resolution. It works like the Upscale Video node.
Permission: workflows:execute. Credits: the price of the upscale model.
| Model | Maker | Modes | Credits | Details |
|---|---|---|---|---|
| Topaz Video Upscale | Topaz | Video upscaling | 190 | High-quality video upscale and enhancement. |
| VEO 1080p Upscale | Video upscaling | 20 | Upscale VEO output to 1080p. | |
| VEO 4K Upscale | Video upscaling | 380 | Upscale VEO output to 4K. |
| Parameter | Type | Notes |
|---|---|---|
model | string | topaz (default), veo-1080p or veo-4k. |
video_url or video_asset_id | string | Required for topaz. |
upscale_factor | string | For topaz: 1, 2 or 4. Default 2. |
kie_task_id | string | Required for veo-1080p and veo-4k: the task id of the original VEO generation. |
Returns: a job id.
lip_sync
Makes a face speak or sing an audio track: a portrait becomes a talking head, or the mouth in an existing clip follows new audio. It works like the Lip Sync node.
Permission: workflows:execute. Credits: the price of the model. The tool's model description lists each model's price.
| Parameter | Type | Notes |
|---|---|---|
image_url or image_asset_id | string | A portrait. Use it for kling-avatar, kling-avatar-pro and infinitalk. |
video_url or video_asset_id | string | A clip of the face, for the models that re-drive an existing video, such as latentsync and video-retalking. |
audio_url or audio_asset_id | string | The speech or song. |
model | string | Default kling-avatar, a 720p talking head. Others include kling-avatar-pro, infinitalk, omnihuman-1-5, latentsync, wav2lip, video-retalking, sadtalker, heygen-lipsync-precision, lipsync-2-pro, sync-lipsync-v3, volcengine-lipsync, the Seedance 2 family and minimax-h3. An unknown id falls back to kling-avatar. |
prompt | string | A hint for the performance, such as a confident TED speaker, up to 500 characters. Some models use it. |
resolution | string | InfiniTalk: 480p or 720p. Seedance 2 and 2 Fast: 480p, 720p or 1080p. OmniHuman 1.5: 720p or 1080p (default). |
seed, fast_mode | OmniHuman 1.5 only: a fixed seed, and a faster mode with slightly lower quality. | |
mode | string | Volcengine only: lite (default, one person facing the camera) or basic (complex scenes). |
open_scenedet, separate_vocal, align_audio, align_audio_reverse, templ_start_seconds | Volcengine only: speaker detection for several speakers, noise removal from the audio, looping the source video to the audio length, and the start time in the source. |
get_node_skill with lip-sync explains which model fits singing, dubbing, cinematic full-body shots or the cheapest draft.
| Model | Maker | Modes | Credits | Details |
|---|---|---|---|---|
| minimax-h3 | MiniMax | Image to video, Text to video | from 230 | MiniMax Hailuo 3 — premium multimodal tier: first/last frame + image/video/audio references, native audio, 2K (default) or 768P output, 4-15s per-second pricing. |
| Kling Avatar Standard | Kuaishou | Lip sync | 280 | Lip-sync a still portrait to driving audio. Standard quality. |
| Kling Avatar Pro | Kuaishou | Lip sync | 560 | Premium lip-sync — better mouth shape and timing. |
| Seedance 2 | Bytedance | Image to video, Text to video | from 230 | Seedance 2 — premium tier with native audio. Per-second pricing by resolution. |
| Seedance 2 Fast | Bytedance | Image to video, Text to video | from 180 | Cheaper / quicker Seedance 2 tier. |
| Seedance 2 Mini | Bytedance | Image to video, Text to video | from 120 | Budget Seedance 2 tier — 480p/720p only, per-second pricing by resolution. |
| Seedance 2.5 | Bytedance | Image to video, Text to video | from 340 | Seedance 2.5 — up to 30s in one shot, native audio, wide multimodal references. 480p/720p/1080p. |
| OmniHuman 1.5 | Bytedance | Lip sync | from 1020 | Premium prompt-directed talking avatar from a still image + audio. 720p / 1080p, up to 60s. People, pets, anime. |
| InfiniTalk | InfiniTalk | Lip sync | from 110 | Audio-driven talking-head from a still image. 480p / 720p. |
| Sync Lipsync v3 | Sync | Lip sync | from 1000 | Dub existing footage — re-syncs lips to a new audio track. Video input, billed per second. |
| Volcengine Lip Sync | Volcengine | Lip sync | from 300 | Video-to-video AI dubbing — re-syncs lips to a new vocal track. Multi-speaker (scene detection + speaker ID) in basic mode. Video input, billed per second. |
Returns: a job id. The card plays the video when it is ready.
speech_to_video
Animates a portrait so it speaks an audio clip, with the face lip-synced and the head and body moving. It runs Wan Speech to Video and works like the Speech to Video node.
Permission: workflows:execute. Credits: from 30 to 60.
| Parameter | Type | Notes |
|---|---|---|
prompt | string | Required. The motion and the scene, up to 2,500 characters. |
image_url or image_asset_id | string | The portrait. |
audio_url or audio_asset_id | string | The speech. |
resolution | string | 480p (default), 580p or 720p. |
negative_prompt | string | What to avoid, up to 2,500 characters. |
Returns: a job id.
motion_transfer
Copies the motion of a driving video onto a character image, so the character performs the same movement. It works like the Motion Transfer node.
Permission: workflows:execute. Credits: the price of the model and duration.
| Parameter | Type | Notes |
|---|---|---|
image_url or image_asset_id | string | Required. The character. |
video_url or video_asset_id | string | Required. The video whose motion is copied. |
prompt | string | The result you want, up to 8,000 characters. |
provider | string | The model. Default kling. |
resolution | string | 480p, 580p, 720p (default) or 1080p. |
character_orientation | string | Whose framing wins: image (default) or video. |
background_source | string | Which input gives the background: input_video or input_image, on models that support it. |
video_duration | number | The output length, from 1 to 60 seconds, on models that support it. |
Returns: a job id.
face_swap
Replaces the face in a video with the face from a portrait. It works like the Face Swap node.
Permission: workflows:execute. Credits: 130.
| Parameter | Type | Notes |
|---|---|---|
video_url or video_asset_id | string | The source video. |
face_image_url or face_image_asset_id | string | The portrait whose face is used. |
Returns: a job id.
stop_video_pro
Stops a running Generate Video Pro job, the engine that makes long videos in segments, for example from a workflow with the Generate Video Pro node. The segment in progress is abandoned but still billed, the remaining segments are skipped, and every finished segment is joined into the job's final video. The rest of the reserved credits is refunded. A job that has not started yet is cancelled with a full refund.
Permission: workflows:execute. Credits: free; the unused reserve is refunded.
| Parameter | Type | Notes |
|---|---|---|
job_id | string | Required. The Generate Video Pro job. |
Returns: a confirmation. Poll the job with get_job: it completes with output_data.pro.stopped set to true and the partial video as its result.
continue_video_pro
Continues a stopped, failed or completed Generate Video Pro run as a new job. Segments before from_segment are reused, and every segment from it on is generated again. A failed run needs at least one delivered segment.
Permission: workflows:execute. Credits: only the segments generated again, plus the flat Generate Video Pro fee.
| Parameter | Type | Notes |
|---|---|---|
job_id | string | Required. The original Generate Video Pro job. |
from_segment | integer | The first segment to generate again, counted from 1, up to 24. Default: the first missing segment. Pass an earlier one to redo the end of a completed run. |
Returns: the new job id.
Frequently asked questions
Related
Generate Video
Lip Sync
Video editing
Image
Video models
Last updated on
Image
Generate, transform, edit, mask, composite and describe images from an AI assistant with the Nodaro image tools, their parameters, defaults and credits.
Video editing
Trim, join, loop, caption, overlay and assemble video from an AI assistant with Nodaro's editing tools, several of which run without AI and cost no credits.