ComfyUI Node
arkennemasis fal · Sync React-1 · $10/min
Use React-1 from SyncLabs to refine human emotions and do realistic lip-sync without losing details! Pricing (from fal, 2026-09-29): $10 per minute (fal's billing unit). Model page: https://fal.ai/models/fal-ai/sync-lipsync/react-1 Key: FAL_KEY in the .env next to run_nvidia_gpu.bat. Results are saved in output/fal/fal-ai_sync-lipsync_react-1/.
arkennemasis fal · Sync React-1 · $10/min
- video
- audio
- video
- video_path
- info
◄emotionneutral►
◄model_modeface►
◄lipsync_modebounce►
◄temperature0.50►
◄max_cost_usd20.0►
◄reuse_identical_runtrue►
◄extra_json►
◄max_concurrent1►
Categoryarkennemasis/fal/Lip Sync/Sync
Inputs (10)
| Name | Type | Default | Description |
|---|---|---|---|
| video | VIDEO | URL to the input video. Must be **15 seconds or shorter**. | |
| audio | AUDIO | URL to the input audio. Must be **15 seconds or shorter**. | |
| emotion | COMBO | neutral | Emotion prompt for the generation. Currently supports single-word emotions only. |
| model_mode | COMBO | face | Controls the edit region and movement scope for the model. Available options: - `lips`: Only lipsync using react-1 (minimal facial changes). - `face`: Lipsync + facial expressions without head movements. - `head`: Lipsync + facial expressions + natural talking head movements. |
| lipsync_mode | COMBO | bounce | Lipsync mode when audio and video durations are out of sync. |
| temperature | FLOAT | 0.500–1 | Controls the expresiveness of the lipsync. |
| max_cost_usdopt | FLOAT | 20.00–100000 | Safety 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_runopt | BOOLEAN | true | If 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_jsonopt | STRING | Advanced: 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_concurrentopt | INT | 11–32 | How 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)
| Name | Type | Description |
|---|---|---|
| video | VIDEO | — |
| video_path | STRING | — |
| info | STRING | JSON: request id, cost estimate, saved files and fal's full answer. |