Updated README and minor changes

This commit is contained in:
Aryan185
2025-12-19 12:53:46 +00:00
parent b115a11aca
commit c82795e06d
3 changed files with 56 additions and 14 deletions
+37 -6
View File
@@ -9,14 +9,13 @@ A collection of powerful custom nodes for ComfyUI that connect your local workfl
* **FLUX Kontext Pro & Max:** Image-to-image transformations using the FLUX models via the Replicate API.
* **Gemini Chat:** Google's powerful multimodal AI. Ask questions about an image, generate detailed descriptions or create prompts for other models. Supports thinking budget controls for applicable models.
* **Gemini Segmentation:** Generate segmentation masks for objects in an image using Gemini.
* **Gemini Speaker Diarization:** Separate audio into different speaker tracks using Gemini.
* **GPT Image Edit:** OpenAI's `gpt-image-1` for prompt-based image editing and inpainting. Simply mask an area and describe the change you want to see.
* **Google Imagen Generator & Edit:** Create and edit images with Google's Imagen models, with support for Vertex AI.
* **Nano Banana:** A creative image generation node using a specialized Gemini model.
* **Veo Text-to-Video:** Generate high-quality video clips from text prompts using Google's Veo model via Vertex AI.
* **Veo Video Generator:** Generate high-quality video clips from text prompts using Google's Veo model via Vertex AI or the Gemini API.
* **ElevenLabs TTS:** Generate high-quality speech from text using ElevenLabs' diverse range of voices and models.
* **Gemini TTS:** Create speech from text using Google's Gemini models.
* **Seamless Integration:** All nodes are designed to work seamlessly with standard ComfyUI inputs (IMAGE, MASK, STRING) and outputs, allowing you to chain them into complex and creative workflows.
* **Secure & Simple:** Simply provide your API key in the node's input field to get started.
---
@@ -46,10 +45,10 @@ A collection of powerful custom nodes for ComfyUI that connect your local workfl
All nodes in this collection require API keys to function.
* **FLUX Nodes (Replicate):** You will need a [Replicate API Token](https://replicate.com/account/api-tokens).
* **Gemini, Imagen, Nano Banana, and Gemini TTS Nodes:** You will need a [Google AI Studio API Key](https://aistudio.google.com/app/api-keys).
* **Gemini, Imagen, Nano Banana, Gemini TTS, Gemini Diarization, and Veo (Gemini API) Nodes:** You will need a [Google AI Studio API Key](https://aistudio.google.com/app/api-keys).
* **GPT Image Edit Node:** You will need an [OpenAI API Key](https://platform.openai.com/api-keys).
* **ElevenLabs TTS Node:** You will need an [ElevenLabs API Key](https://elevenlabs.io/).
* **Vertex AI Nodes (Imagen Edit, Veo):** You will need a Google Cloud Project ID, a service account with appropriate permissions, and the location for the resources.
* **Vertex AI Nodes (Imagen Edit, Veo Vertex AI):** You will need a Google Cloud Project ID, a service account with appropriate permissions, and the location for the resources.
You can paste your key directly into the `api_key` field on the corresponding node. For Vertex AI nodes, you will need to provide the project ID, location, and path to your service account JSON file.
@@ -102,6 +101,22 @@ This node uses a Gemini model to generate segmentation masks for specified objec
* **Output:**
* `mask`: A black and white mask of the segmented objects.
### Gemini Speaker Diarization
Separate audio into different speaker tracks using Gemini.
* **Category:** `audio/diarise`
* **Inputs:**
* `audio`: The input audio to process.
* `num_speakers`: The expected number of speakers (default: 2).
* `model`: The Gemini model to use (e.g., `gemini-2.5-flash`).
* `api_key`: Your API key from Google AI Studio.
* `thinking`: Enable thinking process (optional).
* `thinking_budget`: Token budget for thinking (optional).
* `...other_params`: Controls for temperature and seed.
* **Output:**
* `speaker_1` to `speaker_4`: Audio tracks for up to 4 separated speakers.
### GPT Image Edit
This node uses OpenAI's API to perform powerful, prompt-based inpainting and editing.
@@ -161,7 +176,7 @@ A creative image generation node that can take a combination of text and up to f
* **Output:**
* `image`: The generated image.
### Veo Text-to-Video (Vertex AI)
### Veo Video Generator (Vertex AI)
Generate short, high-quality video clips from a text description using Google's Veo model on Vertex AI.
@@ -175,6 +190,22 @@ Generate short, high-quality video clips from a text description using Google's
* **Output:**
* `frames`: The generated video frames, output as an image batch.
### Veo Video Generator (Gemini API)
Generate videos using Google's Veo 2.0 model via the Gemini API. Supports text-to-video and image-to-video.
* **Category:** `video/generation`
* **Inputs:**
* `prompt`: A text description of the video.
* `image` (Optional): An input image for image-to-video generation.
* `api_key`: Your API key from Google AI Studio.
* `model`: The Veo model to use (e.g., `veo-2.0-generate-001`).
* `aspect_ratio`: Desired aspect ratio (16:9 or 9:16).
* `duration_seconds`: Duration of the video (e.g., 5-8 seconds).
* `...other_params`: Controls for negative prompt and seed.
* **Output:**
* `frames`: The generated video frames.
---
### ElevenLabs TTS
+18 -7
View File
@@ -17,6 +17,11 @@ class GoogleImagenNode:
"number_of_images": ("INT", {"default": 1, "min": 1, "max": 4, "step": 1}),
"aspect_ratio": (["1:1", "9:16", "16:9", "4:3", "3:4"],),
"image_size": (["1K", "2K"],),
"seed": ("INT", {"default": 69, "min": 1, "max": 2147483646, "step": 1}),
"guidance_scale": ("FLOAT", {"default": 7.5, "min": 1.0, "max": 20.0, "step": 0.1}),
},
"optional": {
"negative_prompt": ("STRING", {"multiline": True, "default": ""}),
}
}
@@ -39,7 +44,7 @@ class GoogleImagenNode:
return torch.stack(tensors)
def generate_images(self, prompt, api_key, model, number_of_images, aspect_ratio, image_size):
def generate_images(self, prompt, api_key, model, number_of_images, aspect_ratio, image_size, seed, guidance_scale, negative_prompt=""):
try:
key = api_key.strip() or os.environ.get("GEMINI_API_KEY")
if not key:
@@ -47,12 +52,18 @@ class GoogleImagenNode:
client = genai.Client(api_key=key)
config = types.GenerateImagesConfig(
number_of_images=number_of_images,
include_rai_reason=True,
output_mime_type="image/jpeg",
aspect_ratio=aspect_ratio,
)
config_params = {
"number_of_images": number_of_images,
"aspect_ratio": aspect_ratio,
"add_watermark": False,
"seed": seed,
"guidance_scale": guidance_scale,
}
if negative_prompt and negative_prompt.strip():
config_params["negative_prompt"] = negative_prompt
config = types.GenerateImagesConfig(**config_params)
if model in ["models/imagen-4.0-ultra-generate-001", "models/imagen-4.0-generate-001"]:
config.image_size = image_size
+1 -1
View File
@@ -1,7 +1,7 @@
[project]
name = "externalapi-helpers"
description = "Various ComfyUI nodes for Gemini, Replicate and OpenAI"
version = "1.0.1"
version = "1.0.2"
license = {file = "LICENSE"}
# classifiers = [
# # For OS-independent nodes (works on all operating systems)