AIHub Expose Project Video
Read a stored video from the project — and know when to leave it unprocessed
- VIDEO
- LOCAL_FILE
AIHub Expose Project Video reads a video file stored in the AIHub project and hands it to your workflow as a VIDEO object plus the raw LOCAL_FILE path. But read the docstring the way its author wrote it: "this util does not have the capacity to process the video file itself into something usable, it merely exposes the file name to be used by other nodes that can handle video files." That honesty is the whole personality of this node - it's a file gateway, not a video decoder.
Mechanically it's the project-file pattern: the workflow needs a project (via AIHubWorkflowController with a project_type), the client tells the server which file, the server injects the path, and the node wraps the file into ComfyUI's VIDEO representation by default. The README adds a sharper version of the same warning - "the expose project video function cannot load a video file and it must be done by another node" - which is why the escape hatch exists.
What you set
- file_name - the video file as stored, extension included (
video.mp4default). - batch_index - pick one file from a stored batch by index; single integer, negatives count from the end.
- do_not_process - the important one. Check it and the node leaves the video alone entirely:
VIDEOcomes back null and you getLOCAL_FILE, which you feed to whatever node actually handles video. Set this when the defaultVideoFromFilewrapping isn't what you want, or when you need to process the file path yourself. - optional - true means a missing file yields nulls instead of aborting.
- id - protocol field id.
Outputs: VIDEO, LOCAL_FILE.
The pragmatic reading
For most real workflows, do_not_process should be on. This node's value is that it gets a path to a project-stored video into your graph - the actual decoding and frame work belongs to a video-capable node downstream. Defaulting to processing is convenient for simple cases, but if you ever find yourself getting a VIDEO you can't do anything useful with, the flag is there precisely to get out of the way and hand you the file path instead.
Install & gotchas
Standard pack install: ComfyUI Manager → search ComfyUI-aihub-workflow-exposer, or:
cd ComfyUI/custom_nodes
git clone https://github.com/otavanopisto/ComfyUI-aihub-workflow-exposer
then restart. No requirements.txt, no model downloads.
Two gotchas. First, the no-project default trap - no project context, no file, and with optional off you get a hard "Video file not found" error. Second, don't expect this node to make frames: it doesn't, and no amount of wiring here replaces an actual video-processing node. If your workflow needs frames as images, that's AIHubExposeFrame (live from an editor) or a dedicated video loader (from files) - this node's job ends at getting the file into the graph.
Inputs (5)
| Name | Type | Default | Description |
|---|---|---|---|
| id | STRING | exposed_video | A unique custom id for this workflow. |
| file_name | STRING | video.mp4 | The name of the video file as stored in the project files, including extension |
| batch_index | STRING | If the file belongs to a batch, the index of the latent to load, it must be a single integer, and it can be negative to count from the end | |
| do_not_process | BOOLEAN | false | If set to true, the video will not be processed by the node and you will have to handle it manually |
| optional | BOOLEAN | false | If set to true, it will not raise an error if the video is not found |
Outputs (2)
| Name | Type | Description |
|---|---|---|
| VIDEO | VIDEO | — |
| LOCAL_FILE | STRING | — |