pixverse-ai-cli 1.3.10 → 1.4.1

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
@@ -55,35 +55,37 @@ This opens a browser where you confirm the authorization. You can also copy the
55
55
 
56
56
  ### Video Models (`--model <value>`)
57
57
 
58
- | Model | `--model` value | Quality | Duration | Aspect Ratio |
59
- | :---------------------- | :---------------------- | :---------------------------------- | :------------ | :------------------------------------------------- |
60
- | PixVerse V6 _(default)_ | `v6` | `360p` `540p` `720p` `1080p` | `1`–`15`s | `16:9` `4:3` `1:1` `3:4` `9:16` `3:2` `2:3` `21:9` |
61
- | PixVerse C1 | `pixverse-c1` | `360p` `540p` `720p` `1080p` | `1`–`15`s | `16:9` `4:3` `1:1` `3:4` `9:16` `3:2` `2:3` |
62
- | Seedance 2.5 | `seedance-2.5` | `480p` `720p` `1080p` | `4`–`30`s | `auto` `21:9` `16:9` `4:3` `1:1` `3:4` `9:16` |
63
- | Seedance 2.0 Standard | `seedance-2.0-standard` | `480p` `720p` `1080p` `2160p` | `4`–`15`s | `16:9` `4:3` `1:1` `3:4` `9:16` `21:9` |
64
- | Seedance 2.0 Fast | `seedance-2.0-fast` | `480p` `720p` | `4`–`15`s | `16:9` `4:3` `1:1` `3:4` `9:16` `21:9` |
65
- | Seedance 2.0 Mini | `seedance-2.0-mini` | `480p` `720p` | `4`–`15`s | `16:9` `4:3` `1:1` `3:4` `9:16` `21:9` |
66
- | MiniMax H3 | `minimax-h3` | `768p` `1440p` | `5`–`15`s | `auto` `21:9` `16:9` `4:3` `1:1` `3:4` `9:16` |
67
- | FLUX 3 | `flux-3.0` | `720p` `1080p` | `5`–`20`s | `auto` `21:9` `2:1` `16:9` `4:3` `1:1` `3:4` `9:16` |
68
- | Wan 3.0 | `wan-3.0` | `480p` `720p` `1080p` | `2`–`30`s | `auto` `16:9` `4:3` `1:1` `3:4` `9:16` |
69
- | Google Gemini Omni | `gemini-omni-flash` | `720p` | `3`–`10`s | `16:9` `9:16` |
70
- | Happy Horse 1.0 | `happyhorse-1.0` | `720p` `1080p` | `3`–`15`s | `16:9` `9:16` `1:1` `4:3` `3:4` |
71
- | Kling O3 Pro | `kling-o3-pro` | _not applicable_ | `3`–`15`s | `16:9` `9:16` `1:1` |
72
- | Kling O3 Standard | `kling-o3-standard` | _not applicable_ | `3`–`15`s | `16:9` `9:16` `1:1` |
73
- | Kling O3 4K | `kling-o3-4k` | _not applicable_ | `3`–`15`s | `16:9` `9:16` `1:1` |
74
- | Kling 3.0 Pro | `kling-3.0-pro` | _not applicable_ | `3`–`15`s | `16:9` `9:16` `1:1` |
75
- | Kling 3.0 Standard | `kling-3.0-standard` | _not applicable_ | `3`–`15`s | `16:9` `9:16` `1:1` |
76
- | Kling 3.0 4K | `kling-3.0-4k` | _not applicable_ | `3`–`15`s | `16:9` `9:16` `1:1` |
77
- | Grok Imagine 1.5 | `grok-imagine-1.5` | `480p` `720p` `1080p` | `1`–`15`s | _from image_ |
78
- | Grok Imagine | `grok-imagine` | `480p` `720p` | `1`–`15`s | `16:9` `4:3` `1:1` `9:16` `3:4` `3:2` `2:3` |
79
- | Veo 3.1 Lite | `veo-3.1-lite` | `720p` `1080p` | `4` `6` `8`s | `16:9` `9:16` |
80
- | Veo 3.1 Standard | `veo-3.1-standard` | `720p` `1080p` `2160p` | `4` `6` `8`s | `16:9` `9:16` |
81
- | Veo 3.1 Fast | `veo-3.1-fast` | `720p` `1080p` `2160p` | `4` `6` `8`s | `16:9` `9:16` |
82
- | Sora 2 Pro | `sora-2-pro` | `720p` `1080p` | `4` `8` `12`s | `16:9` `9:16` |
83
- | Sora 2 | `sora-2` | `720p` | `4` `8` `12`s | `16:9` `9:16` |
84
- | PixVerse v5.6 | `v5.6` | `360p` `480p` `540p` `720p` `1080p` | `1`–`10`s | `16:9` `4:3` `1:1` `3:4` `9:16` `3:2` `2:3` |
85
- | PixVerse v5.5 | `v5.5` | `360p` `480p` `540p` `720p` `1080p` | `1`–`10`s | `16:9` `4:3` `1:1` `3:4` `9:16` `3:2` `2:3` |
86
- | PixVerse v5 | `v5` | `360p` `480p` `540p` `720p` `1080p` | `1`–`10`s | `16:9` `4:3` `1:1` `3:4` `9:16` `3:2` `2:3` |
58
+ Supported modes are `pixverse create` subcommands. Defaults are mode-specific.
59
+
60
+ | Model | `--model` value | Supported create modes | Quality | Duration | Aspect Ratio |
61
+ | :--- | :--- | :--- | :--- | :--- | :--- |
62
+ | PixVerse V6 | `v6` | `video` (default), `transition` (2 frames, default), `extend` (default), `reference` (default) | `360p` `540p` `720p` `1080p` | `1`–`15`s | `16:9` `21:9` `4:3` `1:1` `3:4` `9:16` `3:2` `2:3` |
63
+ | PixVerse C1 | `pixverse-c1` | `video`, `transition` (2 frames), `reference` | `360p` `540p` `720p` `1080p` | `1`–`15`s | `16:9` `4:3` `1:1` `3:4` `9:16` `3:2` `2:3` |
64
+ | Seedance 2.5 | `seedance-2.5` | `video`, `transition` (2 frames), `reference` | `480p` `720p` `1080p` | `4`–`30`s | `auto` `21:9` `16:9` `4:3` `1:1` `3:4` `9:16` |
65
+ | Seedance 2.0 Standard | `seedance-2.0-standard` | `video`, `transition` (2 frames), `reference` | `480p` `720p` `1080p` `2160p` | `4`–`15`s | `16:9` `4:3` `1:1` `3:4` `9:16` `21:9` |
66
+ | Seedance 2.0 Fast | `seedance-2.0-fast` | `video`, `transition` (2 frames), `reference` | `480p` `720p` | `4`–`15`s | `16:9` `4:3` `1:1` `3:4` `9:16` `21:9` |
67
+ | Seedance 2.0 Mini | `seedance-2.0-mini` | `video`, `transition` (2 frames), `reference` | `480p` `720p` | `4`–`15`s | `16:9` `4:3` `1:1` `3:4` `9:16` `21:9` |
68
+ | MiniMax H3 | `minimax-h3` | `video`, `transition` (2 frames), `reference` | `768p` `1440p` | `5`–`15`s | `21:9` `16:9` `4:3` `1:1` `3:4` `9:16` `auto` |
69
+ | FLUX 3 | `flux-3.0` | `video` | `720p` `1080p` | `5`–`20`s | `auto` `21:9` `2:1` `16:9` `4:3` `1:1` `3:4` `9:16` |
70
+ | Wan 3.0 | `wan-3.0` | `video`, `transition` (2 frames), `reference` | `480p` `720p` `1080p` | `2`–`30`s | `auto` `16:9` `4:3` `1:1` `3:4` `9:16` |
71
+ | Google Gemini Omni | `gemini-omni-flash` | `video`, `reference` | `720p` | `3`–`10`s | `16:9` `9:16` |
72
+ | Happy Horse 1.0 | `happyhorse-1.0` | `video` | `720p` `1080p` | `3`–`15`s | `16:9` `9:16` `1:1` `4:3` `3:4` |
73
+ | Kling O3 Pro | `kling-o3-pro` | `video`, `transition` (2 frames), `reference` | Selected by model ID | `3`–`15`s | `16:9` `9:16` `1:1` |
74
+ | Kling O3 Standard | `kling-o3-standard` | `video`, `transition` (2 frames), `reference` | Selected by model ID | `3`–`15`s | `16:9` `9:16` `1:1` |
75
+ | Kling O3 4K | `kling-o3-4k` | `video`, `transition` (2 frames), `reference` | Selected by model ID | `3`–`15`s | `16:9` `9:16` `1:1` |
76
+ | Kling 3.0 Pro | `kling-3.0-pro` | `video`, `transition` (2 frames) | Selected by model ID | `3`–`15`s | `16:9` `9:16` `1:1` |
77
+ | Kling 3.0 Standard | `kling-3.0-standard` | `video`, `transition` (2 frames) | Selected by model ID | `3`–`15`s | `16:9` `9:16` `1:1` |
78
+ | Kling 3.0 4K | `kling-3.0-4k` | `video`, `transition` (2 frames) | Selected by model ID | `3`–`15`s | `16:9` `9:16` `1:1` |
79
+ | Grok Imagine 1.5 | `grok-imagine-1.5` | `video` | `480p` `720p` `1080p` | `1`–`15`s | Derived from source image |
80
+ | Grok Imagine | `grok-imagine` | `video`, `extend`, `reference` | `480p` `720p` | `1`–`15`s | `16:9` `4:3` `1:1` `9:16` `3:4` `3:2` `2:3` |
81
+ | Veo 3.1 Lite | `veo-3.1-lite` | `video`, `transition` (2 frames) | `720p` `1080p` | `4` `6` `8`s | `16:9` `9:16` |
82
+ | Veo 3.1 Standard | `veo-3.1-standard` | `video`, `transition` (2 frames) | `720p` `1080p` `2160p` | `4` `6` `8`s | `16:9` `9:16` |
83
+ | Veo 3.1 Fast | `veo-3.1-fast` | `video`, `transition` (2 frames) | `720p` `1080p` `2160p` | `4` `6` `8`s | `16:9` `9:16` |
84
+ | Sora 2 Pro | `sora-2-pro` | `video` | `720p` `1080p` | `4` `8` `12`s | `16:9` `9:16` |
85
+ | Sora 2 | `sora-2` | `video` | `720p` | `4` `8` `12`s | `16:9` `9:16` |
86
+ | PixVerse V5.6 | `v5.6` | `video`, `transition` (2 frames), `reference`, `motion-control` (default) | `360p` `480p` `540p` `720p` `1080p` | `1`–`10`s | `16:9` `9:16` `1:1` `4:3` `3:4` `3:2` `2:3` |
87
+ | PixVerse V5.5 | `v5.5` | `modify` (default) | `360p` `540p` `720p` | — | — |
88
+ | PixVerse V5 | `v5` | `transition` (3+ frames, default) | `360p` `540p` `720p` `1080p` | `1`–`10`s | — |
87
89
 
88
90
  > Seedance 2.5 defaults to `720p`, 5 seconds, and `16:9` for generation without a reference video. Text-to-video and reference mode accept `--aspect-ratio auto` in addition to the fixed ratios. Reference requests containing a video default to automatic duration and lock the aspect ratio to `auto`; selecting an integer from 4 through 30 unlocks both automatic and fixed aspect ratios. Reference mode also accepts the optional `--task-type <type>` flag (`auto` by default, `reference`, `edit`, or `extend`) to guide the task intent; this flag is rejected for other models. Image-to-video retains its existing fixed-ratio behavior, while transition does not send a user-selected aspect ratio. Generated audio, multi-shot, and off-peak generation are unsupported.
89
91
 
@@ -99,60 +101,48 @@ This opens a browser where you confirm the authorization. You can also copy the
99
101
 
100
102
  > Grok Imagine 1.5 is image-to-video only — it requires `--image`, supports `480p`, `720p`, and `1080p`, and derives its aspect ratio from the input image (the `--aspect-ratio` flag is ignored).
101
103
 
102
- > Not all models support all creation modes. See the per-mode support matrix below.
103
-
104
- #### Per-mode Model Support
105
-
106
- | Creation mode | Supported `--model` values |
107
- | :---------------------------------------------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
108
- | `create video` (text-to-video / image-to-video) | `v6` `pixverse-c1` `seedance-2.5` `seedance-2.0-standard` `seedance-2.0-fast` `seedance-2.0-mini` `minimax-h3` `flux-3.0` `wan-3.0` `gemini-omni-flash` `happyhorse-1.0` `kling-o3-pro` `kling-o3-standard` `kling-o3-4k` `kling-3.0-pro` `kling-3.0-standard` `kling-3.0-4k` `grok-imagine-1.5` `grok-imagine` `veo-3.1-lite` `veo-3.1-standard` `veo-3.1-fast` `sora-2-pro` `sora-2` `v5.6` |
109
- | `create extend` | `v6` `grok-imagine` |
110
- | `create reference` (reference / video editing) | `v6` `pixverse-c1` `seedance-2.5` `seedance-2.0-standard` `seedance-2.0-fast` `seedance-2.0-mini` `minimax-h3` `wan-3.0` `gemini-omni-flash` `kling-o3-pro` `kling-o3-standard` `kling-o3-4k` `grok-imagine` `v5.6` |
111
- | `create transition` (2 frames) | `v6` `pixverse-c1` `seedance-2.5` `seedance-2.0-standard` `seedance-2.0-fast` `seedance-2.0-mini` `minimax-h3` `wan-3.0` `kling-o3-pro` `kling-o3-standard` `kling-o3-4k` `kling-3.0-pro` `kling-3.0-standard` `kling-3.0-4k` `veo-3.1-lite` `veo-3.1-standard` `veo-3.1-fast` `v5.6` |
112
- | `create transition` (3+ frames) | `v5` |
113
- | `create modify` | `v5.5` |
114
- | `create motion-control` | `v5.6` |
115
-
116
104
  > Audio creation uses separate model families: `create voice` for text-to-speech and `create music` for prompt-to-music.
117
105
 
118
106
  ### Image Models (`--model <value>`)
119
107
 
120
- | Model | `--model` value | Quality | Aspect Ratio |
121
- | :---------------------- | :---------------------- | :----------------------------- | :------------------------------------------------------------- |
122
- | GPT Image 2 _(default)_ | `gpt-image-2.0` | `1080p` `1440p` `2160p` | `1:1` `16:9` `9:16` `4:3` `3:4` `3:2` `2:3` `2:1` `1:2` `21:9` |
123
- | Nano Banana 2 | `gemini-3.1-flash` | `512p` `1080p` `1440p` `2160p` | `auto` `1:1` `16:9` `9:16` + more |
124
- | Nano Banana 2 Lite | `gemini-3.1-flash-lite` | `1080p` | `auto` `1:1` `16:9` `9:16` + more |
125
- | Qwen-image | `qwen-image` | `720p` `1080p` | `1:1` `16:9` `9:16` `4:3` `3:4` `5:4` `4:5` `3:2` `2:3` `21:9` |
126
- | Nano Banana Pro | `gemini-3.0` | `1080p` `1440p` `2160p` | `auto` `1:1` `16:9` `9:16` + more |
127
- | Nano Banana | `gemini-2.5-flash` | `1080p` | `auto` `1:1` `16:9` `9:16` + more |
128
- | Seedream 5.0 Pro | `seedream-5.0-pro` | `1080p` `1440p` | `auto` `1:1` `16:9` `9:16` + more |
129
- | Seedream 5.0 Lite | `seedream-5.0-lite` | `1440p` `1800p` `2160p` | `auto` `1:1` `16:9` `9:16` + more |
130
- | Seedream 4.5 | `seedream-4.5` | `1440p` `2160p` | `auto` `1:1` `16:9` `9:16` + more |
131
- | Seedream 4.0 | `seedream-4.0` | `1080p` `1440p` `2160p` | `auto` `1:1` `16:9` `9:16` + more |
132
- | Kling Image O3 | `kling-image-o3` | `1080p` `1440p` `2160p` | `16:9` `9:16` `1:1` + more |
133
- | Kling Image V3 | `kling-image-v3` | `1080p` `1440p` | `16:9` `9:16` `1:1` + more |
108
+ | Model | `--model` value | Quality | Aspect Ratio | Max references |
109
+ | :--- | :--- | :--- | :--- | :--- |
110
+ | GPT Image 2.5 Flare _(default)_ | `gpt-image-2.5-flare` | `1080p` `1440p` `2160p` | `1080p`: `1:1` `3:2` `2:3`; `1440p`: `1:1` `16:9` `9:16`; `2160p`: `16:9` `9:16` | 16 |
111
+ | GPT Image 2.5 Sunburst | `gpt-image-2.5-sunburst` | `1080p` `1440p` `2160p` | `1080p`: `1:1` `3:2` `2:3`; `1440p`: `1:1` `16:9` `9:16`; `2160p`: `16:9` `9:16` | 16 |
112
+ | GPT Image 2 | `gpt-image-2.0` | `1080p` `1440p` `2160p` | `1:1` `16:9` `9:16` `4:3` `3:4` `3:2` `2:3` `2:1` `1:2` `21:9` | 9 |
113
+ | Nano Banana 2 | `gemini-3.1-flash` | `512p` `1080p` `1440p` `2160p` | `auto` `1:1` `16:9` `9:16` `4:3` `3:4` `5:4` `4:5` `3:2` `2:3` `21:9` | 9 |
114
+ | Nano Banana 2 Lite | `gemini-3.1-flash-lite` | `1080p` | `auto` `1:1` `3:2` `2:3` `3:4` `4:3` `4:5` `5:4` `9:16` `16:9` `21:9` | 14 |
115
+ | Qwen-image | `qwen-image` | `720p` `1080p` | `1:1` `16:9` `9:16` `4:3` `3:4` `5:4` `4:5` `3:2` `2:3` `21:9` | 3 |
116
+ | Nano Banana Pro | `gemini-3.0` | `1080p` `1440p` `2160p` | `auto` `1:1` `16:9` `9:16` `4:3` `3:4` `5:4` `4:5` `3:2` `2:3` `21:9` | 9 |
117
+ | Nano Banana | `gemini-2.5-flash` | `1080p` | `auto` `1:1` `16:9` `9:16` `4:3` `3:4` `5:4` `4:5` `3:2` `2:3` `21:9` | 3 |
118
+ | Seedream 5.0 Pro | `seedream-5.0-pro` | `1080p` `1440p` | `auto` `1:1` `16:9` `9:16` `4:3` `3:4` `5:4` `4:5` `3:2` `2:3` `21:9` | 10 |
119
+ | Seedream 5.0 Lite | `seedream-5.0-lite` | `1440p` `1800p` `2160p` | `auto` `1:1` `16:9` `9:16` `4:3` `3:4` `5:4` `4:5` `3:2` `2:3` `21:9` | 6 |
120
+ | Seedream 4.5 | `seedream-4.5` | `1440p` `2160p` | `auto` `1:1` `16:9` `9:16` `4:3` `3:4` `5:4` `4:5` `3:2` `2:3` `21:9` | 6 |
121
+ | Seedream 4.0 | `seedream-4.0` | `1080p` `1440p` `2160p` | `auto` `1:1` `16:9` `9:16` `4:3` `3:4` `5:4` `4:5` `3:2` `2:3` `21:9` | 6 |
122
+ | Kling Image O3 | `kling-image-o3` | `1080p` `1440p` `2160p` | `16:9` `9:16` `1:1` `4:3` `3:4` `3:2` `2:3` `21:9` | 10 |
123
+ | Kling Image V3 | `kling-image-v3` | `1080p` `1440p` | `16:9` `9:16` `1:1` `4:3` `3:4` `3:2` `2:3` `21:9` | 1 |
134
124
 
135
125
  ### Voice / TTS Models (`create voice --model <value>`)
136
126
 
137
- | Model | `--model` value | Provider | Max characters |
138
- | :-------------------------------- | :----------------------- | :--------- | :------------- |
139
- | MiniMax Speech 2.8 HD _(default)_ | `speech-2.8-hd` | MiniMax | 10,000 |
140
- | MiniMax Speech 2.8 Turbo | `speech-2.8-turbo` | MiniMax | 10,000 |
141
- | Eleven Multilingual v2 | `eleven-multilingual-v2` | ElevenLabs | 10,000 |
142
- | Eleven v3 | `eleven-v3` | ElevenLabs | 5,000 |
143
- | Eleven Turbo v2.5 | `eleven-turbo-v2.5` | ElevenLabs | 40,000 |
127
+ | Model | `--model` value | Provider | Max characters | Speed |
128
+ | :--- | :--- | :--- | :--- | :--- |
129
+ | MiniMax Speech 2.8 HD _(default)_ | `speech-2.8-hd` | MiniMax | 10,000 | `0.5`–`2` |
130
+ | MiniMax Speech 2.8 Turbo | `speech-2.8-turbo` | MiniMax | 10,000 | `0.5`–`2` |
131
+ | Eleven Multilingual v2 | `eleven-multilingual-v2` | ElevenLabs | 10,000 | `0.7`–`1.2` |
132
+ | Eleven v3 | `eleven-v3` | ElevenLabs | 5,000 | `0.7`–`1.2` |
133
+ | Eleven Turbo v2.5 | `eleven-turbo-v2.5` | ElevenLabs | 40,000 | `0.7`–`1.2` |
144
134
 
145
135
  > Browse available preset voices with `pixverse voice presets --model <id>` and the full live model catalog with `pixverse voice models`.
146
136
 
147
137
  ### Music Models (`create music --model <value>`)
148
138
 
149
- | Model | `--model` value | Provider | Duration | Notes |
150
- | :---------------------------- | :-------------------- | :--------- | :---------- | :------------------------------------------------------------------ |
151
- | MiniMax Music 3.0 | `music-3.0` | MiniMax | `10`-`240`s | Lyrics, auto lyrics, instrumental |
152
- | MiniMax Music 2.6 _(default)_ | `music-2.6` | MiniMax | `10`-`240`s | Lyrics, auto lyrics, instrumental |
153
- | ElevenLabs Music V2 | `music-v2` | ElevenLabs | `10`-`240`s | Lyrics, auto lyrics, instrumental |
154
- | ElevenLabs Music | `music-v1` | ElevenLabs | `10`-`240`s | Lyrics, auto lyrics, instrumental |
155
- | Google Lyria 3 Pro | `lyria-3-pro-preview` | Google | `10`-`240`s | Auto lyrics, instrumental, image references, no separate `--lyrics` |
139
+ | Model | `--model` value | Provider | Duration | Capabilities |
140
+ | :--- | :--- | :--- | :--- | :--- |
141
+ | MiniMax Music 3.0 | `music-3.0` | MiniMax | `10`–`240`s | lyrics, auto lyrics, instrumental |
142
+ | MiniMax Music 2.6 _(default)_ | `music-2.6` | MiniMax | `10`–`240`s | lyrics, auto lyrics, instrumental |
143
+ | ElevenLabs Music V2 | `music-v2` | ElevenLabs | `10`–`240`s | lyrics, auto lyrics, instrumental |
144
+ | ElevenLabs Music | `music-v1` | ElevenLabs | `10`–`240`s | lyrics, auto lyrics, instrumental |
145
+ | Google Lyria 3 Pro | `lyria-3-pro-preview` | Google | `10`–`240`s | auto lyrics, instrumental, image references |
156
146
 
157
147
  > Browse the live music model catalog with `pixverse music models`.
158
148
 
@@ -299,24 +289,24 @@ pixverse create template --template-id 12345 --image ./photo.png
299
289
 
300
290
  Voice speed uses provider-specific validation:
301
291
 
302
- | Provider | Default | Valid range | Invalid range error | Provider request field |
303
- | :--------- | :------ | :---------- | :------------------------------------ | :--------------------- |
304
- | ElevenLabs | `1.0` | `0.7..1.2` | `--speed must be between 0.7 and 1.2` | `voice_settings.speed` |
305
- | MiniMax | `1.0` | `0.5..2.0` | `--speed must be between 0.5 and 2` | `voice_setting.speed` |
292
+ | Provider | Default | Valid range | CLI flag |
293
+ | :--- | :--- | :--- | :--- |
294
+ | MiniMax | `1` | `0.5`–`2` | `--speed` |
295
+ | ElevenLabs | `1` | `0.7`–`1.2` | `--speed` |
306
296
 
307
297
  ### Common Creation Flags
308
298
 
309
299
  These flags are available across most `create` subcommands:
310
300
 
311
- | Flag | Description |
312
- | :--------------------------------- | :------------------------------------------------ |
313
- | `--count <n>` | Generate multiple variations (14, default 1) |
314
- | `--seed <number>` | Set random seed for reproducible results |
315
- | `--off-peak` | Use off-peak pricing (lower credit cost) |
316
- | `--audio` / `--no-audio` | Enable or disable audio generation |
317
- | `--multi-shot` / `--no-multi-shot` | Enable or disable multi-shot mode (video only) |
318
- | `--no-wait` | Return immediately without waiting for completion |
319
- | `--timeout <sec>` | Polling timeout in seconds (default 300) |
301
+ | Flag | Type | Default | Constraints | Description |
302
+ | :--- | :--- | :--- | :--- | :--- |
303
+ | `--count` | integer | `1` | `1`–`4` count | Number of generation results. |
304
+ | `--seed` | integer | — | model-specific | Random seed for reproducible generation. |
305
+ | `--off-peak` | boolean | `false` | model-specific | Use off-peak generation where supported. |
306
+ | `--audio` / `--no-audio` | boolean | `true` | model-specific | Enable or disable generated audio where supported. |
307
+ | `--multi-shot` / `--no-multi-shot` | boolean | `true` | model-specific | Enable multi-shot generation where supported. |
308
+ | `--no-wait` | boolean | `true` | model-specific | Wait for the generated asset unless disabled. |
309
+ | `--timeout` | integer | `300` | `1`–`∞` seconds | Polling timeout when waiting for completion. |
320
310
 
321
311
  > Model-specific support still applies. Seedance 2.5 does not support `--audio`, `--multi-shot`, or `--off-peak`. Its `--audios` values in `create reference` are input references, not a generated-audio toggle.
322
312
 
@@ -353,6 +343,169 @@ Media fields inside `--params` must be **media paths** — the `path` returned b
353
343
  through without uploading, so upload first with `pixverse asset upload <file>` and
354
344
  use the returned `path`.
355
345
 
346
+ ### Canvas
347
+
348
+ Canvas lets you build and manage connected creative workflows. A Canvas project
349
+ contains nodes for prompts, reference media, generation tasks, and composed
350
+ outputs. Dependencies connect those nodes and determine when generation can
351
+ start.
352
+
353
+ The CLI uses these terms consistently:
354
+
355
+ | Term | Meaning |
356
+ | :------------- | :------------------------------------------------------------- |
357
+ | Canvas project | One Canvas workspace containing nodes and their connections |
358
+ | Node | One input, generated asset, text artifact, or composition step |
359
+ | Dependency | A connection that requires one node before another can run |
360
+ | Patch | A validated set of node and dependency changes |
361
+ | Dispatch | Starting generation for specific ready nodes |
362
+ | Dispatch plan | A confirmation record authorizing one exact batch of nodes |
363
+ | Version | One saved generation result for a node |
364
+
365
+ Canvas node structure and routing come from the current Canvas capabilities;
366
+ model and parameter constraints come from the installed CLI. Query their
367
+ combined view instead of copying a fixed catalog from examples.
368
+
369
+ Create an empty project when starting a new workflow. The name and description
370
+ are optional:
371
+
372
+ ```bash
373
+ pixverse canvas project create \
374
+ --name "Campaign workspace" \
375
+ --description "Connected image and video workflow" \
376
+ --json
377
+ ```
378
+
379
+ For reliable automation, inspect capabilities → read the project → validate the
380
+ patch → apply the patch → dispatch generated nodes → check node status:
381
+
382
+ ```bash
383
+ # 1. Create a project when needed and retain project_id
384
+ pixverse canvas project create --json
385
+
386
+ # 2. Check the current Canvas capabilities
387
+ pixverse capabilities canvas \
388
+ --node-type image_generate \
389
+ --selector text_to_image \
390
+ --model qwen-image \
391
+ --json
392
+ pixverse canvas node schema --node-type image_generate --json
393
+
394
+ # 3. Read the project and retain edit_version
395
+ pixverse canvas graph get --project-id "$PROJECT_ID" --json
396
+
397
+ # 4. Validate and apply the same patch input
398
+ pixverse canvas patch dry-run --project-id "$PROJECT_ID" --patch patch.json --json
399
+ pixverse canvas patch apply --project-id "$PROJECT_ID" --patch patch.json --json
400
+
401
+ # 5. Start generation only for diff.executable_node_ids from patch apply
402
+ pixverse canvas dispatch \
403
+ --project-id "$PROJECT_ID" \
404
+ --node-ids image_01,video_01 \
405
+ --edit-version 13 \
406
+ --json
407
+
408
+ # 6. Check only the nodes involved in this workflow
409
+ pixverse canvas graph status \
410
+ --project-id "$PROJECT_ID" \
411
+ --node-ids image_01,video_01 \
412
+ --json
413
+ ```
414
+
415
+ `--patch` accepts a JSON literal, a local file path, or `-` for stdin. The input
416
+ contains a `graph_patch` object without an outer request wrapper. For example,
417
+ `patch.json` can contain:
418
+
419
+ ```json
420
+ {
421
+ "schema_version": "canvas_agent_graph.v1",
422
+ "base_edit_version": 12,
423
+ "nodes": [
424
+ {
425
+ "node_id": "script_01",
426
+ "node_type": "script",
427
+ "title": "Opening scene",
428
+ "artifact": { "text": "A wide establishing shot at sunrise." }
429
+ }
430
+ ]
431
+ }
432
+ ```
433
+
434
+ The `--project-id` flag identifies the project. A matching `project_id` inside
435
+ the patch is accepted for compatibility, but omitting it is preferred. Keep all
436
+ IDs as strings. If the edit version has changed, read the project again and
437
+ rebuild the patch instead of replacing only `base_edit_version`.
438
+
439
+ For the same project and unchanged patch file, `dry-run` and `apply`
440
+ automatically derive the same stable idempotency key. Use
441
+ `--idempotency-key` only when your workflow needs to supply its own retry key.
442
+
443
+ Additional Canvas operations:
444
+
445
+ ```bash
446
+ # Bind a specific batch of ready nodes to a dispatch plan
447
+ pixverse canvas dispatch rebind \
448
+ --project-id "$PROJECT_ID" \
449
+ --dispatch-plan-id plan-20260817-001 \
450
+ --node-ids image_01,video_01 \
451
+ --json
452
+
453
+ # After confirmation, dispatch the same nodes with rebind's edit_version
454
+ pixverse canvas dispatch \
455
+ --project-id "$PROJECT_ID" \
456
+ --dispatch-plan-id plan-20260817-001 \
457
+ --node-ids image_01,video_01 \
458
+ --edit-version "$REBIND_EDIT_VERSION" \
459
+ --json
460
+
461
+ # List, inspect, and apply saved node versions
462
+ pixverse canvas node versions \
463
+ --project-id "$PROJECT_ID" --node-id video_01 \
464
+ --page 1 --page-size 20 --json
465
+ pixverse canvas node version \
466
+ --project-id "$PROJECT_ID" --node-id video_01 \
467
+ --history-id "$HISTORY_ID" --json
468
+ pixverse canvas node version apply \
469
+ --project-id "$PROJECT_ID" --node-id video_01 \
470
+ --history-id "$HISTORY_ID" --json
471
+
472
+ # Run generation again for a specific failed node
473
+ pixverse canvas node rerun \
474
+ --project-id "$PROJECT_ID" --node-id video_01 \
475
+ --edit-version 13 --json
476
+
477
+ # Extract the full audio track from a video node
478
+ pixverse canvas node extract-audio \
479
+ --project-id "$PROJECT_ID" \
480
+ --node-id audio_extract_01 \
481
+ --source-node-id video_01 \
482
+ --json
483
+ ```
484
+
485
+ Important constraints:
486
+
487
+ - A `video_compose` node references completed source media only through
488
+ `payload.tracks`. Omit `depends_on` entirely; composition timeline materials
489
+ do not create Canvas dependency edges.
490
+ - `dispatch` and `graph reconcile` require explicit node IDs and the current
491
+ `edit_version`; the CLI does not intentionally start every ready node in a
492
+ project.
493
+ - Dispatch states `partial` and `failed` return a non-zero exit code. Add
494
+ `--require-dispatch` when `skipped` or `no_ready_nodes` should also stop an
495
+ automated workflow.
496
+ - Existing dependencies cannot be cleared or replaced in place. For an
497
+ agent-created node, delete it in one patch, read the project again, then
498
+ create a replacement with a new `node_id` and the complete desired
499
+ dependencies in a second patch. Deleted IDs remain reserved, so do not reuse
500
+ the old ID; redirect all downstream dependencies and node references to the
501
+ replacement ID.
502
+ - Applying a version may return `applied=false` when that version is already
503
+ current. This is a successful no-op. Read the project again before the next
504
+ change.
505
+ - Audio extraction accepts a trusted source video node, not a raw media path.
506
+ The CLI creates the target audio node when needed and extracts the complete
507
+ audio track.
508
+
356
509
  ### Task Management
357
510
 
358
511
  ```bash
@@ -546,75 +699,115 @@ pixverse asset download "$VID" --dest ./output/
546
699
 
547
700
  ## All Commands
548
701
 
549
- | Command | Description |
550
- | :---------------------- | :---------------------------------------------------------------------------------- |
551
- | `auth login` | Login via browser (OAuth device flow) |
552
- | `auth status` | Check authentication status |
553
- | `auth logout` | Remove stored token |
554
- | `create video` | Text-to-video or image-to-video |
555
- | `create image` | Text-to-image or image-to-image |
556
- | `create transition` | Create transitions between keyframes |
557
- | `create voice` | Generate speech audio from text (text-to-speech) |
558
- | `create music` | Generate music audio from a prompt |
559
- | `create extend` | Extend video duration |
560
- | `create modify` | Modify an existing video |
561
- | `create upscale` | Upscale video resolution |
562
- | `create reference` | Create or edit a video with reference media |
563
- | `create motion-control` | Motion control with character image + reference video |
564
- | `create template` | Create from a template/effect |
565
- | `template categories` | List template categories |
566
- | `template list` | List templates (with category filter) |
567
- | `template search` | Search templates by keyword |
568
- | `template info` | Get template details |
569
- | `voice models` | List voice/TTS providers, models, and supported languages |
570
- | `voice presets` | List preset voices (filterable by model / language / provider) |
571
- | `music models` | List music providers, models, and capabilities |
572
- | `task status` | Check one ID or batch with space-separated IDs / `--ids id1,id2,...` |
573
- | `task wait` | Wait for task completion |
574
- | `asset list` | List assets (`--source create\|upload`, `--type video\|image\|audio`, `--off-peak`) |
575
- | `asset upload` | Upload a local file or HTTPS URL to asset library |
576
- | `asset info` | Get asset details |
577
- | `asset download` | Download a generated asset |
578
- | `asset delete` | Delete an asset |
579
- | `saved list` | List saved folders |
580
- | `saved items` | List items in a saved folder |
581
- | `saved new` | Create a new saved folder |
582
- | `saved rename` | Rename a saved folder |
583
- | `saved add` | Add assets to a saved folder |
584
- | `saved remove` | Remove assets from a saved folder |
585
- | `saved delete` | Delete a saved folder |
586
- | `workspace list` | List all workspaces |
587
- | `workspace status` | Show current workspace |
588
- | `workspace switch` | Switch workspace (interactive or by ID) |
589
- | `workspace manage` | Open workspace management in browser |
590
- | `account info` | View account info and workspace credits |
591
- | `account usage` | View credit usage |
592
- | `account slots` | View current concurrent generation slots (image / video) |
593
- | `subscribe` | Open subscription page |
594
- | `update` | Update the CLI to the latest version (`npm i -g pixverse@latest`) |
595
- | `config set` | Set a config value |
596
- | `config get` | Get a config value |
597
- | `config list` | List all config values |
598
- | `config reset` | Reset config to defaults |
599
- | `config path` | Show config file path |
600
- | `config defaults` | Manage per-mode creation defaults |
702
+ | Command | Description |
703
+ | :--------------------------- | :---------------------------------------------------------------------------------- |
704
+ | `auth login` | Login via browser (OAuth device flow) |
705
+ | `auth status` | Check authentication status |
706
+ | `auth logout` | Remove stored token |
707
+ | `create video` | Text-to-video or image-to-video |
708
+ | `create image` | Text-to-image or image-to-image |
709
+ | `create transition` | Create transitions between keyframes |
710
+ | `create voice` | Generate speech audio from text (text-to-speech) |
711
+ | `create music` | Generate music audio from a prompt |
712
+ | `create extend` | Extend video duration |
713
+ | `create modify` | Modify an existing video |
714
+ | `create upscale` | Upscale video resolution |
715
+ | `create reference` | Create or edit a video with reference media |
716
+ | `create motion-control` | Motion control with character image + reference video |
717
+ | `create template` | Create from a template/effect |
718
+ | `capabilities` | Show the installed static CLI capability bundle |
719
+ | `capabilities create` | Show structured Create modes, models, parameters, defaults, and limits |
720
+ | `capabilities canvas` | Query merged Canvas and CLI capabilities, or the raw Canvas response with `--raw` |
721
+ | `template categories` | List template categories |
722
+ | `template list` | List templates (with category filter) |
723
+ | `template search` | Search templates by keyword |
724
+ | `template info` | Get template details |
725
+ | `voice models` | List voice/TTS providers, models, and supported languages |
726
+ | `voice presets` | List preset voices (filterable by model / language / provider) |
727
+ | `music models` | List music providers, models, and capabilities |
728
+ | `task status` | Check one ID or batch with space-separated IDs / `--ids id1,id2,...` |
729
+ | `task wait` | Wait for task completion |
730
+ | `asset list` | List assets (`--source create\|upload`, `--type video\|image\|audio`, `--off-peak`) |
731
+ | `asset upload` | Upload a local file or HTTPS URL to asset library |
732
+ | `asset info` | Get asset details |
733
+ | `asset download` | Download a generated asset |
734
+ | `asset delete` | Delete an asset |
735
+ | `saved list` | List saved folders |
736
+ | `saved items` | List items in a saved folder |
737
+ | `saved new` | Create a new saved folder |
738
+ | `saved rename` | Rename a saved folder |
739
+ | `saved add` | Add assets to a saved folder |
740
+ | `saved remove` | Remove assets from a saved folder |
741
+ | `saved delete` | Delete a saved folder |
742
+ | `workspace list` | List all workspaces |
743
+ | `workspace status` | Show current workspace |
744
+ | `workspace switch` | Switch workspace (interactive or by ID) |
745
+ | `workspace manage` | Open workspace management in browser |
746
+ | `account info` | View account info and workspace credits |
747
+ | `account usage` | View credit usage |
748
+ | `account slots` | View current concurrent generation slots (image / video) |
749
+ | `subscribe` | Open subscription page |
750
+ | `update` | Update the CLI to the latest version (`npm i -g pixverse@latest`) |
751
+ | `config set` | Set a config value |
752
+ | `config get` | Get a config value |
753
+ | `config list` | List all config values |
754
+ | `config reset` | Reset config to defaults |
755
+ | `config path` | Show config file path |
756
+ | `config defaults` | Manage per-mode creation defaults |
757
+ | `canvas project create` | Create an empty Canvas project with an optional name and description |
758
+ | `canvas graph get` | Get a Canvas project's nodes, connections, and edit version |
759
+ | `canvas graph status` | Get the generation status of Canvas nodes |
760
+ | `canvas graph invalid-nodes` | Show Canvas validation issues and invalid node details |
761
+ | `canvas graph reconcile` | Recover generation for specific Canvas nodes |
762
+ | `canvas node get` | Get details for a Canvas node |
763
+ | `canvas node schema` | Show the current schema for a Canvas node type |
764
+ | `canvas node versions` | List saved versions for a Canvas node |
765
+ | `canvas node version` | Get a saved version for a Canvas node |
766
+ | `canvas node version apply` | Set a saved version as the current Canvas node version |
767
+ | `canvas node rerun` | Run generation again for a specific Canvas node |
768
+ | `canvas node extract-audio` | Extract the full audio track from a Canvas video node |
769
+ | `canvas patch dry-run` | Validate Canvas changes without saving them |
770
+ | `canvas patch apply` | Apply validated changes to a Canvas project |
771
+ | `canvas dispatch` | Start generation for specific ready Canvas nodes |
772
+ | `canvas dispatch rebind` | Bind specific ready Canvas nodes to a dispatch plan |
601
773
 
602
774
  ## Global Flags
603
775
 
604
- | Flag | Description |
605
- | :-------------------- | :---------------------------------------------------------- |
606
- | `--json` | Output as JSON |
607
- | `-p` | Print mode (alias for `--json`) |
608
- | `--workspace-id <id>` | Override active workspace for this command (0 = personal) |
609
- | `--region <region>` | Service region: `global` or `cn` (default: `global`) |
610
- | `-V, --version` | Show CLI version |
611
- | `-h, --help` | Show help for any command |
776
+ | Flag | Description |
777
+ | :-------------------- | :-------------------------------------------------------- |
778
+ | `--json` | Output as JSON |
779
+ | `-p` | Print mode (alias for `--json`) |
780
+ | `--workspace-id <id>` | Override active workspace for this command (0 = personal) |
781
+ | `--region <region>` | Service region: `global` or `cn` (default: `global`) |
782
+ | `-V, --version` | Show CLI version |
783
+ | `-h, --help` | Show help for any command |
612
784
 
613
785
  ## For AI Agents — Advanced Usage
614
786
 
615
787
  For AI agents (Claude Code, Cursor, Codex, etc.), we **strongly recommend** installing [PixVerse Skills](https://github.com/PixVerseAI/skills) — a comprehensive skill library that teaches agents how to use PixVerse CLI correctly with full model constraints, multi-step pipelines, and error handling.
616
788
 
617
- For lightweight discovery, the public repo also includes a compact machine-readable command manifest at `capabilities.json`; the npm package includes the same file at `dist/capabilities.json`.
789
+ For lightweight discovery, the public repo includes the same machine-readable
790
+ capability bundle at `capabilities.json` that the npm package installs as
791
+ `dist/capabilities.json`. Query the installed version directly without signing
792
+ in or making a network request:
793
+
794
+ ```bash
795
+ pixverse capabilities --json
796
+ pixverse capabilities create --json
797
+ pixverse capabilities create video --model v6 --json
798
+ ```
799
+
800
+ The file uses a normalized compact encoding to avoid repeating shared
801
+ parameters and model metadata. `capabilities create` expands the selected mode
802
+ and model into a query-ready structure.
803
+
804
+ Canvas node schemas and route mappings are queried live instead of being
805
+ duplicated in the bundled file. Use
806
+ `pixverse capabilities canvas --node-type <type> --json` to combine them with
807
+ the installed CLI's model and parameter rules. Use
808
+ `pixverse capabilities canvas --raw --json` or
809
+ `pixverse canvas node schema --node-type <type> --json` when the unmodified
810
+ Canvas response is required.
618
811
 
619
812
  **Install via Skills CLI:**
620
813