FiftyOne provides a powerful plugin framework that allows for extending and customizing the functionality of the tool.
With plugins, you can add new functionality to the FiftyOne App, create integrations with other tools and APIs, render custom panels, and add custom buttons to menus. You can even schedule long running tasks from within the App that execute on a connected workflow orchestration tool like Apache Airflow.
For example, here's a taste of what you can do with the @voxel51/brain plugin!
brain.mp4
This repository contains a curated collection of FiftyOne Plugins, organized into the following categories:
- Core Plugins: core functionality that all FiftyOne users will likely want to install. These plugins are maintained by the FiftyOne team
- Voxel51 Plugins: non-core plugins that are officially maintained by the FiftyOne team
- Example Plugins: these plugins exist to inspire and educate you to create your own plugins! Each emphasizes a different aspect of the plugin system
- Community Plugins: third-party plugins that are contributed and maintained by the community. These plugins are not officially supported by the FiftyOne team, but they're likely awesome!
๐๐ค Contribute Your Own Plugin ๐๐
Want to showcase your own plugin here? See the contributing section for instructions!
Name | Description |
---|---|
@voxel51/annotation | โ๏ธ Utilities for integrating FiftyOne with annotation tools |
@voxel51/brain | ๐ง Utilities for working with the FiftyOne Brain |
@voxel51/evaluation | โ Utilities for evaluating models with FiftyOne |
@voxel51/io | ๐ A collection of import/export utilities |
@voxel51/indexes | ๐ Utilities working with FiftyOne database indexes |
@voxel51/plugins | ๐งฉ Utilities for managing and building FiftyOne plugins |
@voxel51/delegated | ๐ก Utilities for managing your delegated operations |
@voxel51/utils | โ๏ธ Call your favorite SDK utilities from the App |
@voxel51/zoo | ๐ Download datasets and run inference with models from the FiftyOne Zoo, all without leaving the App |
Name | Description |
---|---|
@voxel51/voxelgpt | ๐ค An AI assistant that can query visual datasets, search the FiftyOne docs, and answer general computer vision questions |
Name | Description |
---|---|
@voxel51/hello-world | ๐ An example of JavaScript and Python components and operators in a single plugin |
@voxel51/python-view | ๐ Create views in the FiftyOne App with Python |
@voxel51/examples | ๐ Examples of how to use the operator type system to build custom FiftyOne operations |
๐๐ค Contribute Your Own Plugin ๐๐
Want to showcase your own plugin here? See the contributing section for instructions!
Name | Description |
---|---|
@jacobmarks/image_issues | ๐ฉ๏ธ Find common image quality issues in your datasets |
@jacobmarks/concept_interpolation | ๐ Find images that best interpolate between two text-based extremes! |
@jacobmarks/text_to_image | ๐จ Add synthetic data from prompts with text-to-image models and FiftyOne! |
@jacobmarks/twilio_automation | ๐ฒ Automate data ingestion with Twilio! |
@wayofsamu/line2d | ๐ Visualize x,y-Points as a line chart. |
@jacobmarks/vqa-plugin | โ Ask (and answer) open-ended visual questions about your images! |
@jacobmarks/youtube_panel_plugin | ๐บ Play YouTube videos in the FiftyOne App! |
@jacobmarks/image_deduplication | ๐ช Find exact and approximate duplicates in your dataset! |
@jacobmarks/keyword_search | ๐ Perform keyword search on a specified field! |
@jacobmarks/pytesseract_ocr | ๐ Run optical character recognition with PyTesseract! |
@brimoor/pdf-loader | ๐ Load your PDF documents into FiftyOne as per-page images |
@jacobmarks/zero_shot_prediction | ๐ฎ Run zero-shot (open vocabulary) prediction on your data! |
@jacobmarks/active_learning | ๐ Accelerate your data labeling with Active Learning! |
@jacobmarks/reverse_image_search | โช Find the images in your dataset most similar to an image from filesystem or the internet! |
@jacobmarks/concept_space_traversal | ๐ Navigate concept space with CLIP, vector search, and FiftyOne! |
@jacobmarks/audio_retrieval | ๐ Find the images in your dataset most similar to an audio file! |
@jacobmarks/semantic_document_search | ๐ Perform semantic search on text in your documents! |
@allenleetc/model-comparison | โ๏ธ Compare two object detection models! |
@ehofesmann/filter_values | ๐ Filter a field of your FiftyOne dataset by one or more values. |
@jacobmarks/gpt4_vision | ๐ค Chat with your images using GPT-4 Vision! |
@swheaton/anonymize | ๐ฅธ Anonymize/blur images based on a FiftyOne Detections field. |
@jacobmarks/double_band_filter | Filter on two numeric ranges simultaneously! |
@danielgural/semantic_video_search | Semantically search through your video datasets using FiftyOne Brain and Twelve Labs! |
@jacobmarks/emoji_search | ๐ Semantically search emojis and copy to clipboard! |
@danielgural/img_to_video | ๐ฆ Bring images to life with image to video! |
@ehofesmann/edit_label_attributes | โ๏ธ Edit attributes of your labels directly in the FiftyOne App! |
If you haven't already, install FiftyOne:
pip install fiftyone
In general, you can install all plugin(s) in a GitHub repository by running:
fiftyone plugins download https://github.com/path/to/repo
For instance, to install all plugins in this repository, you can run:
fiftyone plugins download https://github.com/voxel51/fiftyone-plugins
You can also install a specific plugin using the --plugin-names
flag:
fiftyone plugins download \
https://github.com/voxel51/fiftyone-plugins \
--plugin-names <name>
๐ก Pro tip: Some plugins require additional setup. Click the plugin's link and navigate to the project's README for instructions.
You can use the CLI commands below to manage your downloaded plugins:
# List all plugins you've downloaded
fiftyone plugins list
# List the available operators
fiftyone operators list
# Disable a particular plugin
fiftyone plugins disable <name>
# Enable a particular plugin
fiftyone plugins enable <name>
If you plan to develop plugins locally, you can clone the repository and symlink it into your FiftyOne plugins directory like so:
cd /path/to/fiftyone-plugins
ln -s "$(pwd)" "$(fiftyone config plugins_dir)/fiftyone-plugins"
Have a plugin you'd like to share with the community? Awesome! ๐๐๐
Just follow these steps to add your plugin to this repository:
- Make sure your plugin repo has a
README.md
file that describes the plugin and how to install it - Fork this repository
- Add an entry for your plugin to the Community Plugins table above
- Submit a pull request into this repository
You're also welcome to contribute to the plugins that live natively in this repository. Check out the contributions guide for instructions.
If you want join a fast-growing community of engineers, researchers, and practitioners who love computer vision, join the FiftyOne Slack community ๐๐๐
๐ก Pro tip: the #plugins
channel is a great place to discuss plugins!
If you've made it this far, we'd greatly appreciate if you'd take a moment to check out FiftyOne and give us a star!
FiftyOne is an open source library for building high-quality datasets and computer vision models. It's the engine that powers this project.
Thanks for visiting! ๐