# Mynth Changelog

> Product updates across the Mynth API, SDK, CLI, and open-source packages.

Entries 21–40 of 42, newest first. Page 2 of 3.
Previous page: https://mynth.io/changelog.md
Next page: https://mynth.io/changelog.md?page=3

Filter and page with query parameters, the same on /changelog.md, /changelog.txt and /changelog.json:

- `q` — words that must all appear (title, summary, body, version, model ids): `q=output.format`
- `product` — any of: api, sdk, cli, tanstack-ai-adapter (comma-separated)
- `type` — any of: feature, improvement, fix, models (comma-separated)
- `breaking=true` — breaking changes only
- `page` — from 1; `limit` — entries per page, 1–100, default 20

Example: https://mynth.io/changelog.md?product=sdk&breaking=true
Each entry is also at `https://mynth.io/changelog/<slug>.md`.

## 2026-09-26 — Request errors say what to fix (improvement · API, SDK, CLI · BREAKING)

> Every rejected request now returns a code and a message you can act on, schema failures list each invalid field, and malformed requests get their own codes.

A request that failed validation used to come back in the validator's own shape: `{ data, error, success }` on `/image/*` and `/video/*`, `{ success, errors }` elsewhere, with no `code` and your request echoed back. Now every request error has the same body:

```json
{
  "code": "VALIDATION_ERROR",
  "message": "model \"flux.2-pro\" is not supported. Did you mean \"black-forest-labs/flux.2-pro\"? See https://mynth.io/models, or GET /models, for the model IDs.",
  "issues": [{ "path": ["model"], "message": "model \"flux.2-pro\" is not supported. …" }]
}
```

`message` states every problem, so it is safe to show as it is. `issues` has one `{ path, message }` per field that failed the schema. An unknown model suggests the closest id, and an invalid `size` lists the forms it takes.

Two new codes cover requests that never reach validation:

- `INVALID_JSON` (`400`) for a body that is not valid JSON, with the parser's position. It used to be plain text.
- `UNSUPPORTED_MEDIA_TYPE` (`415`) for a JSON endpoint called without `Content-Type: application/json`, or `POST /image/upload` without `multipart/form-data`. Such a body used to be read as empty, so the error blamed a missing `prompt`.

A size a pinned model cannot produce, such as `16:9_4k` on a model without 4k, is now rejected at create with `400 VALIDATION_ERROR` and the size to use instead. It used to be accepted and then fail the task with `CAPABILITY_NOT_SUPPORTED`. With `model: "auto"` nothing changes.

Other messages got more specific too: input, resolution, duration, and audio errors list what the model accepts, `UNAUTHORIZED` says what is wrong with the credential, balance and spending-limit errors state the amounts, upload errors name the file, and a `404` names the route.

If your code reads `error`, `errors`, or `data` from a `400`, read `code`, `message`, and `issues` instead. `MynthAPIError` in the SDK now carries `issues` and a useful `message`, and the CLI exits with `2` for both new codes. See [errors](/docs/api-reference/errors#validation-errors).

Permalink: https://mynth.io/changelog/2026-09-26-clearer-request-errors · Markdown: https://mynth.io/changelog/2026-09-26-clearer-request-errors.md

## 2026-09-25 — Balance and spending limit errors now return 402 (improvement · API, CLI · BREAKING)

> Running out of balance or hitting a key's spending limit now returns 402 Payment Required, so 429 only ever means slow down.

`INSUFFICIENT_BALANCE` used to return `422` and `SPENDING_LIMIT_EXCEEDED` used to return `429`. Both now return `402 Payment Required`. The `code` and `message` in the body are the same.

The old `429` looked like a rate limit, so HTTP clients that retry `429` kept resending a request that could only succeed once the key's period rolled over. Now a `429` means back off and retry, and a `402` means top up, raise the cap, or wait for the period to reset.

If your code checks `code`, nothing changes. If it checks the status, look for `402` where you looked for `422` or `429`:

```ts
if (error instanceof MynthAPIError && error.status === 402) {
  // error.code is INSUFFICIENT_BALANCE or SPENDING_LIMIT_EXCEEDED
}
```

The CLI still exits with `4` for both codes, and now also for any other `402`.

Permalink: https://mynth.io/changelog/2026-09-25-billing-errors-402 · Markdown: https://mynth.io/changelog/2026-09-25-billing-errors-402.md

## 2026-09-24 — Recraft V4.1 Flash (models · API, SDK)

> Recraft V4.1 Flash is live for fast text-to-image drafts.

[Recraft V4.1 Flash](/models/recraft%2Frecraft-v4.1-flash) is available now.

Permalink: https://mynth.io/changelog/2026-09-24-recraft-v4-1-flash · Markdown: https://mynth.io/changelog/2026-09-24-recraft-v4-1-flash.md

## 2026-09-21 — Prefect Pony XL LoRA (models · API, SDK)

> Goofy_Ai's Prefect Pony XL LoRA anime image model is live.

[Prefect Pony XL LoRA](/models/goofy-ai%2Fprefect-pony-xl-lora) is available now.

Permalink: https://mynth.io/changelog/2026-09-21-prefect-pony-xl-lora · Markdown: https://mynth.io/changelog/2026-09-21-prefect-pony-xl-lora.md

## 2026-09-14 — MAI Image 2.6 and 2.6 Flash (models · API, SDK)

> Microsoft's MAI Image 2.6 family is live.

[MAI Image 2.6](/models/microsoft%2Fmai-image-2.6) and
[MAI Image 2.6 Flash](/models/microsoft%2Fmai-image-2.6-flash) are available now.

Permalink: https://mynth.io/changelog/2026-09-14-mai-image-2.6 · Markdown: https://mynth.io/changelog/2026-09-14-mai-image-2.6.md

## 2026-09-14 — Anima (models · API, SDK)

> CircleStone Labs' Anima anime image model is live.

[Anima](/models/circlestone-labs%2Fanima) is available now.

Permalink: https://mynth.io/changelog/2026-09-14-anima · Markdown: https://mynth.io/changelog/2026-09-14-anima.md

## 2026-09-09 — GPT Image 2.5 Flare and Sunburst (models · API, SDK)

> OpenAI's GPT Image 2.5 Flare and Sunburst are live.

[GPT Image 2.5 Flare](/models/openai%2Fgpt-image-2.5-flare) and
[GPT Image 2.5 Sunburst](/models/openai%2Fgpt-image-2.5-sunburst) are available now.

Permalink: https://mynth.io/changelog/2026-09-09-gpt-image-2.5 · Markdown: https://mynth.io/changelog/2026-09-09-gpt-image-2.5.md

## 2026-09-07 — MiniMax H3 (models · API, SDK)

> MiniMax H3 image generation and editing is live.

[MiniMax H3](/models/minimax%2Fh3) is available now.

Permalink: https://mynth.io/changelog/2026-09-07-minimax-h3 · Markdown: https://mynth.io/changelog/2026-09-07-minimax-h3.md

## 2026-09-02 — FIBO Edit 1.5 (models · API, SDK)

> Bria's commercially licensed FIBO Edit 1.5 is live.

[FIBO Edit 1.5](/models/bria%2Ffibo-edit-1.5) is available now.

Permalink: https://mynth.io/changelog/2026-09-02-fibo-edit-1.5 · Markdown: https://mynth.io/changelog/2026-09-02-fibo-edit-1.5.md

## 2026-09-01 — FIBO Generate 1.5 (models · API, SDK)

> Bria's commercially licensed FIBO Generate 1.5 is live.

[FIBO Generate 1.5](/models/bria%2Ffibo-generate-1.5) is available now.

Permalink: https://mynth.io/changelog/2026-09-01-fibo-generate-1.5 · Markdown: https://mynth.io/changelog/2026-09-01-fibo-generate-1.5.md

## 2026-08-29 — Muse Image (models · API, SDK)

> Meta's Muse Image is live.

[Muse Image](/models/meta%2Fmuse-image) is available now.

Permalink: https://mynth.io/changelog/2026-08-29-muse-image · Markdown: https://mynth.io/changelog/2026-08-29-muse-image.md

## 2026-08-29 — Grok Imagine Video 1.5 (models · API)

> xAI's Grok Imagine Video 1.5 is live.

[Grok Imagine Video 1.5](/models/xai%2Fgrok-imagine-video-1.5) is available now.

Permalink: https://mynth.io/changelog/2026-08-29-grok-imagine-video · Markdown: https://mynth.io/changelog/2026-08-29-grok-imagine-video.md

## 2026-08-29 — Grok Imagine Image 2.0 (models · API, SDK)

> xAI's Grok Imagine Image 2.0 is live.

[Grok Imagine Image 2.0](/models/xai%2Fgrok-imagine-image-2.0) is available now.

Permalink: https://mynth.io/changelog/2026-08-29-grok-imagine-image-2-0 · Markdown: https://mynth.io/changelog/2026-08-29-grok-imagine-image-2-0.md

## 2026-08-29 — Gemini Omni Flash 1.1 (models · API)

> Google's Gemini Omni Flash 1.1 is live for text-to-video and image-to-video.

[Gemini Omni Flash 1.1](/models/google%2Fgemini-omni-flash-1.1) is available now.

Permalink: https://mynth.io/changelog/2026-08-29-gemini-omni-flash · Markdown: https://mynth.io/changelog/2026-08-29-gemini-omni-flash.md

## 2026-08-28 — Pick the output format for generated images (improvement · API · BREAKING)

> Ask for png, jpg, or webp and the result tells you what you got.

`output.format` on `POST /image/generate` now decides the encoding. Pass `png`, `jpg`, or `webp` and Mynth converts the image before delivering it. Leave it out and you get whatever the provider returned.

```json
{
  "model": "black-forest-labs/flux.2-pro",
  "prompt": "A futuristic cityscape at sunset with flying cars",
  "output": { "format": "webp" }
}
```

Every successful image in the result now carries a `format` field, so you can read what was actually delivered instead of inferring it from the URL.

Two fields went away. `output.quality` is gone, and each format encodes at its own default. Per-image `cost` is gone from the result as well, so read the task-level `cost` instead.

Results also report `magic_prompt` again when [magic prompt](/features/magic-prompts) rewrites your prompt. It had been dropped from the payload.

Permalink: https://mynth.io/changelog/2026-08-28-image-output-format · Markdown: https://mynth.io/changelog/2026-08-28-image-output-format.md

## 2026-08-06 — Image review and alt text (feature · API, SDK, CLI · sdk 0.0.36)

> Score generated images for quality issues and produce descriptive alt text, from the API, SDK, and CLI.

Two new image analysis calls. `review` scores an image for quality issues, and `alt` writes short, descriptive alt text. Both work on any image, whether Mynth generated it or not.

```ts
import Mynth from "@mynthio/sdk";

const mynth = new Mynth();

const review = await mynth.image.review({ url: "https://..." });
const { alt } = await mynth.image.alt({ url: "https://..." });
```

Both are CLI commands too, `mynth image review` and `mynth image alt`. The SDK also ships webhook helpers for Next.js and TanStack Start.

Permalink: https://mynth.io/changelog/2026-08-06-image-review-and-alt-text · Markdown: https://mynth.io/changelog/2026-08-06-image-review-and-alt-text.md

## 2026-08-05 — Qwen Image 3.0 and 3.0 Pro (models · API, SDK)

> Alibaba's Qwen Image 3.0 family is live.

[Qwen Image 3.0](/models/alibaba%2Fqwen-image-3.0) and [Qwen Image 3.0 Pro](/models/alibaba%2Fqwen-image-3.0-pro) are available now.

Permalink: https://mynth.io/changelog/2026-08-05-qwen-image-3 · Markdown: https://mynth.io/changelog/2026-08-05-qwen-image-3.md

## 2026-08-02 — Rate and alt take a single image (improvement · SDK, CLI · sdk 0.0.34 · BREAKING)

> The rate and alt APIs are simplified to one image per call.

`mynth.image.rate` and `mynth.image.alt` now take a single image instead of a batch. Calls that passed an array must make one call per image. The batched form is gone from the SDK and the CLI.

Permalink: https://mynth.io/changelog/2026-08-02-single-image-rate-and-alt · Markdown: https://mynth.io/changelog/2026-08-02-single-image-rate-and-alt.md

## 2026-07-18 — One Obsession (models · API, SDK)

> The One Obsession model is live.

[One Obsession](/models/maxfeifei8%2Fone-obsession) is available now.

Permalink: https://mynth.io/changelog/2026-07-18-one-obsession · Markdown: https://mynth.io/changelog/2026-07-18-one-obsession.md

## 2026-07-17 — Reve and Reve Remix (models · API, SDK)

> Reve's text-to-image and remix models are live.

[Reve](/models/reve%2Freve) and [Reve Remix](/models/reve%2Freve-remix) are available now.

Permalink: https://mynth.io/changelog/2026-07-17-reve-and-reve-remix · Markdown: https://mynth.io/changelog/2026-07-17-reve-and-reve-remix.md

---

Previous page: https://mynth.io/changelog.md
Next page: https://mynth.io/changelog.md?page=3
