# update_ai_preferences

Source: https://modulify.ai/docs/mcp/sites/update-ai-preferences

Changes the AI media preferences of a site, from whether paid media is on to the image and video models it uses.

- Title: Change the AI media preferences
- Scope: `sites:write`
- Access: Makes changes

Only the fields you send change, and every open editor on the site updates straight away, teammates included. The settings belong to the site, not to a person, so they apply to every picture and clip anyone makes on it afterwards, whether through the editor chat or `send_message`.

Turning paid media on, picking a pricier model, or raising the image size, clip length or resolution makes every later picture or clip cost more. The tool tells the client to make such a change only when you asked for exactly that, and to tell you the new price, which the response carries in `Summary`.

Every setting can be changed while paid media is off, so a site can be configured first and switched on after. A value that is not accepted, such as a model that is not available right now, fails the whole call with the list of valid values and saves nothing. A call that sends nothing to change is refused too. `get_ai_preferences` shows the valid values and their prices. See [Preferences](https://modulify.ai/docs/editor/preferences).

## Inputs

| Input | Type | Required | Description |
| --- | --- | --- | --- |
| `projectId` | string | Yes | The site id. |
| `paidMediaEnabled` | boolean | No | True lets the site generate, edit and animate pictures, false turns all paid media off. Free stock photo search keeps working either way. |
| `imageModel` | string | No | `automatic`, or the key of one of the image models `get_ai_preferences` lists. `automatic` follows whatever Modulify recommends. |
| `imageMaxSize` | string | No | The largest picture size, `1k`, `2k` or `4k`. Models that set their own size from the shape ignore it, and the ones that stop at `2k` use `2k`. `get_ai_preferences` lists what each model takes. |
| `videoModel` | string | No | `automatic`, or the key of one of the video models `get_ai_preferences` lists. `automatic` follows whatever Modulify recommends. |
| `videoResolution` | string | No | `720p` or `1080p`. Some models make `720p` only, and on the Veo models `1080p` always renders 8 second clips. |
| `videoDuration` | integer | No | The longest clip in seconds, a length at least one of the models `get_ai_preferences` lists offers. A model that does not offer that length uses the longest one it offers below it, or its shortest when it has nothing shorter. |
| `videoAudio` | boolean | No | True lets visitors unmute generated clips, false keeps them always muted. On a model that makes sound as an extra, sound doubles the price of a clip, and silent models ignore it. `get_ai_preferences` shows which is which. |