Nodes/arkennemasis - ChatGPT / Codex / fal AI nodes/arkennemasis fal · VEED Fabric 1.0 · $0.08-0.15/s
ComfyUI Node

arkennemasis fal · VEED Fabric 1.0 · $0.08-0.15/s

One photo plus a voice track equals a talking head

By Hishamahmer·Created 3 months ago·Updated 9 days ago· 11
arkennemasis fal · VEED Fabric 1.0 · $0.08-0.15/s
  • image
  • audio
  • video
  • video_path
  • info
◄resolution720p►
◄max_cost_usd20.0►
◄reuse_identical_runtrue►
◄extra_json►
◄max_concurrent1►

Two sockets and a dropdown. That's the entire node: put a picture of a person in one side, a voice in the other, and you get back a video of them saying it. No prompt, no motion settings, no reference video. VEED pitched Fabric as a talking-video model that beats the local competition (InfiniteTalk and friends) and the closed one (Kling Speak, OmniHuman) - this is that model, called per second from inside your graph.

It's the pack's answer to the one job every "avatar" workflow needs and no diffusion model does well: a still image, moving mouth, matching words.

Why it costs what it costs

Pricing is per second of your audio, not per second of anything you set - $0.08/s at 480p and $0.15/s at 720p. So the number you should think about is the length of the voice track: a 30-second narration is about $2.40 at 480p and $4.50 at 720p. It's not a cheap node. It is also not a slow one for what it is; when VEED launched the API they claimed roughly 88 seconds of generation for a 10-second video and promised faster renders shortly after.

If that's too much, the honest alternatives are local: InfiniteTalk is the fast talking-head default in this ecosystem and has far more community coverage, and the shape of a local pipeline is Chatterbox for the voice, then an audio-driven avatar for the face. What you're buying here is not paying for any of that setup, plus results that hold up without babysitting LoRAs.

The inputs

image is the subject - required, and there's no prompt to correct it with, so the photo is the brief. Front-on, well-lit, mouth visible, no sunglasses; the model can only work with the face you give it.

audio is required and drives everything: the length of the output, the pacing of the mouth, and the bill. If you don't have a voice track already, you need a TTS step in front of this node, or one of the pack's other audio nodes - Fabric does not write the words.

resolution is 720p (default) or 480p. That's the only real setting. There's no seed, no guidance, no motion strength. If you want to change something about the output, change the input photo or the input audio; that's the design.

Outputs: video (VIDEO - wire it into Save Video or the pack's assembly nodes), video_path, and info, the JSON with the request id, cost estimate, saved files and fal's full answer. Files land in output/fal/veed_fabric-1.0/.

Alongside: max_cost_usd (default $20 cap - genuinely useful here, because a long voice track is an expensive accident), reuse_identical_run, extra_json, and max_concurrent (1 by default, meaning paid fal calls across the run go one at a time).

Install

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

Manager → search arkennemasis also works. Then the key, in the .env next to run_nvidia_gpu.bat:

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

Restart ComfyUI; the node shows up under arkennemasis/fal/Lip Sync/VEED.

Practical notes

  • Long audio is a long bill, and there's no chunking built in. If you have a five-minute script, that's roughly $45 at 720p. Trim, split into shots, or budget accordingly - and set max_cost_usd below your comfort limit while testing.
  • reuse_identical_run is on by default, so tweaking something downstream and re-running gives you the file you already paid for rather than a new take. That's a feature until you forget it.
  • Everything waits its turn. max_concurrent: 1 is the pack default across every fal node, which keeps twenty-node canvases from firing twenty paid calls at once. Raise it deliberately.
  • Your inputs leave the machine. This node uploads the photo and the audio to fal's CDN before submitting. For a client's unreleased product shot, that's a decision, not a detail.
  • Restart mid-render? The job continues on fal's side. Take the request id from output/fal/_requests.jsonl and pull the video down with fal Recover Result - free.
Categoryarkennemasis/fal/Lip Sync/VEED

Inputs (7)

NameTypeDefaultDescription
imageIMAGE—
audioAUDIO—
resolutionCOMBO720pResolution
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 (3)

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