Nodes/arkennemasis - ChatGPT / Codex / fal AI nodes/arkennemasis fal · Seedance 2.5 Reference to Video · $0.22-1.16/s
ComfyUI Node

arkennemasis fal · Seedance 2.5 Reference to Video · $0.22-1.16/s

Lock a character across shots with Seedance's reference-to-video

By Hishamahmer·Created 3 months ago·Updated 9 days ago· 11
arkennemasis fal · Seedance 2.5 Reference to Video · $0.22-1.16/s
  • image_1
  • image_2
  • image_3
  • image_4
  • image_5
  • image_6
  • video_1
  • video_2
  • video_3
  • audio_1
  • audio_2
  • audio_3
  • video
  • video_path
  • seed
  • draft_id
  • info
◄prompt►
◄taskreference►
◄resolution720p►
◄draftfalse►
◄durationauto►
◄aspect_ratioauto►
◄generate_audiotrue►
◄bitrate_modestandard►
◄codecauto►
◄seed-1►
◄max_cost_usd20.0►
◄reuse_identical_runtrue►
◄extra_json►
◄max_concurrent1►

Character consistency is the hard problem in generated video, and it's the reason this node exists next to the plain image-to-video one. Instead of one starting frame, you feed Seedance a library: reference images it refers to as @Image1, @Image2, reference videos as @Video1, reference audio as @Audio1. The model locks the character, the set and the palette, and the prompt tells it what to do with them.

ArkFal_bytedance_seedance_2_5_reference_to_video is the multimodal endpoint of Seedance 2.5, still API-only like the rest of ByteDance's flagship line - its open releases are accelerators and adapters, never the generator. Pricing is per second of output: $0.22 at 480p, $0.47 at 720p, $1.16 at 1080p, with a discount when video references are involved.

What you set

  • task - the important one, default reference. reference uses your media as guidance. editing modifies a reference video and automatically coerces aspect_ratio and duration to auto. extension continues a reference video and coerces aspect_ratio to auto. That coercion is silent - if you set a duration and then wonder why it was ignored, this is why. Different jobs, same node.
  • image_1 … image_6 - up to 30 images total, each under 30MB, JPG/PNG/WebP/BMP/TIFF/GIF/HEIC. Reference them in the prompt as @Image1, @Image2. Each socket can carry a batch, so six sockets is more room than it looks.
  • video_1 … video_3 - up to 10 reference videos, MP4/MOV, each 1.8–30.2 seconds and under 200MB, with a combined duration under 30.2 seconds. Referred to as @Video1.
  • audio_1 … audio_3 - up to 10 files, MP3/WAV, same 1.8–30.2 second window, 15MB each. @Audio1.
  • Total files across all three modalities: 50, which is the real ceiling to plan against.
  • prompt - where the references get used. Names plus actions; the model is doing identity matching, not image captioning.
  • resolution, draft, duration (auto or 4–30s), aspect_ratio (auto, 16:9, 9:16, 1:1, 21:9), generate_audio (on, free), bitrate_mode, codec, seed (-1 for the model's choice; results can still vary slightly at a fixed seed).

Plus max_cost_usd, reuse_identical_run, extra_json, max_concurrent.

Outputs: video, video_path, seed, draft_id, info.

The pricing quirk you should understand

With video references in play you're billed for both the input and the output video, at a 0.6 multiplier - fal's own example is roughly $0.2838 per second at 720p when a video input is present. So a 10-second reference video that produces a 10-second output is twenty seconds of billing, discounted. Audio and image references don't add like that, but they do count as inputs to the shot.

In practice: build the character from images and use video references only when the motion itself is the thing being transferred. That's cheaper and usually gives you cleaner identity.

Install

cd ComfyUI/custom_nodes
git clone https://github.com/Hishamahmer/comfyui-arkennemasis

Restart ComfyUI, or let ComfyUI Manager install it - search arkennemasis. Then:

FAL_KEY=your-key-from-fal.ai/dashboard/keys

in the .env beside run_nvidia_gpu.bat, or in the ComfyUI folder. There is no key widget on the node, on purpose: workflow JSON stores widget values verbatim, so a typed key travels with every file you share.

Where people get burned

Thirty images and ten videos is an easy way to spend upload time and money on references the model dilutes rather than uses. Curate: three or four clean angles of the character beat twenty random frames. The mixed-modality ceiling (50 files) is a hard wall, not a suggestion.

And the task switch. If you're planning to edit a reference video, know that it wants to control duration and aspect ratio itself - you're not keeping a timeline here.

Everything else is the pack's standard fal machinery: results to output/fal/bytedance_seedance-2.5_reference-to-video/, a request log in output/fal/_requests.jsonl, automatic backoff on rate limits, Cancel that reaches fal, and free recovery of an interrupted job by request id.

Categoryarkennemasis/fal/Video/Seedance

Inputs (26)

NameTypeDefaultDescription
promptSTRINGThe text prompt used to generate the video. Empty leaves it out.
taskCOMBOreferenceThe type of video generation task. Reference uses the supplied media as guidance. Editing modifies a reference video and automatically coerces aspect_ratio and duration to auto. Extension continues a reference video and automatically coerces aspect_ratio to auto.
resolutionCOMBO720pVideo resolution - 480p for faster generation, 720p for balance, 1080p for high quality.
draftBOOLEANfalseGenerate a draft preview at 480p, overriding resolution. Returns a draft_id for completing the draft at 1080p within seven days.
durationCOMBOautoDuration of the video in seconds. Supports 4 to 30 seconds, or auto to let the model decide based on the prompt.
aspect_ratioCOMBOautoThe aspect ratio of the generated video. Use 16:9 for landscape, 9:16 for portrait/vertical, 1:1 for square, 21:9 for ultrawide cinematic, or auto to let the model decide.
generate_audioBOOLEANtrueWhether to generate synchronized audio for the video, including sound effects, ambient sounds, and lip-synced speech. The cost of video generation is the same regardless of whether audio is generated or not.
bitrate_modeCOMBOstandardOutput bitrate mode. 'high' requests a higher-quality, larger-file encode from the model; 'standard' uses the default bitrate.
codecCOMBOauto'auto' retains default video codec behaviour; 'H264' uses H.264; 'H265' uses H.265.
seedINT-1-1–2147483647Random seed for reproducibility. Note that results may still vary slightly even with the same seed. -1 leaves it to the model.
image_1optIMAGEReference images to guide video generation. Refer to them in the prompt as @Image1, @Image2, etc. Supported formats: JPG, PNG, WebP, BMP, TIFF, GIF, HEIC, HEIF. Max 30 MB per image. Up to 30 images. Total files across all modalities must not exceed 50. Each socket may carry a batch; they are sent in socket order (the first picture of socket 1 is number 1).
image_2optIMAGEReference images to guide video generation. Refer to them in the prompt as @Image1, @Image2, etc. Supported formats: JPG, PNG, WebP, BMP, TIFF, GIF, HEIC, HEIF. Max 30 MB per image. Up to 30 images. Total files across all modalities must not exceed 50. Each socket may carry a batch; they are sent in socket order (the first picture of socket 1 is number 1).
image_3optIMAGEReference images to guide video generation. Refer to them in the prompt as @Image1, @Image2, etc. Supported formats: JPG, PNG, WebP, BMP, TIFF, GIF, HEIC, HEIF. Max 30 MB per image. Up to 30 images. Total files across all modalities must not exceed 50. Each socket may carry a batch; they are sent in socket order (the first picture of socket 1 is number 1).
image_4optIMAGEReference images to guide video generation. Refer to them in the prompt as @Image1, @Image2, etc. Supported formats: JPG, PNG, WebP, BMP, TIFF, GIF, HEIC, HEIF. Max 30 MB per image. Up to 30 images. Total files across all modalities must not exceed 50. Each socket may carry a batch; they are sent in socket order (the first picture of socket 1 is number 1).
image_5optIMAGEReference images to guide video generation. Refer to them in the prompt as @Image1, @Image2, etc. Supported formats: JPG, PNG, WebP, BMP, TIFF, GIF, HEIC, HEIF. Max 30 MB per image. Up to 30 images. Total files across all modalities must not exceed 50. Each socket may carry a batch; they are sent in socket order (the first picture of socket 1 is number 1).
image_6optIMAGEReference images to guide video generation. Refer to them in the prompt as @Image1, @Image2, etc. Supported formats: JPG, PNG, WebP, BMP, TIFF, GIF, HEIC, HEIF. Max 30 MB per image. Up to 30 images. Total files across all modalities must not exceed 50. Each socket may carry a batch; they are sent in socket order (the first picture of socket 1 is number 1).
video_1optVIDEOReference videos to guide video generation. Refer to them in the prompt as @Video1, @Video2, etc. Supported formats: MP4, MOV. Up to 10 videos. Each video must be 1.8 to 30.2 seconds and no larger than 200 MB; combined duration must not exceed 30.2 seconds. Dimensions must be 300 to 6,000 pixels per side, aspect ratio 0.4 to 2.5, and frame rate 24 to 60 FPS. Each socket may carry a batch; they are sent in socket orde
video_2optVIDEOReference videos to guide video generation. Refer to them in the prompt as @Video1, @Video2, etc. Supported formats: MP4, MOV. Up to 10 videos. Each video must be 1.8 to 30.2 seconds and no larger than 200 MB; combined duration must not exceed 30.2 seconds. Dimensions must be 300 to 6,000 pixels per side, aspect ratio 0.4 to 2.5, and frame rate 24 to 60 FPS. Each socket may carry a batch; they are sent in socket orde
video_3optVIDEOReference videos to guide video generation. Refer to them in the prompt as @Video1, @Video2, etc. Supported formats: MP4, MOV. Up to 10 videos. Each video must be 1.8 to 30.2 seconds and no larger than 200 MB; combined duration must not exceed 30.2 seconds. Dimensions must be 300 to 6,000 pixels per side, aspect ratio 0.4 to 2.5, and frame rate 24 to 60 FPS. Each socket may carry a batch; they are sent in socket orde
audio_1optAUDIOReference audio to guide video generation. Refer to them in the prompt as @Audio1, @Audio2, etc. Supported formats: MP3, WAV. Up to 10 files. Each file must be 1.8 to 30.2 seconds and no larger than 15 MB; combined duration must not exceed 30.2 seconds. Each socket may carry a batch; they are sent in socket order (the first picture of socket 1 is number 1).
audio_2optAUDIOReference audio to guide video generation. Refer to them in the prompt as @Audio1, @Audio2, etc. Supported formats: MP3, WAV. Up to 10 files. Each file must be 1.8 to 30.2 seconds and no larger than 15 MB; combined duration must not exceed 30.2 seconds. Each socket may carry a batch; they are sent in socket order (the first picture of socket 1 is number 1).
audio_3optAUDIOReference audio to guide video generation. Refer to them in the prompt as @Audio1, @Audio2, etc. Supported formats: MP3, WAV. Up to 10 files. Each file must be 1.8 to 30.2 seconds and no larger than 15 MB; combined duration must not exceed 30.2 seconds. Each socket may carry a batch; they are sent in socket order (the first picture of socket 1 is number 1).
max_cost_usdoptFLOAT20.00–100000Safety cap. If the estimated cost of this run is above this many US dollars the node stops BEFORE sending anything to fal. 0 = no cap.
reuse_identical_runoptBOOLEANtrueIf these exact inputs (the settings AND the same pictures/clips/audio) were already paid for and the files are still in output/fal, return them instead of paying again - also after a ComfyUI restart. Turn off for a fresh take with the same settings.
extra_jsonoptSTRINGAdvanced: a JSON object merged into the request last, for any fal field this node has no box for. Example: {"seed": 7}. Leave empty normally.
max_concurrentoptINT11–32How many paid fal calls may run at the same time in one run, across every fal node. 1 (default) = one after another. This node starts its paid part only while fewer than this many fal calls are running. Once any fal node fails, the ones still waiting are not started, so nothing more is billed.

Outputs (5)

NameTypeDescription
videoVIDEO—
video_pathSTRING—
seedINT—
draft_idSTRING—
infoSTRINGJSON: request id, cost estimate, saved files and fal's full answer.