ComfyUI Extension: ComfyUI_Burve_Tools
Run ComfyUI workflows without the setup
No installs, no CUDA version roulette, no GPU sitting idle on your bill. Bring a workflow and run it in the browser.
A ComfyUI node pack for Gemini image generation on AI Studio and Vertex AI, interactive crop-and-mask editing with list/grid thumbnail image picking, in-editor upload/refresh, aspect-ratio-safe apply workflows, character planning, prompt tools, and image utilities.
Looking for a different extension?
Custom Nodes (12)
README
ComfyUI Burve Tools
A collection of custom nodes for ComfyUI, focusing on integration with Google's Gemini AI models for image generation and more.
Nodes
1. Burve Google Image Gen
This is the AI Studio version of the main image-generation node.
- Functionality: Generates images based on text prompts, with support for system instructions, reference images, and an optional external aspect-ratio override.
- Inputs:
prompt: The description of the image you want to generate. Whencharacter_pipeis connected, this direct field is ignored.model: A DynamicCombo model selector. The selected model controls which nested fields are shown.- Common fields outside the DynamicCombo:
seedwithcontrol_after_generate,system_instructions,reference_images,character_pipe,aspect_ratio_override. gemini-2.5-flash-imagefields:aspect_ratiogemini-3-pro-image-previewfields:aspect_ratio,resolution,search_modegemini-3-pro-image-previewmay still return thought text and thought images in the existing outputs, but it does not expose user-configurable thinking controls.gemini-3.1-flash-image-previewfields:aspect_ratio,resolution,search_mode,thinking_level,include_thoughts,output_mime_type,prominent_peopleresolutionvalues:gemini-3-pro-image-preview:1K,2K,4Kgemini-3.1-flash-image-preview:512,1K,2K,4Ksearch_modevalues:gemini-3-pro-image-preview:off,webgemini-3.1-flash-image-preview:off,web,image,web+imagethinking_levelvalues:gemini-3.1-flash-image-preview:MINIMAL,HIGHoutput_mime_typevalues forgemini-3.1-flash-image-preview:image/png,image/jpeg,image/webpprominent_peoplevalues forgemini-3.1-flash-image-preview:allow,blockseed: Seed for reproducibility.system_instructions(Optional): Advanced instructions to guide the model's behavior. Ignored whencharacter_pipeis connected.reference_images(Optional): A list of images to use as context/reference for the generation. Use the Burve Image Ref Pack node or the Burve Character Planner node to create this list. Ignored whencharacter_pipeis connected.character_pipe(Optional): A one-cableCHARACTER_GEN_PIPEbundle from Burve Character Planner. When connected, the node becomes pipe-authoritative and uses the planner'sprompt,system_instructions, andreference_images.aspect_ratio_override(Optional): A plainW:Hratio string socket for nodes like Burve Crop + Mask Load or Burve Image Info. When connected or manually set, it overrides the DynamicCombo model's internalaspect_ratiofield.- Advanced optional request controls:
request_timeout_seconds: Overall Gemini request timeout budget in seconds. Default:120.retry_attempts: Total attempts for transient request failures. Default:5.1disables retries.
- Aspect-ratio override behavior:
- If
aspect_ratio_overrideis empty, the node uses theaspect_ratioselected inside the DynamicCombo model UI. - If
aspect_ratio_overrideis present and the selected model supports it, the override is used for the request. - If
aspect_ratio_overrideis present but the selected model does not support it, the node throws an error before any Gemini request is sent.
- If
- Outputs:
image: The generated image(s).thinking_image: Any thought-stage image(s) returned by the model.thinking_process: Reasoning/thought text. If the model returns none, the node outputsNo thinking output returned by the model.system_messages: Error messages or status updates. If the model returns none, the node outputsNo system messages.Requests that exceed the timeout budget now fail with a bounded timeout error instead of waiting indefinitely.
2. Burve Google Image Gen (Vertex AI)
This is the Vertex AI version of the same image-generation node.
- Functionality: Uses the same generation logic, DynamicCombo model UI, inputs, and outputs as Burve Google Image Gen, but authenticates through Vertex AI instead of AI Studio.
- Inputs: Identical to Burve Google Image Gen.
- Outputs: Identical to Burve Google Image Gen.
- Authentication: Uses
GOOGLE_CLOUD_PROJECT,GOOGLE_CLOUD_LOCATION, and Google credentials / ADC. It does not useGEMINI_API_KEY.
3. Burve Image Ref Pack
A utility node to bundle multiple images into a single list for the generator node.
- Functionality: Accepts up to 14 individual image inputs and packages them into a format compatible with the
reference_imagesinput of the Burve Google Image Gen node. - Inputs:
image1throughimage14(optional). - Outputs:
images(A list of images).
4. Burve Crop + Mask Load
An interactive image-loader node with crop-region editing and soft mask painting.
- Functionality: Loads an image from the ComfyUI input folder, lets you choose a fixed aspect-ratio crop, move and resize the crop interactively, and paint a soft mask that stays constrained to the crop area.
- Inputs:
image: Select an image from the ComfyUI input directory, or drag an image into the editor to upload it there.aspect_ratio: Crop ratio preset shared across the Burve image-gen-safe set:1:1,3:2,2:3,3:4,4:3,4:5,5:4,9:16,16:9,21:9.editor_state_json(Advanced/internal): Stored UI state used by the custom editor. The frontend manages this automatically.
- Outputs:
image: The original source image as a standardIMAGE.cut_image: The cropped image region as a standardIMAGE.image_mask: A full-size softMASKmatching the original image dimensions.1.0means painted/masked,0.0means clear.aspect_ratio: The selected ratio string, suitable for plugging intoaspect_ratio_overrideon compatible Burve image-generation workflows.crop_region_pipe: ACROP_REGION_PIPEbundle carrying source size, selected aspect ratio, and pixel crop rect for a future downstream region-aware node.
- Editor behavior:
List/Gridswitches the inline image picker between a filtered text list and thumbnail cards.Cropmode: drag the crop frame to move it, drag corner handles to resize it while preserving ratio.Paint/Erasemodes: draw soft strokes clipped to the crop area only.- Drag and drop an image file anywhere inside the custom editor to upload it directly into the ComfyUI input folder.
Uploadopens a file picker that uses the same in-editor upload flow as drag-and-drop.Refreshre-syncs the input folder list without leaving the node.- Mouse wheel zooms around the cursor. Space-drag or middle-mouse drag pans the viewport.
Fitresets the viewport.Reset Croprestores the centered default crop for the current ratio.Clear Maskremoves all painted strokes.
- Notes:
- Saved workflows persist the crop box, viewport, brush settings, and mask strokes through the hidden
editor_state_jsonwidget. - The selected input image still persists through the hidden native
imagewidget, so existing workflows remain compatible. - Changing the selected image resets the editor state when the source file or source dimensions no longer match.
- The editor refreshes the input image list in place and keeps the selected image synced when possible.
- The image picker mode is remembered globally in the frontend setting
Burve.CropMaskLoad.ImagePickerModeand defaults tolist. - The editor keeps crop handles, brush previews, and paint/erase points aligned across graph zoom, browser zoom, HiDPI, and fractional scaling.
- This first release is loader-only and does not accept an upstream
IMAGEinput.
- Saved workflows persist the crop box, viewport, brush settings, and mask strokes through the hidden
5. Burve Crop + Mask Apply
Applies a crop-region replacement back onto a full-size image using a full-size mask.
- Functionality: Takes a base image, a replacement image, the
crop_region_pipefrom Burve Crop + Mask Load, and a full-size mask. It resizes the replacement image to the crop rectangle and blends only masked pixels back onto the base image. - Inputs:
base_image: The full-size original image that will receive the edit.new_image: A single-frame image that may be any size. Exact and near-match aspect ratios are accepted and resized to the crop rectangle.crop_region_pipe: TheCROP_REGION_PIPEoutput from Burve Crop + Mask Load.mask: A full-size softMASK.1.0transfers pixels from the placed image,0.0keeps the original base image.strict_aspect_ratio: Advanced toggle. When enabled, any aspect ratio mismatch throws a hard error instead of auto-fitting.
- Outputs:
edited_image: The base image with only masked pixels inside the crop replaced.placed_image_white_bg: A full-size white canvas with the resizednew_imagefilling the crop rectangle.masked_placed_image_white_bg: A full-size white canvas where only masked pixels from the placed image are visible.status: Empty on clean execution, or a warning when a near-match aspect ratio was auto-fit by centered crop.
- Notes:
- This node is single-frame only.
base_image,new_image, andmaskmust each have batch size1. - Mask values outside the crop rectangle are ignored even if they are nonzero.
- Near-match aspect ratios are auto-fit with centered crop when the estimated trim is at most
1.0%. - Larger aspect mismatches still raise a friendly hard error so the workflow does not silently crop away substantial content.
- This node is single-frame only.
6. Burve Debug Gemini Key
A helper node to verify your API key configuration.
- Functionality: Checks if the
GEMINI_API_KEYenvironment variable is correctly set and visible to ComfyUI. It displays the status and a masked version of the key. - Outputs:
info(Status message).
7. Burve Debug Vertex Auth
A helper node to verify your Vertex AI environment configuration.
- Functionality: Reports whether
GOOGLE_CLOUD_PROJECT,GOOGLE_CLOUD_LOCATION, andGOOGLE_APPLICATION_CREDENTIALSare present inside ComfyUI, and reminds you that ADC can also come fromgcloud auth application-default login. - Outputs:
info(Status message).
8. Burve System Instructions
Selects pre-defined system instructions from a dropdown menu.
- Functionality: Loads system instructions from a JSON file (which auto-updates from GitHub) and outputs the selected instruction text.
- Inputs:
instruction_name: Select a system instruction preset.
- Outputs:
instruction: The full text of the selected system instruction.
9. Burve Variable Injector
Defines variables for use in dynamic prompts.
- Functionality: A utility node to create a dictionary of variable values. Accepts up to 14 string inputs.
- Inputs:
V1throughV14(Optional): String values for variables.
- Outputs:
variables: A dictionary of the provided variables.
10. Burve Prompt Database
Loads prompts from a database and injects variables.
- Functionality: Selects a prompt from a JSON database (auto-updating) and replaces placeholders (e.g.,
[[name:default]]) with values from the Burve Variable Injector. - Inputs:
prompt_name: Select a prompt from the database.variables(Optional): A dictionary of variables from the Burve Variable Injector node.
- Outputs:
compiled_prompt: The prompt with variables injected.raw_prompt: The original prompt with placeholders.title: The title of the selected prompt.
11. Burve Image Info
Reports the dimensions and aspect ratio of an input image.
- Functionality: Reads a standard ComfyUI
IMAGEtensor, reports its pixel size, and returns a simplifiedW:Haspect ratio string. - Inputs:
image: The input image from a node such asLoad Image.
- Outputs:
info: Human-readable text such asSize: 1024x768 pxandAspect ratio: 4:3.width: Image width in pixels.height: Image height in pixels.aspect_ratio: Simplified ratio string such as4:3,16:9, or1:1.
12. Burve Blind Grid Splitter
Splits an image into a grid of tiles without content analysis.
- Functionality: Slices an input image into a specified number of rows and columns. Useful for processing large images in chunks.
- Inputs:
image: The input image to split.rows: Number of horizontal slices (default: 2).cols: Number of vertical slices (default: 2).center_crop: If enabled, centers the grid on the image if dimensions aren't perfectly divisible, otherwise starts from top-left.
- Outputs:
tiles: A batch of images containing the resulting grid tiles.
13. Burve Character Planner
Builds a reusable base-character prompt bundle for Burve Google Image Gen.
- Functionality: Combines curated body, age, gender, race, and appearance controls with optional raw JSON overrides, emits a generation-ready prompt, emits optional face-lock system instructions, and packs ordered reference images with the dedicated face image first.
- Scope: The planner is adult-only and now supports both female and male base characters, plus optional fantasy race details for later outfit swaps and body-shape consistency.
- Inputs:
- Identity controls:
gender, adult-onlyage_years(18..80),race, inlinecustom_race - Shared body controls:
height_cm,weight_kg,waist_cm,full_hip_cm,musculature_tone,body_fat,pose - Female-specific controls:
bust_cm,underbust_cm,body_frame_preset,outfit_variant - Male-specific controls:
male_chest_cm,male_body_frame_preset,male_outfit_variant - Appearance controls:
skin_tone, inlinecustom_skin_tone,undertone,hair_color, inlinecustom_hair_color,hair_length - Basewear controls: shared
outfit_color - Race extension: optional
race_override_pipefrom Burve Character Race Details - Face controls:
use_face_reference,face_reference_strength, and optionalface_reference_image - Advanced controls: optional
extra_reference_images(IMAGE_LIST) and optionalplan_overrides_json
- Identity controls:
- Outputs:
prompt: Structured character-planning prompt text for Burve Google Image Gensystem_instructions: Blank by default, or a stable face-lock instruction when a dedicated face image is enabled and connectedreference_images: OrderedIMAGE_LISTcompatible with Burve Google Image Gencharacter_plan_json: Normalized round-trippable plan JSONsummary: Validation/status output including gender, age, race, fantasy traits, ignored gender-specific controls, face-lock state, reference count, and warningscharacter_pipe: One-cableCHARACTER_GEN_PIPEbundle carrying the generation-ready prompt, optional system instructions, packed reference images, and planner metadata
- Notes:
- v1 ships with no custom JS or live badges.
- Visual feedback is limited to validation errors plus the
summaryoutput. - The built-in outfit presets stay non-explicit and intentionally minimal for silhouette readability.
- Female mode uses the existing bikini-style basewear presets. Male mode uses underwear presets with
base_outfit.top.type = none. character_plan_jsonandsummaryare informational/debug outputs. They do not need to be connected to Burve Google Image Gen.custom_race,custom_skin_tone, andcustom_hair_colorare inline empty override widgets next to the values they replace.plan_overrides_jsonstill has final precedence, but contradictory male/female outfit or underage overrides are rejected.
14. Burve Character Race Details
Builds a reusable fantasy race-detail bundle for Burve Character Planner.
- Functionality: Produces a
CHARACTER_RACE_PIPEwith optional race-name override plus curated fantasy anatomy traits such as wings, horns, tails, hooves, scales, claws, and related head or limb features. - Inputs:
race_nameplus inlinecustom_race_nameearspluscustom_earshornspluscustom_hornswingspluscustom_wingstailpluscustom_taillegs_feetpluscustom_legs_feetskin_surfacepluscustom_skin_surfacehead_featurespluscustom_head_featureshands_armspluscustom_hands_armsextra_notes
- Outputs:
race_override_pipe: ACHARACTER_RACE_PIPEfor the plannerrace_override_json: Debug-friendly JSON view of the same payloadsummary: Resolved race trait summary
- Notes:
- Each dropdown includes
noneas the “do not select” option. - Each adjacent custom text field overrides the dropdown when filled.
- Leaving the node disconnected preserves a regular human planner workflow.
- Each dropdown includes
Recommended Character Workflow
Use this chain when you want a reusable base character with optional face anchoring:
- Connect an optional dedicated face image to Burve Character Planner
face_reference_image. - If you also want extra non-face references, connect them through Burve Image Ref Pack into
extra_reference_images. - Optional fantasy workflow:
- Connect Burve Character Race Details
race_override_pipeinto Burve Character Plannerrace_override_pipe
- Connect Burve Character Race Details
- Recommended 1-wire workflow:
character_pipe->character_pipe
- If
character_pipeis connected, Burve Google Image Gen ignores its directprompt,system_instructions, andreference_imagesinputs. If an older workflow still showsA futuristic cityin the prompt widget, clear that saved value or reload the node after updating. - If you want to inspect the normalized plan or warnings, optionally connect
character_plan_jsonandsummaryto text/debug nodes. They are not consumed by Burve Google Image Gen. - Keep using direct generator inputs only for non-planner workflows.
For fantasy or non-standard characters, use custom_race, custom_hair_color, and custom_skin_tone for quick overrides. Use Burve Character Race Details for common non-human anatomy, and keep plan_overrides_json for advanced control.
Example plan_overrides_json fallback:
{
"identity": {
"gender": "male",
"age_years": 37,
"age_group": "adult",
"race": {
"base": "dragonkin"
},
"skin_tone": {
"base": "green"
}
},
"fantasy_traits": {
"wings": "dragon_membrane",
"horns": "swept_back",
"skin_surface": "light_scales"
},
"base_outfit": {
"top": {
"type": "none"
}
},
"hair": {
"scalp_hair": {
"color": "pink"
}
},
"skin": {
"texture": {
"micro_detail": 0.5
}
}
}
Installation
- Clone this repository into your ComfyUI
custom_nodesdirectory:cd ComfyUI/custom_nodes git clone https://github.com/Burve/ComfyUI_Burve_Tools.git - Install the required dependencies:
(Note: You may need to use thecd ComfyUI_Burve_Tools pip install -r requirements.txtpipassociated with your ComfyUI python environment, e.g.,python_embeded/python.exe -m pip install ...if using the portable version). - Use a DynamicCombo-capable ComfyUI build. This release now loads through V3
comfy_entrypoint()and requiresIO.DynamicCombo.Input(...). google-genai>=1.68.0,<2is required for Gemini image search, documented thinking config, andprominent_peoplesupport.
Authentication Setup
This project now exposes two separate image-generation nodes:
- Burve Google Image Gen uses AI Studio and reads
GEMINI_API_KEY. - Burve Google Image Gen (Vertex AI) uses standard Vertex AI auth with
GOOGLE_CLOUD_PROJECT,GOOGLE_CLOUD_LOCATION, and Google credentials / ADC.
As of March 12, 2026, this implementation does not use a separate Vertex API key path in Python. It uses the documented google-genai Vertex client flow.
AI Studio Setup (Burve Google Image Gen)
This node requires a Google Gemini API key in GEMINI_API_KEY.
How to get an API Key
- Go to Google AI Studio.
- Create a new API key.
Setting the Environment Variable
Windows (PowerShell): Run the following command in PowerShell:
setx GEMINI_API_KEY "YOUR_REAL_KEY_HERE"
After running this, you must close and restart your terminal and ComfyUI for the change to take effect.
macOS (ComfyUI launched from Terminal):
If you start ComfyUI from Terminal, add the export command to your shell profile. This project reads GEMINI_API_KEY from the process environment, and terminal-launched apps inherit that shell environment.
echo 'export GEMINI_API_KEY="YOUR_REAL_KEY_HERE"' >> ~/.zshrc
source ~/.zshrc
Then start ComfyUI from that same terminal session, or open a new terminal after reloading your profile and launch ComfyUI there.
macOS (Standalone ComfyUI launched from Applications / Finder / Launchpad):
If you launch the standalone ComfyUI app from Finder, Launchpad, or the Applications folder, do not rely on ~/.zshrc or ~/.bashrc. macOS GUI apps do not reliably inherit interactive shell startup files.
launchctl setenv GEMINI_API_KEY "YOUR_REAL_KEY_HERE"
launchctl getenv GEMINI_API_KEY
After setting the variable, fully quit ComfyUI and relaunch it from Applications, Finder, or Launchpad.
launchctl setenv is appropriate for the current login session. After logout or restart, you may need to set it again unless you configure a persistent LaunchAgent or another system-level environment setup.
Linux:
Add the export command to your shell configuration file (for example ~/.bashrc or ~/.zshrc):
export GEMINI_API_KEY="YOUR_REAL_KEY_HERE"
Then reload your shell config and restart ComfyUI.
Troubleshooting
This node reads only the GEMINI_API_KEY process environment variable. If Burve Google Image Gen reports that the API key is missing, use Burve Debug Gemini Key to inspect what ComfyUI is seeing.
If the debug node shows GEMINI_API_KEY is NOT set:
- Confirm which launch method you are using.
- On macOS standalone builds, verify the variable with
launchctl getenv GEMINI_API_KEY. - Fully quit and relaunch ComfyUI after changing the environment variable.
- Check that the key does not contain accidental whitespace or a trailing newline.
- If you get a tiny black placeholder image plus
No non-thinking image generated., the request may have completed without returning a usable image part. Inspectsystem_messagesfor finish reason or prompt feedback, retry the prompt, and try another supported image model if the response looks text-only or blocked. - This major release removes the old Gemini legacy widgets. Saved workflows using the previous static Gemini parameter list will not retain those removed widget values.
Vertex AI Setup (Burve Google Image Gen (Vertex AI))
This node uses standard Vertex AI auth for the Python google-genai SDK.
Before You Start
Before you try the Vertex node, make sure all of the following are true:
- You have a Google Cloud project.
- Billing is enabled on that project.
- The Vertex AI API is enabled on that project.
- You have local Google credentials available through ADC or a service account.
- This node does not use
GEMINI_API_KEY.
The current implementation constructs the client like this:
genai.Client(vertexai=True, project=..., location=...)
As of March 13, 2026, the documented Python path for this node is standard Vertex auth, not a separate Vertex API key flow.
Step 1: Create or choose a Google Cloud project
- Open Google Cloud Console.
- Create a new project or select an existing one.
- Confirm billing is enabled for that project.
- Enable the Vertex AI API.
Optional CLI commands:
gcloud config set project YOUR_PROJECT_ID
gcloud services enable aiplatform.googleapis.com
Step 2: Install and initialize gcloud
Install the Google Cloud CLI, then initialize it locally:
gcloud init
gcloud auth login
If you are using Cloud Shell instead of a local machine, some local authentication steps may differ. The guidance below is for running ComfyUI on your own machine.
Step 3: Set up authentication for local ComfyUI use
Use one of these authentication paths.
Recommended for local testing: Application Default Credentials (ADC) with your user account
gcloud auth application-default login
Optional: service-account key file
export GOOGLE_APPLICATION_CREDENTIALS="/full/path/to/service-account.json"
Advanced: service-account impersonation
gcloud auth application-default login --impersonate-service-account=SERVICE_ACCT_EMAIL
Notes:
- The recommended default for local use is
gcloud auth application-default login. - A service-account JSON file is optional, not required.
- If you use a service account, it must have sufficient Vertex AI access in the selected project.
- Do not create raw OAuth access tokens manually for this node.
Step 4: Set environment variables required by this node
This node depends on these environment variables:
- Required:
GOOGLE_CLOUD_PROJECTGOOGLE_CLOUD_LOCATION
- Optional:
GOOGLE_APPLICATION_CREDENTIALSonly if you are using a service-account JSON file
Example:
export GOOGLE_CLOUD_PROJECT="your-project-id"
export GOOGLE_CLOUD_LOCATION="global"
Important notes:
Burve Google Image Gen (Vertex AI)does not useGEMINI_API_KEY.- Vertex auth for this node is Google credentials / ADC plus project and location.
GOOGLE_GENAI_USE_VERTEXAI=trueis supported by the SDK in general, but it is not required by this node because the code already initializes the client withvertexai=True.- Having only
GOOGLE_APPLICATION_CREDENTIALSis not enough. That file authenticates the SDK, but this node still requiresGOOGLE_CLOUD_PROJECTandGOOGLE_CLOUD_LOCATION.
Step 5: Launch ComfyUI so it can see those variables
If you launch ComfyUI from Terminal
Export the variables in the same shell session, then start ComfyUI from that same shell.
If you launch standalone ComfyUI from macOS Applications / Finder / Launchpad
GUI apps often do not inherit your shell startup files. Set the variables with launchctl, then fully quit and relaunch ComfyUI:
launchctl setenv GOOGLE_CLOUD_PROJECT "your-project-id"
launchctl setenv GOOGLE_CLOUD_LOCATION "global"
launchctl setenv GOOGLE_APPLICATION_CREDENTIALS "/full/path/to/service-account.json"
If you are using ADC from gcloud auth application-default login and not a service-account JSON, you do not need to set GOOGLE_APPLICATION_CREDENTIALS.
If you launch ComfyUI on Windows
Use PowerShell setx for the project and location, then restart ComfyUI:
setx GOOGLE_CLOUD_PROJECT "your-project-id"
setx GOOGLE_CLOUD_LOCATION "global"
setx affects future processes only. Close and reopen the terminal or app launcher before starting ComfyUI again.
ADC still comes from the Google auth flow such as gcloud auth application-default login; these environment variables do not replace authentication by themselves.
Step 6: Verify inside ComfyUI
- Add Burve Debug Vertex Auth.
- Run it and confirm it reports:
GOOGLE_CLOUD_PROJECT present: yesGOOGLE_CLOUD_LOCATION present: yesGOOGLE_APPLICATION_CREDENTIALS present: yesorno, depending on your auth path
- Add Burve Google Image Gen (Vertex AI).
- Use a simple prompt and a default model.
- If generation fails, inspect the
system_messagesoutput.
Important:
GOOGLE_APPLICATION_CREDENTIALS present: nocan still be valid if you authenticated withgcloud auth application-default login.- The debug node only reports visible environment variables. ADC can still work even when no credential file path is set in the environment.
GOOGLE_APPLICATION_CREDENTIALS present: yesstill does not mean the node is fully configured. You also needGOOGLE_CLOUD_PROJECTandGOOGLE_CLOUD_LOCATION.
Step 7: Common problems
Symptom: Vertex AI configuration is incomplete
- Cause:
GOOGLE_CLOUD_PROJECTorGOOGLE_CLOUD_LOCATIONis missing. - Fix: Set both variables in the same environment that launches ComfyUI, then restart ComfyUI.
Symptom: I set GOOGLE_APPLICATION_CREDENTIALS, but the node still says configuration is incomplete
- Cause: Credentials are configured, but project and/or location are still missing.
- Fix: Set
GOOGLE_CLOUD_PROJECTandGOOGLE_CLOUD_LOCATIONin the same environment that launches ComfyUI.
Symptom: ComfyUI cannot see the variables
- Cause: ComfyUI was launched from a different shell, app session, or GUI context.
- Fix: Re-launch ComfyUI from the shell where you exported the variables, or use
launchctl setenvon macOS standalone builds.
Symptom: Auth or permission errors after project and location are present
- Cause: ADC is missing, expired, using the wrong account, or the account does not have sufficient Vertex AI permissions.
- Fix: Re-run
gcloud auth application-default login, verify the active Google account, or use a service account with the required Vertex AI access.
Symptom: Requests fail even though auth looks correct
- Cause: Billing is disabled or the Vertex AI API is not enabled for the selected project.
- Fix: Enable billing and enable the Vertex AI API in that same Google Cloud project.
Symptom: Model or region errors
- Cause: The chosen location may not support the model or your project setup.
- Fix: Try
globalfirst and verify model availability for your project and region.
Symptom: The image node stays active for a long time and appears stuck
- Cause: The Gemini request is slow, retrying transient failures, or not returning within the configured timeout budget.
- Fix: Inspect
system_messagesafter the node finishes. If you are usinggemini-3.1-flash-image-preview, tryglobal, lowerresolution,MINIMALthinking_level, or a higher advancedrequest_timeout_seconds. - The node now uses a bounded timeout and returns an explicit timeout or retry-exhaustion error instead of waiting indefinitely.
Symptom: gemini-3.1-flash-image-preview is slow
- Cause: This model is still in Preview on Vertex AI, supports Thinking, and uses the
globallocation. Higher resolution and higher thinking levels can increase latency. - Fix: Start with
global,1Kor2K, andMINIMALthinking when you need a more responsive workflow.
What this node actually uses
The node currently uses:
genai.Client(vertexai=True, project=..., location=...)
That means:
Burve Google Image GenusesGEMINI_API_KEY.Burve Google Image Gen (Vertex AI)does not useGEMINI_API_KEY.- Vertex auth is Google credentials / ADC plus project and location.
GOOGLE_GENAI_USE_VERTEXAIis optional for the SDK in general, but not required by this node's current implementation.gemini-3.1-flash-image-previewis documented by Google as a Preview model and global-only on Vertex AI as of March 25, 2026.
Official references:
- Google Gen AI Python SDK overview: https://googleapis.github.io/python-genai/
- Google Gen AI Python
Clientreference: https://googleapis.github.io/python-genai/genai.html - Vertex AI authentication: https://cloud.google.com/vertex-ai/docs/authentication
- Vertex project/environment setup: https://docs.cloud.google.com/vertex-ai/docs/start/cloud-environment
Run ComfyUI workflows without the setup
No installs, no CUDA version roulette, no GPU sitting idle on your bill. Bring a workflow and run it in the browser.