Image Gen
Generate AI images via submit_image (configured provider keys only). Prefer one clear still per request unless the user asked for variants.
Model Selection
| Model |
Reference |
Strengths |
Max refs |
gpt-image-2 |
references/gpt-image-2.md |
Best text rendering, strongest prompt adherence |
16 |
nano-banana |
references/nano-banana.md |
Strongest reference-image fidelity |
14 |
image-01 |
references/image-01.md |
MiniMax stills / live style; one subject reference via R2 |
1 |
grok-imagine |
references/grok-imagine.md |
xAI Grok Imagine; text-to-image, ≤4 outputs, 1K/2K |
0 |
- Default:
gpt-image-2 when that key is on.
- Reference-heavy →
nano-banana.
- User named MiniMax / only MiniMax image key on →
image-01.
- Respect capabilities: do not call a model whose vendor is not configured.
IMPORTANT: Before generating, READ the chosen model's reference.
Tool Params
| Param |
Values |
Default |
aspectRatio |
1:1, 16:9, 9:16, 4:3, 3:4, 3:2, 2:3, 4:5, 5:4, 21:9 |
16:9 |
imageSize |
512px, 1K, 2K, 4K (model-specific) |
1K |
width / height |
GPT Image: 512–3840, /16; MiniMax: 512–2048, /8 |
— |
quality |
low, medium, high, auto (gpt-image-2 only) |
high |
referenceAssetIds |
Array of project asset ids — backend resolves bytes server-side |
— |
name |
Short descriptive asset name shown in the library |
— |
count |
Number of images to generate (1–10; image-01 max 9) |
1 |
promptOptimizer |
MiniMax image-01 only — prompt_optimizer |
false |
seed |
MiniMax image-01 only |
— |
maskAssetId, background, moderation, inputFidelity |
GPT Image edit/output controls |
— |
outputFormat, outputCompression |
GPT Image PNG/JPEG/WebP controls |
PNG |
Defaults
- Aspect ratio: 16:9. If the project composition is not 16:9, ASK the user which aspect ratio they want before generating.
- Size: 1K.
Ask Before Submit
- Never auto-upgrade size.
- Only pass
imageSize: "2K" or "4K" when the user explicitly asks. Warn that 2K/4K are EXPERIMENTAL and may be slower.
Reference Images
Use when the user provides source material to edit, blend, or use as visual guidance (e.g. "change the background", "combine these into a poster").
- Pass project asset ids via
referenceAssetIds. The backend fetches and encodes them server-side — never pull the asset bytes yourself.
- When the user @-references an image asset, pass its id directly in
referenceAssetIds.
- Formats accepted by backend: png, jpeg, webp, svg (auto-rasterized to png), heic, heif. Each ≤ 50MB.
Run
// Basic generation
submit_image({
model: "gpt-image-2",
prompt: "a cute orange cat",
name: "Cat",
});
// With quality (gpt-image-2 only)
submit_image({
model: "gpt-image-2",
prompt: "hero poster with bold title",
quality: "high",
name: "Hero Poster",
});
// With reference images — pass project asset ids; backend resolves bytes
submit_image({
model: "gpt-image-2",
prompt: "change background to beach",
referenceAssetIds: ["<assetId>"],
name: "Beach Edit",
});
// Reference-heavy with nano-banana
submit_image({
model: "nano-banana",
prompt: "composite poster",
referenceAssetIds: ["<id1>", "<id2>"],
name: "Composite",
});
// Multiple images
submit_image({
model: "gpt-image-2",
prompt: "product shots",
count: 3,
name: "Product",
});
// MiniMax (optional single subject reference; R2 must be configured for refs)
submit_image({
model: "image-01",
prompt: "matte product bottle on marble, soft studio light",
name: "Bottle still",
promptOptimizer: false,
});
OpenChatCut’s submit_image may return completed pool assets synchronously depending on the provider path. If a jobId is returned, use track_progress; otherwise treat the asset ids in the result as done.
Rules
- Always provide
name with a short descriptive asset name.
- Before submitting, briefly tell the user what you're about to generate — especially when generating multiple images.
- Only call models whose vendor key is configured (capabilities prompt).
1---
2name: image-gen
3description: |
4 AI image generation via gpt-image-2, nano-banana, MiniMax image-01, and xAI Grok Imagine. Use when the user wants to generate or create an image / picture / still.
5user-invocable: true
6---
7
8# Image Gen
9
10Generate AI images via `submit_image` (configured provider keys only). Prefer one clear still per request unless the user asked for variants.
11
12## Model Selection
13
14| Model | Reference | Strengths | Max refs |
15| --- | --- | --- | --- |
16| `gpt-image-2` | [references/gpt-image-2.md](references/gpt-image-2.md) | Best text rendering, strongest prompt adherence | 16 |
17| `nano-banana` | [references/nano-banana.md](references/nano-banana.md) | Strongest reference-image fidelity | 14 |
18| `image-01` | [references/image-01.md](references/image-01.md) | MiniMax stills / live style; one subject reference via R2 | 1 |
19| `grok-imagine` | [references/grok-imagine.md](references/grok-imagine.md) | xAI Grok Imagine; text-to-image, ≤4 outputs, 1K/2K | 0 |
20
21- Default: `gpt-image-2` when that key is on.
22- Reference-heavy → `nano-banana`.
23- User named MiniMax / only MiniMax image key on → `image-01`.
24- Respect capabilities: do not call a model whose vendor is not configured.
25
26**IMPORTANT:** Before generating, READ the chosen model's reference.
27
28## Tool Params
29
30| Param | Values | Default |
31| ------------------- | ----------------------------------------------------------------------- | ------- |
32| `aspectRatio` | `1:1`, `16:9`, `9:16`, `4:3`, `3:4`, `3:2`, `2:3`, `4:5`, `5:4`, `21:9` | `16:9` |
33| `imageSize` | `512px`, `1K`, `2K`, `4K` (model-specific) | `1K` |
34| `width` / `height` | GPT Image: 512–3840, /16; MiniMax: 512–2048, /8 | — |
35| `quality` | `low`, `medium`, `high`, `auto` (gpt-image-2 only) | `high` |
36| `referenceAssetIds` | Array of project asset ids — backend resolves bytes server-side | — |
37| `name` | Short descriptive asset name shown in the library | — |
38| `count` | Number of images to generate (1–10; image-01 max 9) | `1` |
39| `promptOptimizer` | MiniMax `image-01` only — `prompt_optimizer` | `false` |
40| `seed` | MiniMax `image-01` only | — |
41| `maskAssetId`, `background`, `moderation`, `inputFidelity` | GPT Image edit/output controls | — |
42| `outputFormat`, `outputCompression` | GPT Image PNG/JPEG/WebP controls | PNG |
43
44## Defaults
45
46- Aspect ratio: **16:9**. If the project composition is not 16:9, ASK the user which aspect ratio they want before generating.
47- Size: **1K**.
48
49## Ask Before Submit
50
51- Never auto-upgrade size.
52- Only pass `imageSize: "2K"` or `"4K"` when the user explicitly asks. Warn that 2K/4K are EXPERIMENTAL and may be slower.
53
54## Reference Images
55
56Use when the user provides source material to edit, blend, or use as visual guidance (e.g. "change the background", "combine these into a poster").
57
58- Pass project asset ids via `referenceAssetIds`. The backend fetches and encodes them server-side — never pull the asset bytes yourself.
59- When the user @-references an image asset, pass its id directly in `referenceAssetIds`.
60- Formats accepted by backend: png, jpeg, webp, svg (auto-rasterized to png), heic, heif. Each ≤ 50MB.
61
62## Run
63
64```ts
65// Basic generation
66submit_image({
67 model: "gpt-image-2",
68 prompt: "a cute orange cat",
69 name: "Cat",
70});
71
72// With quality (gpt-image-2 only)
73submit_image({
74 model: "gpt-image-2",
75 prompt: "hero poster with bold title",
76 quality: "high",
77 name: "Hero Poster",
78});
79
80// With reference images — pass project asset ids; backend resolves bytes
81submit_image({
82 model: "gpt-image-2",
83 prompt: "change background to beach",
84 referenceAssetIds: ["<assetId>"],
85 name: "Beach Edit",
86});
87
88// Reference-heavy with nano-banana
89submit_image({
90 model: "nano-banana",
91 prompt: "composite poster",
92 referenceAssetIds: ["<id1>", "<id2>"],
93 name: "Composite",
94});
95
96// Multiple images
97submit_image({
98 model: "gpt-image-2",
99 prompt: "product shots",
100 count: 3,
101 name: "Product",
102});
103
104// MiniMax (optional single subject reference; R2 must be configured for refs)
105submit_image({
106 model: "image-01",
107 prompt: "matte product bottle on marble, soft studio light",
108 name: "Bottle still",
109 promptOptimizer: false,
110});
111```
112
113OpenChatCut’s `submit_image` may return completed pool assets synchronously depending on the provider path. If a `jobId` is returned, use `track_progress`; otherwise treat the asset ids in the result as done.
114
115## Rules
116
117- Always provide `name` with a short descriptive asset name.
118- Before submitting, briefly tell the user what you're about to generate — especially when generating multiple images.
119- Only call models whose vendor key is configured (capabilities prompt).