@wavespeed/cli 0.4.31 → 0.4.33

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 CHANGED
@@ -121,7 +121,7 @@ wavespeed extend video "the camera keeps rising" --video @./clip.mp4 --json
121
121
  | | Default | Alternatives (`-m`) |
122
122
  |---|---|---|
123
123
  | Image | `seedream-5-5` | `seedream-5-pro`, `gpt-image-2.6`, `gpt-image-2.5`, `nano-banana-2.1`, `nano-banana-pro`, `nano-banana-2`, `gpt-image-2` |
124
- | Video | `seedance-2.5` | `seedance-2.5-turbo`, `kling-4.0`, `wan-3.0`, `wan-3.0-prime`, `minimax-h3` (cheap and fast, native stereo audio, 768p by default), Seedance 2.0 tiers |
124
+ | Video | `seedance-2.5-flash` | `seedance-2.5-flash-turbo`, `seedance-2.5`, `seedance-2.5-turbo`, `kling-4.0`, `wan-3.0`, `wan-3.0-prime`, `minimax-h3` (cheap and fast, native stereo audio, 768p by default), Seedance 2.0 tiers |
125
125
 
126
126
  For everything else (audio, 3D, upscaling, a specific endpoint), find the model with `wavespeed models <query>` and call it with `wavespeed run <model-id>`.
127
127
 
@@ -39,6 +39,14 @@ const seedance = (id, label, base, turbo, v25) => ({
39
39
  durations: v25 ? [4, 30] : [4, 15], aspectRatios: SEEDANCE_ASPECTS, audio: true,
40
40
  maxRefs: v25 ? { images: 30, videos: 10, audios: 10 } : { images: 9, videos: 3, audios: 3 },
41
41
  });
42
+ // Flash: generated natively at 480p / 720p; 1080p and 4k are upscaled from 720p (mov stops at 720p). The turbo tier takes
43
+ // 720p / 1080p only. At most 10 images, 5 videos and 5 audios, and no extend endpoint.
44
+ const seedanceFlash = (id, label, turbo) => ({
45
+ id, label, family: 'seedance-2.5', base: 'bytedance/seedance-2.5-flash', turbo, modes: ['generate', 'edit'],
46
+ resolutions: turbo ? TURBO_RES : ALL_RES, defaultResolution: '720p',
47
+ durations: [4, 30], aspectRatios: SEEDANCE_ASPECTS, audio: true,
48
+ maxRefs: { images: 10, videos: 5, audios: 5 },
49
+ });
42
50
  const wan = (id, label, base) => ({
43
51
  id, label, family: 'wan-3.0', base, turbo: false, modes: ['generate', 'edit', 'extend'],
44
52
  resolutions: ['480p', '720p', '1080p'], defaultResolution: '720p', durations: [2, 30],
@@ -46,6 +54,8 @@ const wan = (id, label, base) => ({
46
54
  });
47
55
  /** In menu order; the first is the default. */
48
56
  export const VIDEO_MODELS = {
57
+ 'seedance-2.5-flash': seedanceFlash('seedance-2.5-flash', 'Seedance 2.5 Flash', false),
58
+ 'seedance-2.5-flash-turbo': seedanceFlash('seedance-2.5-flash-turbo', 'Seedance 2.5 Flash Turbo', true),
49
59
  'seedance-2.5': seedance('seedance-2.5', 'Seedance 2.5', 'bytedance/seedance-2.5', false, true),
50
60
  'seedance-2.5-turbo': seedance('seedance-2.5-turbo', 'Seedance 2.5 Turbo', 'bytedance/seedance-2.5', true, true),
51
61
  'seedance-2.0': seedance('seedance-2.0', 'Seedance 2.0', 'bytedance/seedance-2.0', false, false),
@@ -187,7 +187,16 @@ export async function planVideo(args, action, propsOf) {
187
187
  const refAudios = args.reference_audios?.length ? args.reference_audios : undefined;
188
188
  const pinned = args.model !== undefined && args.model !== '';
189
189
  const first = videoModelKey(args.model);
190
- const keys = pinned ? [first] : [first, ...VIDEO_MODEL_KEYS.filter((k) => k !== first)];
190
+ // The default is the cheapest tier and takes the fewest inputs (Seedance 2.5 Flash: 480p / 720p, 10 images). When the
191
+ // caller asked for more than it offers, move on to the next model instead of trimming the request to fit.
192
+ const limits = VIDEO_MODELS[first];
193
+ const exceeds = (args.resolution != null && args.resolution !== '' && !limits.resolutions.includes(args.resolution)) ||
194
+ (args.reference_images?.length ?? 0) > limits.maxRefs.images ||
195
+ (args.reference_videos?.length ?? 0) > limits.maxRefs.videos ||
196
+ (args.reference_audios?.length ?? 0) > limits.maxRefs.audios;
197
+ const ordered = pinned ? [first] : [first, ...VIDEO_MODEL_KEYS.filter((k) => k !== first)];
198
+ // Skipping the default skips its turbo sibling too: it takes the same inputs and offers less.
199
+ const keys = !pinned && first === DEFAULT_VIDEO_MODEL && exceeds ? ordered.filter((k) => VIDEO_MODELS[k].base !== limits.base) : ordered;
191
200
  const candidates = [];
192
201
  for (const key of keys) {
193
202
  // H3's native 768p tier is the counterpart of other models' 720p default.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@wavespeed/cli",
3
- "version": "0.4.31",
3
+ "version": "0.4.33",
4
4
  "description": "WaveSpeed CLI — one command to run any WaveSpeed AI model from your terminal.",
5
5
  "publishConfig": {
6
6
  "access": "public"
package/skills/SKILL.md CHANGED
@@ -34,9 +34,9 @@ They use the same models as the WaveSpeed /chat page and pick the endpoint (text
34
34
  | | Default | Alternatives (`-m` / `model`) |
35
35
  |---|---|---|
36
36
  | Image | `seedream-5-5` (Seedream 5.5) | `seedream-5-pro`, `gpt-image-2.6` (GPT Image 2.6, the model behind ChatGPT Images 2.6; strong at text and photorealism), `gpt-image-2.5`, `nano-banana-2.1`, `nano-banana-pro`, `nano-banana-2`, `gpt-image-2` |
37
- | Video | `seedance-2.5` (Seedance 2.5) | `seedance-2.5-turbo`, `kling-4.0`, `wan-3.0`, `wan-3.0-prime`, `minimax-h3` (cheap and fast, native stereo audio; defaults to 768p, its counterpart of 720p), older Seedance 2.0 tiers |
37
+ | Video | `seedance-2.5-flash` (Seedance 2.5 Flash: 480p to 4k, 1080p and 4k upscaled, no extend), `seedance-2.5-flash-turbo` (720p / 1080p) | `seedance-2.5`, `seedance-2.5-turbo`, `kling-4.0`, `wan-3.0`, `wan-3.0-prime`, `minimax-h3` (cheap and fast, native stereo audio; defaults to 768p, its counterpart of 720p), older Seedance 2.0 tiers |
38
38
 
39
- Video resolution is 720p unless the user asks for another (MiniMax H3: 768p). Offer 480p for a cheaper draft.
39
+ Video resolution is 720p unless the user asks for another (MiniMax H3: 768p). Offer 480p for a cheaper draft. Seedance 2.5 Flash is asked for 1080p or 4k like any other model; it makes 720p natively and upscales above that.
40
40
 
41
41
  ## Everything else: the generic run
42
42