Nodes Browser
ComfyDeploy: How GeminiOllama ComfyUI Extension works in ComfyUI?
What is GeminiOllama ComfyUI Extension?
This extension integrates Google's Gemini API and Ollama into ComfyUI, allowing users to leverage these powerful language models directly within their ComfyUI workflows.
How to install it in ComfyDeploy?
Head over to the machine page
- Click on the "Create a new machine" button
- Select the
Edit
build steps - Add a new step -> Custom Node
- Search for
GeminiOllama ComfyUI Extension
and select it - Close the build step dialig and then click on the "Save" button to rebuild the machine
ComfyUI GeminiOllama Extension
This extension integrates Google's Gemini API, Ollama, and various image processing tools into ComfyUI, allowing users to leverage these powerful models and features directly within their ComfyUI workflows.
Features
- Support for Gemini and Ollama APIs
- Text and image input capabilities
- Streaming option for real-time responses
- FLUX Resolution tools for image sizing
- ComfyUI Styler for advanced styling options
- Raster to Vector (SVG) conversion
- Text splitting and processing
- Easy integration with ComfyUI workflows
Nodes
1. Gemini API
The Gemini API node allows you to interact with Google's Gemini models:
- Text input field for prompts
- Model selection:
- gemini-1.5-pro-latest
- gemini-1.5-pro-exp-0801
- gemini-1.5-flash
- Streaming option for real-time responses
2. Ollama API
Integrate local language models running via Ollama:
- Text input field for prompts
- Dropdown for selecting Ollama models
- Customizable model options
3. FLUX Resolutions
Provides advanced image resolution and sizing options:
- Predefined resolution presets (e.g., 768x1024, 1024x768, 1152x768)
- Custom sizing parameters:
- size_selected
- multiply_factor
- manual_width
- manual_height
4. ComfyUI Styler
Extensive styling options for various creative needs:
šØ General Arts ā A broad spectrum of traditional and modern art styles šø Anime ā Bring your designs to life with anime-inspired aesthetics šØ Artist ā Channel the influence of world-class artists š· Camera ā Fine-tune focal lengths, angles, and setups š Camera Angles ā Add dynamic perspectives with a range of angles š Aesthetic ā Define unique artistic vibes and styles šļø Color Grading ā Achieve rich cinematic tones and palettes š¬ Movies ā Get inspired by different cinematic worlds šļø Digital Artform ā From vector art to abstract digital styles šŖ Body Type ā Customize different body shapes and dimensions š² Reactions ā Capture authentic emotional expressions š Feelings ā Set the emotional tone for each creation šø Photographers ā Infuse the style of renowned photographers š Hair Style ā Wide variety of hair designs for your characters šļø Architecture Style ā Classical to modern architectural themes š ļø Architect ā Designs inspired by notable architects š Vehicle ā Add cars, planes, or futuristic transportation šŗ Poses ā Customize dynamic body positions š¬ Science ā Add futuristic, scientific elements š Clothing State ā Define the wear and tear of clothing š Clothing Style ā Wide range of fashion styles šØ Composition ā Control the layout and arrangement of elements š Depth ā Add dimensionality and focus to your scenes š Environment ā From nature to urban settings, create rich backdrops š Face ā Customize facial expressions and emotions š¦ Fantasy ā Bring magical and surreal elements into your visuals š Filter ā Apply unique visual filters for artistic effects š¤ Gothic ā Channel dark, mysterious, and dramatic themes š» Halloween ā Get spooky with Halloween-inspired designs āļø Line Art ā Incorporate clean, bold lines into your creations š” Lighting ā Set the mood with dramatic lighting effects āļø Milehigh ā Capture the essence of aviation and travel š Mood ā Set the emotional tone and atmosphere šļø Movie Poster ā Create dramatic, story-driven poster designs šø Punk ā Channel bold, rebellious aesthetics š Travel Poster ā Design vintage travel posters with global vibes
5. Raster to Vector (SVG) and Save SVG
Convert raster images to vector graphics and save them:
Raster to Vector node parameters:
- colormode
- filter_speckle
- corner_threshold
- ... (and more)
Save SVG node options:
- filename_prefix
- overwrite_existing
6. TextSplitByDelimiter
Split text based on specified delimiters:
- Input text field
- Delimiter options:
- split_regex
- split_every
- split_count
Installation
-
Clone this repository into your ComfyUI's
custom_nodes
directory:cd /path/to/ComfyUI/custom_nodes git clone https://github.com/yourusername/GeminiOllama.git
-
Install the required dependencies:
pip install google-generativeai requests vtracer
Configuration
Gemini API Key Setup
- Go to the Google AI Studio.
- Create a new API key or use an existing one.
- Copy the API key.
- Create a
config.json
file in the extension directory with the following content:{ "GEMINI_API_KEY": "your_api_key_here" }
Ollama Setup
- Install Ollama by following the instructions on the Ollama GitHub page.
- Start the Ollama server (usually runs on
http://localhost:11434
). - Add the Ollama URL to your
config.json
:{ "GEMINI_API_KEY": "your_api_key_here", "OLLAMA_URL": "http://localhost:11434" }
Usage
After installation and configuration, a new node called "Gemini Ollama API" will be available in ComfyUI.
Input Parameters
api_choice
: Choose between "Gemini" and "Ollama"prompt
: The text prompt for the AI modelgemini_model
: Select the Gemini model (for Gemini API)ollama_model
: Specify the Ollama model (for Ollama API)stream
: Enable/disable streaming responsesimage
(optional): Input image for vision-based tasks
Output
text
: The generated response from the chosen AI model
Main Functions
get_gemini_api_key()
: Retrieves the Gemini API key from the config file.get_ollama_url()
: Gets the Ollama URL from the config file.generate_content()
: Main function to generate content based on the chosen API and parameters.generate_gemini_content()
: Handles content generation for Gemini API.generate_ollama_content()
: Manages content generation for Ollama API.tensor_to_image()
: Converts a tensor to a PIL Image for vision-based tasks.
Contributing
Contributions are welcome! Please feel free to submit a Pull Request.
License
This project is licensed under the MIT License - see the LICENSE file for details.