runpod-worker-comfy
ComfyUI as a serverless API on RunPod
Stars: 170
runpod-worker-comfy is a serverless API tool that allows users to run any ComfyUI workflow to generate an image. Users can provide input images as base64-encoded strings, and the generated image can be returned as a base64-encoded string or uploaded to AWS S3. The tool is built on Ubuntu + NVIDIA CUDA and provides features like built-in checkpoints and VAE models. Users can configure environment variables to upload images to AWS S3 and interact with the RunPod API to generate images. The tool also supports local testing and deployment to Docker hub using Github Actions.
README:
Read our article here: https://blib.la/blog/comfyui-on-runpod
→ Please also checkout Captain: The AI Platform
- Quickstart
- Features
- Config
- Use the Docker image on RunPod
- API specification
- Interact with your RunPod API
- How to get the workflow from ComfyUI?
- Bring Your Own Models and Nodes
- Local testing
- Automatically deploy to Docker hub with GitHub Actions
- Acknowledgments
- 🐳 Choose one of the three available images for your serverless endpoint:
-
timpietruskyblibla/runpod-worker-comfy:3.0.0-base
: doesn't contain any checkpoints, just a clean ComfyUI image -
timpietruskyblibla/runpod-worker-comfy:3.0.0-sdxl
: contains the checkpoints and VAE for Stable Diffusion XL -
timpietruskyblibla/runpod-worker-comfy:3.0.0-sd3
: contains the medium checkpoint for Stable Diffusion 3
-
- ⚙️ Set the environment variables
- ℹ️ Use the Docker image on RunPod
- Run any ComfyUI workflow to generate an image
- Provide input images as base64-encoded string
- The generated image is either:
- Returned as base64-encoded string (default)
- Uploaded to AWS S3 (if AWS S3 is configured)
- There are three different Docker images to choose from:
-
<version>-base
: doesn't contain any checkpoints, just a clean ComfyUI image -
<version>-sdxl
: contains the checkpoints and VAE for Stable Diffusion XL- Checkpoint: sd_xl_base_1.0.safetensors
- VAEs:
-
<version>-sd3
: contains the checkpoint sd3_medium_incl_clips_t5xxlfp8.safetensors for Stable Diffusion 3
-
- Bring your own models
- Based on Ubuntu + NVIDIA CUDA
Environment Variable | Description | Default |
---|---|---|
REFRESH_WORKER |
When you want to stop the worker after each finished job to have a clean state, see official documentation. | false |
COMFY_POLLING_INTERVAL_MS |
Time to wait between poll attempts in milliseconds. | 250 |
COMFY_POLLING_MAX_RETRIES |
Maximum number of poll attempts. This should be increased the longer your workflow is running. | 500 |
SERVE_API_LOCALLY |
Enable local API server for development and testing. See Local Testing for more details. | disabled |
This is only needed if you want to upload the generated picture to AWS S3. If you don't configure this, your image will be exported as base64-encoded string.
- Create a bucket in region of your choice in AWS S3 (
BUCKET_ENDPOINT_URL
) - Create an IAM that has access rights to AWS S3
- Create an Access-Key (
BUCKET_ACCESS_KEY_ID
&BUCKET_SECRET_ACCESS_KEY
) for that IAM - Configure these environment variables for your RunPod worker:
Environment Variable | Description | Example |
---|---|---|
BUCKET_ENDPOINT_URL |
The endpoint URL of your S3 bucket. | https://<bucket>.s3.<region>.amazonaws.com |
BUCKET_ACCESS_KEY_ID |
Your AWS access key ID for accessing the S3 bucket. | AKIAIOSFODNN7EXAMPLE |
BUCKET_SECRET_ACCESS_KEY |
Your AWS secret access key for accessing the S3 bucket. | wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY |
- Create a new template by clicking on
New Template
- In the dialog, configure:
- Template Name:
runpod-worker-comfy
(it can be anything you want) - Template Type: serverless (change template type to "serverless")
- Container Image:
<dockerhub_username>/<repository_name>:tag
, in this case:timpietruskyblibla/runpod-worker-comfy:3.0.0-sd3
(or-base
for a clean image or-sdxl
for Stable Diffusion XL) - Container Registry Credentials: You can leave everything as it is, as this repo is public
- Container Disk:
20 GB
- (optional) Environment Variables: Configure S3
- Note: You can also not configure it, the images will then stay in the worker. In order to have them stored permanently, we have to add the network volume
- Template Name:
- Click on
Save Template
- Navigate to
Serverless > Endpoints
and click onNew Endpoint
- In the dialog, configure:
- Endpoint Name:
comfy
- Select Template:
runpod-worker-comfy
(or whatever name you gave your template) - Active Workers:
0
(whatever makes sense for you) - Max Workers:
3
(whatever makes sense for you) - Idle Timeout:
5
(you can leave the default) - Flash Boot:
enabled
(doesn't cost more, but provides faster boot of our worker, which is good) - (optional) Advanced: If you are using a Network Volume, select it under
Select Network Volume
. Otherwise leave the defaults. - Select a GPU that has some availability
- GPUs/Worker:
1
- Endpoint Name:
- Click
deploy
- Your endpoint will be created, you can click on it to see the dashboard
The following describes which fields exist when doing requests to the API. We only describe the fields that are sent via input
as those are needed by the worker itself. For a full list of fields, please take a look at the official documentation.
{
"input": {
"workflow": {},
"images": [
{
"name": "example_image_name.png",
"image": "base64_encoded_string"
}
]
}
}
Field Path | Type | Required | Description |
---|---|---|---|
input |
Object | Yes | The top-level object containing the request data. |
input.workflow |
Object | Yes | Contains the ComfyUI workflow configuration. |
input.images |
Array | No | An array of images. Each image will be added into the "input"-folder of ComfyUI and can then be used in the workflow by using it's name
|
An array of images, where each image should have a different name.
🚨 The request body for a RunPod endpoint is 10 MB for /run
and 20 MB for /runsync
, so make sure that your input images are not super huge as this will be blocked by RunPod otherwise, see the official documentation
Field Name | Type | Required | Description |
---|---|---|---|
name |
String | Yes | The name of the image. Please use the same name in your workflow to reference the image. |
image |
String | Yes | A base64 encoded string of the image. |
-
Generate an API Key:
- In the User Settings, click on
API Keys
and then on theAPI Key
button. - Save the generated key somewhere safe, as you will not be able to see it again when you navigate away from the page.
- In the User Settings, click on
-
Use the API Key:
- Use cURL or any other tool to access the API using the API key and your Endpoint ID:
- Replace
<api_key>
with your key.
- Replace
- Use cURL or any other tool to access the API using the API key and your Endpoint ID:
-
Use your Endpoint:
- Replace
<endpoint_id>
with the ID of the endpoint. (You can find the endpoint ID by clicking on your endpoint; it is written underneath the name of the endpoint at the top and also part of the URLs shown at the bottom of the first box.)
- Replace
curl -H "Authorization: Bearer <api_key>" https://api.runpod.ai/v2/<endpoint_id>/health
You can either create a new job async by using /run
or a sync by using /runsync
. The example here is using a sync job and waits until the response is delivered.
The API expects a JSON in this form, where workflow
is the workflow from ComfyUI, exported as JSON and images
is optional.
Please also take a look at the test_input.json to see how the API input should look like.
curl -X POST -H "Authorization: Bearer <api_key>" -H "Content-Type: application/json" -d '{"input":{"workflow":{"3":{"inputs":{"seed":1337,"steps":20,"cfg":8,"sampler_name":"euler","scheduler":"normal","denoise":1,"model":["4",0],"positive":["6",0],"negative":["7",0],"latent_image":["5",0]},"class_type":"KSampler"},"4":{"inputs":{"ckpt_name":"sd_xl_base_1.0.safetensors"},"class_type":"CheckpointLoaderSimple"},"5":{"inputs":{"width":512,"height":512,"batch_size":1},"class_type":"EmptyLatentImage"},"6":{"inputs":{"text":"beautiful scenery nature glass bottle landscape, purple galaxy bottle,","clip":["4",1]},"class_type":"CLIPTextEncode"},"7":{"inputs":{"text":"text, watermark","clip":["4",1]},"class_type":"CLIPTextEncode"},"8":{"inputs":{"samples":["3",0],"vae":["4",2]},"class_type":"VAEDecode"},"9":{"inputs":{"filename_prefix":"ComfyUI","images":["8",0]},"class_type":"SaveImage"}}}}' https://api.runpod.ai/v2/<endpoint_id>/runsync
Example response with AWS S3 bucket configuration
{
"delayTime": 2188,
"executionTime": 2297,
"id": "sync-c0cd1eb2-068f-4ecf-a99a-55770fc77391-e1",
"output": {
"message": "https://bucket.s3.region.amazonaws.com/10-23/sync-c0cd1eb2-068f-4ecf-a99a-55770fc77391-e1/c67ad621.png",
"status": "success"
},
"status": "COMPLETED"
}
Example response as base64-encoded image
{
"delayTime": 2188,
"executionTime": 2297,
"id": "sync-c0cd1eb2-068f-4ecf-a99a-55770fc77391-e1",
"output": { "message": "base64encodedimage", "status": "success" },
"status": "COMPLETED"
}
- Open ComfyUI in the browser
- Open the
Settings
(gear icon in the top right of the menu) - In the dialog that appears configure:
-
Enable Dev mode Options
: enable - Close the
Settings
-
- In the menu, click on the
Save (API Format)
button, which will download a file namedworkflow_api.json
You can now take the content of this file and put it into your workflow
when interacting with the API.
Using a Network Volume allows you to store and access custom models:
-
Create a Network Volume:
- Follow the RunPod Network Volumes guide to create a volume.
-
Populate the Volume:
- Create a temporary GPU instance:
- Navigate to
Manage > Storage
, clickDeploy
under the volume, and deploy any GPU or CPU instance. - Navigate to
Manage > Pods
. Under the new pod, clickConnect
to open a shell (either via Jupyter notebook or SSH).
- Navigate to
- Populate the volume with your models:
cd /workspace for i in checkpoints clip clip_vision configs controlnet embeddings loras upscale_models vae; do mkdir -p models/$i; done wget -O models/checkpoints/sd_xl_turbo_1.0_fp16.safetensors https://huggingface.co/stabilityai/sdxl-turbo/resolve/main/sd_xl_turbo_1.0_fp16.safetensors
- Create a temporary GPU instance:
-
Delete the Temporary GPU Instance:
- Once populated, terminate the temporary GPU instance.
-
Configure Your Endpoint:
- Use the Network Volume in your endpoint configuration:
- Either create a new endpoint or update an existing one.
- In the endpoint configuration, under
Advanced > Select Network Volume
, select your Network Volume.
- Use the Network Volume in your endpoint configuration:
Note: The folders in the Network Volume are automatically available to ComfyUI when the network volume is configured and attached.
If you prefer to include your models directly in the Docker image, follow these steps:
-
Fork the Repository:
- Fork this repository to your own GitHub account.
-
Add Your Models in the Dockerfile:
- Edit the
Dockerfile
to include your models:RUN wget -O models/checkpoints/sd_xl_base_1.0.safetensors https://huggingface.co/stabilityai/stable-diffusion-xl-base-1.0/resolve/main/sd_xl_base_1.0.safetensors
- You can also add custom nodes:
RUN git clone https://github.com/<username>/<custom-node-repo>.git custom_nodes/<custom-node-repo>
- Edit the
-
Build Your Docker Image:
- Build the base image locally:
docker build -t <your_dockerhub_username>/runpod-worker-comfy:dev-base --target base --platform linux/amd64 .
- Build the sdxl image locally:
docker build --build-arg MODEL_TYPE=sdxl -t <your_dockerhub_username>/runpod-worker-comfy:dev-sdxl --platform linux/amd64 .
- Build the sd3 image locally:
docker build --build-arg MODEL_TYPE=sd3 --build-arg HUGGINGFACE_ACCESS_TOKEN=<your-huggingface-token> -t <your_dockerhub_username>/runpod-worker-comfy:dev-sd3 --platform linux/amd64 .
- Build the base image locally:
[!NOTE]
Ensure to specify--platform linux/amd64
to avoid errors on RunPod, see issue #13.
Both tests will use the data from test_input.json, so make your changes in there to test this properly.
- Make sure you have Python >= 3.10
- Create a virtual environment:
python -m venv venv
- Activate the virtual environment:
-
Windows:
.\venv\Scripts\activate
-
Mac / Linux:
source ./venv/bin/activate
-
Windows:
- Install the dependencies:
pip install -r requirements.txt
- Install WSL2 and a Linux distro (like Ubuntu) following this guide. You can skip the "Install and use a GUI package" part.
- After installing Ubuntu, open the terminal and log in:
wsl -d Ubuntu
- Update the packages:
sudo apt update
- Install Docker in Ubuntu:
- Follow the official Docker installation guide.
- Install docker-compose:
sudo apt-get install docker-compose
- Install the NVIDIA Toolkit in Ubuntu:
Follow this guide and create the
nvidia
runtime.
- Enable GPU acceleration on Ubuntu on WSL2:
Follow this guide.
- If you already have your GPU driver installed on Windows, you can skip the "Install the appropriate Windows vGPU driver for WSL" step.
- Add your user to the
docker
group to use Docker withoutsudo
:sudo usermod -aG docker $USER
Once these steps are completed, switch to Ubuntu in the terminal and run the Docker image locally on your Windows computer via WSL:
wsl -d Ubuntu
- Run all tests:
python -m unittest discover
- If you want to run a specific test:
python -m unittest tests.test_rp_handler.TestRunpodWorkerComfy.test_bucket_endpoint_not_configured
You can also start the handler itself to have the local server running: python src/rp_handler.py
To get this to work you will also need to start "ComfyUI", otherwise the handler will not work.
For enhanced local development, you can start an API server that simulates the RunPod worker environment. This feature is particularly useful for debugging and testing your integrations locally.
Set the SERVE_API_LOCALLY
environment variable to true
to activate the local API server when running your Docker container. This is already the default value in the docker-compose.yml
, so you can get it running by executing:
docker-compose up
- With the local API server running, it's accessible at: localhost:8000
- When you open this in your browser, you can also see the API documentation and can interact with the API directly
- With the local API server running, you can access ComfyUI at: localhost:8188
The repo contains two workflows that publish the image to Docker hub using GitHub Actions:
-
dev.yml: Creates the image and pushes it to Docker hub with the
dev
tag on every push to themain
branch -
release.yml: Creates the image and pushes it to Docker hub with the
latest
and the release tag. It will only be triggered when you create a release on GitHub
If you want to use this, you should add these secrets to your repository:
Configuration Variable | Description | Example Value |
---|---|---|
DOCKERHUB_USERNAME |
Your Docker Hub username. | your-username |
DOCKERHUB_TOKEN |
Your Docker Hub token for authentication. | your-token |
And also make sure to add these variables to your repository:
Variable Name | Description | Example Value |
---|---|---|
DOCKERHUB_REPO |
The repository on Docker Hub where the image will be pushed. | timpietruskyblibla |
DOCKERHUB_IMG |
The name of the image to be pushed to Docker Hub. | runpod-worker-comfy |
- Thanks to all contributors for your awesome work
- Thanks to Justin Merrell from RunPod for worker-1111, which was used to get inspired on how to create this worker
- Thanks to Ashley Kleynhans for runpod-worker-a1111, which was used to get inspired on how to create this worker
- Thanks to comfyanonymous for creating ComfyUI, which provides such an awesome API to interact with Stable Diffusion
For Tasks:
Click tags to check more tools for each tasksFor Jobs:
Alternative AI tools for runpod-worker-comfy
Similar Open Source Tools
runpod-worker-comfy
runpod-worker-comfy is a serverless API tool that allows users to run any ComfyUI workflow to generate an image. Users can provide input images as base64-encoded strings, and the generated image can be returned as a base64-encoded string or uploaded to AWS S3. The tool is built on Ubuntu + NVIDIA CUDA and provides features like built-in checkpoints and VAE models. Users can configure environment variables to upload images to AWS S3 and interact with the RunPod API to generate images. The tool also supports local testing and deployment to Docker hub using Github Actions.
chatgpt-cli
ChatGPT CLI provides a powerful command-line interface for seamless interaction with ChatGPT models via OpenAI and Azure. It features streaming capabilities, extensive configuration options, and supports various modes like streaming, query, and interactive mode. Users can manage thread-based context, sliding window history, and provide custom context from any source. The CLI also offers model and thread listing, advanced configuration options, and supports GPT-4, GPT-3.5-turbo, and Perplexity's models. Installation is available via Homebrew or direct download, and users can configure settings through default values, a config.yaml file, or environment variables.
code2prompt
Code2Prompt is a powerful command-line tool that generates comprehensive prompts from codebases, designed to streamline interactions between developers and Large Language Models (LLMs) for code analysis, documentation, and improvement tasks. It bridges the gap between codebases and LLMs by converting projects into AI-friendly prompts, enabling users to leverage AI for various software development tasks. The tool offers features like holistic codebase representation, intelligent source tree generation, customizable prompt templates, smart token management, Gitignore integration, flexible file handling, clipboard-ready output, multiple output options, and enhanced code readability.
BodhiApp
Bodhi App runs Open Source Large Language Models locally, exposing LLM inference capabilities as OpenAI API compatible REST APIs. It leverages llama.cpp for GGUF format models and huggingface.co ecosystem for model downloads. Users can run fine-tuned models for chat completions, create custom aliases, and convert Huggingface models to GGUF format. The CLI offers commands for environment configuration, model management, pulling files, serving API, and more.
Construction-Hazard-Detection
Construction-Hazard-Detection is an AI-driven tool focused on improving safety at construction sites by utilizing the YOLOv8 model for object detection. The system identifies potential hazards like overhead heavy loads and steel pipes, providing real-time analysis and warnings. Users can configure the system via a YAML file and run it using Docker. The primary dataset used for training is the Construction Site Safety Image Dataset enriched with additional annotations. The system logs are accessible within the Docker container for debugging, and notifications are sent through the LINE messaging API when hazards are detected.
llm-vscode
llm-vscode is an extension designed for all things LLM, utilizing llm-ls as its backend. It offers features such as code completion with 'ghost-text' suggestions, the ability to choose models for code generation via HTTP requests, ensuring prompt size fits within the context window, and code attribution checks. Users can configure the backend, suggestion behavior, keybindings, llm-ls settings, and tokenization options. Additionally, the extension supports testing models like Code Llama 13B, Phind/Phind-CodeLlama-34B-v2, and WizardLM/WizardCoder-Python-34B-V1.0. Development involves cloning llm-ls, building it, and setting up the llm-vscode extension for use.
promptfoo
Promptfoo is a tool for testing and evaluating LLM output quality. With promptfoo, you can build reliable prompts, models, and RAGs with benchmarks specific to your use-case, speed up evaluations with caching, concurrency, and live reloading, score outputs automatically by defining metrics, use as a CLI, library, or in CI/CD, and use OpenAI, Anthropic, Azure, Google, HuggingFace, open-source models like Llama, or integrate custom API providers for any LLM API.
ai-dial-core
AI DIAL Core is an HTTP Proxy that provides a unified API to different chat completion and embedding models, assistants, and applications. It is written in Java 17 and built on Eclipse Vert.x. The core functionality includes handling static and dynamic settings, deployment on Kubernetes using Helm charts, and storing user data in Blob Storage and Redis. It supports various identity providers, storage providers like AWS S3, Google Cloud Storage, and Azure Blob Store, and features like AI DIAL Addons, Interceptors, Assistants, Applications, and Models with customizable parameters and configurations.
showdown
Showdown is a Pokémon battle-bot that can play battles on Pokemon Showdown. It can play single battles in generations 3 through 8. The project offers different battle bot implementations such as Safest, Nash-Equilibrium, Team Datasets, and Most Damage. Users can configure the bot using environment variables and run it either without Docker by cloning the repository and installing requirements or with Docker by building the Docker image and running it with an environment variable file. Additionally, users can write their own bot by creating a package in showdown/battle_bots with a module named main.py and implementing a find_best_move function.
llm2sh
llm2sh is a command-line utility that leverages Large Language Models (LLMs) to translate plain-language requests into shell commands. It provides a convenient way to interact with your system using natural language. The tool supports multiple LLMs for command generation, offers a customizable configuration file, YOLO mode for running commands without confirmation, and is easily extensible with new LLMs and system prompts. Users can set up API keys for OpenAI, Claude, Groq, and Cerebras to use the tool effectively. llm2sh does not store user data or command history, and it does not record or send telemetry by itself, but the LLM APIs may collect and store requests and responses for their purposes.
xFasterTransformer
xFasterTransformer is an optimized solution for Large Language Models (LLMs) on the X86 platform, providing high performance and scalability for inference on mainstream LLM models. It offers C++ and Python APIs for easy integration, along with example codes and benchmark scripts. Users can prepare models in a different format, convert them, and use the APIs for tasks like encoding input prompts, generating token ids, and serving inference requests. The tool supports various data types and models, and can run in single or multi-rank modes using MPI. A web demo based on Gradio is available for popular LLM models like ChatGLM and Llama2. Benchmark scripts help evaluate model inference performance quickly, and MLServer enables serving with REST and gRPC interfaces.
stable-diffusion-webui
Stable Diffusion WebUI Docker Image allows users to run Automatic1111 WebUI in a docker container locally or in the cloud. The images do not bundle models or third-party configurations, requiring users to use a provisioning script for container configuration. It supports NVIDIA CUDA, AMD ROCm, and CPU platforms, with additional environment variables for customization and pre-configured templates for Vast.ai and Runpod.io. The service is password protected by default, with options for version pinning, startup flags, and service management using supervisorctl.
LEADS
LEADS is a lightweight embedded assisted driving system designed to simplify the development of instrumentation, control, and analysis systems for racing cars. It is written in Python and C/C++ with impressive performance. The system is customizable and provides abstract layers for component rearrangement. It supports hardware components like Raspberry Pi and Arduino, and can adapt to various hardware types. LEADS offers a modular structure with a focus on flexibility and lightweight design. It includes robust safety features, modern GUI design with dark mode support, high performance on different platforms, and powerful ESC systems for traction control and braking. The system also supports real-time data sharing, live video streaming, and AI-enhanced data analysis for driver training. LEADS VeC Remote Analyst enables transparency between the driver and pit crew, allowing real-time data sharing and analysis. The system is designed to be user-friendly, adaptable, and efficient for racing car development.
holmesgpt
HolmesGPT is an open-source DevOps assistant powered by OpenAI or any tool-calling LLM of your choice. It helps in troubleshooting Kubernetes, incident response, ticket management, automated investigation, and runbook automation in plain English. The tool connects to existing observability data, is compliance-friendly, provides transparent results, supports extensible data sources, runbook automation, and integrates with existing workflows. Users can install HolmesGPT using Brew, prebuilt Docker container, Python Poetry, or Docker. The tool requires an API key for functioning and supports OpenAI, Azure AI, and self-hosted LLMs.
rclip
rclip is a command-line photo search tool powered by the OpenAI's CLIP neural network. It allows users to search for images using text queries, similar image search, and combining multiple queries. The tool extracts features from photos to enable searching and indexing, with options for previewing results in supported terminals or custom viewers. Users can install rclip on Linux, macOS, and Windows using different installation methods. The repository follows the Conventional Commits standard and welcomes contributions from the community.
For similar tasks
runpod-worker-comfy
runpod-worker-comfy is a serverless API tool that allows users to run any ComfyUI workflow to generate an image. Users can provide input images as base64-encoded strings, and the generated image can be returned as a base64-encoded string or uploaded to AWS S3. The tool is built on Ubuntu + NVIDIA CUDA and provides features like built-in checkpoints and VAE models. Users can configure environment variables to upload images to AWS S3 and interact with the RunPod API to generate images. The tool also supports local testing and deployment to Docker hub using Github Actions.
wenxin-starter
WenXin-Starter is a spring-boot-starter for Baidu's "Wenxin Qianfan WENXINWORKSHOP" large model, which can help you quickly access Baidu's AI capabilities. It fully integrates the official API documentation of Wenxin Qianfan. Supports text-to-image generation, built-in dialogue memory, and supports streaming return of dialogue. Supports QPS control of a single model and supports queuing mechanism. Plugins will be added soon.
modelfusion
ModelFusion is an abstraction layer for integrating AI models into JavaScript and TypeScript applications, unifying the API for common operations such as text streaming, object generation, and tool usage. It provides features to support production environments, including observability hooks, logging, and automatic retries. You can use ModelFusion to build AI applications, chatbots, and agents. ModelFusion is a non-commercial open source project that is community-driven. You can use it with any supported provider. ModelFusion supports a wide range of models including text generation, image generation, vision, text-to-speech, speech-to-text, and embedding models. ModelFusion infers TypeScript types wherever possible and validates model responses. ModelFusion provides an observer framework and logging support. ModelFusion ensures seamless operation through automatic retries, throttling, and error handling mechanisms. ModelFusion is fully tree-shakeable, can be used in serverless environments, and only uses a minimal set of dependencies.
freeGPT
freeGPT provides free access to text and image generation models. It supports various models, including gpt3, gpt4, alpaca_7b, falcon_40b, prodia, and pollinations. The tool offers both asynchronous and non-asynchronous interfaces for text completion and image generation. It also features an interactive Discord bot that provides access to all the models in the repository. The tool is easy to use and can be integrated into various applications.
generative-ai-go
The Google AI Go SDK enables developers to use Google's state-of-the-art generative AI models (like Gemini) to build AI-powered features and applications. It supports use cases like generating text from text-only input, generating text from text-and-images input (multimodal), building multi-turn conversations (chat), and embedding.
ai-flow
AI Flow is an open-source, user-friendly UI application that empowers you to seamlessly connect multiple AI models together, specifically leveraging the capabilities of multiples AI APIs such as OpenAI, StabilityAI and Replicate. In a nutshell, AI Flow provides a visual platform for crafting and managing AI-driven workflows, thereby facilitating diverse and dynamic AI interactions.
liboai
liboai is a simple C++17 library for the OpenAI API, providing developers with access to OpenAI endpoints through a collection of methods and classes. It serves as a spiritual port of OpenAI's Python library, 'openai', with similar structure and features. The library supports various functionalities such as ChatGPT, Audio, Azure, Functions, Image DALL·E, Models, Completions, Edit, Embeddings, Files, Fine-tunes, Moderation, and Asynchronous Support. Users can easily integrate the library into their C++ projects to interact with OpenAI services.
OpenAI-DotNet
OpenAI-DotNet is a simple C# .NET client library for OpenAI to use through their RESTful API. It is independently developed and not an official library affiliated with OpenAI. Users need an OpenAI API account to utilize this library. The library targets .NET 6.0 and above, working across various platforms like console apps, winforms, wpf, asp.net, etc., and on Windows, Linux, and Mac. It provides functionalities for authentication, interacting with models, assistants, threads, chat, audio, images, files, fine-tuning, embeddings, and moderations.
For similar jobs
runpod-worker-comfy
runpod-worker-comfy is a serverless API tool that allows users to run any ComfyUI workflow to generate an image. Users can provide input images as base64-encoded strings, and the generated image can be returned as a base64-encoded string or uploaded to AWS S3. The tool is built on Ubuntu + NVIDIA CUDA and provides features like built-in checkpoints and VAE models. Users can configure environment variables to upload images to AWS S3 and interact with the RunPod API to generate images. The tool also supports local testing and deployment to Docker hub using Github Actions.
kaito
Kaito is an operator that automates the AI/ML inference model deployment in a Kubernetes cluster. It manages large model files using container images, avoids tuning deployment parameters to fit GPU hardware by providing preset configurations, auto-provisions GPU nodes based on model requirements, and hosts large model images in the public Microsoft Container Registry (MCR) if the license allows. Using Kaito, the workflow of onboarding large AI inference models in Kubernetes is largely simplified.
ai-on-gke
This repository contains assets related to AI/ML workloads on Google Kubernetes Engine (GKE). Run optimized AI/ML workloads with Google Kubernetes Engine (GKE) platform orchestration capabilities. A robust AI/ML platform considers the following layers: Infrastructure orchestration that support GPUs and TPUs for training and serving workloads at scale Flexible integration with distributed computing and data processing frameworks Support for multiple teams on the same infrastructure to maximize utilization of resources
tidb
TiDB is an open-source distributed SQL database that supports Hybrid Transactional and Analytical Processing (HTAP) workloads. It is MySQL compatible and features horizontal scalability, strong consistency, and high availability.
nvidia_gpu_exporter
Nvidia GPU exporter for prometheus, using `nvidia-smi` binary to gather metrics.
tracecat
Tracecat is an open-source automation platform for security teams. It's designed to be simple but powerful, with a focus on AI features and a practitioner-obsessed UI/UX. Tracecat can be used to automate a variety of tasks, including phishing email investigation, evidence collection, and remediation plan generation.
openinference
OpenInference is a set of conventions and plugins that complement OpenTelemetry to enable tracing of AI applications. It provides a way to capture and analyze the performance and behavior of AI models, including their interactions with other components of the application. OpenInference is designed to be language-agnostic and can be used with any OpenTelemetry-compatible backend. It includes a set of instrumentations for popular machine learning SDKs and frameworks, making it easy to add tracing to your AI applications.
BricksLLM
BricksLLM is a cloud native AI gateway written in Go. Currently, it provides native support for OpenAI, Anthropic, Azure OpenAI and vLLM. BricksLLM aims to provide enterprise level infrastructure that can power any LLM production use cases. Here are some use cases for BricksLLM: * Set LLM usage limits for users on different pricing tiers * Track LLM usage on a per user and per organization basis * Block or redact requests containing PIIs * Improve LLM reliability with failovers, retries and caching * Distribute API keys with rate limits and cost limits for internal development/production use cases * Distribute API keys with rate limits and cost limits for students