makaron-cli 0.14.3 → 0.14.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "makaron-cli",
3
- "version": "0.14.3",
3
+ "version": "0.14.4",
4
4
  "description": "Give Claude Code a creative agent. Pass complete creative requests and source media to Makaron Chat.",
5
5
  "author": {
6
6
  "name": "Versa AI",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "makaron-cli",
3
- "version": "0.14.3",
3
+ "version": "0.14.4",
4
4
  "description": "Give Codex a creative agent. Pass complete creative requests and source media to Makaron Chat.",
5
5
  "author": {
6
6
  "name": "Versa AI",
package/README.md CHANGED
@@ -384,9 +384,11 @@ npx makaron-cli video create --script "Shot 1 (5s): <<<image_1>>> slow cinematic
384
384
  npx makaron-cli video create --script "Keep both subjects recognizable as they enter the same studio" --image https://...jpg --image https://...webp --duration 5 --video-model grok --video-resolution 720p
385
385
  npx makaron-cli video create --script "Shot 1 (15s): <<<image_1>>> and <<<image_2>>> build a neon one-person studio" --image https://...jpg --image https://...webp --duration 15 --video-model seedance-mini --video-resolution 480p --aspect 9:16
386
386
 
387
- # 3b. Native SeeDance, Wan 3.0, or MiniMax H3 text-to-video (no image required)
387
+ # 3b. Native SeeDance, Wan 3.0, MiniMax H3, or H3 Max text-to-video (no image required)
388
388
  npx makaron-cli video create --script "Shot 1 (5s): A neon one-person studio wakes at dawn" --duration 5 --video-model seedance-fast --aspect 16:9
389
389
  npx makaron-cli video create --script "Shot 1 (15s): A premium creative editor comes alive" --duration 15 --video-model minimax-h3 --aspect 16:9
390
+ npx makaron-cli video create --script "Shot 1 (5s): A tiny robot runs through a sunlit studio" --duration 5 --video-model minimax-h3-max --video-resolution 480p
391
+ npx makaron-cli video create --script "Shot 1 (5s): <<<media_1>>> turns toward camera" --image https://...jpg --duration 5 --video-model minimax-h3-max --video-resolution 768p
390
392
 
391
393
  # 3c. Edit a video from a local file or public URL
392
394
  npx makaron-cli video create --script "make it funny" --video input.mp4 --duration 5 --video-model seedance-fast
@@ -404,11 +406,13 @@ For project/timeline video editing, use:
404
406
  npx makaron-cli chat --project <id|auto> --video input.mp4 -b "make it funny"
405
407
  ```
406
408
 
407
- Options for `video create`: `--script "..."`, `--script-file <path>`, `--image <url>` (repeatable, up to the selected model limit), `--video <file|url>` and `--audio <file|url>` (repeatable where supported), `--voice <xai-preset-id>` (repeatable, Grok only), `--duration <seconds>`, `--aspect 9:16|16:9|1:1`, `--video-model seedance-fast|seedance-mini|seedance|seedance-2.5|wan-3.0|wan-3.0-pro|kling|grok|google-omni|minimax-h3|sync-lipsync-v3`, `--video-resolution auto|480p|720p|768p|1080p|2k|4k`. Default model is `seedance-fast`. SeeDance accepts native text-to-video with no image and integer output duration 4-15s (default 5s); every Seedance image input is submitted through reference-to-video, including one image. `seedance-mini` supports 480p/720p and is best for cheaper drafts/multi-size tests. Wan 3.0 Standard supports 480p/720p/1080p and Wan 3.0 Pro supports 1080p/2K/4K through MuleRouter. MiniMax H3 accepts native text-to-video, 4-15s output, public 768p/2k resolution, and up to 9 image, up to 3 video, and up to 3 audio feature references through Makaron Agent/chat; a single image keeps the `reference_image` role. `sync-lipsync-v3` requires exactly one video plus one MP3/WAV and preserves that replacement audio while aligning the mouth. H3 defaults to 768p; request 2k explicitly for maximum/final quality. Kling supports 5-15s. Grok generation uses `grok-imagine-video-1.5`: text-only generation supports 480p/720p/1080p, while any 1-7 image or preset voice input uses reference-to-video and is capped at 720p. Grok edit/extend uses `grok-imagine-video` internally under the same `grok` selector. Gemini Omni supports 3-10s fast image/video generation and editing with native generated audio; every image-only generation request uses `reference_to_video`, including a single image, with up to 6 images when no video reference is provided.
409
+ Options for `video create`: `--script "..."`, `--script-file <path>`, `--image <url>` (repeatable, up to the selected model limit), `--video <file|url>` and `--audio <file|url>` (repeatable where supported), `--voice <xai-preset-id>` (repeatable, Grok only), `--duration <seconds>`, `--aspect 9:16|16:9|1:1`, `--video-model seedance-fast|seedance-mini|seedance|seedance-2.5|wan-3.0|wan-3.0-prime|kling|grok|google-omni|minimax-h3|sync-lipsync-v3`, `--video-resolution auto|480p|720p|768p|1080p|2k|4k`. Default model is `seedance-fast`. SeeDance accepts native text-to-video with no image and integer output duration 4-15s (default 5s); every Seedance image input is submitted through reference-to-video, including one image. `seedance-mini` supports 480p/720p and is best for cheaper drafts/multi-size tests. Wan 3.0 and Wan 3.0 Prime both expose 480p/720p/1080p/2K/4K; 2K/4K automatically use the matching FlashVSR endpoint. MiniMax H3 accepts native text-to-video, 4-15s output, public 768p/2k resolution, and up to 9 image, up to 3 video, and up to 3 audio feature references through Makaron Agent/chat; a single image keeps the `reference_image` role. `sync-lipsync-v3` requires exactly one video plus one MP3/WAV and preserves that replacement audio while aligning the mouth. H3 defaults to 768p; request 2k explicitly for maximum/final quality. Kling supports 5-15s. Grok generation uses `grok-imagine-video-1.5`: text-only generation supports 480p/720p/1080p, while any 1-7 image or preset voice input uses reference-to-video and is capped at 720p. Grok edit/extend uses `grok-imagine-video` internally under the same `grok` selector. Gemini Omni supports 3-10s fast image/video generation and editing with native generated audio; every image-only generation request uses `reference_to_video`, including a single image, with up to 6 images when no video reference is provided.
410
+
411
+ MiniMax H3 Max: use `--video-model minimax-h3-max` for near-real-time generation. It supports exactly 5/10/15 seconds at 480p/768p, with no image for T2V or exactly one `--image` for I2V. It does not accept reference video/audio or multiple images.
408
412
 
409
413
  Seedance 2.5: use `--video-model seedance-2.5` for 4-30 second output at 480p/720p. `--image` accepts local files or URLs (up to 30), while repeatable `--video` and `--audio` accept up to 10 each. Use `--video-operation generate|edit|extend`, `--extend-direction forward|backward`, `--output-format mp4|mov`, `--web-search`, `--generated-audio` / `--no-generated-audio`, and `--relaxed-content-filter`. Edit/extend require a video reference. The Evolink route does not currently expose 4K output.
410
414
 
411
- Wan 3.0: use `--video-model wan-3.0` for MuleRouter Standard at 480p/720p/1080p, or `--video-model wan-3.0-pro` for MuleRouter Pro super-resolution at 1080p/2K/4K. Both support 2-30 second generation with up to 10 images, 5 videos, and 5 audio references. Use generation mode with feature references; typed edit/extend and `--relaxed-content-filter` are not supported.
415
+ Wan 3.0: choose `--video-model wan-3.0` or the faster `--video-model wan-3.0-prime`. Both support 2-30 second generation, 480p/720p/1080p/2K/4K, and up to 10 images, 5 videos, and 5 audio references. Pass `--video-resolution 2k|4k` to use the matching FlashVSR/Pro endpoint automatically; Pro is not a separate model selector. Use generation mode with feature references; typed edit/extend and `--relaxed-content-filter` are not supported.
412
416
 
413
417
  Video edit model behavior: `--video-model kling --video` uses Kling base/direct edit internally; `--video-model seedance-fast --video`, `--video-model seedance-mini --video`, or `--video-model seedance --video` uses the SeeDance video-reference path and requires target <=15s, <=50MB, width/height 300-6000px, aspect ratio 0.4-2.5, and frame pixels 409,600-2,086,876. `--video-model minimax-h3 --video` uses H3 feature/reference mode: up to 3 video references totaling <=15s, each <=50MB with width/height 256-5760px and aspect ratio 0.4-2.5. `--video-model google-omni --video` uses Gemini Omni direct video editing and accepts one reference video in Makaron. Output duration is clamped to 3-10s. `--video-model grok --video --operation edit` accepts one MP4 up to 8.7s, retains duration/aspect, and caps output at 720p. `--operation extend` accepts one 2-15s MP4 and adds 2-10s (default 6s); the returned result includes the original plus extension.
414
418
 
package/bin/makaron.mjs CHANGED
@@ -2054,14 +2054,16 @@ Not sure which built-in skill to use? Start with:
2054
2054
  console.log('Usage: makaron analyze --video <file|url> ["question"]');
2055
2055
  } else if (topic === 'video') {
2056
2056
  if (subtopic === 'script') console.log('Usage: makaron video script --image <file> [--image <file>] [--lang en|zh] "direction"');
2057
- else if (subtopic === 'create') console.log('Usage: makaron video create --script "..." [--image <url> ...] [--video <url> ...] [--audio <url> ...] [--voice <xai-preset-id> ...] [--duration 10] [--aspect 9:16] [--video-model seedance-fast|seedance-mini|seedance|seedance-2.5|wan-3.0|wan-3.0-pro|kling|grok|google-omni|minimax-h3|sync-lipsync-v3] [--operation generate|edit|extend] [--video-resolution auto|480p|720p|768p|1080p|2k|4k] [--keep-original-sound]');
2057
+ else if (subtopic === 'create') console.log('Usage: makaron video create --script "..." [--image <url> ...] [--video <url> ...] [--audio <url> ...] [--voice <xai-preset-id> ...] [--duration 10] [--aspect 9:16] [--video-model seedance-fast|seedance-mini|seedance|seedance-2.5|wan-3.0|wan-3.0-prime|kling|grok|google-omni|minimax-h3|minimax-h3-max|sync-lipsync-v3] [--operation generate|edit|extend] [--video-resolution auto|480p|720p|768p|1080p|2k|4k] [--keep-original-sound]');
2058
2058
  else if (subtopic === 'status') console.log('Usage: makaron video status <taskId> | --snapshot <snapshotId> [--wait]');
2059
2059
  else console.log(`Video commands:
2060
2060
  video script --image <file> [--image <file>] "direction" Write video script
2061
2061
  video create --script "..." --video-model seedance-fast Native text-to-video (no image required)
2062
2062
  video create --script "..." --video-model wan-3.0 Wan 3.0 Standard via MuleRouter
2063
- video create --script "..." --video-model wan-3.0-pro Wan 3.0 Pro super-resolution via MuleRouter
2063
+ video create --script "..." --video-model wan-3.0-prime Wan 3.0 Prime fast tier via MuleRouter
2064
+ video create --script "..." --video-model wan-3.0 --video-resolution 4k Wan 3.0 with FlashVSR
2064
2065
  video create --script "..." --video-model minimax-h3 MiniMax H3 text-to-video (default 768P)
2066
+ video create --script "..." --video-model minimax-h3-max H3 Max near-real-time text-to-video (default 480P)
2065
2067
  video create --script "..." --image <url> [--duration 10] Submit video task
2066
2068
  video create --script "..." --video <file|url> --video-model grok [--operation edit|extend] Edit or extend one MP4 with Grok
2067
2069
  video create --script "Use the supplied audio" --video <url> --audio <url> --video-model sync-lipsync-v3 Lip-sync exact replacement audio
@@ -2907,21 +2909,24 @@ if (!command || command === '--help' || command === '-h' || command === 'help')
2907
2909
  }
2908
2910
  else if (args[i] === '--wait') wait = true;
2909
2911
  }
2910
- const selectedVideoModel = ['wan3', 'wan3.0', 'wan30', 'wan-3'].includes(videoModel)
2912
+ const selectedVideoModel = ['h3 max', 'h3-max', 'h3max', 'minimax-h3max'].includes(videoModel)
2913
+ ? 'minimax-h3-max'
2914
+ : ['wan3', 'wan3.0', 'wan30', 'wan-3', 'wan3-pro', 'wan3.0-pro', 'wan30-pro', 'wan-3-pro', 'berry-1.0-pro', 'w3.0-video-pro'].includes(videoModel)
2911
2915
  ? 'wan-3.0'
2912
- : ['wan3-pro', 'wan3.0-pro', 'wan30-pro', 'wan-3-pro', 'berry-1.0-pro'].includes(videoModel)
2913
- ? 'wan-3.0-pro'
2916
+ : ['wan3-prime', 'wan3.0-prime', 'wan30-prime', 'wan-3-prime', 'w3.0-video-prime', 'w3.0-video-prime-pro', 'wan-3.0-prime-pro', 'prime'].includes(videoModel)
2917
+ ? 'wan-3.0-prime'
2914
2918
  : (videoModel || 'seedance-fast');
2915
2919
  const isSeedance25 = selectedVideoModel === 'seedance-2.5';
2916
- const isWan30 = selectedVideoModel === 'wan-3.0' || selectedVideoModel === 'wan-3.0-pro';
2920
+ const isWan30 = selectedVideoModel === 'wan-3.0' || selectedVideoModel === 'wan-3.0-prime';
2917
2921
  const isSeedanceModel = selectedVideoModel === 'seedance-fast' || selectedVideoModel === 'seedance-mini' || selectedVideoModel === 'seedance' || isSeedance25;
2918
2922
  const isMinimaxH3 = selectedVideoModel === 'minimax-h3';
2923
+ const isFalH3Max = selectedVideoModel === 'minimax-h3-max';
2919
2924
  const isGrok = selectedVideoModel === 'grok';
2920
2925
  const isGoogleOmni = selectedVideoModel === 'google-omni';
2921
2926
  const isSyncLipsync = selectedVideoModel === 'sync-lipsync-v3';
2922
- const supportsNativeTextToVideo = isSeedanceModel || isWan30 || isMinimaxH3 || isGrok || isGoogleOmni;
2927
+ const supportsNativeTextToVideo = isSeedanceModel || isWan30 || isMinimaxH3 || isFalH3Max || isGrok || isGoogleOmni;
2923
2928
  if (!script || (!images.length && !videos.length && !audios.length && !referenceVoices.length && !supportsNativeTextToVideo)) {
2924
- console.error('Usage: makaron video create --script "..." [--image <url>] [--video <file|url>] [--audio <file|url>] [--duration 30] [--video-model seedance-2.5|wan-3.0|wan-3.0-pro|minimax-h3]');
2929
+ console.error('Usage: makaron video create --script "..." [--image <url>] [--video <file|url>] [--audio <file|url>] [--duration 30] [--video-model seedance-2.5|wan-3.0|wan-3.0-prime|minimax-h3|minimax-h3-max]');
2925
2930
  process.exit(1);
2926
2931
  }
2927
2932
  if (isSeedance25 && images.length > 30) { console.error('Seedance 2.5 supports at most 30 image references.'); process.exit(1); }
@@ -2933,6 +2938,10 @@ if (!command || command === '--help' || command === '-h' || command === 'help')
2933
2938
  if (isMinimaxH3 && images.length > 9) { console.error('MiniMax H3 supports at most 9 image references.'); process.exit(1); }
2934
2939
  if (isMinimaxH3 && videos.length > 3) { console.error('MiniMax H3 supports at most 3 video references.'); process.exit(1); }
2935
2940
  if (isMinimaxH3 && audios.length > 3) { console.error('MiniMax H3 supports at most 3 audio references.'); process.exit(1); }
2941
+ if (isFalH3Max && images.length > 1) { console.error('MiniMax H3 Max supports at most one start image.'); process.exit(1); }
2942
+ if (isFalH3Max && (videos.length || audios.length)) { console.error('MiniMax H3 Max currently supports only text-to-video or one-image-to-video; remove video/audio references.'); process.exit(1); }
2943
+ if (isFalH3Max && duration != null && ![5, 10, 15].includes(duration)) { console.error('MiniMax H3 Max duration must be 5, 10, or 15 seconds.'); process.exit(1); }
2944
+ if (isFalH3Max && videoResolution && !['auto', '480p', '768p'].includes(videoResolution.toLowerCase())) { console.error('MiniMax H3 Max resolution must be auto, 480p, or 768p.'); process.exit(1); }
2936
2945
  if (isGrok && images.length > 7) { console.error('Grok Imagine Video 1.5 supports at most 7 image references.'); process.exit(1); }
2937
2946
  if (isGrok && videos.length > 1) { console.error('Grok video edit/extend accepts exactly one source video.'); process.exit(1); }
2938
2947
  if (isGrok && referenceVoices.length > 3) { console.error('Grok Imagine Video 1.5 supports at most 3 preset voices.'); process.exit(1); }
@@ -3021,6 +3030,8 @@ if (!command || command === '--help' || command === '-h' || command === 'help')
3021
3030
  ? { script, images, videoUrls, audioUrls, referenceVoiceIds: referenceVoices, videoModel: selectedVideoModel, videoResolution, operation: resolvedOperation, extendDirection, outputFormat, generateAudio, contentFilter, webSearch }
3022
3031
  : isMinimaxH3
3023
3032
  ? { script, images, videoUrls, audioUrls, videoModel: selectedVideoModel, videoResolution }
3033
+ : isFalH3Max
3034
+ ? { script, images, videoModel: selectedVideoModel, videoResolution }
3024
3035
  : videoUrls[0]
3025
3036
  ? { videoUrl: videoUrls[0], editPrompt: script, images, videoModel: selectedVideoModel, videoResolution, referType: isSeedanceModel ? 'feature' : 'base' }
3026
3037
  : { script, images, videoModel: selectedVideoModel, videoResolution };
@@ -3074,8 +3085,10 @@ if (!command || command === '--help' || command === '-h' || command === 'help')
3074
3085
  video script --image <file> [--image <file>] "direction" Write video script
3075
3086
  video create --script "..." --video-model seedance-fast Native text-to-video (no image required)
3076
3087
  video create --script "..." --video-model wan-3.0 Wan 3.0 Standard via MuleRouter
3077
- video create --script "..." --video-model wan-3.0-pro Wan 3.0 Pro super-resolution via MuleRouter
3088
+ video create --script "..." --video-model wan-3.0-prime Wan 3.0 Prime fast tier via MuleRouter
3089
+ video create --script "..." --video-model wan-3.0 --video-resolution 4k Wan 3.0 with FlashVSR
3078
3090
  video create --script "..." --video-model minimax-h3 MiniMax H3 text-to-video (default 768P)
3091
+ video create --script "..." --video-model minimax-h3-max H3 Max near-real-time text-to-video (default 480P)
3079
3092
  video create --script "..." --image <url> [--duration 10] Submit video task
3080
3093
  video create --script "..." --video <file|url> --video-model grok [--operation edit|extend] Edit or extend one MP4 with Grok
3081
3094
  video create --script "Use the supplied audio" --video <url> --audio <url> --video-model sync-lipsync-v3 Lip-sync exact replacement audio
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "makaron-cli",
3
- "version": "0.14.3",
3
+ "version": "0.14.4",
4
4
  "description": "Talk to Makaron Agent from the terminal — create projects, edit images, generate videos",
5
5
  "type": "module",
6
6
  "scripts": {
@@ -319,9 +319,10 @@ npx makaron-cli analyze --video input.mp4 "describe the key actions and pacing"
319
319
  npx makaron-cli video create --script "Shot 1 (5s): <<<image_1>>> ..." --image https://...jpg --duration 5 --video-model kling
320
320
  npx makaron-cli video create --script "Shot 1 (15s): <<<image_1>>> and <<<image_2>>> build a neon one-person studio" --image https://...jpg --image https://...webp --duration 15 --video-model seedance-mini --video-resolution 480p --aspect 9:16
321
321
 
322
- # 3b. Native SeeDance, Wan 3.0, or MiniMax H3 text-to-video (no image required)
322
+ # 3b. Native SeeDance, Wan 3.0, MiniMax H3, or H3 Max text-to-video (no image required)
323
323
  npx makaron-cli video create --script "Shot 1 (5s): A neon one-person studio wakes at dawn" --duration 5 --video-model seedance-fast --aspect 16:9
324
324
  npx makaron-cli video create --script "Shot 1 (15s): A premium creative editor comes alive" --duration 15 --video-model minimax-h3 --aspect 16:9
325
+ npx makaron-cli video create --script "Shot 1 (5s): A tiny robot runs through a sunlit studio" --duration 5 --video-model minimax-h3-max --video-resolution 480p
325
326
 
326
327
  # 3c. Edit a video from a local file or public URL
327
328
  npx makaron-cli video create --script "make it funny" --video input.mp4 --duration 5 --video-model seedance-fast
@@ -337,13 +338,13 @@ npx makaron-cli video status <taskId>
337
338
  npx makaron-cli chat --project <id|auto> --video input.mp4 -b "make it funny"
338
339
  ```
339
340
 
340
- Options for `video create`: `--script "..."`, `--script-file <path>`, `--image <url>` (repeatable, up to the selected model limit), `--video <file|url>` and `--audio <file|url>` (repeatable where supported), `--voice <xai-preset-id>` (repeatable, Grok only), `--duration <seconds>`, `--aspect 9:16|16:9|1:1`, `--video-model seedance-fast|seedance-mini|seedance|seedance-2.5|wan-3.0|wan-3.0-pro|kling|grok|google-omni|minimax-h3|sync-lipsync-v3`, `--video-resolution auto|480p|720p|768p|1080p|2k|4k`. Default model is `seedance-fast`. SeeDance accepts native text-to-video with no image and integer output duration 4-15s (default 5s); every Seedance image input uses reference-to-video, including one image. `seedance-mini` supports 480p/720p and is best for cheaper drafts/multi-size tests. Wan 3.0 Standard supports 480p/720p/1080p and Wan 3.0 Pro supports 1080p/2K/4K through MuleRouter. MiniMax H3 accepts native text-to-video, 4-15s output, public 768p/2k resolution, and up to 9 image, up to 3 video, and up to 3 audio feature references through Makaron Agent/chat; a single image keeps the `reference_image` role. `sync-lipsync-v3` requires exactly one video plus one MP3/WAV and preserves that replacement audio while aligning the mouth. H3 defaults to 768p; request 2k explicitly for maximum/final quality. Kling supports 5-15s. Grok text-only generation supports 480p/720p/1080p; any 1-7 image or preset voice input uses reference-to-video and is capped at 720p. Grok edit/extend uses `grok-imagine-video` internally. Gemini Omni image-only generation always uses `reference_to_video`, including one image, with up to 6 images when no video reference is provided.
341
+ Options for `video create`: `--script "..."`, `--script-file <path>`, `--image <url>` (repeatable, up to the selected model limit), `--video <file|url>` and `--audio <file|url>` (repeatable where supported), `--voice <xai-preset-id>` (repeatable, Grok only), `--duration <seconds>`, `--aspect 9:16|16:9|1:1`, `--video-model seedance-fast|seedance-mini|seedance|seedance-2.5|wan-3.0|wan-3.0-prime|kling|grok|google-omni|minimax-h3|minimax-h3-max|sync-lipsync-v3`, `--video-resolution auto|480p|720p|768p|1080p|2k|4k`. Default model is `seedance-fast`. SeeDance accepts native text-to-video with no image and integer output duration 4-15s (default 5s); every Seedance image input uses reference-to-video, including one image. `seedance-mini` supports 480p/720p and is best for cheaper drafts/multi-size tests. Wan 3.0 and Wan 3.0 Prime both expose 480p/720p/1080p/2K/4K; 2K/4K automatically use the matching FlashVSR endpoint. MiniMax H3 accepts native text-to-video, 4-15s output, public 768p/2k resolution, and up to 9 image, up to 3 video, and up to 3 audio feature references through Makaron Agent/chat; a single image keeps the `reference_image` role. H3 Max accepts native text-to-video or exactly one start image for image-to-video, exact 5/10/15s duration, and 480p/768p; it does not accept reference video/audio or multiple images. `sync-lipsync-v3` requires exactly one video plus one MP3/WAV and preserves that replacement audio while aligning the mouth. H3 defaults to 768p; request 2k explicitly for maximum/final quality. Kling supports 5-15s. Grok text-only generation supports 480p/720p/1080p; any 1-7 image or preset voice input uses reference-to-video and is capped at 720p. Grok edit/extend uses `grok-imagine-video` internally. Gemini Omni image-only generation always uses `reference_to_video`, including one image, with up to 6 images when no video reference is provided.
341
342
 
342
- Provider integration contract: every image passed to video generation is a feature reference by default, even when there is exactly one image. Never infer image-to-video/first-frame mode from image count. A first-frame workflow may be added only as a separately declared model capability and an explicit caller request.
343
+ Provider integration contract: every image passed to video generation is a feature reference by default, even when there is exactly one image. Never infer image-to-video/first-frame mode from image count. The sole current exception is explicitly selected `minimax-h3-max`, whose declared capability maps exactly one selected image to native image-to-video; it does not accept reference video/audio or multiple images.
343
344
 
344
345
  Seedance 2.5 uses `--video-model seedance-2.5` and supports 4-30s at 480p/720p, up to 30 images + 10 videos + 10 audios, repeatable local/URL references, `--video-operation generate|edit|extend`, `--extend-direction`, `--output-format mp4|mov`, and `--web-search`. The Evolink route does not currently expose 4K output.
345
346
 
346
- Wan 3.0 uses `--video-model wan-3.0` for MuleRouter Standard at 480p/720p/1080p, or `--video-model wan-3.0-pro` for MuleRouter Pro super-resolution at 1080p/2K/4K. Both support 2-30s generation, up to 10 images + 5 videos + 5 audios, and native audio. Use generation mode with feature references; typed edit/extend and the relaxed content-filter flag are not supported.
347
+ Wan 3.0 exposes two model choices: `--video-model wan-3.0` and the faster `--video-model wan-3.0-prime`. Both support 2-30s generation, native audio, up to 10 images + 5 videos + 5 audios, and 480p/720p/1080p/2K/4K. Pass `--video-resolution 2k|4k` to select the matching FlashVSR/Pro endpoint automatically; Pro is not a separate model selector. Use generation mode with feature references; typed edit/extend and the relaxed content-filter flag are not supported.
347
348
 
348
349
  Video edit model behavior: `--video-model kling --video` uses Kling base/direct edit internally; `--video-model seedance-fast --video`, `--video-model seedance-mini --video`, or `--video-model seedance --video` uses the SeeDance video-reference path and requires target <=15s, <=50MB, width/height 300-6000px, aspect ratio 0.4-2.5, and frame pixels 409,600-2,086,876. `--video-model minimax-h3 --video` uses H3 feature/reference mode: up to 3 video references totaling <=15s, each <=50MB with width/height 256-5760px and aspect ratio 0.4-2.5. `--video-model google-omni --video` uses Gemini Omni direct video editing and accepts one reference video in Makaron. `--video-model grok --video --operation edit` accepts one MP4 up to 8.7s and caps output at 720p; `--operation extend` accepts one 2-15s MP4 and adds 2-10s.
349
350
 
@@ -12,7 +12,7 @@ If adult intent is ambiguous, ask one short question before choosing this lane.
12
12
  |---|---|
13
13
  | Agent-driven work or a persistent Makaron project | `makaron chat` with Agent model `grok-4.6` |
14
14
  | Standalone image generation or editing | `makaron edit` with image model `qwen` |
15
- | Standalone video generation | `makaron video create` with video model `wan-3.0` |
15
+ | Standalone video generation | `makaron video create` with video model `wan-3.0-prime` |
16
16
 
17
17
  For project-based work, keep the complete request in one `chat` job. Because
18
18
  `chat` accepts only the Agent-model flag, put the image/video preferences in the
@@ -20,25 +20,26 @@ brief:
20
20
 
21
21
  ```bash
22
22
  npx makaron-cli chat --project <id|auto> --agent-model grok-4.6 --json \
23
- -b "<complete adult request; use qwen for still images and wan-3.0 for video>"
23
+ -b "<complete adult request; use qwen for still images and wan-3.0-prime for video>"
24
24
  ```
25
25
 
26
26
  For explicit raw-tool work without a project timeline:
27
27
 
28
28
  ```bash
29
29
  npx makaron-cli edit --image-model qwen --image <file-or-url> --out <path> "<prompt>"
30
- npx makaron-cli video create --video-model wan-3.0 --script "<shot script>" --duration <seconds>
30
+ npx makaron-cli video create --video-model wan-3.0-prime --script "<shot script>" --duration <seconds>
31
31
  ```
32
32
 
33
33
  ## Keep the exception scoped
34
34
 
35
- - Do not force SFW jobs onto Grok, Qwen, or Wan 3.0.
36
- - Never put `qwen` or `wan-3.0` in `--agent-model`.
35
+ - Do not force SFW jobs onto Grok, Qwen, or Wan 3.0 Prime.
36
+ - Never put `qwen` or `wan-3.0-prime` in `--agent-model`.
37
37
  - Do not pass `--image-model` or `--video-model` to `makaron chat`; it rejects
38
38
  those flags. State those preferences in the chat brief or use the standalone
39
39
  commands.
40
40
  - Keep this routing for adult follow-ups and rerolls in the same job.
41
- - Use `wan-3.0-pro` only when the user explicitly asks for Pro,
42
- super-resolution, 2K, or 4K output.
41
+ - Wan exposes `wan-3.0` and `wan-3.0-prime`; there is no separate Pro product
42
+ model. Resolution uses the same `--video-resolution` option as every other
43
+ video service.
43
44
  - If a selected provider rejects the request, surface the rejection. Do not
44
45
  silently remove the adult intent or switch to an unspecified model.