Official Omnitool repository
Discover, Learn, Evaluate and Build with thousands of Generative AI Models.
Omnitool.ai is an open-source, downloadable "AI Lab in a box" built for learners, enthusiasts and anyone with interest in the current wave of AI innovation. It provides an extensible browser based desktop environment for streamlined, hands-on interacting with the latest AI models from OpenAI, replicate.com, Stable Diffusion, Google, or other leading providers through a single, unified interface.
Watch the demo! and see more videos on our Youtube channel.
With thousands of preprints and countless "AI tools" released each week, it is incredibly challenging to stay on top of the rapidly evolving AI ecosystem, to separate hype and facts and to extract durable long term skills and learning. PapersWithCode and GitHub repositories attached to arXiv papers provide ability to hands-on validate and apply the latest discoveries, but the fragile nature of the Python ecosystem and often steep hardware requirments dramatically limits accessibility. Likewise implementing and testing cloud based models requires delving deep into API documentation and wrestling with connecting code.
We believe that is a serious problem. AI may represent the first large scale technological disruption unbounded by logistical challenges, scaling along existing wires, API infastructure and app delivery platforms. Meanwhile, market pressure to adopt AI is felt by many businesses and teams.
Without educated decision makers and technical experts, businesses and public organisations alike are at high risk of falling for hype and magical narratives and expensive misadventures.
Omnitool is our attempt to improve this situation: A single, unified interface capable of connecting with as many AI models as possible and to reduce the "time to hands on AI" to an absolute minimum.
Omnitool is highly extensible and interoperable. Most OpenAPI3 based services can be connected and turned into "blocks" without writing code. It's extension framework enables deeper integrations of anything from custom UIs (Like Stability Dream Studio) to Game Engines (like BabyonJS or Phaser) to Image manipulation libraries.
Omnitool is local self-hosted software that turns your machine into a powerful AI Lab.
Open Source and Open Standards
Minimal Time-to-AI: It allows you to try out models and services in minutes without having to study API docs, write boilerplate code, manage python venvs or figuring out new user interfaces. Because of it's integration of many leading AI platforms, the lag time between "paper with code" to hands on experimentation often is cut down to days.
It presents the vast world of generative AI - image, video, audio, text, and classification APIS - through a single, unified user interface without oversimplifying or hiding the power of the APIs.
Currently supported:
Currently supported Local APIs:
Omnitool is able to generate blocks from any openapi.json definitions via URL or directly supplied file. We support a number of custom x- annotations that can be added to openapi definitions to allow omnitool to guide the block generation. It also supports creating "patches" on top of existing APIs to create customized blocks. With integrated JSONATA support, it is possible to build powerful data processing blocks using pure data.
Inspired by the common modding architecture found in video game toolsets, Omnitool is built, from the ground up, to be extensible via multiple mechanisms:
Some examples of currently available extensions:
Visit the Extension tab in app or see our Omnitool Community Github for a list of currently available extensions
We are currently testing installers for Windows and macOS. Until those are publicly available, please follow the manual installation steps.
This guide will help you download the Omnitool software, and then build and start the Omnitool server in a directory running from your local machine.
You can then access the Omnitool software from a web browser on your local machine.
Ensure you have the following sofware installed:
git clone https://github.com/omnitool-ai/omnitool
This will create the omnitool
folder.
cd omnitool
Run the following command in the root of the repository to install the necessary dependencies:
yarn install
Troubleshooting
node setup\fix.js
Now we will use yarn
and Node.js
to build the server software locally on your machine and then start it running.
Windows:
start.bat
MacOS/Linux:
./start.sh
When successful, you will see the following message:
◐ Booting Server
✔ Server has started and is ready to accept connections on http://127.0.0.1:1688.
✔ Ctrl-C to quit.
Omnitool.ai can now be accessed from: 127.0.0.1:1688
yarn run
Our service allows you to generate a JWT by running a specific script designed for this purpose. The script's signature is as follows:
/generateJwtToken <action> <subject> <expires_in>
Parameters
<action>
: This is a string parameter identifying the intended action to be performed. In the context of running recipes, this should be set to exec.<subject>
: This is a string parameter that specifies the subject of the JWT. This could be the recipe that you intend to execute.<expires_in>
: This is an integer parameter that determines the token's validity period in milliseconds.Example
To generate a JWT for executing a recipe with a validity of 30,000 milliseconds (or 30 seconds), you would run the following script:
/generateJwtToken exec Workflow 30000
Please see [examples/api.mjs] for an example javascript which runs a recipe.
Output
The script will output a JWT, which is a token string to be used in the authorization header for your API requests.
Once you have your JWT, you can execute a recipe by making a POST request to the recipe execution API. This request must include the JWT in the Authorization header.
Endpoint
POST http://127.0.0.1:1688/api/v1/workflow/exec
Header
Authorization: Bearer <token>
<token>
is the JWT acquired from the /generateJwtToken script.
Curl Example
To make the request using curl, you would use the following command, replacing
curl -X POST http://127.0.0.1:1688/api/v1/workflow/exec -H "Authorization: Bearer <token>"
Response
Upon success, the API will initiate the specified recipe. You will receive a JSON response containing details about the recipe's execution status, including any outputs or errors.
Security Considerations
** Getting Results **
Once a job is finished, you can use the /api/v1/workflow/results?jobId=<jobId> to retrieve the results.
Troubleshooting
Interact with fellow users, share your experiences, ask questions, and be a part of our active and growing community on Discord.
As an open-source platform, we welcome contributions from users like you. Whether it's improving documentation, adding new features, or simply sharing your unique use cases, your input is invaluable to us. Simply send us a pull-request and we'll be in contact.
Your feedback helps shape the future of Omnitool.ai. Send your feedback and suggestions to [email protected], or share them directly in our Discord #feedback channel.