Skip to content

voxel51/fiftyone-plugins

Repository files navigation

FiftyOne Plugins ๐Ÿ”Œ๐Ÿš€

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.

With FiftyOne Teams, you can even write plugins that allow users to execute long-running tasks from within the App that run on a connected compute cluster.

For example, here's a taste of what you can do with the @voxel51/brain plugin!

brain.mp4

Table of Contents

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!

Core Plugins

Name Description
@voxel51/annotation โœ๏ธ Utilities for integrating FiftyOne with annotation tools
@voxel51/brain ๐Ÿง  Utilities for working with the FiftyOne Brain
@voxel51/dashboard ๐Ÿ“Š Create your own custom dashboards from within the App
@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/runs ๐Ÿƒ Utilities for managing your custom runs
@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

Voxel51 Plugins

Name Description
@voxel51/voxelgpt ๐Ÿค– An AI assistant that can query visual datasets, search the FiftyOne docs, and answer general computer vision questions
@voxel51/mlflow ๐Ÿ“‹ Track model training experiments on your FiftyOne datasets with MLflow!
@voxel51/huggingface_hub ๐Ÿค— Push FiftyOne datasets to the Hugging Face Hub, and load datasets from the Hub into FiftyOne!
@voxel51/transformers ๐Ÿค— Run inference on your datasets using Hugging Face Transformers models!

Example Plugins

Name Description
@voxel51/hello-world ๐Ÿ‘‹ An example plugin that contains both Python and JavaScript components
@voxel51/operator-examples โš™๏ธ A collection of example operators showing how to use the operator type system to build custom FiftyOne operations
@voxel51/panel-examples ๐Ÿ“Š A collection of example panels demonstrating common patterns for building Python panels

Community Plugins

๐Ÿ”Œ๐Ÿค Contribute Your Own Plugin ๐Ÿš€๐Ÿš€

Want to showcase your own plugin here? See the contributing section for instructions!

Name Description
@harpreetsahota/minicpm-v ๐Ÿ‘๏ธ Integrating MiniCPM-V 4.5 as a Remote Source Zoo Model in FiftyOne
@harpreetsahota/fast_vlm ๐Ÿ’จ Integrating FastVLM as a Remote Source Zoo Model for FiftyOne
@harpreetsahota/gui_actor ๐Ÿ–ฅ๏ธ Implementing Microsoft's GUI Actor as a Remote Zoo Model for FiftyOne
@harpreetsahota/synthetic_gui_samples_plugins ๐Ÿงช A FiftyOne plugin for generating synthetic samples for datasets in COCO4GUI format
@harpreetsahota/coco4gui_fiftyone ๐Ÿ’ฝ Implementing the COCO4GUI dataset type in FiftyOne with importers and exports
@harpreetsahota/fiftyone_lerobot_importer ๐Ÿค– Import your LeRobot format dataset into FiftyOne format
@harpreetsahota/medsiglip ๐Ÿฉป Implementing MedSigLIP as a Remote Zoo Model for FiftyOne
@harpreetsahota/florence2 ๐Ÿ›๏ธ Implementing Florence2 as a Remote Zoo Model for FiftyOne
@harpreetsahota/medgemma ๐Ÿฉป Implementing MedGemma as a Remote Zoo Model for FiftyOne
@harpreetsahota/moondream2 ๐ŸŒ” Moondream2 implementation as a remotely sourced zoo model for FiftyOne
@harpreetsahota/qwen2_5_vl ๐Ÿ‘€ Implementing Qwen2.5-VL as a Remote Zoo Model for FiftyOne
@harpreetsahota/paligemma2 ๐Ÿ’Ž Implementing PaliGemma-2-Mix as a Remote Zoo Model for FiftyOne
@harpreetsahota/siglip2 ๐Ÿ”Ž A FiftyOne Remotely Sourced Zoo Model integration for Google's SigLIP2 model enabling natural language search across images in your FiftyOne Dataset
@harpreetsahota/os_atlas ๐Ÿ–ฅ๏ธ Integrating OS-Atlas Base into FiftyOne as a Remote Source Zoo Model
@harpreetsahota/Nemotron_Nano_VL ๐Ÿ‘๏ธ Implementing Llama-3.1-Nemotron-Nano-VL-8B-V1 as a Remote Zoo Model for FiftyOne
@harpreetsahota/UI_TARS ๐Ÿ–ฅ๏ธ Implementing UI-TARS-1.5 as a Remote Zoo Model for FiftyOne
@harpreetsahota/MiMo_VL ๐ŸŽจ Implementing MiMo-VL as a Remote Zoo Model for FiftyOne
@harpreetsahota/Kimi_VL_A3B ๐Ÿ‘€ FiftyOne Remotely Sourced Zoo Model integration for Moonshot AI's Kimi-VL-A3B models enabling object detection, keypoint localization, and image classification with strong GUI and document understanding capabilities.
@harpreetsahota/vggt ๐ŸŽฒ Implemeting Meta AI's VGGT as a FiftyOne Remote Zoo Model
@harpreetsahota/NVLabs_CRADIOV3 ๐Ÿ“ป Implementing NVLabs C-RADIOv3 Embeddings Model as Remotely Sourced Zoo Model for FiftyOne
@harpreetsahota/nemo_retriever_parse_plugin ๐Ÿ“œ Implementing NVIDIA NeMo Retriever Parse as a FiftyOne Plugin
@harpreetsahota/visual_document_retrieval ๐Ÿ“„ A FiftyOne Remotely Sourced Zoo Model integration for LlamaIndex's VDR model enabling natural language search across document images, screenshots, and charts in your datasets.
@harpreetsahota/ShowUI ๐Ÿ–ฅ๏ธ Integrating ShowUI into FiftyOne as a Remote Source Zoo Model
@harpreetsahota/vitpose ๐Ÿง˜๐Ÿฝ Run ViTPose Models from Hugging Face on your FiftyOne Dataset
@harpreetsahota/depth_pro_plugin ๐Ÿฅฝ Perfom zero-shot metric monocular depth estimation using the Apple Depth Pro model
@harpreetsahota/janus_vqa ๐Ÿ‹ Run the Janus Pro Models from Deepseek on your Fiftyone Dataset
@harpreetsahota/hiera_video_embeddings ๐ŸŽฅ Compute embeddings for video using Facebook Hiera Models
@segmentsai/segments-voxel51-plugin โœ๏ธ Integrate FiftyOne with the Segments.ai annotation tool!
@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 icon Filter on two numeric ranges simultaneously!
@danielgural/semantic_video_search filter icon 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!
@danielgural/audio_loader ๐ŸŽง Import your audio datasets as spectograms into FiftyOne!
@jacobmarks/albumentations_augmentation ๐Ÿชž Test out any Albumentations data augmentation transform with FiftyOne!
@jacobmarks/image_captioning ๐Ÿ–‹๏ธ Caption all your images with state of the art vision-language models!
@jacobmarks/multimodal_rag ๐Ÿฆ™ Create and test multimodal RAG pipelines with LlamaIndex, Milvus, and FiftyOne!
@danielgural/optimal_confidence_threshold ๐Ÿ” Find the optimal confidence threshold for your detection models automatically!
@danielgural/outlier_detection โŒ Find those troublesome outliers in your dataset automatically!
@danielgural/clustering_algorithms ๐Ÿ•ต๏ธ Find the clusters in your data using some of the best algorithms available!
@jacobmarks/clustering ๐Ÿ‡ Cluster your images using embeddings with FiftyOne and scikit-learn!
@mmoollllee/fiftyone-tile โฌœ Tile your high resolution images to squares for training small object detection models
@mmoollllee/fiftyone-timestamps ๐Ÿ•’ Compute datetime-related fields (sunrise, dawn, evening, weekday, ...) from your samples' filenames or creation dates
@allenleetc/plotly-map-panel ๐ŸŒŽ Plotly-based Map Panel with adjustable marker cosmetics!
@madave94/multi_annotator_toolkit ๐Ÿงน Tackle noisy annotation! Find and analyze annotation issues in datasets with multiple annotators per image.
@AdonaiVera/fiftyone-vlm-efficient ๐Ÿช„ Improve VLM training data quality with state-of-the-art dataset pruning and quality techniques
@AdonaiVera/bddoia-fiftyone ๐Ÿš— Load and explore the BDDOIA Safe/Unsafe Action dataset via the FiftyOne Zoo

Using Plugins

Install FiftyOne

If you haven't already, install FiftyOne:

pip install fiftyone

Installing a plugin

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.

Plugin management

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 and panels
fiftyone operators list

# Disable a particular plugin
fiftyone plugins disable <name>

# Enable a particular plugin
fiftyone plugins enable <name>

Local development

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"

Contributing

Showcasing your plugin ๐Ÿค

Have a plugin you'd like to share with the community? Awesome! ๐ŸŽ‰๐ŸŽ‰๐ŸŽ‰

Just follow these steps to add your plugin to this repository:

  1. Make sure your plugin repo has a README.md file that describes the plugin and how to install it
  2. Fork this repository
  3. Add an entry for your plugin to the Community Plugins table above
  4. Submit a pull request into this repository

Contributing to this repository ๐Ÿ™Œ

You're also welcome to contribute to the plugins that live natively in this repository. Check out the contributions guide for instructions.

Join the Community

If you want join a fast-growing community of engineers, researchers, and practitioners who love computer vision, join the FiftyOne Discord community ๐Ÿš€๐Ÿš€๐Ÿš€

๐Ÿ’ก Pro tip: the #plugins channel is a great place to discuss plugins!

About FiftyOne

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! ๐Ÿ˜Š

Contributors 26