PHPackages                             soderlind/vmfa-ai-organizer - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Image &amp; Media](/categories/media)
4. /
5. soderlind/vmfa-ai-organizer

ActiveWordpress-plugin[Image &amp; Media](/categories/media)

soderlind/vmfa-ai-organizer
===========================

AI-powered media organization add-on for Virtual Media Folders

1.5.0(2mo ago)4265↑50%[4 PRs](https://github.com/soderlind/vmfa-ai-organizer/pulls)GPL-2.0-or-laterPHPPHP &gt;=8.3CI passing

Since Dec 30Pushed 2mo agoCompare

[ Source](https://github.com/soderlind/vmfa-ai-organizer)[ Packagist](https://packagist.org/packages/soderlind/vmfa-ai-organizer)[ Fund](https://paypal.me/PerSoderlind)[ RSS](/packages/soderlind-vmfa-ai-organizer/feed)WikiDiscussions main Synced 1mo ago

READMEChangelog (10)Dependencies (16)Versions (70)Used By (0)

Virtual Media Folders AI Organizer
==================================

[](#virtual-media-folders-ai-organizer)

AI-powered media organization add-on for the [Virtual Media Folders](https://wordpress.org/plugins/virtual-media-folders/) plugin. Uses vision-capable AI models to analyze actual image content and automatically organize your media library into virtual folders.

Features
--------

[](#features)

- **Vision-Based AI Analysis**: Analyzes actual image content (objects, scenes, colors) - not just metadata
- **Multiple AI Providers**: OpenAI/Azure, Anthropic Claude, Google Gemini, Ollama, Grok, Exo
    - Tested with the providers I have access to: Azure OpenAI (gpt-4.1) and Ollama (llama3.2-vision:latest)
- **Azure OpenAI Support**: Full support for Azure-hosted OpenAI deployments
- **Automatic File Handling**: Documents go to "Documents", videos go to "Videos" - no AI needed
- **Three Scan Modes**:
    - **Organize Unassigned**: Only process media not already in a folder
    - **Re-analyze All**: Re-analyze all media and update assignments
    - **Reorganize All**: Remove all folders and rebuild from scratch
- **Preview Mode**: Dry-run to see proposed changes before applying
- **Backup &amp; Restore**: Automatic backup before reorganization with one-click restore
- **Background Processing**: Uses Action Scheduler for efficient chunked processing
- **Real-time Progress**: Live progress updates in the admin UI

[![Virtual Media Folders AI Organizer - Order in Chaos](assets/vmfa-order-in-chaos.png)](https://www.youtube.com/watch?v=FMmvNUGd8Pg)

*Watch: [See how Virtual Media Folders AI Organizer brings order to your media library chaos.](https://www.youtube.com/watch?v=FMmvNUGd8Pg)*

Documentation
-------------

[](#documentation)

- **[AI Provider Guide](docs/AI-PROVIDERS.md)** - Detailed guide on choosing and configuring AI providers.
- **[WP-CLI Commands](docs/WP-CLI.md)** - Command-line interface for automation and scripting.

Requirements
------------

[](#requirements)

- WordPress 6.8+
- PHP 8.3+
- [Virtual Media Folders](https://wordpress.org/plugins/virtual-media-folders/) plugin

Installation
------------

[](#installation)

1. Download [`vmfa-ai-organizer.zip`](https://github.com/soderlind/vmfa-ai-organizer/releases/latest/download/vmfa-ai-organizer.zip)
2. Upload via `Plugins → Add New → Upload Plugin`
3. Activate via `WordPress Admin → Plugins`

Plugin [updates are handled automatically](https://github.com/soderlind/wordpress-plugin-github-updater#readme) via GitHub. No need to manually download and install updates.

Configuration
-------------

[](#configuration)

Navigate to **Media → AI Organizer** to configure:

### Media Scanner Tab

[](#media-scanner-tab)

Use this tab to scan and organize your media library. See scan modes and preview options.

### Settings Tab

[](#settings-tab)

- **Max Folder Depth**: Limit folder hierarchy depth (1-5)
- **Allow New Folders**: Enable AI to suggest new folder structures
- **Batch Size**: Number of items to process per batch

### AI Provider Tab

[](#ai-provider-tab)

Configure your AI provider for image analysis. See the **[AI Provider Guide](docs/AI-PROVIDERS.md)** for detailed setup instructions, model recommendations, and cost comparison.

### Configuration Priority

[](#configuration-priority)

Settings are resolved in this order:

1. PHP Constants (e.g., `VMFA_AI_OPENAI_KEY`)
2. Environment Variables (e.g., `VMFA_AI_OPENAI_KEY`)
3. Database Options (Settings page)
4. Default Values

### Environment Variables / Constants

[](#environment-variables--constants)

```
// Provider Selection
define( 'VMFA_AI_PROVIDER', 'openai' );

// OpenAI / Azure OpenAI
define( 'VMFA_AI_OPENAI_TYPE', 'openai' ); // 'openai' or 'azure'
define( 'VMFA_AI_OPENAI_KEY', 'sk-...' );
define( 'VMFA_AI_OPENAI_MODEL', 'gpt-4o-mini' );
define( 'VMFA_AI_AZURE_ENDPOINT', 'https://your-resource.openai.azure.com' );
define( 'VMFA_AI_AZURE_API_VERSION', '2024-02-15-preview' );

// Anthropic Claude
define( 'VMFA_AI_ANTHROPIC_KEY', 'sk-ant-...' );
define( 'VMFA_AI_ANTHROPIC_MODEL', 'claude-3-haiku-20240307' );

// Google Gemini
define( 'VMFA_AI_GEMINI_KEY', '...' );
define( 'VMFA_AI_GEMINI_MODEL', 'gemini-1.5-flash' );

// Grok (xAI)
define( 'VMFA_AI_GROK_KEY', '...' );
define( 'VMFA_AI_GROK_MODEL', 'grok-beta' );

// Ollama (Local) - Use a vision-capable model for image analysis
define( 'VMFA_AI_OLLAMA_URL', 'http://localhost:11434' );
define( 'VMFA_AI_OLLAMA_MODEL', 'llama3.2-vision:latest' );

// Exo (Distributed Local)
define( 'VMFA_AI_EXO_ENDPOINT', 'http://localhost:52415' );
define( 'VMFA_AI_EXO_MODEL', 'llama-3.2-3b' );

// Organization Settings
define( 'VMFA_AI_MAX_FOLDER_DEPTH', 3 );
define( 'VMFA_AI_ALLOW_NEW_FOLDERS', true );
define( 'VMFA_AI_BATCH_SIZE', 20 );
```

Vision API Support
------------------

[](#vision-api-support)

The plugin uses vision-capable AI models to analyze actual image content. When processing images, the AI receives:

1. **Image Content** (primary): The actual visual content of the image
2. **EXIF/Metadata**: Camera info, date taken, GPS location, keywords
3. **Text metadata**: Title, alt text, caption, description
4. **Filename**: As a last resort hint

Supported image formats: JPEG, PNG, GIF, WebP (max 10MB per image).

For detailed information about supported AI providers and vision-capable models, see the **[AI Provider Guide](docs/AI-PROVIDERS.md)**.

Development
-----------

[](#development)

For development setup, testing, REST API endpoints, and hooks documentation, see the **[Development Guide](docs/DEVELOPMENT.md)**.

License
-------

[](#license)

Virtual Media Folders AI Organizer is free software licensed under the [GPL v2 or later](https://www.gnu.org/licenses/gpl-2.0.html).

Copyright 2025 Per Soderlind

###  Health Score

47

—

FairBetter than 94% of packages

Maintenance85

Actively maintained with recent releases

Popularity19

Limited adoption so far

Community6

Small or concentrated contributor base

Maturity64

Established project with proven stability

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~2 days

Total

37

Last Release

65d ago

Major Versions

0.6.0 → 1.0.02026-01-26

### Community

Maintainers

![](https://avatars.githubusercontent.com/u/1649452?v=4)[Per Søderlind](/maintainers/soderlind)[@soderlind](https://github.com/soderlind)

---

Top Contributors

[![soderlind](https://avatars.githubusercontent.com/u/1649452?v=4)](https://github.com/soderlind "soderlind (160 commits)")

---

Tags

aiclaude-aigeminimedia-library-managementollama-clientopenaivirtual-media-folderswordpress-pluginwordpressaiopenaiwordpress pluginmedia libraryGeminiclaudeanthropicollamaimage recognitionazure-openaiexogrokmedia-organizationvirtual-folders

###  Code Quality

TestsPest

### Embed Badge

![Health badge](/badges/soderlind-vmfa-ai-organizer/health.svg)

```
[![Health](https://phpackages.com/badges/soderlind-vmfa-ai-organizer/health.svg)](https://phpackages.com/packages/soderlind-vmfa-ai-organizer)
```

###  Alternatives

[cognesy/instructor-php

The complete AI toolkit for PHP: unified LLM API, structured outputs, agents, and coding agent control

310107.9k1](/packages/cognesy-instructor-php)[symfony/ai-platform

PHP library for interacting with AI platform provider.

51927.7k136](/packages/symfony-ai-platform)[vizra/vizra-adk

Vizra Agent Development Kit - A comprehensive Laravel package for building intelligent AI agents.

29026.1k](/packages/vizra-vizra-adk)[sbsaga/toon

🧠 TOON for Laravel — a compact, human-readable, and token-efficient data format for AI prompts &amp; LLM contexts. Perfect for ChatGPT, Gemini, Claude, Mistral, and OpenAI integrations (JSON ⇄ TOON).

6115.6k](/packages/sbsaga-toon)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
