@heyamiko/amiko-cli 0.16.2 → 0.16.3
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/README.md +10 -2
- package/dist/index.js +21 -2
- package/package.json +1 -1
- package/skills/SKILL.md +5 -1
package/README.md
CHANGED
|
@@ -879,9 +879,9 @@ Generate a video (Create Studio)
|
|
|
879
879
|
|
|
880
880
|
| Flag | Default | Description |
|
|
881
881
|
|---|---|---|
|
|
882
|
-
| `--model <model>` | | Video model: MiniMax-Hailuo-02 (default for prompt-only; T2V+I2V), MiniMax-Hailuo-2.3-Fast (default with --first-frame; I2V only), MiniMax-Hailuo-2.3 (T2V+I2V), MiniMax-H3 (aliases h3, hailuo-03; T2V+I2V+reference-to-video, 768P\|2K, any 4–15s, billed per second), veo-3.1[-fast\|-lite]-generate-preview (Google; durations clamp to 4/6/8s), grok-imagine-video (xAI), dreamina-seedance-* (BytePlus). ONLY these — kling and other ids are not supported |
|
|
882
|
+
| `--model <model>` | | Video model: MiniMax-Hailuo-02 (default for prompt-only; T2V+I2V), MiniMax-Hailuo-2.3-Fast (default with --first-frame; I2V only), MiniMax-Hailuo-2.3 (T2V+I2V), MiniMax-H3 (aliases h3, hailuo-03; T2V+I2V+reference-to-video, 768P\|2K, any 4–15s, billed per second), veo-3.1[-fast\|-lite]-generate-preview (Google; durations clamp to 4/6/8s), grok-imagine-video (xAI), dreamina-seedance-2-5-260628 (BytePlus Seedance 2.5; any whole 4–30s, billed per token so a long 1080p clip runs into dollars — quote it), other dreamina-seedance-* (BytePlus, ≤15s). ONLY these — kling and other ids are not supported |
|
|
883
883
|
| `--resolution <res>` | `768P` | 512P, 720P, 768P, 1080P (MiniMax, Grok, Seedance); 720p, 1080p, 4k (Veo); 768P or 2K (MiniMax-H3) |
|
|
884
|
-
| `--seconds <n>` | `6` | Clip length: 6 or 10 (Hailuo), 4/6/8 (Veo), 4/6/8/10 (Grok, Seedance), any whole number 4–15 (MiniMax-H3) |
|
|
884
|
+
| `--seconds <n>` | `6` | Clip length: 6 or 10 (Hailuo), 4/6/8 (Veo), 4/6/8/10 (Grok, Seedance 2.0), any whole number 4–15 (MiniMax-H3), any whole number 4–30 (Seedance 2.5) |
|
|
885
885
|
| `--aspect <ratio>` | | Aspect ratio (provider-dependent). MiniMax-H3 text-to-video needs a concrete ratio (21:9, 16:9, 4:3, 1:1, 3:4, 9:16); defaults to 16:9 when omitted |
|
|
886
886
|
| `--first-frame <file|url>` | | Image-to-video: first frame — local file path, https URL, or data URI |
|
|
887
887
|
| `--last-frame <file|url>` | | First-and-last-frame video: ending frame — local file path, https URL, or data URI. MiniMax-H3, Seedance and Veo only (Seedance/Veo also need --first-frame) |
|
|
@@ -2617,6 +2617,14 @@ npm publish
|
|
|
2617
2617
|
|
|
2618
2618
|
## Changelog
|
|
2619
2619
|
|
|
2620
|
+
### 0.16.3
|
|
2621
|
+
|
|
2622
|
+
- **Seedance 2.5 (`dreamina-seedance-2-5-260628`) is a supported `create video --model`**, and it is the only model that goes past 15s — any whole `--seconds` from **4 to 30**. The 4|6|8|10 set never applied to it, and neither does H3's 4–15 range, so `--seconds 22` is now accepted rather than rejected against a table it was never subject to.
|
|
2623
|
+
- **Over-long durations are an error, not a silent trim.** mpp clamped anything above 15s down to 15s before submitting. On a model that accepts 30s that meant a 30s request generated a 15s clip, billed in full, and said nothing about the substitution — the owner paid for a video that was not the one they asked for. The limit is now per model and exceeding it fails before the job is created.
|
|
2624
|
+
- **2.5 is priced at its own rate ($0.0107/1K tokens).** It was falling through to the 2.0 Pro rate, which under-quoted it by ~31%: the number shown at approval was not the number charged. The unknown-model fallback was also inverted — it used to quote at the *cheapest* published rate, so any future model id would under-quote by default; it now quotes at the dearest known rate and logs that it did.
|
|
2625
|
+
- **`Expensive generation:` warning above $0.50.** Seedance 2.5 bills per token, so cost tracks duration × resolution: roughly **5s 720p ≈ $1.16**, **10s 720p ≈ $2.31**, **30s 1080p ≈ $15.60** — about 156,000 credits, more than most balances hold. `Cost:` alone reads identically at $0.09 and at $15, so anything at or above $0.50 now gets its own stderr line naming the two levers (`--seconds`, `--resolution`) that caused it. Ordinary work — an image, a short Hailuo clip — stays quiet.
|
|
2626
|
+
- **The reference caps stay at 9/3/3.** 2.5 advertises up to 50 multimodal references upstream, but BytePlus has not published how the ≤15s combined-reference budget changes at that ceiling, and a cap that can't be verified locally is one that fails by generating and billing. 2.5's usable win today is duration, not reference count.
|
|
2627
|
+
|
|
2620
2628
|
### 0.16.2
|
|
2621
2629
|
|
|
2622
2630
|
- **`--yes` now discloses the cost instead of hiding it.** The approval gate treated `--yes` as permission to skip the *prompt* and the *disclosure* together, so an agent that passed it generated media with the amount appearing nowhere in the output — the one path where money moves was the one path that said nothing about it. The quote has already been fetched by then, so `Cost: …` now prints on every approved paid run. It goes to **stderr**, because job ids and `--raw` JSON go to stdout and callers parse them; free outward actions (a chat message, a follow) still print nothing, so nothing reintroduces "the cost is 0" for an action that has no price.
|
package/dist/index.js
CHANGED
|
@@ -29311,6 +29311,12 @@ var NON_H3_MAX_PROMPT_CHARS = 2000;
|
|
|
29311
29311
|
var H3_MAX_REFERENCE_FILES = 12;
|
|
29312
29312
|
var H3_DEFAULT_T2V_ASPECT = "16:9";
|
|
29313
29313
|
var NON_H3_VIDEO_SECONDS = new Set([4, 6, 8, 10]);
|
|
29314
|
+
var SEEDANCE_25_MODEL = /^(dreamina-)?seedance-2-5(-|$)/i;
|
|
29315
|
+
var SEEDANCE_25_MIN_SECONDS = 4;
|
|
29316
|
+
var SEEDANCE_25_MAX_SECONDS = 30;
|
|
29317
|
+
function isSeedance25Model(model) {
|
|
29318
|
+
return SEEDANCE_25_MODEL.test(model);
|
|
29319
|
+
}
|
|
29314
29320
|
function isH3VideoModel(model) {
|
|
29315
29321
|
return H3_VIDEO_MODEL.test(model);
|
|
29316
29322
|
}
|
|
@@ -29719,6 +29725,7 @@ function mediaUrls(items) {
|
|
|
29719
29725
|
}
|
|
29720
29726
|
|
|
29721
29727
|
// src/commands/create.ts
|
|
29728
|
+
var HIGH_COST_USD = 0.5;
|
|
29722
29729
|
var MUSIC_MAX_SECONDS = 300;
|
|
29723
29730
|
var ETA = {
|
|
29724
29731
|
IMAGE: "~15–60s",
|
|
@@ -29803,6 +29810,7 @@ async function submitCreateJob(opts) {
|
|
|
29803
29810
|
}
|
|
29804
29811
|
let costLine = payCredits ? "reserved from your Amiko account credits, captured on success (released on failure)" : "charged from your twin wallet on success (nothing on failure)";
|
|
29805
29812
|
let quotedCostAmiko;
|
|
29813
|
+
let quotedCostUsd;
|
|
29806
29814
|
let quoteFailed = false;
|
|
29807
29815
|
try {
|
|
29808
29816
|
const q = await amikoWebFetch(auth, "/api/create/quote", {
|
|
@@ -29811,6 +29819,7 @@ async function submitCreateJob(opts) {
|
|
|
29811
29819
|
timeoutMs: 15000
|
|
29812
29820
|
});
|
|
29813
29821
|
if (q.cost_usd != null) {
|
|
29822
|
+
quotedCostUsd = q.cost_usd;
|
|
29814
29823
|
costLine = payCredits ? `≈ ${Math.ceil(q.cost_usd * 1e4)} Amiko credits (≈ $${q.cost_usd.toFixed(4)}) — reserved on submit, captured only on success` : `${q.cost_amiko ?? "?"} AMIKO (≈ $${q.cost_usd.toFixed(4)}) — charged only on success`;
|
|
29815
29824
|
}
|
|
29816
29825
|
if (typeof q.cost_amiko === "string" && q.cost_amiko.trim() !== "") {
|
|
@@ -29825,6 +29834,12 @@ async function submitCreateJob(opts) {
|
|
|
29825
29834
|
console.error(warn("Price quote failed — the amount below is unknown."));
|
|
29826
29835
|
costLine = `unknown (quote failed) — ${costLine}`;
|
|
29827
29836
|
}
|
|
29837
|
+
if (quotedCostUsd !== undefined && quotedCostUsd >= HIGH_COST_USD) {
|
|
29838
|
+
console.error("");
|
|
29839
|
+
console.error(warn(`Expensive generation: ≈ $${quotedCostUsd.toFixed(2)} (${Math.ceil(quotedCostUsd * 1e4).toLocaleString()} credits).`));
|
|
29840
|
+
console.error(dim(" Duration and resolution drive this almost linearly — halving either roughly halves the price."));
|
|
29841
|
+
console.error("");
|
|
29842
|
+
}
|
|
29828
29843
|
const preferredToken = typeof jobBody.preferredToken === "string" ? jobBody.preferredToken.toUpperCase() : undefined;
|
|
29829
29844
|
const chargeIsAmiko = !payCredits && (preferredToken === undefined || preferredToken === "AMIKO");
|
|
29830
29845
|
const autoApprovable = payCredits || chargeIsAmiko;
|
|
@@ -29957,7 +29972,7 @@ function registerCreateCommand(create2) {
|
|
|
29957
29972
|
}
|
|
29958
29973
|
});
|
|
29959
29974
|
});
|
|
29960
|
-
create2.command("video <prompt>").description("Generate a video (Create Studio)").option("--model <model>", "Video model: MiniMax-Hailuo-02 (default for prompt-only; T2V+I2V), MiniMax-Hailuo-2.3-Fast (default with --first-frame; I2V only), MiniMax-Hailuo-2.3 (T2V+I2V), MiniMax-H3 (aliases h3, hailuo-03; T2V+I2V+reference-to-video, 768P|2K, any 4–15s, billed per second), veo-3.1[-fast|-lite]-generate-preview (Google; durations clamp to 4/6/8s), grok-imagine-video (xAI), dreamina-seedance-* (BytePlus). ONLY these — kling and other ids are not supported").option("--resolution <res>", "512P, 720P, 768P, 1080P (MiniMax, Grok, Seedance); 720p, 1080p, 4k (Veo); 768P or 2K (MiniMax-H3)", "768P").option("--seconds <n>", "Clip length: 6 or 10 (Hailuo), 4/6/8 (Veo), 4/6/8/10 (Grok, Seedance), any whole number 4–15 (MiniMax-H3)", "6").option("--aspect <ratio>", "Aspect ratio (provider-dependent). MiniMax-H3 text-to-video needs a concrete ratio (21:9, 16:9, 4:3, 1:1, 3:4, 9:16); defaults to 16:9 when omitted").option("--first-frame <file|url>", "Image-to-video: first frame — local file path, https URL, or data URI").option("--last-frame <file|url>", "First-and-last-frame video: ending frame — local file path, https URL, or data URI. MiniMax-H3, Seedance and Veo only (Seedance/Veo also need --first-frame)").option("--reference-image <file|url>", "Reference-to-video: local file path or https URL (repeatable). MiniMax-H3 / Seedance / Grok: max 9; Veo: max 3; Hailuo v1: NOT supported — use --subject-reference", collectOption, []).option("--reference-video <file|url>", "Reference-to-video: local file path or https URL (repeatable, max 3). MiniMax-H3 and Seedance only; combined reference video+audio must be ≤15s, and H3 bills 15 input-seconds whenever any is attached", collectOption, []).option("--reference-audio <file|url>", "Reference-to-video: local file path or https URL (repeatable, max 3). MiniMax-H3 and Seedance only; needs an image or video reference alongside, H3 wants 2–15s per clip", collectOption, []).option("--subject-reference <file|url>", "MiniMax S2V / H3: subject/character reference image — local file path or https URL. Takes the place of --reference-image rather than adding to it").option("--generate-audio", "Seedance: generate audio in the output video").option("--no-generate-audio", "Seedance: output silent video").option("--watermark", "Seedance: burn in a watermark").option("--no-watermark", "Seedance: no watermark").option("--camera-fixed", "Seedance: hold the camera still").option("--no-camera-fixed", "Seedance: allow camera movement").option("--prompt-optimizer", "MiniMax (H3 and Hailuo v1): let the model rewrite the prompt before generating").option("--no-prompt-optimizer", "MiniMax: use the prompt verbatim").option("--fast-pretreatment", "MiniMax Hailuo v1: faster input pre-processing (ignored by H3, Veo, Grok and Seedance)").option("--no-fast-pretreatment", "MiniMax Hailuo v1: standard input pre-processing").option("--token <symbol>", "Preferred charge token: AMIKO, USDC, USDT, SOL").option("--pay <method>", "Payment method: credits (Amiko account credits, default) or wallet (twin wallet)", "credits").option("--raw", "Output raw JSON").option("--yes", "Skip the pre-spend confirmation (required in non-interactive shells)").action(async (prompt, opts) => {
|
|
29975
|
+
create2.command("video <prompt>").description("Generate a video (Create Studio)").option("--model <model>", "Video model: MiniMax-Hailuo-02 (default for prompt-only; T2V+I2V), MiniMax-Hailuo-2.3-Fast (default with --first-frame; I2V only), MiniMax-Hailuo-2.3 (T2V+I2V), MiniMax-H3 (aliases h3, hailuo-03; T2V+I2V+reference-to-video, 768P|2K, any 4–15s, billed per second), veo-3.1[-fast|-lite]-generate-preview (Google; durations clamp to 4/6/8s), grok-imagine-video (xAI), dreamina-seedance-2-5-260628 (BytePlus Seedance 2.5; any whole 4–30s, billed per token so a long 1080p clip runs into dollars — quote it), other dreamina-seedance-* (BytePlus, ≤15s). ONLY these — kling and other ids are not supported").option("--resolution <res>", "512P, 720P, 768P, 1080P (MiniMax, Grok, Seedance); 720p, 1080p, 4k (Veo); 768P or 2K (MiniMax-H3)", "768P").option("--seconds <n>", "Clip length: 6 or 10 (Hailuo), 4/6/8 (Veo), 4/6/8/10 (Grok, Seedance 2.0), any whole number 4–15 (MiniMax-H3), any whole number 4–30 (Seedance 2.5)", "6").option("--aspect <ratio>", "Aspect ratio (provider-dependent). MiniMax-H3 text-to-video needs a concrete ratio (21:9, 16:9, 4:3, 1:1, 3:4, 9:16); defaults to 16:9 when omitted").option("--first-frame <file|url>", "Image-to-video: first frame — local file path, https URL, or data URI").option("--last-frame <file|url>", "First-and-last-frame video: ending frame — local file path, https URL, or data URI. MiniMax-H3, Seedance and Veo only (Seedance/Veo also need --first-frame)").option("--reference-image <file|url>", "Reference-to-video: local file path or https URL (repeatable). MiniMax-H3 / Seedance / Grok: max 9; Veo: max 3; Hailuo v1: NOT supported — use --subject-reference", collectOption, []).option("--reference-video <file|url>", "Reference-to-video: local file path or https URL (repeatable, max 3). MiniMax-H3 and Seedance only; combined reference video+audio must be ≤15s, and H3 bills 15 input-seconds whenever any is attached", collectOption, []).option("--reference-audio <file|url>", "Reference-to-video: local file path or https URL (repeatable, max 3). MiniMax-H3 and Seedance only; needs an image or video reference alongside, H3 wants 2–15s per clip", collectOption, []).option("--subject-reference <file|url>", "MiniMax S2V / H3: subject/character reference image — local file path or https URL. Takes the place of --reference-image rather than adding to it").option("--generate-audio", "Seedance: generate audio in the output video").option("--no-generate-audio", "Seedance: output silent video").option("--watermark", "Seedance: burn in a watermark").option("--no-watermark", "Seedance: no watermark").option("--camera-fixed", "Seedance: hold the camera still").option("--no-camera-fixed", "Seedance: allow camera movement").option("--prompt-optimizer", "MiniMax (H3 and Hailuo v1): let the model rewrite the prompt before generating").option("--no-prompt-optimizer", "MiniMax: use the prompt verbatim").option("--fast-pretreatment", "MiniMax Hailuo v1: faster input pre-processing (ignored by H3, Veo, Grok and Seedance)").option("--no-fast-pretreatment", "MiniMax Hailuo v1: standard input pre-processing").option("--token <symbol>", "Preferred charge token: AMIKO, USDC, USDT, SOL").option("--pay <method>", "Payment method: credits (Amiko account credits, default) or wallet (twin wallet)", "credits").option("--raw", "Output raw JSON").option("--yes", "Skip the pre-spend confirmation (required in non-interactive shells)").action(async (prompt, opts) => {
|
|
29961
29976
|
const model = opts.model ?? (opts.firstFrame ? "MiniMax-Hailuo-2.3-Fast" : "MiniMax-Hailuo-02");
|
|
29962
29977
|
const isH3 = isH3VideoModel(model);
|
|
29963
29978
|
const seconds = Number(opts.seconds);
|
|
@@ -29965,8 +29980,12 @@ function registerCreateCommand(create2) {
|
|
|
29965
29980
|
if (!Number.isInteger(seconds) || seconds < H3_MIN_SECONDS || seconds > H3_MAX_SECONDS) {
|
|
29966
29981
|
failInput(`--seconds must be a whole number from ${H3_MIN_SECONDS} to ${H3_MAX_SECONDS} for MiniMax-H3.`);
|
|
29967
29982
|
}
|
|
29983
|
+
} else if (isSeedance25Model(model)) {
|
|
29984
|
+
if (!Number.isInteger(seconds) || seconds < SEEDANCE_25_MIN_SECONDS || seconds > SEEDANCE_25_MAX_SECONDS) {
|
|
29985
|
+
failInput(`--seconds must be a whole number from ${SEEDANCE_25_MIN_SECONDS} to ${SEEDANCE_25_MAX_SECONDS} for Seedance 2.5.`);
|
|
29986
|
+
}
|
|
29968
29987
|
} else if (!NON_H3_VIDEO_SECONDS.has(seconds)) {
|
|
29969
|
-
failInput("--seconds must be 4, 6, 8, or 10 (Hailuo accepts 6 or 10; use --model MiniMax-H3 for any 4–15s).");
|
|
29988
|
+
failInput("--seconds must be 4, 6, 8, or 10 (Hailuo accepts 6 or 10; use --model MiniMax-H3 for any 4–15s, or --model dreamina-seedance-2-5-260628 for any 4–30s).");
|
|
29970
29989
|
}
|
|
29971
29990
|
let resolution = opts.resolution;
|
|
29972
29991
|
if (isH3) {
|
package/package.json
CHANGED
package/skills/SKILL.md
CHANGED
|
@@ -215,7 +215,9 @@ This twin has **two** optional TTS ids. They are **not** the same:
|
|
|
215
215
|
|
|
216
216
|
- **HTTP 202 / `status: PENDING` / `PROCESSING` = success so far, NOT failure.** MPP logs like `POST /internal/create/video 202` mean the async job was **accepted and queued**. A single immediate `GET /internal/create/jobs/… 200` only means the job record exists — video still needs **~2–9 minutes**. **Never** tell the owner the render "failed" or "stalled" just because you saw 202 or polled once while still `PROCESSING`.
|
|
217
217
|
- **Only call it failed when** `amiko create status <jobId>` returns `FAILED` (or the CLI exits non-zero with an error), **or** after the ETA you check again and it's still not `COMPLETED` **and** mpp logs show `[internal-create/video]` with an error.
|
|
218
|
-
- **Do NOT invent video models.** `kling-v1.6`, `kling-*`, and other non-platform ids are **not supported** and will error. Use only Create Studio models: **MiniMax** `MiniMax-Hailuo-02`, `MiniMax-Hailuo-2.3`, `MiniMax-Hailuo-2.3-Fast`, `MiniMax-H3` (aliases `h3`, `hailuo-03` — v2 API: T2V + I2V + reference-to-video, `768P`|`2K`, any whole `--seconds` 4–15, **billed per second** so longer clips cost more; text-to-video needs a concrete `--aspect`, defaulting to `16:9`); **Google Veo** `veo-3.1-generate-preview`, `veo-3.1-fast-generate-preview`, `veo-3.1-lite-generate-preview` (durations clamp to 4/6/8s; lite is prompt-only/T2V, no first frame); **xAI** `grok-imagine-video`; **BytePlus Seedance** `dreamina-seedance
|
|
218
|
+
- **Do NOT invent video models.** `kling-v1.6`, `kling-*`, and other non-platform ids are **not supported** and will error. Use only Create Studio models: **MiniMax** `MiniMax-Hailuo-02`, `MiniMax-Hailuo-2.3`, `MiniMax-Hailuo-2.3-Fast`, `MiniMax-H3` (aliases `h3`, `hailuo-03` — v2 API: T2V + I2V + reference-to-video, `768P`|`2K`, any whole `--seconds` 4–15, **billed per second** so longer clips cost more; text-to-video needs a concrete `--aspect`, defaulting to `16:9`); **Google Veo** `veo-3.1-generate-preview`, `veo-3.1-fast-generate-preview`, `veo-3.1-lite-generate-preview` (durations clamp to 4/6/8s; lite is prompt-only/T2V, no first frame); **xAI** `grok-imagine-video`; **BytePlus Seedance** `dreamina-seedance-2-5-260628` (2.5 — any whole `--seconds` **4–30**, the only model that goes past 15s) and the 2.0 family `dreamina-seedance-2-0-260128` / `-2-0-fast-260128` (≤15s). Run `amiko create video --help` — do **not** bypass with `markets service call` to `/internal/create/video`.
|
|
219
|
+
|
|
220
|
+
- **Seedance 2.5 is the expensive one — never submit it without quoting.** It bills per token, so cost scales with duration × resolution and runs roughly: **5s 720p ≈ $1.16**, **10s 720p ≈ $2.31**, **30s 1080p ≈ $15.60**. That last one is ~156,000 credits — more than most owners hold. Treat every 2.5 job as a job that needs the full propose → quote → generate flow, and say the dollar figure out loud, not just the credit count: "≈ $15.60" lands where "156,000 credits" does not. The CLI prints its own `Expensive generation:` warning above $0.50, which is every 2.5 clip — pass that warning on to the owner rather than swallowing it. If they want something cheaper, the levers are `--seconds` and `--resolution`, roughly linear in both.
|
|
219
221
|
- **Cover art → motion (I2V):** pass the cover's Amiko URL as `--first-frame <url>` (from `amiko create status` on the image job or `amiko create media`). The default model is now **input-aware**: prompt-only video defaults to `MiniMax-Hailuo-02` (T2V), and `--first-frame` runs default to `MiniMax-Hailuo-2.3-Fast` (I2V) — so omitting `--model` is safe in both shapes. Explicit `--model` always wins; Fast alone still rejects prompt-only (it needs a reference image).
|
|
220
222
|
- **Before giving up on video**, you must have: (1) submitted with `amiko create video … --yes`, (2) waited through the ETA, (3) run `amiko create status <jobId>` **or** `amiko create media --service video`. If `COMPLETED` + `assetUrl`, report success with the URL. If still `PROCESSING`, say it's still rendering — don't claim the pipeline is broken.
|
|
221
223
|
|
|
@@ -243,6 +245,8 @@ This twin has **two** optional TTS ids. They are **not** the same:
|
|
|
243
245
|
| **Grok** | 9 | — | — | `--first-frame` only | |
|
|
244
246
|
| **Hailuo v1** (02 / 2.3 / 2.3-Fast) | — | — | — | `--first-frame` only | `--reference-image` is silently dropped — use `--subject-reference`, which Hailuo does read |
|
|
245
247
|
|
|
248
|
+
Seedance 2.5 advertises up to **50** multimodal references upstream, but the CLI, the studio and mpp all still cap it at 9/3/3 with the ≤15s reference budget — BytePlus has not published what the longer-reference rules become at that ceiling, and a cap we can't verify is one that fails by generating and billing. Don't promise the owner 50; 2.5's usable win today is **duration** (30s vs 15s), not reference count.
|
|
249
|
+
|
|
246
250
|
`--subject-reference` **replaces** a reference-image slot rather than adding one (except on Hailuo v1, where it's a separate field). The ≤15s combined budget and H3's 2–15s per-clip audio window are checked from the **local file's bytes** — so they're verified for `.wav` / `.mp4` / `.mov` paths and skipped (allowed through) for https URLs and `.mp3`, where the server has the last word.
|
|
247
251
|
|
|
248
252
|
**Provider toggles** (each has a `--no-…` form): `--generate-audio`, `--watermark`, `--camera-fixed` (Seedance); `--prompt-optimizer` (MiniMax H3 + Hailuo v1); `--fast-pretreatment` (Hailuo v1). Passing one to a model that ignores it is harmless — the server drops it.
|