Nodes/ComfyUI_Adforge/Load Video from GCS
ComfyUI Node

Load Video from GCS

Your videos live in a GCS bucket — this node pulls them back out

By Creditas-labs·Created 10 months ago·Updated 9 months ago· 1
Load Video from GCS
    • video_path
    video_urigs://your-bucket/video.mp4

    If your videos live in Google Cloud Storage, Load Video from GCS is the download button you were missing. It takes a gs:// URI, fetches the file, and hands you a local path ComfyUI can actually work with. That's the whole job, and it's a genuinely useful one once you understand why the file was in the cloud to begin with.

    This node is part of Adforge, a toolkit Google's Vertex AI built by Creditas, a Brazilian fintech, to generate its own ad creative. In that workflow, footage and generated clips live in GCS buckets as a matter of course - the pack's own Veo nodes write their output there. But ComfyUI's local tools (loaders, video-editing nodes, previews) want a file on disk. LoadVideoGCS bridges that gap.

    How it works

    Under the hood it's a thin wrapper over the google-cloud-storage client. You feed it a URI like gs://my-bucket/adshots/summer.mp4, it parses out the bucket and the blob path, and downloads the whole file. Authentication is the standard Google Cloud story: it picks up a service-account key from GOOGLE_APPLICATION_CREDENTIALS, uses gcloud auth application-default login if you've done that locally, or a service account if you're running on GCP. No API key involved - this is the one node in the pack that costs nothing but storage egress.

    The result lands in ~/Documents/ComfyUI/output/gcs_downloads/ (hardcoded, more on that below) and comes out the single output: video_path, a plain STRING. The node's own code says it's designed to feed VideoHelperSuite's LoadVideoPath node, but any node that takes a file path will do. It also keeps an IS_CHANGED keyed on the URI, so re-running a workflow with the same URI won't re-download it - change the URI and it fetches the new file.

    The one input that matters

    • video_uri - the only input, a STRING in gs://bucket/path/to/video.mp4 form. If it doesn't start with gs://, the node throws a ValueError before doing anything. Paste a full URI; there's no bucket-picker.

    Where people get burned

    • The output directory is hardcoded. It writes to ~/Documents/ComfyUI/output/gcs_downloads regardless of where your ComfyUI actually stores output. If you've moved your install elsewhere, that path won't match - hunt for your downloads in your home Documents folder, not ComfyUI's output dir.
    • No size guard. It downloads the entire file into memory of your disk. A 2 GB clip will happily land on your drive. Fine for short ad spots, annoying for raw footage.
    • Permissions. A bucket that exists but that your credentials can't read gives you a cryptic google.auth error. Make sure the service account or your logged-in user has storage.objectViewer on the bucket.

    Installing it

    Everything installs as one pack:

    cd ComfyUI/custom_nodes
    git clone https://github.com/Creditas-labs/ComfyUI-Adforge
    cd ComfyUI-Adforge
    pip install -r requirements.txt   # or: uv sync
    

    Restart ComfyUI. Easier still: ComfyUI Manager, search for adforge, hit install. There are no model files to download - this is all cloud plumbing, and the pack wants Python 3.12 or newer. If you're only after LoadVideoGCS you can skip the whole .env setup in the README; it doesn't need API_KEY or a bucket config, just GCS read credentials. The Veo siblings are the ones that need the full auth ceremony.

    CategoryCreditas' AdForge/Video Generation

    Inputs (1)

    NameTypeDefaultDescription
    video_uriSTRINGgs://your-bucket/video.mp4GCS URI of the video (gs://bucket/path/to/video.mp4)

    Outputs (1)

    NameTypeDescription
    video_pathSTRING