Skip to main content

Changelog

Newest-first list of what was added or changed in the API and MCP. Unless noted otherwise, every change is backward compatible (existing requests keep working).

2026-08-03

Final credits for an async job — charge on GET /v1/jobs/{job_id}

There was no way to find out what a job_id-returning task (image, video, speech-to-text) ultimately cost: GET /v1/usage carries no job_id, and an async job is billed twice — at submission and at completion — so it is scattered across two usage entries.

  • API: GET /v1/jobs/{job_id} now returns a charge field — the total credits deducted for that job so far (submission + settled completion).
  • Once status is succeeded, that value is the final amount. While still processing it reflects the submission charge only.
  • On failed the submission charge is refunded, so charge is 0.
  • MCP: the get_job tool passes the same response through, so charge comes with it.
  • Existing job records are backfilled from what was already settled.
  • Additive, so backward compatible.

2026-07-25

ElevenLabs TTS — previous_text/next_text for intonation, plus seed and apply_text_normalization

Splitting a long script into paragraphs (sections) used to reset the intonation at every section boundary. Each call can now carry the surrounding context so the delivery flows across sections.

  • API: POST /v1/audio/speech gains the optional fields previous_text and next_text — pass the previous paragraph's last sentence and the next paragraph's first sentence.
  • MCP: the text_to_speech tool gains the optional arguments previous_text and next_text.
  • Neither value is ever spoken — they only shape intonation and pacing.
  • They need the neighbouring text, not the neighbouring result, so sections can still be requested in parallel.
  • ⚠️ Unavailable when voice_model is eleven_v3 (rejected upstream). They work on eleven_multilingual_v2 and eleven_flash_v2_5; a v3 request returns a clear 422.

Two more optional fields land alongside them (API and MCP, ElevenLabs-only as well):

  • seed (0–4294967295): the same seed with the same options returns the same audio (best effort). Useful for reproducing a take you liked, or for keeping the tone steady when regenerating a single paragraph.
  • apply_text_normalization (auto · on · off): whether numbers, dates and abbreviations are spelled out.

All four fields are ElevenLabs (modoo-tts-eleven) only; sending them to minimax returns 422.

2026-07-22

size on every image model · audio_setting for music

  • Image size: previously, a size sent to modoo-image-gpt/modoo-image-gpt-edit was ignored and pinned to auto. All four values now pass through (auto, 1024x1024, 1536x1024, 1024x1536). Notation differs per family — GPT models use x, while modoo-image-z and the Qwen edit models use width*height (*). A value outside the allowed list now returns a clear 422 instead of an opaque upstream error (per-model lists in the API reference).
  • Music audio_setting: POST /v1/audio/music takes an optional audio_settingsample_rate, bitrate, format. Anything omitted keeps its previous default. lyrics (1–3,500 chars), prompt (≤2,000 chars) and model (music-2.5/music-2.0) are now validated at request time.
  • MCP: the edit_image tool takes an optional size.
  • Docs fixes: the modoo-image-z example said 1024x1024 — corrected to 1024*1024. Clarified that the music request's model is an engine version, not a modoo model ID (the model ID is always modoo-music).

2026-07-15

WAN 2.7 image-to-video — first→last interpolation and extra inputs

modoo-video-i2v (WAN 2.7) gains several optional inputs, including first→last frame interpolation. Each accepts https addresses only (like image_url), is modoo-video-i2v (WAN 2.7) only, and returns 422 if sent to another model.

  • API: new optional fields on POST /v1/videos/generationsend_image_url (a closing frame → first→last interpolation), driving_audio_url (audio that drives the motion, e.g. a talking avatar), first_clip_url (an existing clip to continue/extend from).
  • MCP: new optional arguments end_image_url, driving_audio_url, and first_clip_url on the animate_image tool.
  • All backward compatible; wired from the gateway schema.

2026-07-13

New models — GPT-5.4 mini/nano · HappyHorse 1.1 video · music generation

New text, video, and music models were added together. They all follow the existing request formats — you just use a new model value or a new endpoint (existing calls are unchanged).

  • Text (GPT-5.4 mini/nano): new model IDs modoo-text-pro-mini (GPT-5.4 mini) and modoo-text-pro-nano (GPT-5.4 nano). Just change the model value on the existing POST /v1/chat/completions (synchronous & streaming) — no new endpoint or MCP tool.
  • Video (HappyHorse 1.1): new model IDs modoo-video-happyhorse-t2v (text→video), -i2v (image→video), and -r2v (reference→video). POST /v1/videos/generations gains HappyHorse-only optional knobs resolution·ratio·duration·watermark·seed. r2v requires reference_image_urls (1–9 character reference images).
  • Music generation: new model ID modoo-music and a new endpoint POST /v1/audio/music (asynchronous). Create a song with lyrics (required), model (optional, default music-2.5 · music-2.0), and prompt (optional); poll the job_id and, once done, the song file's address is in result.audio_url.
  • MCP: new tools reference_to_video (reference→video) and generate_music (music generation). The existing generate_video and animate_image tools were also extended to accept the HappyHorse model options and the resolution·ratio·duration·watermark·seed knobs. MCP clients refresh the tool list on connect, so no reinstall or reconfiguration is needed.

See the Models guide, API reference, and MCP integration for full parameters.

ElevenLabs voices (TTS) — text_to_speech / POST /v1/audio/speech

Speech synthesis can now use ElevenLabs (modoo-tts-eleven). minimax (modoo-tts-minimax) remains the default, so existing calls are unchanged.

  • Model selection: new model field — modoo-tts-minimax (default) or modoo-tts-eleven.
  • ElevenLabs options:
    • voice_id — a voice id from your ElevenLabs account (required for ElevenLabs).
    • voice_modeleleven_flash_v2_5 · eleven_multilingual_v2 (default) · eleven_v3.
    • voice_settingsstability · similarity_boost · style · speed · use_speaker_boost.
    • language_code (e.g. ko), output_format (e.g. mp3_44100_128).
  • MCP: the same options were added to the text_to_speech tool. MCP clients refresh the tool list on connect, so no reinstall or reconfiguration is needed.
curl https://modoo.devdive.me/v1/audio/speech \
-H "Authorization: Bearer sk-modoo-..." \
-H "Content-Type: application/json" \
-d '{
"text": "Hello, this is 데브다이브-모두의창업.",
"model": "modoo-tts-eleven",
"voice_id": "EXAVITQu4vr4xnSDxMaL",
"voice_model": "eleven_multilingual_v2",
"voice_settings": { "stability": 0.5, "similarity_boost": 0.75 }
}'

See the API reference and MCP integration for full parameters.