makaron-cli 0.14.2 → 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.
- package/.claude-plugin/plugin.json +1 -1
- package/.codex-plugin/plugin.json +1 -1
- package/README.md +17 -4
- package/bin/makaron.mjs +31 -11
- package/package.json +1 -1
- package/skills/makaron/SKILL.md +5 -4
- package/skills/makaron/references/nsfw.md +8 -7
package/README.md
CHANGED
|
@@ -98,12 +98,13 @@ npx makaron-cli chat --project auto --image photo.jpg --json -b "make it cinemat
|
|
|
98
98
|
npx makaron-cli chat --project auto --image img1.jpg --image img2.jpg --json -b "combine these"
|
|
99
99
|
```
|
|
100
100
|
|
|
101
|
-
`chat` routes image and video models automatically, but you may select the Agent LLM with `--agent-model`. Accepted values are `auto`, the base model IDs (`gpt-5.6-terra`, `gpt-5.6-sol`, `gpt-5.6-luna`, `grok-4.6`, `deepseek-v4-pro`), and the personal-plan routes (`gpt-5.6-terra-codex-subscription`, `gpt-5.6-sol-codex-subscription`, `gpt-5.6-luna-codex-subscription`). For the configured owner, `auto` resolves to GPT-5.6 Terra through the personal Codex plan. Base GPT-5.6 IDs select Azure API; the suffixed IDs select the personal plan explicitly. This flag changes only the reasoning/tool-calling Agent LLM.
|
|
101
|
+
`chat` routes image and video models automatically, but you may select the Agent LLM with `--agent-model`. Accepted values are `auto`, the base model IDs (`gpt-5.6-terra`, `gpt-5.6-sol`, `gpt-5.6-luna`, `grok-4.6`, `deepseek-v4-pro`), and the personal-plan routes (`gpt-5.6-terra-codex-subscription`, `gpt-5.6-sol-codex-subscription`, `gpt-5.6-luna-codex-subscription`, `grok-4.6-grok-subscription`). For the configured owner, `auto` resolves to GPT-5.6 Terra through the personal Codex plan. Base GPT-5.6 IDs select Azure API and base `grok-4.6` selects OpenRouter API; the suffixed IDs select the corresponding personal plan explicitly. This flag changes only the reasoning/tool-calling Agent LLM.
|
|
102
102
|
|
|
103
103
|
```bash
|
|
104
104
|
# Explicit lower-cost Agent LLM for a controlled comparison
|
|
105
105
|
npx makaron-cli chat --project auto --agent-model deepseek-v4-pro --json -b "make a 20s badminton video"
|
|
106
106
|
npx makaron-cli chat --project auto --agent-model gpt-5.6-sol-codex-subscription --json -b "reply with the active model"
|
|
107
|
+
npx makaron-cli chat --project auto --agent-model grok-4.6-grok-subscription --json -b "reply with the active model"
|
|
107
108
|
```
|
|
108
109
|
|
|
109
110
|
Returns immediately:
|
|
@@ -259,6 +260,14 @@ REMOTION_EXPORT_INLINE_AFTER=false npm run worker:remotion-export
|
|
|
259
260
|
|
|
260
261
|
Keeping this worker warm avoids paying sandbox cold-start cost on every CLI or service call.
|
|
261
262
|
|
|
263
|
+
Lambda exports are admitted by a shared capacity-weighted queue. The default
|
|
264
|
+
`REMOTION_EXPORT_LAMBDA_CAPACITY=330` preserves the current per-video
|
|
265
|
+
`REMOTION_LAMBDA_FRAMES_PER_LAMBDA=20` chunking while leaving headroom under the
|
|
266
|
+
account concurrency quota. A 30-second 30fps video is estimated as 45 renderer
|
|
267
|
+
Lambdas plus one control slot, so seven such videos can render concurrently and
|
|
268
|
+
the rest remain queued. `REMOTION_EXPORT_CRON_LANES` controls how many queue
|
|
269
|
+
lanes the one-minute rescue cron keeps warm; it does not raise the capacity cap.
|
|
270
|
+
|
|
262
271
|
### With video input (MP4/MOV/WebM)
|
|
263
272
|
|
|
264
273
|
```bash
|
|
@@ -375,9 +384,11 @@ npx makaron-cli video create --script "Shot 1 (5s): <<<image_1>>> slow cinematic
|
|
|
375
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
|
|
376
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
|
|
377
386
|
|
|
378
|
-
# 3b. Native SeeDance, Wan 3.0,
|
|
387
|
+
# 3b. Native SeeDance, Wan 3.0, MiniMax H3, or H3 Max text-to-video (no image required)
|
|
379
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
|
|
380
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
|
|
381
392
|
|
|
382
393
|
# 3c. Edit a video from a local file or public URL
|
|
383
394
|
npx makaron-cli video create --script "make it funny" --video input.mp4 --duration 5 --video-model seedance-fast
|
|
@@ -395,11 +406,13 @@ For project/timeline video editing, use:
|
|
|
395
406
|
npx makaron-cli chat --project <id|auto> --video input.mp4 -b "make it funny"
|
|
396
407
|
```
|
|
397
408
|
|
|
398
|
-
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-
|
|
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.
|
|
399
412
|
|
|
400
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.
|
|
401
414
|
|
|
402
|
-
Wan 3.0:
|
|
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.
|
|
403
416
|
|
|
404
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.
|
|
405
418
|
|
package/bin/makaron.mjs
CHANGED
|
@@ -37,6 +37,7 @@ const CHAT_AGENT_MODELS = [
|
|
|
37
37
|
'gpt-5.6-sol-codex-subscription',
|
|
38
38
|
'gpt-5.6-luna-codex-subscription',
|
|
39
39
|
'grok-4.6',
|
|
40
|
+
'grok-4.6-grok-subscription',
|
|
40
41
|
'deepseek-v4-pro',
|
|
41
42
|
];
|
|
42
43
|
|
|
@@ -462,7 +463,8 @@ Options:
|
|
|
462
463
|
--skill <id|label|name> Use an installed skill or auto-install a matched marketplace skill.
|
|
463
464
|
--agent-model <id> Agent LLM only: auto, gpt-5.6-terra, gpt-5.6-sol,
|
|
464
465
|
gpt-5.6-luna, grok-4.6, deepseek-v4-pro, or a
|
|
465
|
-
gpt-5.6-*-codex-subscription
|
|
466
|
+
gpt-5.6-*-codex-subscription or
|
|
467
|
+
grok-4.6-grok-subscription personal-plan route.
|
|
466
468
|
--background, -b Submit and print a runId.
|
|
467
469
|
--json Output structured JSON.
|
|
468
470
|
--stream Legacy live SSE stream.
|
|
@@ -470,7 +472,9 @@ Options:
|
|
|
470
472
|
|
|
471
473
|
Agent LLM defaults to auto (GPT-5.6 Terra; the account owner uses the personal
|
|
472
474
|
Codex plan). Base GPT-5.6 ids select Azure API; append -codex-subscription to
|
|
473
|
-
select the personal plan explicitly.
|
|
475
|
+
select the personal plan explicitly. Base grok-4.6 selects OpenRouter API;
|
|
476
|
+
grok-4.6-grok-subscription selects the personal SuperGrok plan. Image/video
|
|
477
|
+
model routing stays automatic in chat.
|
|
474
478
|
|
|
475
479
|
What you can ask:
|
|
476
480
|
Image edit
|
|
@@ -505,6 +509,9 @@ What you can ask:
|
|
|
505
509
|
Force the personal Codex plan
|
|
506
510
|
makaron chat --project auto --agent-model gpt-5.6-sol-codex-subscription -b --json "reply with the active model"
|
|
507
511
|
|
|
512
|
+
Force the personal SuperGrok plan
|
|
513
|
+
makaron chat --project auto --agent-model grok-4.6-grok-subscription -b --json "reply with the active model"
|
|
514
|
+
|
|
508
515
|
Music
|
|
509
516
|
makaron chat --project <id> "add calm piano background music"
|
|
510
517
|
|
|
@@ -2047,14 +2054,16 @@ Not sure which built-in skill to use? Start with:
|
|
|
2047
2054
|
console.log('Usage: makaron analyze --video <file|url> ["question"]');
|
|
2048
2055
|
} else if (topic === 'video') {
|
|
2049
2056
|
if (subtopic === 'script') console.log('Usage: makaron video script --image <file> [--image <file>] [--lang en|zh] "direction"');
|
|
2050
|
-
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-
|
|
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]');
|
|
2051
2058
|
else if (subtopic === 'status') console.log('Usage: makaron video status <taskId> | --snapshot <snapshotId> [--wait]');
|
|
2052
2059
|
else console.log(`Video commands:
|
|
2053
2060
|
video script --image <file> [--image <file>] "direction" Write video script
|
|
2054
2061
|
video create --script "..." --video-model seedance-fast Native text-to-video (no image required)
|
|
2055
2062
|
video create --script "..." --video-model wan-3.0 Wan 3.0 Standard via MuleRouter
|
|
2056
|
-
video create --script "..." --video-model wan-3.0-
|
|
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
|
|
2057
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)
|
|
2058
2067
|
video create --script "..." --image <url> [--duration 10] Submit video task
|
|
2059
2068
|
video create --script "..." --video <file|url> --video-model grok [--operation edit|extend] Edit or extend one MP4 with Grok
|
|
2060
2069
|
video create --script "Use the supplied audio" --video <url> --audio <url> --video-model sync-lipsync-v3 Lip-sync exact replacement audio
|
|
@@ -2900,21 +2909,24 @@ if (!command || command === '--help' || command === '-h' || command === 'help')
|
|
|
2900
2909
|
}
|
|
2901
2910
|
else if (args[i] === '--wait') wait = true;
|
|
2902
2911
|
}
|
|
2903
|
-
const selectedVideoModel = ['
|
|
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)
|
|
2904
2915
|
? 'wan-3.0'
|
|
2905
|
-
: ['wan3-
|
|
2906
|
-
? 'wan-3.0-
|
|
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'
|
|
2907
2918
|
: (videoModel || 'seedance-fast');
|
|
2908
2919
|
const isSeedance25 = selectedVideoModel === 'seedance-2.5';
|
|
2909
|
-
const isWan30 = selectedVideoModel === 'wan-3.0' || selectedVideoModel === 'wan-3.0-
|
|
2920
|
+
const isWan30 = selectedVideoModel === 'wan-3.0' || selectedVideoModel === 'wan-3.0-prime';
|
|
2910
2921
|
const isSeedanceModel = selectedVideoModel === 'seedance-fast' || selectedVideoModel === 'seedance-mini' || selectedVideoModel === 'seedance' || isSeedance25;
|
|
2911
2922
|
const isMinimaxH3 = selectedVideoModel === 'minimax-h3';
|
|
2923
|
+
const isFalH3Max = selectedVideoModel === 'minimax-h3-max';
|
|
2912
2924
|
const isGrok = selectedVideoModel === 'grok';
|
|
2913
2925
|
const isGoogleOmni = selectedVideoModel === 'google-omni';
|
|
2914
2926
|
const isSyncLipsync = selectedVideoModel === 'sync-lipsync-v3';
|
|
2915
|
-
const supportsNativeTextToVideo = isSeedanceModel || isWan30 || isMinimaxH3 || isGrok || isGoogleOmni;
|
|
2927
|
+
const supportsNativeTextToVideo = isSeedanceModel || isWan30 || isMinimaxH3 || isFalH3Max || isGrok || isGoogleOmni;
|
|
2916
2928
|
if (!script || (!images.length && !videos.length && !audios.length && !referenceVoices.length && !supportsNativeTextToVideo)) {
|
|
2917
|
-
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-
|
|
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]');
|
|
2918
2930
|
process.exit(1);
|
|
2919
2931
|
}
|
|
2920
2932
|
if (isSeedance25 && images.length > 30) { console.error('Seedance 2.5 supports at most 30 image references.'); process.exit(1); }
|
|
@@ -2926,6 +2938,10 @@ if (!command || command === '--help' || command === '-h' || command === 'help')
|
|
|
2926
2938
|
if (isMinimaxH3 && images.length > 9) { console.error('MiniMax H3 supports at most 9 image references.'); process.exit(1); }
|
|
2927
2939
|
if (isMinimaxH3 && videos.length > 3) { console.error('MiniMax H3 supports at most 3 video references.'); process.exit(1); }
|
|
2928
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); }
|
|
2929
2945
|
if (isGrok && images.length > 7) { console.error('Grok Imagine Video 1.5 supports at most 7 image references.'); process.exit(1); }
|
|
2930
2946
|
if (isGrok && videos.length > 1) { console.error('Grok video edit/extend accepts exactly one source video.'); process.exit(1); }
|
|
2931
2947
|
if (isGrok && referenceVoices.length > 3) { console.error('Grok Imagine Video 1.5 supports at most 3 preset voices.'); process.exit(1); }
|
|
@@ -3014,6 +3030,8 @@ if (!command || command === '--help' || command === '-h' || command === 'help')
|
|
|
3014
3030
|
? { script, images, videoUrls, audioUrls, referenceVoiceIds: referenceVoices, videoModel: selectedVideoModel, videoResolution, operation: resolvedOperation, extendDirection, outputFormat, generateAudio, contentFilter, webSearch }
|
|
3015
3031
|
: isMinimaxH3
|
|
3016
3032
|
? { script, images, videoUrls, audioUrls, videoModel: selectedVideoModel, videoResolution }
|
|
3033
|
+
: isFalH3Max
|
|
3034
|
+
? { script, images, videoModel: selectedVideoModel, videoResolution }
|
|
3017
3035
|
: videoUrls[0]
|
|
3018
3036
|
? { videoUrl: videoUrls[0], editPrompt: script, images, videoModel: selectedVideoModel, videoResolution, referType: isSeedanceModel ? 'feature' : 'base' }
|
|
3019
3037
|
: { script, images, videoModel: selectedVideoModel, videoResolution };
|
|
@@ -3067,8 +3085,10 @@ if (!command || command === '--help' || command === '-h' || command === 'help')
|
|
|
3067
3085
|
video script --image <file> [--image <file>] "direction" Write video script
|
|
3068
3086
|
video create --script "..." --video-model seedance-fast Native text-to-video (no image required)
|
|
3069
3087
|
video create --script "..." --video-model wan-3.0 Wan 3.0 Standard via MuleRouter
|
|
3070
|
-
video create --script "..." --video-model wan-3.0-
|
|
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
|
|
3071
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)
|
|
3072
3092
|
video create --script "..." --image <url> [--duration 10] Submit video task
|
|
3073
3093
|
video create --script "..." --video <file|url> --video-model grok [--operation edit|extend] Edit or extend one MP4 with Grok
|
|
3074
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
package/skills/makaron/SKILL.md
CHANGED
|
@@ -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,
|
|
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-
|
|
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.
|
|
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
|
|
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
|
-
-
|
|
42
|
-
|
|
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.
|