🎬⏱️AGSoft Video Time Effects
Retime, reverse, or boomerang a segment of your clip
- video
- video_path
- duration_seconds
- duration_timecode
- file_size_mb
- width
- height
- fps
- frames_est
🎬⏱️AGSoft Video Time Effects is the general-purpose retime node: slow-motion, timelapse, reverse, and boomerang - applied to the whole clip or just a segment of it. If you've got one video and you want to "make this bit slow, then reverse it back," this is the node.
The controls
speed- the multiplier. Below 1 is slow-motion (0.3 = roughly 3.3x slower), above 1 is timelapse (4.0 = 4x faster), 1.0 = unchanged.interpolation-noneorminterpolate.minterpolategenerates intermediate frames for smooth slow-motion, but only applies when speed < 1, and the tooltip warns it can be slow on long videos. Real motion interpolation, so it's a genuine quality knob - but start on a short clip.reverse- plays the clip backwards.boomerang- plays forward then backward, doubling the duration, and it takes priority overreverse. This is the fun one; a 2-second loop becomes a seamless 4-second wiggle.
start_time / end_time let you target just a segment (both 0 = the whole clip). That's the difference between "speed up the whole thing" and "make just the middle bit fast."
The memory caveat
Both reverse and boomerang load the whole clip into memory to pull it off - the tooltips say so explicitly. On a long 4K video that can be a real RAM hit. Short clips, totally fine; feature-length footage, think twice.
Audio
audio_mode defaults to with_video, meaning the audio follows the speed/reverse/boomerang through an FFmpeg atempo chain. That's the right default - a reversed video with forward audio is nonsense. Note that atempo is limited in how much speed change it can do in one pass, so extreme multipliers can sound a little processed; that's an FFmpeg constraint, not a node bug.
Outputs
The standard set: video_path (STRING), duration_seconds, duration_timecode, file_size_mb, width, height, fps, frames_est. Empty output_path → ComfyUI/output. Source is the optional video input (priority) or video_path.
Install
Part of the comfyui-AGSoft pack. ComfyUI Manager → search "comfyui-AGSoft" → Install → restart, or:
cd ComfyUI/custom_nodes
git clone https://github.com/Art-xmaster/comfyui-AGSoft
Restart. No models; it drives the bundled FFmpeg (or a system ffmpeg on PATH).
How does this differ from the Speed Ramp node? Speed Ramp is for gradually changing speed across a shot. Time Effects is for a constant speed change, reverse, or boomerang - and it's the one with the segment targeting. If you want a freeze-frame hold, that's the separate Freeze Frame node. The pack splits its time effects into three on purpose, and this is the middle child that does the most.
Inputs (13)
| Name | Type | Default | Description |
|---|---|---|---|
| output_name | STRING | time_effects.mp4 | Output filename. The extension is kept as entered (.mp4 by default). --- Имя итогового файла. Расширение сохраняется как введено (по умолчанию .mp4). |
| output_path | STRING | Output directory. If empty, ComfyUI/output is used. --- Папка сохранения. Если пусто, используется ComfyUI/output. | |
| video_path | STRING | Path to the source video. Used only if video input is not connected. --- Путь к исходному видео. Используется, только если вход video не подключен. | |
| start_time | FLOAT | 0.00–86400 | Segment start (seconds) where the effect begins. 0 = from the beginning. Together with end_time selects the fragment to apply the effect to. --- Начало отрезка (в секундах), с которого применяется эффект. 0 = с начала. Вместе с end_time выбирает фрагмент для применения эффекта. |
| end_time | FLOAT | 0.00–86400 | Segment end (seconds) where the effect stops. 0 = to the end of the clip. start_time=0 and end_time=0 = apply the effect to the whole clip. --- Конец отрезка (в секундах), до которого применяется эффект. 0 = до конца клипа. start_time=0 и end_time=0 = применить эффект ко всему клипу. |
| speed | FLOAT | 1.000.1–10 | Speed multiplier. < 1 = slow-motion (e.g. 0.3 = 3.3x slower), > 1 = timelapse (e.g. 4.0 = 4x faster). 1.0 = unchanged. --- Множитель скорости. < 1 = slow-motion (напр. 0.3 = замедление в 3.3 раза), > 1 = таймлапс (напр. 4.0 = ускорение в 4 раза). 1.0 = без изменений. |
| interpolation | COMBO | none | none = no frame interpolation. minterpolate = creates intermediate frames for smooth slow-motion (only applied when speed < 1). Can be slow on long videos. --- none = без интерполяции кадров. minterpolate = досоздаёт промежуточные кадры для плавного slow-motion (только при speed < 1). Может быть медленным на длинных видео. |
| reverse | COMBO | off | Reverse the video (play backwards). Loads the whole clip in memory; use with care on long videos. Ignored if boomerang is on. --- Реверс видео (воспроизведение задом наперёд). Загружает весь клип в память; осторожно на длинных видео. Игнорируется, если включён boomerang. |
| boomerang | COMBO | off | Boomerang: plays the clip forward then backward. Doubles the duration. Has priority over reverse. Loads the whole clip in memory. --- Boomerang: клип играет вперёд, затем задом наперёд. Удваивает длительность. Имеет приоритет над reverse. Загружает весь клип в память. |
| audio_mode | COMBO | with_video | with_video = audio follows the speed/reverse/boomerang (atempo chain). mute = no audio. keep_original = copy the original audio unchanged (may desync if speed/reverse/boomerang is used). --- with_video = звук следует за скоростью/реверсом/boomerang (цепочка atempo). mute = без звука. keep_original = копировать оригинальный звук без изменений (возможен рассинхрон при speed/reverse/boomerang). |
| encoder_mode | COMBO | auto | auto = NVENC if available, otherwise CPU. nvenc = force NVENC. cpu = force libx264. --- auto = NVENC, если доступен, иначе CPU. nvenc = принудительно NVENC. cpu = принудительно libx264. |
| quality_preset | COMBO | balanced | Encoding quality preset. / Пресет качества кодирования. |
| videoopt | VIDEO | Optional source video from ComfyUI. Has priority over video_path. --- Опциональное исходное видео из ComfyUI. Имеет приоритет над video_path. |
Outputs (8)
| Name | Type | Description |
|---|---|---|
| video_path | STRING | — |
| duration_seconds | FLOAT | — |
| duration_timecode | STRING | — |
| file_size_mb | FLOAT | — |
| width | INT | — |
| height | INT | — |
| fps | FLOAT | — |
| frames_est | INT | — |