Input Video (ShellAgent Plugin)
A file picker that hands you a path, not frames
- video
Input Video (ShellAgent Plugin) is the video entry point for ShellAgent workflows - with a catch you should know before you wire it up: it outputs a STRING file path, not video frames. You pick a video from the dropdown (or the app supplies one), and what comes out the video socket is a path to a file, either in ComfyUI's input directory or downloaded from a URL if that's what was handed in.
That trips people up the first time because most ComfyUI video handling flows through VHS's Load Video, which decodes frames into IMAGE tensors. This node deliberately doesn't do that. It's an input shim: its job is to accept the caller's video and give the rest of the graph a handle to it. To actually get frames, you chain a frame-loader node (VHS Load Video) onto the path it produces.
How it works
The dropdown (default_value) lists webm, mp4, mkv, and gif files in your input folder. On run, if the value starts with http, it streams the file down into the input directory with a UUID name and returns the local path; otherwise it just resolves the local file. The output is a STRING - the relative path - on the video socket. validate() advertises the schema to ShellAgent so the app knows this is a video input it can supply.
One nice touch: because it's a path rather than a decoded stream, the node is cheap to run and doesn't burn VRAM decoding frames you might not need yet.
Inputs and outputs
- input_name - the variable name the app sees. Default
input_video. - default_value - the video to reference, from the dropdown (drag to upload). Remote URLs work if the app passes one.
- description - optional help text.
Output: STRING on the video socket - the file path. Wire it into a VHS Load Video, or anywhere a file path is accepted.
Installing it
Same one-pack install:
cd ComfyUI/custom_nodes
git clone https://github.com/myshell-ai/ComfyUI-ShellAgent-Plugin
restart, or search ComfyUI-ShellAgent-Plugin in ComfyUI Manager. No model downloads. If you plan to actually decode frames, make sure VideoHelperSuite is installed too - this node doesn't ship a decoder.
Common issues
- "It's not video, it's just text!" Right - the
videooutput is a STRING path. This is by design. Feed it to a loader that accepts a path. - "Invalid video file" error. The file isn't in the input directory or doesn't have a recognized extension. Re-upload.
- URL downloads are slow. Large remote files stream down on first run; that's the app hand-off doing its job, not a bug.
- GIF listed but won't load. GIF is in the extension filter, but downstream frame loaders vary in GIF support - decode through a loader that handles animation.
It's a path-forwarding node, so set expectations accordingly: it's the front door for video inputs, not the video pipeline itself.
Inputs (3)
| Name | Type | Default | Description |
|---|---|---|---|
| input_name | STRING | input_video | — |
| default_value | COMBO | 0 options: | |
| descriptionopt | STRING | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| video | STRING | — |