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

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

The frame you approved, now moving with sound

By Hishamahmer·Created 3 months ago·Updated 9 days ago· 11
arkennemasis fal · Seedance 2.5 Image to Video · $0.22-1.16/s
  • image
  • end_image
  • video
  • video_path
  • seed
  • draft_id
  • info
◄prompt►
◄resolution720p►
◄draftfalse►
◄durationauto►
◄generate_audiotrue►
◄bitrate_modestandard►
◄codecauto►
◄max_cost_usd20.0►
◄reuse_identical_runtrue►
◄extra_json►
◄max_concurrent1►

Seedance is the video model the local community measures everything against and can't run. bytedance.json is unambiguous about the posture: the entire Seedream/Seedance line is API-only, and it's been that way through every version. So you either call it or you don't use it.

ArkFal_bytedance_seedance_2_5_image_to_video is the friendliest entry point to that line. One still frame, a prompt describing the motion, and you get up to 30 seconds of video with synchronized audio - sound effects, ambience, and lip-synced speech generated together, not bolted on. Pricing is per second: $0.22 at 480p, $0.47 at 720p, $1.16 at 1080p.

What you set

  • image - required. The starting frame; JPEG, PNG or WebP, max 30MB. This is the whole reason to prefer image-to-video over text-to-video: the composition is already decided.
  • prompt - the motion and action. Keep it about movement; the picture is already handled. It can be empty, but you'll get more with it than without.
  • end_image - optional, and genuinely useful. Supply a last frame and the clip transitions from the start image to it. Two-frame control without the dedicated endpoint.
  • resolution - 720p default, 480p for speed, 1080p for quality. This is the price dial, and it isn't linear: 1080p is two and a half times 720p.
  • draft - off by default. Turn it on and the run becomes a 480p preview that overrides your resolution setting and returns a draft_id you can complete at 1080p within seven days. Cheapest sane way to find out whether a prompt works before committing $10.
  • duration - auto, or 4–30 seconds. The model decides when left to auto.
  • generate_audio - on by default and it costs nothing either way, so there's no reason to turn it off unless your NLE is fussy.
  • bitrate_mode - standard or high; high asks for a larger, better encode. Doesn't change the price.
  • codec - auto (default), H264 or H265.

Shared optional controls: max_cost_usd (default $20 - with a 30-second 1080p clip well above that, this node is exactly what the cap is for), reuse_identical_run (on; identical inputs come back from disk without a second charge), extra_json, max_concurrent.

Outputs: video, video_path, seed, draft_id (empty unless you drafted), info.

The money, plainly

At 720p the node is about $0.47 per second, so a 10-second clip is $4.70. That's the real price, not a markup by this pack - and the KB records the community's response to exactly this number when Seedance hit ComfyUI, which was mostly sticker shock plus the counter-argument that the cheap years were a subsidy. I'd only add: use the draft toggle. It's the difference between a two-dollar check and an eleven-dollar gamble.

Install

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

Restart, or install through ComfyUI Manager by searching arkennemasis. Then your key goes in a .env in the folder holding run_nvidia_gpu.bat (or your ComfyUI folder):

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

No key input on the node - deliberate, so a key can't be saved into a shared workflow. Nothing to download; the weights are ByteDance's and they don't leave the API.

Where people get burned

Interfaces that don't ship as draft_id: if you turn draft on and then close the tab, the id is in this node's outputs and in output/fal/_requests.jsonl, and it's only good for seven days and only for the account that made it. Grab it while it's hot.

The rest is the usual API-node arithmetic. Your source image and prompt go to fal and on to ByteDance's model, with their filter in the loop - no local workaround, because there's nothing local to patch. The estimate reads your resolution and duration when both are set explicitly, and shows a rate when you leave things on auto. Files are saved to output/fal/bytedance_seedance-2.5_image-to-video/.

Categoryarkennemasis/fal/Video/Seedance

Inputs (13)

NameTypeDefaultDescription
promptSTRINGThe text prompt describing the desired motion and action for the video. Empty leaves it out.
imageIMAGEThe URL of the starting frame image to animate. Supported formats: JPEG, PNG, WebP. Max 30 MB.
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.
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.
end_imageoptIMAGEThe URL of the image to use as the last frame of the video. When provided, the generated video will transition from the starting image to this ending image. Supported formats: JPEG, PNG, WebP. Max 30 MB.
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.