everypixel-cli 0.4.1__tar.gz → 0.5.1__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.1 → everypixel_cli-0.5.1}/CHANGELOG.md +11 -0
  2. {everypixel_cli-0.4.1 → everypixel_cli-0.5.1}/PKG-INFO +130 -127
  3. {everypixel_cli-0.4.1 → everypixel_cli-0.5.1}/README.md +130 -127
  4. everypixel_cli-0.5.1/src/everypixel_cli/__init__.py +1 -0
  5. {everypixel_cli-0.4.1 → everypixel_cli-0.5.1}/src/everypixel_cli/application/models.py +2 -0
  6. {everypixel_cli-0.4.1 → everypixel_cli-0.5.1}/src/everypixel_cli/application/services.py +114 -1
  7. {everypixel_cli-0.4.1 → everypixel_cli-0.5.1}/src/everypixel_cli/cli.py +69 -2
  8. {everypixel_cli-0.4.1 → everypixel_cli-0.5.1}/src/everypixel_cli/mcp_server.py +2 -0
  9. {everypixel_cli-0.4.1 → everypixel_cli-0.5.1}/src/everypixel_cli/resources/openapi.json +848 -175
  10. {everypixel_cli-0.4.1 → everypixel_cli-0.5.1}/src/everypixel_cli/schemas.py +143 -48
  11. everypixel_cli-0.4.1/src/everypixel_cli/__init__.py +0 -1
  12. {everypixel_cli-0.4.1 → everypixel_cli-0.5.1}/.gitignore +0 -0
  13. {everypixel_cli-0.4.1 → everypixel_cli-0.5.1}/LICENSE +0 -0
  14. {everypixel_cli-0.4.1 → everypixel_cli-0.5.1}/pyproject.toml +0 -0
  15. {everypixel_cli-0.4.1 → everypixel_cli-0.5.1}/src/everypixel_cli/__main__.py +0 -0
  16. {everypixel_cli-0.4.1 → everypixel_cli-0.5.1}/src/everypixel_cli/application/__init__.py +0 -0
  17. {everypixel_cli-0.4.1 → everypixel_cli-0.5.1}/src/everypixel_cli/application/chat.py +0 -0
  18. {everypixel_cli-0.4.1 → everypixel_cli-0.5.1}/src/everypixel_cli/application/serialization.py +0 -0
  19. {everypixel_cli-0.4.1 → everypixel_cli-0.5.1}/src/everypixel_cli/client.py +0 -0
  20. {everypixel_cli-0.4.1 → everypixel_cli-0.5.1}/src/everypixel_cli/config.py +0 -0
  21. {everypixel_cli-0.4.1 → everypixel_cli-0.5.1}/src/everypixel_cli/errors.py +0 -0
  22. {everypixel_cli-0.4.1 → everypixel_cli-0.5.1}/src/everypixel_cli/files.py +0 -0
  23. {everypixel_cli-0.4.1 → everypixel_cli-0.5.1}/src/everypixel_cli/openapi.py +0 -0
  24. {everypixel_cli-0.4.1 → everypixel_cli-0.5.1}/src/everypixel_cli/output.py +0 -0
  25. {everypixel_cli-0.4.1 → everypixel_cli-0.5.1}/src/everypixel_cli/resources/__init__.py +0 -0
@@ -1,5 +1,16 @@
1
1
  # Changelog
2
2
 
3
+ ## [0.5.1] - 2026-10-28
4
+
5
+ - Add account balance lookup and request cost estimation with `--estimate-cost`.
6
+ - Support Seedance generation with first/last frames or reference images.
7
+
8
+ ## [0.5.0] - 2026-10-12
9
+
10
+ - Add FLUX.3 images, Nano Banana 2.1, Nano Banana 2 Lite, and Seedream 5 Flash.
11
+ - Add Gemini Omni 1.1 video generation and editing, and video editing by source task ID.
12
+ - Support 1080p video with Grok Imagine 1.5.
13
+
3
14
  ## [0.4.1] - 2026-10-08
4
15
 
5
16
  - Display estimated and billed generation costs, including chat responses.
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.5
2
2
  Name: everypixel-cli
3
- Version: 0.4.1
3
+ Version: 0.5.1
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
@@ -138,6 +137,26 @@ CLI falls back to its user configuration file when a keyring is unavailable;
138
137
 
139
138
  ## Commands
140
139
 
140
+ ### Balance and cost estimates
141
+
142
+ `everypixel balance` shows the account balance in USD and the owner's email.
143
+ The balance is settled; recent usage may not yet be reflected.
144
+
145
+ Add `--estimate-cost` to image, video, lipsync, transcription, or speech generation
146
+ commands to estimate the request's USD cost without creating a task or consuming
147
+ quota. Estimates include available free quota and personal rates; they do not
148
+ reserve funds. Task polling and downloads are skipped for estimate responses.
149
+
150
+ ```bash
151
+ everypixel balance --output-json
152
+ everypixel image generate "a lake" --estimate-cost
153
+ everypixel run image_generate --input prompt="a lake" --estimate-cost --output-json
154
+ ```
155
+
156
+ `run --estimate-cost` supports the same API operations, including background
157
+ removal, video matting, and video soundtrack generation. Chat, classic analysis,
158
+ and saved voice management endpoints do not support cost estimation.
159
+
141
160
  ### Images
142
161
 
143
162
  | Command | Description |
@@ -190,9 +209,10 @@ everypixel image generate "a detailed botanical illustration" \
190
209
  --model gpt-image-2.5-sunburst --quality high --download ./outputs
191
210
  ```
192
211
 
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.
212
+ Other image models include `flux3`, `gemini-nano-banana-2.1` (Nano Banana 2.1),
213
+ `gemini-3.1-flash-lite` (Nano Banana 2 Lite), and `seedream-5-flash`.
214
+ Nano Banana 2 Lite uses `--resolution 1k`. Repeat `--image` to provide multiple
215
+ inputs to an editing model.
196
216
 
197
217
  ### Video
198
218
 
@@ -204,57 +224,51 @@ Grok image models are `grok-imagine`, `grok-imagine-2`, and
204
224
  | `everypixel video edit` | Edit video with text and media references |
205
225
  | `everypixel video upscale` | Upscale a video, URL, or existing task result |
206
226
 
207
- Examples:
227
+ Animate a local image or continue a video:
208
228
 
209
229
  ```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
230
+ everypixel video from-image "subtle camera movement and natural wind" \
231
+ --image ./first-frame.png --model ltx23 --download ./outputs
230
232
 
231
233
  everypixel video edit "continue the scene with a slow camera pan" \
232
234
  --model flux3 --video ./input.mp4 --download ./outputs
235
+ ```
233
236
 
234
- everypixel video upscale --video ./input.mp4 \
235
- --model topaz-prob-4 --resolution 4k --download ./outputs
237
+ Generate a video with Gemini Omni 1.1 Flash, then edit the completed task:
238
+
239
+ ```bash
240
+ task_id="$(
241
+ everypixel video generate "a slow aerial shot over mountain lakes" \
242
+ --model gemini-omni-1.1-flash --output-json | jq -er '.task_id'
243
+ )"
244
+
245
+ everypixel video edit "change the scene to sunset" \
246
+ --model gemini-omni-1.1-flash --task-id "$task_id" --download ./outputs
236
247
  ```
237
248
 
238
- New video models use these provider defaults and limits:
249
+ Gemini Omni editing requires an owned Gemini Omni source task. Other editing
250
+ models accept `--task-id` as an alternative to `--video`.
251
+
252
+ Input options depend on the model:
239
253
 
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 |
254
+ - `first-last` accepts `--image` and `--last-image` for models that support frame pairs.
255
+ - MiniMax and WAN 3.0 accept repeatable reference options, separately from frame inputs.
256
+ Use `--reference-image`, `--reference-video`, and, for MiniMax, `--reference-audio`.
257
+ - Gemini Omni and Seedance generation accept frame images or `--reference-image`, separately.
258
+ Use `--model seedance2`, `seedance2-mini`, or `seedance2.5` with `from-image` or
259
+ `first-last`. Seedance 2.5 derives the aspect ratio from the first frame.
260
+ - Grok Imagine 1.5 (`grok-imagine-1.5`) requires `--image` and supports 1080p.
261
+ - Aleph 2 accepts repeatable `--keyframe` JSON; inspect `video edit --help` for its fields.
246
262
 
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`.
263
+ See the [API documentation](https://labs.everypixel.com/docs) for each model's
264
+ accepted inputs, resolutions, and durations.
254
265
 
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.
266
+ For upscaling, use `seedvr2` (the default) or a Topaz model such as `topaz-prob-4`:
267
+
268
+ ```bash
269
+ everypixel video upscale --video ./input.mp4 \
270
+ --model topaz-prob-4 --resolution 4k --download ./outputs
271
+ ```
258
272
 
259
273
  ### Lipsync and Audio
260
274
 
@@ -270,47 +284,50 @@ They support 4K output. The default `seedvr2` supports up to 1440p, with a
270
284
  | `everypixel audio tts-voices` | List presets and saved voices |
271
285
  | `everypixel audio tts-delete` | Delete an owned saved voice |
272
286
 
273
- Lipsync supports 720p; the API checks source media dimensions and duration.
274
-
275
- Examples:
287
+ Synchronize video, transcribe audio, or synthesize speech with a Qwen preset:
276
288
 
277
289
  ```bash
278
- everypixel lipsync video \
279
- --video ./input.mp4 \
280
- --audio ./voice.mp3 \
290
+ everypixel lipsync video --video ./input.mp4 --audio ./voice.mp3 \
281
291
  --download ./outputs
282
292
 
283
- everypixel audio transcribe \
284
- --audio ./speech.mp3 \
285
- --language English \
293
+ everypixel audio transcribe --audio ./speech.mp3 --language English \
286
294
  --download ./outputs
287
295
 
288
- everypixel audio tts-create \
289
- --text "Hello world" \
290
- --speaker Ryan \
291
- --style Warm \
292
- --language English \
293
- --download ./outputs
296
+ everypixel audio tts-create --model qwen3 --text "Hello world" \
297
+ --speaker Ryan --style Warm --language English --download ./outputs
294
298
  ```
295
299
 
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`.
300
+ `--speaker`, `--style`, `--language`, and `--seed` are Qwen controls;
301
+ `--character` applies only to Qwen voice design. ElevenLabs synthesis uses
302
+ `--voice-id` instead of preset controls. `tts-clone` and `tts-design` default
303
+ to Qwen; `tts-create` lets the API choose when `--model` is omitted.
304
+
305
+ Design an ElevenLabs preview, save the first preview as a voice, and use it:
306
+
307
+ ```bash
308
+ preview_id="$(
309
+ everypixel audio tts-design --model eleven_ttv_v3 \
310
+ --prompt "A warm, calm narrator with clear diction and a relaxed pace." \
311
+ --text "Welcome to our guided tour. Today we will explore the stories behind these photographs and the people who made them." \
312
+ --output-json | jq -er '.result.previews[0].preview_id'
313
+ )"
314
+
315
+ voice_id="$(
316
+ everypixel audio tts-voice --name "Narrator" --preview-id "$preview_id" \
317
+ --output-json | jq -er '.voice.id'
318
+ )"
319
+
320
+ everypixel audio tts-create --model eleven_v3 --voice-id "$voice_id" \
321
+ --text "Hello world" --download ./outputs
322
+ ```
323
+
324
+ To save your own samples, use `tts-voice --name "My voice" --provider elevenlabs
325
+ --audio ./sample.wav`; repeat `--audio` for more samples. Qwen uses
326
+ `--provider labs` and one sample. Saved Qwen voices work with `tts-clone --voice-id`.
327
+
328
+ List saved ElevenLabs voices with `everypixel audio tts-voices --provider elevenlabs`.
329
+ See the [API documentation](https://labs.everypixel.com/docs) for model choices
330
+ and text constraints.
314
331
 
315
332
  ### Chat
316
333
 
@@ -397,21 +414,6 @@ first observed `STARTED` response.
397
414
  API costs are USD strings: `estimated_cost` for pending tasks and `billed_cost`
398
415
  for successful results and chat. Missing costs are omitted; `"0"` means no charge.
399
416
 
400
- A Bash automation example:
401
-
402
- ```bash
403
- task_id="$(
404
- everypixel image generate \
405
- "automation test image" \
406
- --model flux2 \
407
- --no-wait \
408
- --output-json \
409
- --jq .task_id | tr -d '"'
410
- )"
411
-
412
- everypixel --timeout 600 wait "$task_id" --download ./outputs
413
- ```
414
-
415
417
  ## Generic OpenAPI Runner
416
418
 
417
419
  `everypixel run` calls an API operation by its OpenAPI name or `/v1/...` path.
@@ -432,6 +434,9 @@ everypixel run /v1/image_generate \
432
434
  --input-file ./payload.json
433
435
  ```
434
436
 
437
+ `--help-schema` shows the operation definition. Referenced component schemas
438
+ are included in the full document returned by `docs openapi`.
439
+
435
440
  The schema loader tries the live API first, then the local cache, and finally
436
441
  the schema bundled with the package.
437
442
 
@@ -473,8 +478,9 @@ Global options must appear before the command they apply to.
473
478
  | `--no-color` | Disable colored terminal output |
474
479
  | `--debug` | Include sanitized diagnostic locations for internal errors |
475
480
 
476
- Many operation-specific options can also appear after their command. Run
477
- `everypixel COMMAND --help` for the exact syntax.
481
+ Operation commands also accept common options such as `--download`, `--no-wait`,
482
+ and `--output-json` after the command. Run `everypixel COMMAND --help` for the
483
+ exact syntax.
478
484
 
479
485
  ## Configuration Profiles
480
486
 
@@ -484,10 +490,7 @@ projects. Most users can stay on the `default` profile.
484
490
  ```bash
485
491
  everypixel config profile create project-a
486
492
  everypixel config profile use project-a
487
- everypixel auth configure \
488
- --client-id "$PROJECT_A_CLIENT_ID" \
489
- --client-secret "$PROJECT_A_CLIENT_SECRET"
490
-
493
+ everypixel auth configure
491
494
  everypixel config list
492
495
  ```
493
496