pixverse 1.3.6 → 1.4.0

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,46 @@ 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 _(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` | 9 |
111
+ | 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 |
112
+ | 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 |
113
+ | 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 |
114
+ | 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 |
115
+ | 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 |
116
+ | 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 |
117
+ | 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 |
118
+ | 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 |
119
+ | 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 |
120
+ | 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 |
121
+ | 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
122
 
135
123
  ### Voice / TTS Models (`create voice --model <value>`)
136
124
 
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 |
125
+ | Model | `--model` value | Provider | Max characters | Speed |
126
+ | :--- | :--- | :--- | :--- | :--- |
127
+ | MiniMax Speech 2.8 HD _(default)_ | `speech-2.8-hd` | MiniMax | 10,000 | `0.5`–`2` |
128
+ | MiniMax Speech 2.8 Turbo | `speech-2.8-turbo` | MiniMax | 10,000 | `0.5`–`2` |
129
+ | Eleven Multilingual v2 | `eleven-multilingual-v2` | ElevenLabs | 10,000 | `0.7`–`1.2` |
130
+ | Eleven v3 | `eleven-v3` | ElevenLabs | 5,000 | `0.7`–`1.2` |
131
+ | Eleven Turbo v2.5 | `eleven-turbo-v2.5` | ElevenLabs | 40,000 | `0.7`–`1.2` |
144
132
 
145
133
  > Browse available preset voices with `pixverse voice presets --model <id>` and the full live model catalog with `pixverse voice models`.
146
134
 
147
135
  ### Music Models (`create music --model <value>`)
148
136
 
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` |
137
+ | Model | `--model` value | Provider | Duration | Capabilities |
138
+ | :--- | :--- | :--- | :--- | :--- |
139
+ | MiniMax Music 3.0 | `music-3.0` | MiniMax | `10`–`240`s | lyrics, auto lyrics, instrumental |
140
+ | MiniMax Music 2.6 _(default)_ | `music-2.6` | MiniMax | `10`–`240`s | lyrics, auto lyrics, instrumental |
141
+ | ElevenLabs Music V2 | `music-v2` | ElevenLabs | `10`–`240`s | lyrics, auto lyrics, instrumental |
142
+ | ElevenLabs Music | `music-v1` | ElevenLabs | `10`–`240`s | lyrics, auto lyrics, instrumental |
143
+ | Google Lyria 3 Pro | `lyria-3-pro-preview` | Google | `10`–`240`s | auto lyrics, instrumental, image references |
156
144
 
157
145
  > Browse the live music model catalog with `pixverse music models`.
158
146
 
@@ -299,24 +287,24 @@ pixverse create template --template-id 12345 --image ./photo.png
299
287
 
300
288
  Voice speed uses provider-specific validation:
301
289
 
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` |
290
+ | Provider | Default | Valid range | CLI flag |
291
+ | :--- | :--- | :--- | :--- |
292
+ | MiniMax | `1` | `0.5`–`2` | `--speed` |
293
+ | ElevenLabs | `1` | `0.7`–`1.2` | `--speed` |
306
294
 
307
295
  ### Common Creation Flags
308
296
 
309
297
  These flags are available across most `create` subcommands:
310
298
 
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) |
299
+ | Flag | Type | Default | Constraints | Description |
300
+ | :--- | :--- | :--- | :--- | :--- |
301
+ | `--count` | integer | `1` | `1`–`4` count | Number of generation results. |
302
+ | `--seed` | integer | — | model-specific | Random seed for reproducible generation. |
303
+ | `--off-peak` | boolean | `false` | model-specific | Use off-peak generation where supported. |
304
+ | `--audio` / `--no-audio` | boolean | `true` | model-specific | Enable or disable generated audio where supported. |
305
+ | `--multi-shot` / `--no-multi-shot` | boolean | `true` | model-specific | Enable multi-shot generation where supported. |
306
+ | `--no-wait` | boolean | `true` | model-specific | Wait for the generated asset unless disabled. |
307
+ | `--timeout` | integer | `300` | `1`–`∞` seconds | Polling timeout when waiting for completion. |
320
308
 
321
309
  > 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
310
 
@@ -353,6 +341,169 @@ Media fields inside `--params` must be **media paths** — the `path` returned b
353
341
  through without uploading, so upload first with `pixverse asset upload <file>` and
354
342
  use the returned `path`.
355
343
 
344
+ ### Canvas
345
+
346
+ Canvas lets you build and manage connected creative workflows. A Canvas project
347
+ contains nodes for prompts, reference media, generation tasks, and composed
348
+ outputs. Dependencies connect those nodes and determine when generation can
349
+ start.
350
+
351
+ The CLI uses these terms consistently:
352
+
353
+ | Term | Meaning |
354
+ | :------------- | :------------------------------------------------------------- |
355
+ | Canvas project | One Canvas workspace containing nodes and their connections |
356
+ | Node | One input, generated asset, text artifact, or composition step |
357
+ | Dependency | A connection that requires one node before another can run |
358
+ | Patch | A validated set of node and dependency changes |
359
+ | Dispatch | Starting generation for specific ready nodes |
360
+ | Dispatch plan | A confirmation record authorizing one exact batch of nodes |
361
+ | Version | One saved generation result for a node |
362
+
363
+ Canvas node structure and routing come from the current Canvas capabilities;
364
+ model and parameter constraints come from the installed CLI. Query their
365
+ combined view instead of copying a fixed catalog from examples.
366
+
367
+ Create an empty project when starting a new workflow. The name and description
368
+ are optional:
369
+
370
+ ```bash
371
+ pixverse canvas project create \
372
+ --name "Campaign workspace" \
373
+ --description "Connected image and video workflow" \
374
+ --json
375
+ ```
376
+
377
+ For reliable automation, inspect capabilities → read the project → validate the
378
+ patch → apply the patch → dispatch generated nodes → check node status:
379
+
380
+ ```bash
381
+ # 1. Create a project when needed and retain project_id
382
+ pixverse canvas project create --json
383
+
384
+ # 2. Check the current Canvas capabilities
385
+ pixverse capabilities canvas \
386
+ --node-type image_generate \
387
+ --selector text_to_image \
388
+ --model qwen-image \
389
+ --json
390
+ pixverse canvas node schema --node-type image_generate --json
391
+
392
+ # 3. Read the project and retain edit_version
393
+ pixverse canvas graph get --project-id "$PROJECT_ID" --json
394
+
395
+ # 4. Validate and apply the same patch input
396
+ pixverse canvas patch dry-run --project-id "$PROJECT_ID" --patch patch.json --json
397
+ pixverse canvas patch apply --project-id "$PROJECT_ID" --patch patch.json --json
398
+
399
+ # 5. Start generation only for diff.executable_node_ids from patch apply
400
+ pixverse canvas dispatch \
401
+ --project-id "$PROJECT_ID" \
402
+ --node-ids image_01,video_01 \
403
+ --edit-version 13 \
404
+ --json
405
+
406
+ # 6. Check only the nodes involved in this workflow
407
+ pixverse canvas graph status \
408
+ --project-id "$PROJECT_ID" \
409
+ --node-ids image_01,video_01 \
410
+ --json
411
+ ```
412
+
413
+ `--patch` accepts a JSON literal, a local file path, or `-` for stdin. The input
414
+ contains a `graph_patch` object without an outer request wrapper. For example,
415
+ `patch.json` can contain:
416
+
417
+ ```json
418
+ {
419
+ "schema_version": "canvas_agent_graph.v1",
420
+ "base_edit_version": 12,
421
+ "nodes": [
422
+ {
423
+ "node_id": "script_01",
424
+ "node_type": "script",
425
+ "title": "Opening scene",
426
+ "artifact": { "text": "A wide establishing shot at sunrise." }
427
+ }
428
+ ]
429
+ }
430
+ ```
431
+
432
+ The `--project-id` flag identifies the project. A matching `project_id` inside
433
+ the patch is accepted for compatibility, but omitting it is preferred. Keep all
434
+ IDs as strings. If the edit version has changed, read the project again and
435
+ rebuild the patch instead of replacing only `base_edit_version`.
436
+
437
+ For the same project and unchanged patch file, `dry-run` and `apply`
438
+ automatically derive the same stable idempotency key. Use
439
+ `--idempotency-key` only when your workflow needs to supply its own retry key.
440
+
441
+ Additional Canvas operations:
442
+
443
+ ```bash
444
+ # Bind a specific batch of ready nodes to a dispatch plan
445
+ pixverse canvas dispatch rebind \
446
+ --project-id "$PROJECT_ID" \
447
+ --dispatch-plan-id plan-20260817-001 \
448
+ --node-ids image_01,video_01 \
449
+ --json
450
+
451
+ # After confirmation, dispatch the same nodes with rebind's edit_version
452
+ pixverse canvas dispatch \
453
+ --project-id "$PROJECT_ID" \
454
+ --dispatch-plan-id plan-20260817-001 \
455
+ --node-ids image_01,video_01 \
456
+ --edit-version "$REBIND_EDIT_VERSION" \
457
+ --json
458
+
459
+ # List, inspect, and apply saved node versions
460
+ pixverse canvas node versions \
461
+ --project-id "$PROJECT_ID" --node-id video_01 \
462
+ --page 1 --page-size 20 --json
463
+ pixverse canvas node version \
464
+ --project-id "$PROJECT_ID" --node-id video_01 \
465
+ --history-id "$HISTORY_ID" --json
466
+ pixverse canvas node version apply \
467
+ --project-id "$PROJECT_ID" --node-id video_01 \
468
+ --history-id "$HISTORY_ID" --json
469
+
470
+ # Run generation again for a specific failed node
471
+ pixverse canvas node rerun \
472
+ --project-id "$PROJECT_ID" --node-id video_01 \
473
+ --edit-version 13 --json
474
+
475
+ # Extract the full audio track from a video node
476
+ pixverse canvas node extract-audio \
477
+ --project-id "$PROJECT_ID" \
478
+ --node-id audio_extract_01 \
479
+ --source-node-id video_01 \
480
+ --json
481
+ ```
482
+
483
+ Important constraints:
484
+
485
+ - A `video_compose` node references completed source media only through
486
+ `payload.tracks`. Omit `depends_on` entirely; composition timeline materials
487
+ do not create Canvas dependency edges.
488
+ - `dispatch` and `graph reconcile` require explicit node IDs and the current
489
+ `edit_version`; the CLI does not intentionally start every ready node in a
490
+ project.
491
+ - Dispatch states `partial` and `failed` return a non-zero exit code. Add
492
+ `--require-dispatch` when `skipped` or `no_ready_nodes` should also stop an
493
+ automated workflow.
494
+ - Existing dependencies cannot be cleared or replaced in place. For an
495
+ agent-created node, delete it in one patch, read the project again, then
496
+ create a replacement with a new `node_id` and the complete desired
497
+ dependencies in a second patch. Deleted IDs remain reserved, so do not reuse
498
+ the old ID; redirect all downstream dependencies and node references to the
499
+ replacement ID.
500
+ - Applying a version may return `applied=false` when that version is already
501
+ current. This is a successful no-op. Read the project again before the next
502
+ change.
503
+ - Audio extraction accepts a trusted source video node, not a raw media path.
504
+ The CLI creates the target audio node when needed and extracts the complete
505
+ audio track.
506
+
356
507
  ### Task Management
357
508
 
358
509
  ```bash
@@ -546,58 +697,77 @@ pixverse asset download "$VID" --dest ./output/
546
697
 
547
698
  ## All Commands
548
699
 
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 |
700
+ | Command | Description |
701
+ | :--------------------------- | :---------------------------------------------------------------------------------- |
702
+ | `auth login` | Login via browser (OAuth device flow) |
703
+ | `auth status` | Check authentication status |
704
+ | `auth logout` | Remove stored token |
705
+ | `create video` | Text-to-video or image-to-video |
706
+ | `create image` | Text-to-image or image-to-image |
707
+ | `create transition` | Create transitions between keyframes |
708
+ | `create voice` | Generate speech audio from text (text-to-speech) |
709
+ | `create music` | Generate music audio from a prompt |
710
+ | `create extend` | Extend video duration |
711
+ | `create modify` | Modify an existing video |
712
+ | `create upscale` | Upscale video resolution |
713
+ | `create reference` | Create or edit a video with reference media |
714
+ | `create motion-control` | Motion control with character image + reference video |
715
+ | `create template` | Create from a template/effect |
716
+ | `capabilities` | Show the installed static CLI capability bundle |
717
+ | `capabilities create` | Show structured Create modes, models, parameters, defaults, and limits |
718
+ | `capabilities canvas` | Query merged Canvas and CLI capabilities, or the raw Canvas response with `--raw` |
719
+ | `template categories` | List template categories |
720
+ | `template list` | List templates (with category filter) |
721
+ | `template search` | Search templates by keyword |
722
+ | `template info` | Get template details |
723
+ | `voice models` | List voice/TTS providers, models, and supported languages |
724
+ | `voice presets` | List preset voices (filterable by model / language / provider) |
725
+ | `music models` | List music providers, models, and capabilities |
726
+ | `task status` | Check one ID or batch with space-separated IDs / `--ids id1,id2,...` |
727
+ | `task wait` | Wait for task completion |
728
+ | `asset list` | List assets (`--source create\|upload`, `--type video\|image\|audio`, `--off-peak`) |
729
+ | `asset upload` | Upload a local file or HTTPS URL to asset library |
730
+ | `asset info` | Get asset details |
731
+ | `asset download` | Download a generated asset |
732
+ | `asset delete` | Delete an asset |
733
+ | `saved list` | List saved folders |
734
+ | `saved items` | List items in a saved folder |
735
+ | `saved new` | Create a new saved folder |
736
+ | `saved rename` | Rename a saved folder |
737
+ | `saved add` | Add assets to a saved folder |
738
+ | `saved remove` | Remove assets from a saved folder |
739
+ | `saved delete` | Delete a saved folder |
740
+ | `workspace list` | List all workspaces |
741
+ | `workspace status` | Show current workspace |
742
+ | `workspace switch` | Switch workspace (interactive or by ID) |
743
+ | `workspace manage` | Open workspace management in browser |
744
+ | `account info` | View account info and workspace credits |
745
+ | `account usage` | View credit usage |
746
+ | `account slots` | View current concurrent generation slots (image / video) |
747
+ | `subscribe` | Open subscription page |
748
+ | `update` | Update the CLI to the latest version (`npm i -g pixverse@latest`) |
749
+ | `config set` | Set a config value |
750
+ | `config get` | Get a config value |
751
+ | `config list` | List all config values |
752
+ | `config reset` | Reset config to defaults |
753
+ | `config path` | Show config file path |
754
+ | `config defaults` | Manage per-mode creation defaults |
755
+ | `canvas project create` | Create an empty Canvas project with an optional name and description |
756
+ | `canvas graph get` | Get a Canvas project's nodes, connections, and edit version |
757
+ | `canvas graph status` | Get the generation status of Canvas nodes |
758
+ | `canvas graph invalid-nodes` | Show Canvas validation issues and invalid node details |
759
+ | `canvas graph reconcile` | Recover generation for specific Canvas nodes |
760
+ | `canvas node get` | Get details for a Canvas node |
761
+ | `canvas node schema` | Show the current schema for a Canvas node type |
762
+ | `canvas node versions` | List saved versions for a Canvas node |
763
+ | `canvas node version` | Get a saved version for a Canvas node |
764
+ | `canvas node version apply` | Set a saved version as the current Canvas node version |
765
+ | `canvas node rerun` | Run generation again for a specific Canvas node |
766
+ | `canvas node extract-audio` | Extract the full audio track from a Canvas video node |
767
+ | `canvas patch dry-run` | Validate Canvas changes without saving them |
768
+ | `canvas patch apply` | Apply validated changes to a Canvas project |
769
+ | `canvas dispatch` | Start generation for specific ready Canvas nodes |
770
+ | `canvas dispatch rebind` | Bind specific ready Canvas nodes to a dispatch plan |
601
771
 
602
772
  ## Global Flags
603
773
 
@@ -606,6 +776,7 @@ pixverse asset download "$VID" --dest ./output/
606
776
  | `--json` | Output as JSON |
607
777
  | `-p` | Print mode (alias for `--json`) |
608
778
  | `--workspace-id <id>` | Override active workspace for this command (0 = personal) |
779
+ | `--region <region>` | Service region: `global` or `cn` (default: `global`) |
609
780
  | `-V, --version` | Show CLI version |
610
781
  | `-h, --help` | Show help for any command |
611
782
 
@@ -613,7 +784,28 @@ pixverse asset download "$VID" --dest ./output/
613
784
 
614
785
  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.
615
786
 
616
- 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`.
787
+ For lightweight discovery, the public repo includes the same machine-readable
788
+ capability bundle at `capabilities.json` that the npm package installs as
789
+ `dist/capabilities.json`. Query the installed version directly without signing
790
+ in or making a network request:
791
+
792
+ ```bash
793
+ pixverse capabilities --json
794
+ pixverse capabilities create --json
795
+ pixverse capabilities create video --model v6 --json
796
+ ```
797
+
798
+ The file uses a normalized compact encoding to avoid repeating shared
799
+ parameters and model metadata. `capabilities create` expands the selected mode
800
+ and model into a query-ready structure.
801
+
802
+ Canvas node schemas and route mappings are queried live instead of being
803
+ duplicated in the bundled file. Use
804
+ `pixverse capabilities canvas --node-type <type> --json` to combine them with
805
+ the installed CLI's model and parameter rules. Use
806
+ `pixverse capabilities canvas --raw --json` or
807
+ `pixverse canvas node schema --node-type <type> --json` when the unmodified
808
+ Canvas response is required.
617
809
 
618
810
  **Install via Skills CLI:**
619
811