Kling motion-control models (kling-v2.6-std, kling-v3.0-std/pro) require
image_url + video_url (and prompt for v2.6), but the v2v flow assumed a
single video upload (watermark-remover style) and called processV2V with
only video_url, getting 422 back from muapi.
- VideoStudio (vanilla + React studio): when a motion-control v2v model
is selected, keep the image upload picker active alongside the video
upload, keep the prompt textarea editable, and validate all required
inputs before generating
- processV2V (both clients): forward image_url + prompt when the model
declares imageField / hasPrompt; packages/studio adds a dedicated
processV2V export so the React studio uses it instead of generateVideo
- v2.6 motion-control marked promptRequired so the UI surfaces it
- Higgsfield Soul / Dop endpoints corrected from
higgsfield-{soul,dop}-* to hf-{soul,dop}-* (matches muapi routes)
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
The earlier first/last-frame work in commit 8cbaf7f only updated the
standalone Electron VideoStudio.js. The Next.js web app actually
consumes packages/studio/src/components/VideoStudio.jsx (a separate React
component with its own muapi.js + models.js), so the web UI never showed
the END picker on Kling/Veo/Seedance/Wan/Minimax i2v models.
- packages/studio/src/models.js: add lastImageField (last_image or
end_image_url) to the same 16 i2v entries.
- packages/studio/src/muapi.js: forward params.last_image into the
per-model server field in generateI2V.
- packages/studio/src/components/VideoStudio.jsx:
* uploadedEndImageUrl state + endImageFileInputRef + upload handler
* END-badged picker rendered when imageMode && model.lastImageField
* thread last_image into i2vParams; clear it in clearImageUpload
* map t2v selection to i2v sibling by family on image upload (drop
+ file change paths) instead of jumping to i2vModels[0]
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Adds a new "MCP & CLI" tab introducing muapi-cli, muapi-mcp-server,
and the Generative Media Skills repos with quick-start, feature cards,
and example commands. Wired into both the Next.js StudioShell (via
packages/studio) and the standalone Vite shell.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Wires up the new KIE.ai gpt-image-2 model so users can pick it in
Image Studio. Adds the t2i entry (endpoint gpt-image-2-text-to-image)
and the i2i edit variant (endpoint gpt-image-2-image-to-image, up to
16 input images via images_list). Uses resolution (1K/2K/4K, default
2K) instead of quality, and the wider aspect set (auto/1:1/16:9/9:16/
4:3/3:4) — existing helper functions auto-detect both shapes so the
UI dropdowns switch over without further changes.
Closes#136
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Infinite Talk i2v (and other hasPrompt lipsync models) rejected requests with
"field 'prompt' failed nullable validation" when the prompt textarea was blank,
because omitting the key caused the muapi backend to forward prompt: null.
Default to an empty string for hasPrompt models; keep omitting it for the rest.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
- Add minimax-image-01 to t2iModels in src/lib/models.js and
packages/studio/src/models.js (8 aspect ratios, up to 4 images per
request, 1500-char prompt)
- Add minimax-image-01 entry to models_dump.json (t2i section)
- Update README: list MiniMax Image 01 in newly-added image models
and call out existing MiniMax Hailuo 02/2.3 video model support
- Add scripts/test_minimax_provider.js: validates model registration
and optionally runs a live API smoke test (MUAPI_KEY env var)
MiniMax Hailuo 02/2.3 T2V and I2V models were already present;
this commit brings MiniMax image generation to feature parity.
PROXY_APP_BASE ('/api/app') produced /api/app/v1/predictions/... which
after the Next.js rewrite hit 127.0.0.1:8000/app/v1/... → 404.
Poll now uses BASE_URL directly, consistent with how submit works.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Update all references across source files, config, and docs — including
page titles, app name, package name, Electron window title, and release
asset URLs.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Removes the DropdownPanel component that depended on the external `glass`
CSS class. Uses inline {open && <div bg-[#111]>} pattern and a single
dropdownRef, consistent with ImageStudio.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
overflow-x-auto implicitly sets overflow-y:auto, creating a clipping
context that cut off the upward-opening position:absolute dropdown
panels. Changed to flex-wrap so buttons wrap on narrow screens and
dropdowns display correctly.
Replace translate-based centering (md:left-1/2 md:-translate-x-1/2)
with margin-auto approach (md:left-0 md:right-0 md:mx-auto) to fix
prompt bar not being centered when rendered inside Tailwind v4 host app.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>