everypixel-cli 0.4.0__tar.gz → 0.5.0__tar.gz

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.
Files changed (25) hide show
  1. {everypixel_cli-0.4.0 → everypixel_cli-0.5.0}/CHANGELOG.md +11 -0
  2. {everypixel_cli-0.4.0 → everypixel_cli-0.5.0}/PKG-INFO +112 -125
  3. {everypixel_cli-0.4.0 → everypixel_cli-0.5.0}/README.md +112 -125
  4. everypixel_cli-0.5.0/src/everypixel_cli/__init__.py +1 -0
  5. {everypixel_cli-0.4.0 → everypixel_cli-0.5.0}/src/everypixel_cli/application/serialization.py +2 -0
  6. {everypixel_cli-0.4.0 → everypixel_cli-0.5.0}/src/everypixel_cli/application/services.py +44 -2
  7. {everypixel_cli-0.4.0 → everypixel_cli-0.5.0}/src/everypixel_cli/cli.py +9 -2
  8. {everypixel_cli-0.4.0 → everypixel_cli-0.5.0}/src/everypixel_cli/mcp_server.py +2 -0
  9. {everypixel_cli-0.4.0 → everypixel_cli-0.5.0}/src/everypixel_cli/output.py +24 -0
  10. {everypixel_cli-0.4.0 → everypixel_cli-0.5.0}/src/everypixel_cli/resources/openapi.json +359 -153
  11. {everypixel_cli-0.4.0 → everypixel_cli-0.5.0}/src/everypixel_cli/schemas.py +93 -46
  12. everypixel_cli-0.4.0/src/everypixel_cli/__init__.py +0 -1
  13. {everypixel_cli-0.4.0 → everypixel_cli-0.5.0}/.gitignore +0 -0
  14. {everypixel_cli-0.4.0 → everypixel_cli-0.5.0}/LICENSE +0 -0
  15. {everypixel_cli-0.4.0 → everypixel_cli-0.5.0}/pyproject.toml +0 -0
  16. {everypixel_cli-0.4.0 → everypixel_cli-0.5.0}/src/everypixel_cli/__main__.py +0 -0
  17. {everypixel_cli-0.4.0 → everypixel_cli-0.5.0}/src/everypixel_cli/application/__init__.py +0 -0
  18. {everypixel_cli-0.4.0 → everypixel_cli-0.5.0}/src/everypixel_cli/application/chat.py +0 -0
  19. {everypixel_cli-0.4.0 → everypixel_cli-0.5.0}/src/everypixel_cli/application/models.py +0 -0
  20. {everypixel_cli-0.4.0 → everypixel_cli-0.5.0}/src/everypixel_cli/client.py +0 -0
  21. {everypixel_cli-0.4.0 → everypixel_cli-0.5.0}/src/everypixel_cli/config.py +0 -0
  22. {everypixel_cli-0.4.0 → everypixel_cli-0.5.0}/src/everypixel_cli/errors.py +0 -0
  23. {everypixel_cli-0.4.0 → everypixel_cli-0.5.0}/src/everypixel_cli/files.py +0 -0
  24. {everypixel_cli-0.4.0 → everypixel_cli-0.5.0}/src/everypixel_cli/openapi.py +0 -0
  25. {everypixel_cli-0.4.0 → everypixel_cli-0.5.0}/src/everypixel_cli/resources/__init__.py +0 -0
@@ -1,5 +1,16 @@
1
1
  # Changelog
2
2
 
3
+ ## [0.5.0] - 2026-10-12
4
+
5
+ - Add FLUX.3 images, Nano Banana 2.1, Nano Banana 2 Lite, and Seedream 5 Flash.
6
+ - Add Gemini Omni 1.1 video generation and editing, and video editing by source task ID.
7
+ - Support 1080p video with Grok Imagine 1.5.
8
+
9
+ ## [0.4.1] - 2026-10-08
10
+
11
+ - Display estimated and billed generation costs, including chat responses.
12
+ - Report observed queue time while waiting for tasks.
13
+
3
14
  ## [0.4.0] - 2026-10-07
4
15
 
5
16
  - Add ElevenLabs speech synthesis and voice design.
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.5
2
2
  Name: everypixel-cli
3
- Version: 0.4.0
3
+ Version: 0.5.0
4
4
  Summary: Official command line interface for Everypixel API
5
5
  Project-URL: Homepage, https://labs.everypixel.com
6
6
  Project-URL: Repository, https://github.com/everypixel/everypixel-cli
@@ -38,13 +38,21 @@ Official command-line interface for the [Everypixel API](https://labs.everypixel
38
38
  Generate and edit images and videos, chat with GLM-5.3, work with audio, run
39
39
  visual analysis, and automate Everypixel workflows from a terminal or an MCP client.
40
40
 
41
- The CLI is designed for both people and agents: commands use readable terminal
42
- output by default and can return stable JSON for scripts and tool integrations.
41
+ Commands return readable terminal output by default and JSON for scripts.
42
+ The package includes a stdio MCP server for agent integrations.
43
43
 
44
- - [Everypixel Labs](https://labs.everypixel.com/)
45
- - [API documentation](https://labs.everypixel.com/docs)
46
- - [GitHub repository](https://github.com/everypixel/everypixel-cli)
47
- - [Issue tracker](https://github.com/everypixel/everypixel-cli/issues)
44
+ [API documentation](https://labs.everypixel.com/docs) ·
45
+ [GitHub](https://github.com/everypixel/everypixel-cli) ·
46
+ [Issues](https://github.com/everypixel/everypixel-cli/issues) ·
47
+ [Changelog](CHANGELOG.md)
48
+
49
+ - [Quick start](#quick-start)
50
+ - [Images](#images), [video](#video), [audio](#lipsync-and-audio), [chat](#chat), [analysis](#visual-analysis)
51
+ - [Tasks and downloads](#async-tasks-and-downloads)
52
+ - [JSON output](#json-output) and [generic API calls](#generic-openapi-runner)
53
+ - [Authentication](#authentication) and [profiles](#configuration-profiles)
54
+ - [MCP server](#mcp-server)
55
+ - [Global options](#global-options), [exit codes](#exit-codes), [troubleshooting](#troubleshooting)
48
56
 
49
57
  ## Installation
50
58
 
@@ -63,44 +71,35 @@ epx --help
63
71
 
64
72
  ## Quick Start
65
73
 
66
- Create API credentials in your Everypixel Labs account, then save them in a
67
- local CLI profile:
74
+ Create API credentials in your [Everypixel Labs account](https://labs.everypixel.com/).
75
+ Run the interactive setup and enter the client ID and secret when prompted:
68
76
 
69
77
  ```bash
70
- everypixel auth configure \
71
- --client-id "$EVERYPIXEL_CLIENT_ID" \
72
- --client-secret "$EVERYPIXEL_CLIENT_SECRET"
73
-
78
+ everypixel auth configure
74
79
  everypixel auth check
75
80
  ```
76
81
 
77
- Generate an image and download the completed result:
82
+ Generate an image and save it locally:
78
83
 
79
84
  ```bash
80
- everypixel image generate \
81
- "editorial product photo on a white background" \
82
- --model flux2 \
83
- --size square \
84
- --download ./outputs
85
+ everypixel image generate "editorial product photo on a white background" \
86
+ --model flux3 --download ./outputs
85
87
  ```
86
88
 
87
- The same command can return JSON for automation:
88
-
89
- ```bash
90
- everypixel image generate \
91
- "editorial product photo on a white background" \
92
- --model flux2 \
93
- --no-wait \
94
- --output-json
95
- ```
89
+ Media commands wait for completion by default. See [Tasks and downloads](#async-tasks-and-downloads)
90
+ for background jobs and [JSON output](#json-output) for scripts.
96
91
 
97
- Use `--help` on any command to see all supported models and options:
92
+ Use `--help` for command syntax. To list image generation models, select their
93
+ enum from OpenAPI:
98
94
 
99
95
  ```bash
100
96
  everypixel image generate --help
101
- everypixel video edit --help
97
+ everypixel docs openapi --jq .components.schemas.ImageGenerateModelEnum.enum
102
98
  ```
103
99
 
100
+ Examples use Bash syntax. Examples that extract IDs with `jq` require the
101
+ separate `jq` command.
102
+
104
103
  ## Authentication
105
104
 
106
105
  Everypixel uses HTTP Basic Auth with the client ID as the username and the
@@ -190,9 +189,10 @@ everypixel image generate "a detailed botanical illustration" \
190
189
  --model gpt-image-2.5-sunburst --quality high --download ./outputs
191
190
  ```
192
191
 
193
- Grok image models are `grok-imagine`, `grok-imagine-2`, and
194
- `grok-imagine-2-low`. The `grok` alias remains supported. `grok_quality` and
195
- `wan22` have been removed from the API.
192
+ Other image models include `flux3`, `gemini-nano-banana-2.1` (Nano Banana 2.1),
193
+ `gemini-3.1-flash-lite` (Nano Banana 2 Lite), and `seedream-5-flash`.
194
+ Nano Banana 2 Lite uses `--resolution 1k`. Repeat `--image` to provide multiple
195
+ inputs to an editing model.
196
196
 
197
197
  ### Video
198
198
 
@@ -204,57 +204,49 @@ Grok image models are `grok-imagine`, `grok-imagine-2`, and
204
204
  | `everypixel video edit` | Edit video with text and media references |
205
205
  | `everypixel video upscale` | Upscale a video, URL, or existing task result |
206
206
 
207
- Examples:
207
+ Animate a local image or continue a video:
208
208
 
209
209
  ```bash
210
- everypixel video generate \
211
- "a slow aerial shot over mountain lakes" \
212
- --model ltx23 \
213
- --duration 10 \
214
- --resolution 720p \
215
- --download ./outputs
216
-
217
- everypixel video from-image \
218
- "subtle camera movement and natural wind" \
219
- --image ./first-frame.png \
220
- --model ltx23 \
221
- --download ./outputs
222
-
223
- everypixel video edit \
224
- "make the scene cinematic" \
225
- --video ./input.mp4 \
226
- --download ./outputs
227
-
228
- everypixel video generate "a slow aerial shot over mountain lakes" \
229
- --model minimax-h3-turbo --duration 10 --download ./outputs
210
+ everypixel video from-image "subtle camera movement and natural wind" \
211
+ --image ./first-frame.png --model ltx23 --download ./outputs
230
212
 
231
213
  everypixel video edit "continue the scene with a slow camera pan" \
232
214
  --model flux3 --video ./input.mp4 --download ./outputs
215
+ ```
233
216
 
234
- everypixel video upscale --video ./input.mp4 \
235
- --model topaz-prob-4 --resolution 4k --download ./outputs
217
+ Generate a video with Gemini Omni 1.1 Flash, then edit the completed task:
218
+
219
+ ```bash
220
+ task_id="$(
221
+ everypixel video generate "a slow aerial shot over mountain lakes" \
222
+ --model gemini-omni-1.1-flash --output-json | jq -er '.task_id'
223
+ )"
224
+
225
+ everypixel video edit "change the scene to sunset" \
226
+ --model gemini-omni-1.1-flash --task-id "$task_id" --download ./outputs
236
227
  ```
237
228
 
238
- New video models use these provider defaults and limits:
229
+ Gemini Omni editing requires an owned Gemini Omni source task. Other editing
230
+ models accept `--task-id` as an alternative to `--video`.
231
+
232
+ Input options depend on the model:
239
233
 
240
- | Model | Duration | Default resolution / aspect ratio | Inputs |
241
- | --- | --- | --- | --- |
242
- | `minimax-h3-turbo`, `minimax-h3` | 3–15 s | 768p / 7:4 | Text, first/last frames, or up to 9 image, 3 video, and 3 audio references |
243
- | `wan3.0` | 2–30 s | 1080p / adaptive | Text, frames, or up to 10 reference images and 5 reference videos |
244
- | `flux3` | 5–20 s generation; 5–15 s continuation | 720p / 16:9 | Text, frames, or `video edit --video` for continuation |
245
- | `seedance2.5` | 4–30 s | 720p / 16:9 | Text or `video edit` references, including audio alone |
234
+ - `first-last` accepts `--image` and `--last-image` for models that support frame pairs.
235
+ - MiniMax and WAN 3.0 accept repeatable reference options, separately from frame inputs.
236
+ Use `--reference-image`, `--reference-video`, and, for MiniMax, `--reference-audio`.
237
+ - Gemini Omni generation accepts frame images or `--reference-image`, separately.
238
+ - Grok Imagine 1.5 (`grok-imagine-1.5`) requires `--image` and supports 1080p.
239
+ - Aleph 2 accepts repeatable `--keyframe` JSON; inspect `video edit --help` for its fields.
246
240
 
247
- Use repeatable `--reference-image`, `--reference-video`, and `--reference-audio`
248
- options for MiniMax references. References cannot be combined with first/last
249
- frames. WAN 3.0 also separates frame and reference inputs. Seedance 2.5 supports
250
- up to 1080p;
251
- Seedance 2 and Mini retain their 15-second limit. Grok video model names are
252
- `grok-imagine` and `grok-imagine-1.5` (image required); `grok` and `grok15`
253
- remain accepted aliases. The CLI's default video model remains `ltx23`.
241
+ See the [API documentation](https://labs.everypixel.com/docs) for each model's
242
+ accepted inputs, resolutions, and durations.
254
243
 
255
- Topaz upscaling models are `topaz-prob-4`, `topaz-slp-2.5`, and `topaz-ast-2`.
256
- They support 4K output. The default `seedvr2` supports up to 1440p, with a
257
- 20-second source limit at 1080p and a 10-second limit at 1440p, inclusive.
244
+ For upscaling, use `seedvr2` (the default) or a Topaz model such as `topaz-prob-4`:
245
+
246
+ ```bash
247
+ everypixel video upscale --video ./input.mp4 \
248
+ --model topaz-prob-4 --resolution 4k --download ./outputs
249
+ ```
258
250
 
259
251
  ### Lipsync and Audio
260
252
 
@@ -270,47 +262,50 @@ They support 4K output. The default `seedvr2` supports up to 1440p, with a
270
262
  | `everypixel audio tts-voices` | List presets and saved voices |
271
263
  | `everypixel audio tts-delete` | Delete an owned saved voice |
272
264
 
273
- Lipsync supports 720p; the API checks source media dimensions and duration.
274
-
275
- Examples:
265
+ Synchronize video, transcribe audio, or synthesize speech with a Qwen preset:
276
266
 
277
267
  ```bash
278
- everypixel lipsync video \
279
- --video ./input.mp4 \
280
- --audio ./voice.mp3 \
268
+ everypixel lipsync video --video ./input.mp4 --audio ./voice.mp3 \
281
269
  --download ./outputs
282
270
 
283
- everypixel audio transcribe \
284
- --audio ./speech.mp3 \
285
- --language English \
271
+ everypixel audio transcribe --audio ./speech.mp3 --language English \
286
272
  --download ./outputs
287
273
 
288
- everypixel audio tts-create \
289
- --text "Hello world" \
290
- --speaker Ryan \
291
- --style Warm \
292
- --language English \
293
- --download ./outputs
274
+ everypixel audio tts-create --model qwen3 --text "Hello world" \
275
+ --speaker Ryan --style Warm --language English --download ./outputs
276
+ ```
277
+
278
+ `--speaker`, `--style`, `--language`, and `--seed` are Qwen controls;
279
+ `--character` applies only to Qwen voice design. ElevenLabs synthesis uses
280
+ `--voice-id` instead of preset controls. `tts-clone` and `tts-design` default
281
+ to Qwen; `tts-create` lets the API choose when `--model` is omitted.
282
+
283
+ Design an ElevenLabs preview, save the first preview as a voice, and use it:
284
+
285
+ ```bash
286
+ preview_id="$(
287
+ everypixel audio tts-design --model eleven_ttv_v3 \
288
+ --prompt "A warm, calm narrator with clear diction and a relaxed pace." \
289
+ --text "Welcome to our guided tour. Today we will explore the stories behind these photographs and the people who made them." \
290
+ --output-json | jq -er '.result.previews[0].preview_id'
291
+ )"
292
+
293
+ voice_id="$(
294
+ everypixel audio tts-voice --name "Narrator" --preview-id "$preview_id" \
295
+ --output-json | jq -er '.voice.id'
296
+ )"
297
+
298
+ everypixel audio tts-create --model eleven_v3 --voice-id "$voice_id" \
299
+ --text "Hello world" --download ./outputs
294
300
  ```
295
301
 
296
- `tts-create` lets the API choose the model when `--model` is omitted.
297
- `tts-clone` and `tts-design` default to `--model qwen3`.
298
- `--speaker`, `--style`, `--language`, and `--seed` are Qwen controls; `--character` applies only to Qwen voice design.
299
- Qwen text is limited to 200 characters. ElevenLabs synthesis accepts up to
300
- 2048 characters and requires `--voice-id`. Supported synthesis models are
301
- `eleven_v4`, `eleven_v4_turbo`, `eleven_v3`, `eleven_v3_conversational`,
302
- `eleven_multilingual_v2`, and `eleven_flash_v2_5`. ElevenLabs design uses
303
- `eleven_multilingual_ttv_v2` or `eleven_ttv_v3`, with 100–1000 characters of
304
- text and a 20–1000 character `--prompt`.
305
-
306
- Save a returned preview with `tts-voice --name "Narrator" --preview-id UUID`, or save local
307
- samples with `tts-voice --name "My voice" --provider elevenlabs --audio ./sample.wav`.
308
- `--audio` is repeatable for ElevenLabs; Qwen (`--provider labs`, the default)
309
- requires one sample. Saving returns a voice card immediately. Use its ID with
310
- `tts-create --model eleven_v3 --voice-id UUID --text "Hello"` or
311
- `tts-clone --voice-id UUID --text "Hello"`. List voices with
312
- `tts-voices --provider elevenlabs --offset 0 --limit 50`, and delete an owned
313
- voice with `tts-delete --voice-id UUID`.
302
+ To save your own samples, use `tts-voice --name "My voice" --provider elevenlabs
303
+ --audio ./sample.wav`; repeat `--audio` for more samples. Qwen uses
304
+ `--provider labs` and one sample. Saved Qwen voices work with `tts-clone --voice-id`.
305
+
306
+ List saved ElevenLabs voices with `everypixel audio tts-voices --provider elevenlabs`.
307
+ See the [API documentation](https://labs.everypixel.com/docs) for model choices
308
+ and text constraints.
314
309
 
315
310
  ### Chat
316
311
 
@@ -391,20 +386,11 @@ Passing `--download` always waits for a successful result before saving files:
391
386
  everypixel wait TASK_ID --download ./outputs
392
387
  ```
393
388
 
394
- A Bash automation example:
395
-
396
- ```bash
397
- task_id="$(
398
- everypixel image generate \
399
- "automation test image" \
400
- --model flux2 \
401
- --no-wait \
402
- --output-json \
403
- --jq .task_id | tr -d '"'
404
- )"
389
+ `elapsed_sec` is total local waiting time; `queue_sec` estimates time until the
390
+ first observed `STARTED` response.
405
391
 
406
- everypixel --timeout 600 wait "$task_id" --download ./outputs
407
- ```
392
+ API costs are USD strings: `estimated_cost` for pending tasks and `billed_cost`
393
+ for successful results and chat. Missing costs are omitted; `"0"` means no charge.
408
394
 
409
395
  ## Generic OpenAPI Runner
410
396
 
@@ -426,6 +412,9 @@ everypixel run /v1/image_generate \
426
412
  --input-file ./payload.json
427
413
  ```
428
414
 
415
+ `--help-schema` shows the operation definition. Referenced component schemas
416
+ are included in the full document returned by `docs openapi`.
417
+
429
418
  The schema loader tries the live API first, then the local cache, and finally
430
419
  the schema bundled with the package.
431
420
 
@@ -467,8 +456,9 @@ Global options must appear before the command they apply to.
467
456
  | `--no-color` | Disable colored terminal output |
468
457
  | `--debug` | Include sanitized diagnostic locations for internal errors |
469
458
 
470
- Many operation-specific options can also appear after their command. Run
471
- `everypixel COMMAND --help` for the exact syntax.
459
+ Operation commands also accept common options such as `--download`, `--no-wait`,
460
+ and `--output-json` after the command. Run `everypixel COMMAND --help` for the
461
+ exact syntax.
472
462
 
473
463
  ## Configuration Profiles
474
464
 
@@ -478,10 +468,7 @@ projects. Most users can stay on the `default` profile.
478
468
  ```bash
479
469
  everypixel config profile create project-a
480
470
  everypixel config profile use project-a
481
- everypixel auth configure \
482
- --client-id "$PROJECT_A_CLIENT_ID" \
483
- --client-secret "$PROJECT_A_CLIENT_SECRET"
484
-
471
+ everypixel auth configure
485
472
  everypixel config list
486
473
  ```
487
474