AI Moderation
Updated
Pro feature. Available in MediaVerse Pro.
Free + Pro - Core functionality is included free. Features marked with (Pro) require WPMediaVerse Pro.
WPMediaVerse integrates with OpenAI Vision (GPT-4o or GPT-4o Mini) to automatically analyze and moderate uploaded media. WPMediaVerse Pro adds support for Google Vision, AWS Rekognition, and Claude (Anthropic).

How AI Analysis Works
When Auto-Analyze Uploads is enabled, WPMediaVerse sends each uploaded image to OpenAI immediately after storage. The analysis returns:
- A natural-language description of the image
- Suggested tags (comma-separated keywords)
- Safety categories with confidence scores (adult content, violence, etc.)
The description is saved to the ai_description media metadata key. If Auto-Apply Tags is enabled, the suggested tags are assigned to the mvs_tag taxonomy.
How AI Moderation Works
When Auto-Moderate Uploads is enabled, WPMediaVerse checks the AI safety scores against configurable thresholds. If a policy violation is detected, the action defined in When AI Flags Content is applied:
| Action | What Happens |
|---|---|
| Flag for review | Media stays published but appears in the moderation queue |
| Hide | Media's privacy is set to private |
| Reject | Media's post_status is set to draft |
| Delete permanently | Media and its files are removed from local and cloud storage. Cannot be undone. |
Moderation status changes fire the mvs_moderation_changed action hook ($media_id, $status, $old_status, $user_id).
Triggering Analysis Manually
Site administrators can re-analyze any media item from the moderation queue or via the REST API:
curl -X POST https://yoursite.com/wp-json/mvs/v1/moderation/123/analyze \
-H "X-WP-Nonce: NONCE"
Approving or Rejecting from the Moderation Queue
- Go to Media > Media Moderation (renamed from "Moderation" in 2.0.0).
- Review the flagged item and its AI analysis result.
- Click Approve to publish or Reject to move to draft.

Budget Control
Set a monthly spending cap at Media > Settings > AI & Moderation > Monthly AI Budget ($). WPMediaVerse tracks estimated spending per call and stops making AI calls when the budget is reached.
To check current spending:
wp mvs stats
Registering a Custom AI Provider (Developer)
Implement the AIProviderInterface and register your provider:
use WPMediaVerse\Services\AIProviderInterface;
class MyCustomProvider implements AIProviderInterface {
public function get_id(): string {
return 'my_provider';
}
public function is_available(): bool {
return (bool) get_option( 'my_provider_api_key' );
}
public function analyze( int $media_id ): array|WP_Error {
// Return array with 'description', 'tags', 'flags'.
}
}
add_action( 'mvs_ai_providers', function( $ai_service ) {
$ai_service->register_provider( new MyCustomProvider() );
} );
Moderation & AI Metadata
These keys live in WPMediaVerse's mvs_media_meta table (accessed via the MediaRepository), not in WordPress post meta. moderation_status is also a column on the mvs_media_index table.
| Meta Key | Values | Description |
|---|---|---|
moderation_status |
approved, pending, flagged, rejected |
Current moderation status |
ai_description |
string | AI-generated description |
ai_tags |
string[] | AI-suggested tags |
ai_confidence |
float | Confidence score for the AI analysis |