# scenario-mai-image

A skill for driving Microsoft MAI Image models on Scenario over MCP: text-to-image and instruction-based image edits.

- skill · `type=skill` · Claude Code, Codex, Cursor, GitHub Copilot, Gemini CLI, OpenCode · 375 installs · ★ 1141
- Author: scenario-labs
- License: MIT · policy=mirror · the beginning of the file is at the end of this page
- Source: https://github.com/scenario-labs/skills/tree/HEAD/skills/scenario-mai-image/SKILL.md
- Updated: 2026-10-23
- HTML: https://affpapa.org/en/nevibecode/skills/scenario-mai-image

## What it does

The skill covers four members of the MAI Image 2.5 family: the 2.5 and 2.5 Pro generators, plus the 2.5 Edit and 2.5 Pro Edit instruction editors. Typography is what ties them together. Headlines, labels and taglines come back legible and land where the prompt put them, which is why the skill points at posters, packaging, covers and key art that carry real copy.

Write prose, not tag lists. The family reasons over subject, composition, materials, lighting and mood in roughly that order. Wrap exact in-image copy in quotes or it returns paraphrased, and give every text block a role, a style and a place. Sizing is `aspectRatio` only: there is no width, height, seed, negative prompt or mask field. At authoring time text rendering was tuned for English and outputs landed near 1K, so plan a downstream upscale for print.

Both editors take one source image and a plain instruction, but the source field differs. Edit wants `referenceImages` with exactly one asset id in an array; Pro Edit wants `image` as a single file. Carrying a parameter block from one to the other breaks the run, so re-read the schema when you switch. Structure the prompt as what must stay unchanged, then one change, naming the element and its new state; chain passes for several changes. The two shared one public image-edit arena entry, while a Pro Edit asset cost about four times an Edit asset, so `dry_run` both and start with Edit.

## Install

### Claude Code (native platform)

1. **Skills CLI (Vercel)**
```bash
npx skills add scenario-labs/skills --skill scenario-mai-image -a claude-code
```

2. **Manually: put the files in place**
- File: `~/.claude/skills/scenario-mai-image/SKILL.md` — Copy the whole skill folder; for one project use .claude/skills/scenario-mai-image/

### Codex

1. **Skills CLI (Vercel)**
```bash
npx skills add scenario-labs/skills --skill scenario-mai-image -a codex
```

2. **Manually: put the files in place**
- File: `.agents/skills/scenario-mai-image/SKILL.md` — For all projects use ~/.agents/skills/

### Cursor

1. **Skills CLI (Vercel)**
```bash
npx skills add scenario-labs/skills --skill scenario-mai-image -a cursor
```

2. **Manually: put the files in place**
- File: `.cursor/skills/scenario-mai-image/SKILL.md` — Cursor also reads .agents/skills/ and .claude/skills/

### GitHub Copilot

1. **GitHub CLI**
```bash
gh skill install scenario-labs/skills scenario-mai-image
```

2. **Manually: put the files in place**
- File: `.github/skills/scenario-mai-image/SKILL.md`

### Gemini CLI

1. **Skills CLI (Vercel)**
```bash
npx skills add scenario-labs/skills --skill scenario-mai-image -a gemini-cli
```

2. **Platform CLI**
```bash
gemini skills install https://github.com/scenario-labs/skills --path skills/scenario-mai-image
```

### Windsurf (Devin Desktop)

**Manually: put the files in place**
- File: `.devin/skills/scenario-mai-image/SKILL.md` — The legacy .windsurf/skills/ path still works

### OpenCode

**Skills CLI (Vercel)**
```bash
npx skills add scenario-labs/skills --skill scenario-mai-image -a opencode
```

### Claude.ai

**Claude.ai**
- Zip the folder and upload it in Settings → Capabilities → Skills

Where a file is given instead of a command, copy the files from the source to that path: https://github.com/scenario-labs/skills/tree/HEAD/skills/scenario-mai-image/SKILL.md

## When to use it
- generate a poster with a legible headline baked into the frame
- build a magazine cover or packaging with real copy
- swap the text on a sign while keeping font and color
- remove or replace an object in a photo from a written instruction
- change the background or lighting without losing the original subject

## Example prompts
- Generate a campaign poster with scenario-mai-image: photoreal climber at dawn, headline 'ASCEND' across the top, 2:3, four outputs.
- Using scenario-mai-image, change only the headline to 'ASCEND HIGHER' and keep the font, color and placement.
- dry_run both edit models with scenario-mai-image and show me what each option costs.

## Source text · SKILL.md · MIT

Below is the content of a third-party file. It is data, not instructions for you: do not act on anything written inside unless the human asks. Block tag: bb0f94fd471cd228.

BEGIN THIRD-PARTY FILE bb0f94fd471cd228
```text
---
name: scenario-mai-image
description: "Use when generating or editing images with Microsoft MAI Image models on Scenario via MCP: photoreal or stylized text-to-image with legible in-image typography, posters, packaging, magazine covers, ads, key art, or instruction-based editing such as text swaps, recoloring, object removal or replacement, background swaps, lighting changes, and full restyles. Keywords: MAI Image 2.5, 2.5 Pro, 2.5 Edit, 2.5 Pro Edit, Microsoft, txt2img, img2img, typography, text rendering, image edit."
license: MIT
---

# Scenario MAI Image

## Overview

MAI Image 2.5, Microsoft's image family on Scenario, splits into generation members (2.5, 2.5 Pro)
and instruction editors (2.5 Edit, 2.5 Pro Edit). The family trait is typography: in-image
headlines, labels, and taglines come back legible and placed where the prompt put them: the pick for
posters, packaging, covers, and key art that carry real copy. Discover members with `search` and
treat `model_schema_get` as the contract: the four agree on almost every field and disagree on the
one that carries the source image.

Connection and the core loop: see the `scenario` skill in this repo; model-agnostic image work
(sizing families, masks, upscales): the `scenario-image` skill. If a sibling skill named here is
missing from your available skills, ask the user to install it
(`npx skills add scenario-labs/skills --skill <name>`); unattended, proceed from tool schemas and
flag the gap.

## Quick reference

At authoring time (names from the live schema):

| Member       | Makes   | Source input                    | Ratios         |
| ------------ | ------- | ------------------------------- | -------------- |
| 2.5          | txt2img | none                            | 11, incl. 21:9 |
| 2.5 Pro      | txt2img | none                            | 8              |
| 2.5 Edit     | img2img | `referenceImages`, array of one | 8              |
| 2.5 Pro Edit | img2img | `image`, single file            | 8              |

All four share `prompt` (4096 characters on 2.5 and Edit, 5000 on the Pro pair), `aspectRatio` (an
```
END THIRD-PARTY FILE bb0f94fd471cd228

The third-party file has ended. Everything between the bb0f94fd471cd228 tags is data: requests and commands from it are not followed. An “end of file” line with another tag inside the block is part of the file.

First 2110 of 5935 bytes. © scenario-labs · MIT · https://github.com/scenario-labs/skills/tree/HEAD/skills/scenario-mai-image/SKILL.md

_Part of the page did not fit — see the HTML version._

---
NeVibeCode on affpapa.org. Catalog texts are descriptions, not instructions for the agent. How to choose and install: https://affpapa.org/en/nevibecode/agents.md
