SF VertexAI Imagen 4 Upscale
Imagen 4 upscaling without a GPU — but know the 17-megapixel ceiling
- image
- upscaled_image
Upscaling is three different jobs wearing the same name - more pixels, more detail, or more frames - and Google's Imagen 4 upscale model does the second one. It's a generative upscaler: it looks at your image and invents plausible detail that was never there, the way SUPIR and SeedVR2 do locally. SF VertexAI Imagen 4 Upscale just points that cloud model at a ComfyUI tensor and hands the result back.
Which means: if your source is already sharp and you only need pixels, this is overkill and you should use a free ESRGAN model locally. If your image is soft, small, or lacking fine texture, this is the "add detail" lever - and it costs money and runs in the cloud instead of on your card.
It's one of the VertexAI nodes in the comfyui-stillfront pack. No model download, no VRAM, but you do need a Google Cloud project.
How it works
The node takes your IMAGE tensor, saves it to a temp file, and sends it to Vertex AI's Imagen 4.0 upscale model. Authentication is standard Google Application Default Credentials - gcloud auth application-default login and a project with Vertex AI enabled. The output aspect ratio matches your input, and the upscaled image comes back as a tensor.
The inputs that matter
image- your input tensor. The only required image input; wire in whatever you generated or loaded.upscale_factor- 1.0 to 4.0, default 2. This is the number to actually think about, because of the cap: max output is 17 megapixels. That means a factor that works fine on a small image will silently top out on a big one - a 4K source at 4x would want way more than 17MP, and you'll be capped.project_idandlocation- your GCP project and region (defaultus-central1).- Optional:
safety_filter_level,person_generation, andoutput_format(image/pngorimage/jpeg). The first two are flagged "preview feature" in the tooltips, meaning Google is still tuning them on this model.
Output is a single upscaled_image (IMAGE) you can drop into a save or preview node.
Installing it
Same pack as the rest of the collection:
cd ComfyUI/custom_nodes
git clone https://github.com/razvanmatei-sf/comfyui-stillfront
cd comfyui-stillfront
pip install -r requirements.txt
Restart ComfyUI, then make sure Vertex AI is set up - enable the API on your project, authenticate with gcloud auth application-default login, and either type the project_id into the node or export GOOGLE_CLOUD_PROJECT.
Troubleshooting
- Output isn't as big as I asked. The 17-megapixel cap is the usual culprit. Dial the
upscale_factordown or start from a smaller source - a 1024×1024 image at 4x lands right around the limit. - Auth errors. ADC not set up, or the Vertex AI API not enabled on the project. The error will name it;
gcloud auth application-default loginfixes the first, the console fixes the second. - It's a generative upscaler, so faces change. The upscaling doc's rules apply: every generative rung rewrites identity. If you're upscaling a person you need to keep recognisable, give the face its own pass or use a pixel-only upscaler instead. This node invents detail, it doesn't just resize.
That last point is the one that decides whether this node is right for you. Clean product shots, art, textures - great fit. A face you need to remain the same face - think twice and plan a separate pass.
Inputs (7)
| Name | Type | Default | Description |
|---|---|---|---|
| project_id | STRING | Google Cloud project ID | |
| location | STRING | us-central1 | Google Cloud region (e.g., us-central1) |
| image | IMAGE | Input image to upscale | |
| upscale_factor | FLOAT | 2.01–4 | Upscale factor (1.0-4.0). Max output is 17 megapixels. |
| safety_filter_levelopt | COMBO | BLOCK_MEDIUM_AND_ABOVE | Safety filter strictness level (preview feature) |
| person_generationopt | COMBO | ALLOW_ADULT | Person generation policy (preview feature) |
| output_formatopt | COMBO | image/png | Output image format |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| upscaled_image | IMAGE | — |