Media
Budgeted image creation.
Updated on January 1, 1970
Privacy and analytics
We use necessary technical cookies and, only with your consent, analytics and marketing pixels to improve the website and measure campaigns.
Budgeted image creation.
Updated on January 1, 1970
Generates 1 to 4 images from a brief using the brand Kit colors, the approved primary logo (useLogo) and the brand voice; referenceAssetIds must be approved Library images. Fails with budget_exceeded (detail images_per_month) when the plan monthly image allowance is used up, or budget_exceeded when the AI budget does not fit; nothing is generated then. Once the person confirms, it waits for the images and returns status completed; results land in the Library as proposed files until a person approves them. Reference images are sent to the model as images. Each asset carries an art-direction review (palette fit on the pixels, on-brand and reference match from a vision model, issue codes, verdict ok/review/redo): mention a redo or review to the person and offer another try instead of presenting it as finished.
Consumes the brand AI budget.
| Field | Value |
|---|---|
| Kind | Write |
| HTTP method | POST /api/v1/media.image.generate |
| MCP tool | media_image_generate |
| Scope | media.write |
| Minimum role | Member |
| Human confirmation | No |
| Doors | Nödo, MCP, API, Chat, Screens, Apps |
| Status | Available |
| Widget | image_gallery |
Input
{
brief: string // ≤ 2000
format?: "square" | "portrait" | "landscape" | "story" // default "square"
count?: integer // 1–4 · default 2
useLogo?: boolean // default false
referenceAssetIds?: string[] // ≤ 3 items · default []
}Output
{
taskId: string
status: "working" | "completed" | "failed"
assets: Array<{
assetId: string // uuid
url: string // uri
review?: {
verdict: "ok" | "review" | "redo" // redo = a visible defect (garbled text, a drawn logo, a watermark) or clearly off brand; offer to generate again.
paletteFit: integer | null // Share of coloured pixels on the Kit palette.
onBrand: integer | null
matchesReferences: integer | null
issues: string[]
note: string
}
| null
}> // default []
reservedUsd: number
}