@@ -92,6 +92,11 @@ mmx image generate --prompt <text> [flags]
9292| ` --prompt <text> ` | string, ** required** | Image description |
9393| ` --aspect-ratio <ratio> ` | string | e.g. ` 16:9 ` , ` 1:1 ` |
9494| ` --n <count> ` | number | Number of images (default: 1) |
95+ | ` --seed <n> ` | number | Random seed for reproducible generation |
96+ | ` --width <px> ` | number | Custom width [ 512–2048, must be multiple of 8] |
97+ | ` --height <px> ` | number | Custom height [ 512–2048, must be multiple of 8] |
98+ | ` --prompt-optimizer ` | boolean | Automatically optimize the prompt before generation |
99+ | ` --aigc-watermark ` | boolean | Embed AI-generated content watermark |
95100| ` --subject-ref <params> ` | string | Subject reference: ` type=character,image=path-or-url ` |
96101| ` --out-dir <dir> ` | string | Download images to directory |
97102| ` --out-prefix <prefix> ` | string | Filename prefix (default: ` image ` ) |
@@ -102,6 +107,15 @@ mmx image generate --prompt "A cat in a spacesuit" --output json --quiet
102107
103108mmx image generate --prompt " Logo" --n 3 --out-dir ./gen/ --quiet
104109# stdout: saved file paths (one per line)
110+
111+ # Reproducible generation
112+ mmx image generate --prompt " A castle" --seed 42 --out-dir ./castle/ --quiet
113+
114+ # Custom dimensions (must be 512–2048, multiple of 8)
115+ mmx image generate --prompt " Wide landscape" --width 1920 --height 1080 --out-dir ./land/ --quiet
116+
117+ # Optimized prompt with watermark
118+ mmx image generate --prompt " sunset" --prompt-optimizer --aigc-watermark --out-dir ./opt/ --quiet
105119```
106120
107121---
@@ -110,15 +124,19 @@ mmx image generate --prompt "Logo" --n 3 --out-dir ./gen/ --quiet
110124
111125Generate video. Default model: ` MiniMax-Hailuo-2.3 ` . This is an async task — by default it polls until completion.
112126
127+ Auto-switches model based on flags: ` --last-frame ` → ` MiniMax-Hailuo-02 ` (SEF), ` --subject-image ` → ` S2V-01 ` (subject reference).
128+
113129``` bash
114130mmx video generate --prompt < text> [flags]
115131```
116132
117133| Flag | Type | Description |
118134| ---| ---| ---|
119135| ` --prompt <text> ` | string, ** required** | Video description |
120- | ` --model <model> ` | string | ` MiniMax-Hailuo-2.3 ` (default) or ` MiniMax-Hailuo-2.3-Fast ` |
136+ | ` --model <model> ` | string | ` MiniMax-Hailuo-2.3 ` (default), ` MiniMax-Hailuo-2.3-Fast ` . Auto-overridden by ` --last-frame ` (Hailuo-02) or ` --subject-image ` (S2V-01). |
121137| ` --first-frame <path-or-url> ` | string | First frame image |
138+ | ` --last-frame <path-or-url> ` | string | Last frame image (SEF mode, auto-switches to Hailuo-02) |
139+ | ` --subject-image <path-or-url> ` | string | Subject reference image for character consistency (auto-switches to S2V-01) |
122140| ` --callback-url <url> ` | string | Webhook URL for completion |
123141| ` --download <path> ` | string | Save video to specific file |
124142| ` --async ` | boolean | Return task ID immediately |
@@ -133,6 +151,12 @@ mmx video generate --prompt "A robot." --async --quiet
133151# Blocking: wait and get file path
134152mmx video generate --prompt " Ocean waves." --download ocean.mp4 --quiet
135153# stdout: ocean.mp4
154+
155+ # SEF: first + last frame interpolation (uses Hailuo-02)
156+ mmx video generate --prompt " Walk forward" --first-frame start.jpg --last-frame end.jpg --download walk.mp4
157+
158+ # Subject reference: character consistency (uses S2V-01)
159+ mmx video generate --prompt " A detective walking" --subject-image character.jpg --download detective.mp4
136160```
137161
138162### video task get
@@ -188,6 +212,49 @@ mmx speech synthesize --text "Hello world" --out hello.mp3 --quiet
188212echo " Breaking news." | mmx speech synthesize --text-file - --out news.mp3
189213```
190214
215+ ### speech clone
216+
217+ Clone a voice from an audio sample. Two-step process: upload audio → clone.
218+
219+ ``` bash
220+ mmx speech clone --audio < path> --voice-id < name> [flags]
221+ ```
222+
223+ | Flag | Type | Description |
224+ | ---| ---| ---|
225+ | ` --audio <path> ` | string, ** required** | Path to the reference audio file (mp3/wav) |
226+ | ` --voice-id <name> ` | string, ** required** | Unique identifier for the cloned voice |
227+ | ` --description <text> ` | string | Description of the cloned voice |
228+ | ` --clone-prompt <text> ` | string | Text prompt to guide the cloning process |
229+ | ` --out <path> ` | string | Save clone result to JSON file |
230+
231+ ``` bash
232+ mmx speech clone --audio reference.wav --voice-id my_voice --out clone_result.json --quiet
233+ # stdout: clone result JSON
234+ ```
235+
236+ ### speech design
237+
238+ Design a custom voice from a text description.
239+
240+ ``` bash
241+ mmx speech design --prompt < text> [flags]
242+ ```
243+
244+ | Flag | Type | Description |
245+ | ---| ---| ---|
246+ | ` --prompt <text> ` | string, ** required** | Voice description (e.g. "warm female alto, calm tone") |
247+ | ` --preview-text <text> ` | string | Text to generate a preview with the designed voice |
248+ | ` --voice-id <id> ` | string | Custom voice ID to assign to the designed voice |
249+ | ` --out <path> ` | string | Save design result to JSON file |
250+
251+ ``` bash
252+ mmx speech design --prompt " warm female alto, calm and soothing tone" --out design_result.json --quiet
253+ # stdout: design result JSON
254+
255+ mmx speech design --prompt " energetic young male voice" --preview-text " Hello, this is a test." --quiet
256+ ```
257+
191258---
192259
193260### music generate
@@ -398,6 +465,23 @@ mmx vision describe --image "$URL" --quiet
398465TASK=$( mmx video generate --prompt " A robot" --async --quiet | jq -r ' .taskId' )
399466mmx video task get --task-id " $TASK " --output json
400467mmx video download --task-id " $TASK " --out robot.mp4
468+
469+ # Voice cloning workflow
470+ mmx speech clone --audio sample.wav --voice-id my_voice --out clone.json --quiet
471+ VOICE_ID=$( jq -r ' .voice_id' clone.json)
472+ mmx speech synthesize --text " Hello from my voice" --voice " $VOICE_ID " --out hello.mp3
473+
474+ # SEF video: generate frames → interpolate video
475+ mmx image generate --prompt " start of journey" --out-dir /tmp/sef-start --quiet
476+ mmx image generate --prompt " end of journey" --out-dir /tmp/sef-end --quiet
477+ START=$( ls /tmp/sef-start/image_001.jpg)
478+ END=$( ls /tmp/sef-end/image_001.jpg)
479+ mmx video generate --prompt " Walk forward" --first-frame " $START " --last-frame " $END " --download walk.mp4
480+
481+ # Reproducible image generation
482+ mmx image generate --prompt " A landscape" --seed 42 --out-dir ./v1/ --quiet
483+ mmx image generate --prompt " A landscape" --seed 42 --out-dir ./v2/ --quiet
484+ # Both produce identical images
401485```
402486
403487---
0 commit comments