Grok Video Save (legacy ID) 🎬
The Same Save Node, Wearing an Old ID
- base_image
- saved_path
What it actually is
If you went looking for GrokSaveVideo because a workflow or a tutorial mentioned it: it's not a separate node. It's Grok Video Save registered under a second class ID so that graphs saved with pack versions 1.x and 2.x keep loading instead of throwing a red box at you. The display name in ComfyUI is literally Grok Video Save (legacy ID) 🎬, which is the node being upfront about it.
In the pack's source the mapping is one line of honesty - "GrokSaveVideo": GrokVideoSave - and both IDs point at the same class. So the widgets, the outputs, the numbering, the buttons and the companion files are identical to Grok Video Save. Same required video_path (connect the video_path output of a Grok video node), same folder, filename, same save_prompt_txt, save_workflow_json, save_base_image, same optional filename_input, prompt_text and base_image, same single saved_path STRING out. It still moves the MP4 out of %TEMP%\grok_imagine into your folder without re-encoding, still numbers clip_000000 upward and still refuses to overwrite anything.
Which one should you drop in a new graph?
Grok Video Save. The legacy ID exists for compatibility, not for choice - it's the alias, and aliases are the thing you regret building on. Nothing about it is broken today, and nothing about it is guaranteed to be maintained as a first-class node tomorrow.
There is one practical catch and it's the one worth reading this page for. Upgrading from 2.x doesn't fully migrate your old save node. The author's own instructions for the 3.0 release are to replace the files, restart, Ctrl+F5 in the browser, and then delete and re-add the video nodes and the save node once, because new widgets were added and old instances won't grow them on their own. Your workflow keeps its wires, but the node you're looking at may be sitting there without the current controls.
Old-file archaeology
Two naming differences are worth knowing when you're sorting through an old output folder:
- The 2.x save node wrote companions as
<name>_prompt.txtand<name>_workflow.json. The current node writesname_000000.txtandname_000000.json- same six-digit counter as the video, so a set stays together. - Anything from before 3.0 may have been written into ComfyUI's output folder, because that older node saved where the graph's output path pointed. The current behaviour - temp folder for downloads, your folder for the keepers, output folder never touched - is new in 3.0.
That's the entire contents of this page, and it's deliberate: there's no behaviour here that isn't Grok Video Save's behaviour. If you want the working details - the move-versus-copy rule, the placeholder syntax, which companion files get written and when, the Reveal / Open / Save Last Frame / Delete buttons - read the Grok Video Save page instead of this one.
Install
Same pack, same install, because it's the same code:
cd ComfyUI/custom_nodes
git clone https://github.com/Slartibart23/comfyui-grok-imagine-video
..\..\python_embeded\python.exe -m pip install -r comfyui-grok-imagine-video\requirements.txt
Restart, Ctrl+F5 once for the preview script. There's nothing legacy to install - no old version to match, no separate dependency. The legacy ID ships in the current pack or it doesn't exist at all.
Where people get confused
Two real ones. First, seeing Grok Save Video To Path in a workflow you downloaded: that node is gone, replaced by Grok Video Save in 3.0, and it needs re-adding. Second, a legacy node that loads, wires up, and then behaves as though half its settings are missing - that's the "re-add it once" step you skipped, not a bug. Everything else is the same node with a different name on the tin.
Inputs (9)
| Name | Type | Default | Description |
|---|---|---|---|
| video_path | STRING | Connect the 'video_path' output of Grok Imagine Video / Video Edit / Video Extend. The file is MOVED here from the temp download folder, exactly as delivered by xAI - no re-encoding, sound kept. | |
| folder | STRING | D:/grok_videos | Destination folder on any drive, e.g. D:\Videos\grok. Created if it does not exist. This node never writes into the ComfyUI output folder. |
| filename | STRING | clip | Base name for the files. A six-digit counter is always appended: name_000000, name_000001, ... The counter continues from the highest number already in the folder, so nothing is ever overwritten. Placeholders: %date% (2026-09-25), %time% (143012), %date:yyyy-MM-dd%. Ignored when filename_input is connected. |
| save_prompt_txt | BOOLEAN | true | Write name_000000.txt with the prompt (needs prompt_text connected). |
| save_workflow_json | BOOLEAN | true | Write name_000000.json with the complete ComfyUI workflow. Load it later via Workflow > Open (or drag & drop) to restore every setting. |
| save_base_image | BOOLEAN | true | Write name_000000_base.jpg - the start image you fed into the video node (needs base_image connected). JPEG quality 95. |
| filename_inputopt | STRING | Optional: connect a text (e.g. from a Text node or the 'filename' output of a loader) to use it as the base name instead of the filename field above. The counter is still appended. | |
| prompt_textopt | STRING | Optional: connect the 'prompt' output of the Grok node. It is written as name_000000.txt next to the file when save_prompt_txt is on. | |
| base_imageopt | IMAGE | Optional: connect the same image you gave the video node as 'image' (image-to-video). Saved as name_000000_base.jpg so video and start image stay together. For a batch only the first image is saved. |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| saved_path | STRING | Full path of the saved MP4, e.g. D:\Videos\clip_000003.mp4. |