Nodes/ComfyUI-FeiHou-Toolbox/FeiHou-API Video
ComfyUI Node

FeiHou-API Video

Text-to-video via API — plus the last-frame trick that makes clips chain

By FX-FeiHou·Created 3 months ago·Updated about 22 hours ago· 133
FeiHou-API Video
  • media
  • video
  • video_url
  • last_frame
api_key
model
prompt
resolutiondefault
aspect_ratiodefault
durationdefault
seed-1
generate_audiodefault
return_last_framefalse
media_files[]

FeiHou-API Video calls api.fei-hou.net for a video generation - the Seedance line, the provider's own feihou-video-* models, and neighbours - and returns the finished clip as a native VIDEO. Nothing is sampled locally: no checkpoint, no VRAM ceiling, no open weights. ByteDance's Seedance models are API-only, so if you want one in your graph, calling it is the only door.

Two things make it worth reading past that. The video output is a real VIDEO, so it wires straight into SaveVideo, a combine node, or the pack's own Video Combine V2 with no adapter. And it also emits last_frame as an IMAGE, which is the cheap way to stitch clips: the last frame of shot one becomes the first-frame reference of shot two.

How it works

The node POSTs to the provider's /v1/videos endpoint, and most models answer with a task id rather than a result. Then it polls - every 5 seconds, up to 240 attempts, progress bar advancing as it waits. That budgets roughly 20 minutes per clip. On success it downloads the file, wraps it in ComfyUI's native video type, and shows an ephemeral preview in the node UI (the preview is for your eyes; it saves no separate file).

The last-frame output is belt and braces. If the model supports a tail image, return_last_frame asks for one and the node uses it. Otherwise - or if you left the toggle off - it decodes the final frame from the video it just downloaded, via PyAV. So the output is populated either way; the toggle is an optimisation.

The inputs that matter

Required: api_key, model, prompt. Enter the key, click Refresh models to pull the video catalog, write your prompt. The key is a plain widget, so it lives in the saved workflow JSON - clear it before sharing.

The optional knobs are all model-gated, and that's where people trip:

  • media - wildcard references: the FeiHou-API Media loader, or a native IMAGE batch, VIDEO, AUDIO. This is how image-to-video models get an input. Limits differ per model; -multi variants are the ones taking image, video and audio together.
  • resolution - default through 480p, 720p, 1080p, native4k, depending on model.
  • aspect_ratio - 16:9, 9:16, 1:1, 4:3, 3:4, 21:9, per model.
  • duration - default, -1 (auto, newer Seedance), or seconds. The ceiling is model-specific; not everything goes to 30.
  • seed - Seedance only. generate_audio (default/on/off) - Seedance only, and billed as part of the generation.
  • return_last_frame - the tail-image request above.

Audio and video references are sparse: most models reject them, and the node tells you before it spends a call.

Outputs: video → save or feed a preview node. video_url → the provider's link, useful but not an archive. last_frame → the next clip's reference, a thumbnail, an upscale source. The node is an output node, so it runs as a terminal even with nothing wired past it.

How to install it

ComfyUI Manager: search ComfyUI-FeiHou-Toolbox, install, restart. Manual:

cd ComfyUI/custom_nodes
git clone https://github.com/FX-FeiHou/ComfyUI-FeiHou-Toolbox.git

Restart and hard-refresh the browser. No declared Python dependencies and no model downloads - that's the point of an API video node; the 8 GB checkpoint is somebody else's problem now.

Common issues

  • "The API task timed out. Please check the provider task history." You blew the ~20-minute polling ceiling. Long 4K or queued jobs do this, and the job may have finished on the provider's side after your node gave up - check their history before re-spending the money.
  • "does not support resolution=1080p. Supported: …" You switched models and kept a stale widget. The list in the error is authoritative; set widgets back to default when you change models.
  • The pack won't import on a fresh ComfyUI. The v2.10.1 changelog describes a fix for an import failure on ComfyUI 0.33.1 in the video preview helper. Update if your checkout is older.
  • Audio/video references rejected. Not every model is multimodal, and the gating is honest about it. A -multi variant is the usual answer.
  • The bill. Video is where API generation gets genuinely expensive: the community reaction to Seedance arriving in ComfyUI was mostly sticker shock, and the fair reply was that this is simply the real price of the render. Test at low resolution and a short duration, confirm the prompt, then spend on the real take.
CategoryFeiHou Toolbox/API

Inputs (11)

NameTypeDefaultDescription
api_keySTRINGYour FeiHou API key. It is sent only to api.fei-hou.net; do not share a workflow containing it.
modelCOMBOClick Refresh models after entering the API key.
promptSTRING
mediaopt*Connect FeiHou-API Media, or a native IMAGE batch, VIDEO or AUDIO.
resolutionoptCOMBOdefault8 options: default, 480p, 720p, 1080p, 2k, 4k, +2
aspect_ratiooptCOMBOdefault15 options: default, 1:1, 16:9, 9:16, 4:3, 3:4, +9
durationoptCOMBOdefault31 options: default, -1, 2, 3, 4, 5, +25
seedoptINT-1-1–2147483647
generate_audiooptCOMBOdefault3 options: default, on, off
return_last_frameoptBOOLEANfalseAsk supported models for a tail image. If none is returned, the last frame output is extracted from the video.
media_filesoptSTRING[]

Outputs (3)

NameTypeDescription
videoVIDEO
video_urlSTRING
last_frameIMAGE