midjourney-pro-cli 2026.4.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 (27) hide show
  1. midjourney_pro_cli-2026.4.5.0/.env.example +4 -0
  2. midjourney_pro_cli-2026.4.5.0/CHANGELOG.md +27 -0
  3. midjourney_pro_cli-2026.4.5.0/LICENSE +21 -0
  4. midjourney_pro_cli-2026.4.5.0/PKG-INFO +384 -0
  5. midjourney_pro_cli-2026.4.5.0/README.md +336 -0
  6. midjourney_pro_cli-2026.4.5.0/midjourney_cli/__init__.py +1 -0
  7. midjourney_pro_cli-2026.4.5.0/midjourney_cli/__main__.py +5 -0
  8. midjourney_pro_cli-2026.4.5.0/midjourney_cli/commands/__init__.py +0 -0
  9. midjourney_pro_cli-2026.4.5.0/midjourney_cli/commands/edit.py +136 -0
  10. midjourney_pro_cli-2026.4.5.0/midjourney_cli/commands/imagine.py +204 -0
  11. midjourney_pro_cli-2026.4.5.0/midjourney_cli/commands/info.py +66 -0
  12. midjourney_pro_cli-2026.4.5.0/midjourney_cli/commands/task.py +177 -0
  13. midjourney_pro_cli-2026.4.5.0/midjourney_cli/commands/video.py +140 -0
  14. midjourney_pro_cli-2026.4.5.0/midjourney_cli/core/__init__.py +0 -0
  15. midjourney_pro_cli-2026.4.5.0/midjourney_cli/core/client.py +137 -0
  16. midjourney_pro_cli-2026.4.5.0/midjourney_cli/core/config.py +39 -0
  17. midjourney_pro_cli-2026.4.5.0/midjourney_cli/core/exceptions.py +37 -0
  18. midjourney_pro_cli-2026.4.5.0/midjourney_cli/core/output.py +251 -0
  19. midjourney_pro_cli-2026.4.5.0/midjourney_cli/main.py +90 -0
  20. midjourney_pro_cli-2026.4.5.0/pyproject.toml +121 -0
  21. midjourney_pro_cli-2026.4.5.0/tests/__init__.py +0 -0
  22. midjourney_pro_cli-2026.4.5.0/tests/conftest.py +129 -0
  23. midjourney_pro_cli-2026.4.5.0/tests/test_client.py +176 -0
  24. midjourney_pro_cli-2026.4.5.0/tests/test_commands.py +321 -0
  25. midjourney_pro_cli-2026.4.5.0/tests/test_config.py +52 -0
  26. midjourney_pro_cli-2026.4.5.0/tests/test_integration.py +42 -0
  27. midjourney_pro_cli-2026.4.5.0/tests/test_output.py +160 -0
@@ -0,0 +1,4 @@
1
+ # Midjourney CLI Environment
2
+ ACEDATACLOUD_API_TOKEN=your_api_token_here
3
+ # ACEDATACLOUD_API_BASE_URL=https://api.acedata.cloud
4
+ # MIDJOURNEY_REQUEST_TIMEOUT=1800
@@ -0,0 +1,27 @@
1
+ # Changelog
2
+
3
+ All notable changes to this project will be documented in this file.
4
+
5
+ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
6
+ and this project adheres to [Calendar Versioning](https://calver.org/) (YYYY.MM.DD.BUILD).
7
+
8
+ ## [0.1.0] - 2026-04-05
9
+
10
+ ### Added
11
+ - Initial release
12
+ - Image generation from text prompts (`imagine`)
13
+ - Image transformation (upscale, variation, zoom, pan) (`transform`)
14
+ - Image blending (`blend`)
15
+ - Image editing with prompts and masks (`edit`)
16
+ - Image description / reverse prompt (`describe`)
17
+ - Chinese to English translation (`translate`)
18
+ - Video generation from text + reference image (`video`)
19
+ - Video extension (`extend-video`)
20
+ - Task management with polling (`task`, `tasks`, `wait`)
21
+ - Seed retrieval (`seed`)
22
+ - Rich terminal output with tables and panels
23
+ - JSON output mode (`--json` flag)
24
+ - Mode support (fast, turbo, relax)
25
+ - Version support (5.2, 6, 6.1, 7, 8)
26
+ - HD mode and quality control (V8)
27
+ - Docker support
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 AceDataCloud
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
@@ -0,0 +1,384 @@
1
+ Metadata-Version: 2.1
2
+ Name: midjourney-pro-cli
3
+ Version: 2026.4.5.0
4
+ Summary: CLI tool for Midjourney AI Image & Video Generation via AceDataCloud API
5
+ Project-URL: Homepage, https://github.com/AceDataCloud/MidjourneyCli
6
+ Project-URL: Documentation, https://platform.acedata.cloud/documents/c0dbabae-3f91-470f-abb1-22e9ed2753e8
7
+ Project-URL: Repository, https://github.com/AceDataCloud/MidjourneyCli
8
+ Project-URL: Issues, https://github.com/AceDataCloud/MidjourneyCli/issues
9
+ Project-URL: Changelog, https://github.com/AceDataCloud/MidjourneyCli/blob/main/CHANGELOG.md
10
+ Author-email: AceDataCloud <support@acedata.cloud>
11
+ Maintainer-email: AceDataCloud <support@acedata.cloud>
12
+ License: MIT
13
+ License-File: LICENSE
14
+ Keywords: acedata,ai,cli,command-line,generation,image,midjourney,video
15
+ Classifier: Development Status :: 4 - Beta
16
+ Classifier: Environment :: Console
17
+ Classifier: Intended Audience :: Developers
18
+ Classifier: License :: OSI Approved :: MIT License
19
+ Classifier: Operating System :: OS Independent
20
+ Classifier: Programming Language :: Python :: 3
21
+ Classifier: Programming Language :: Python :: 3.10
22
+ Classifier: Programming Language :: Python :: 3.11
23
+ Classifier: Programming Language :: Python :: 3.12
24
+ Classifier: Topic :: Multimedia :: Graphics
25
+ Classifier: Topic :: Multimedia :: Video
26
+ Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence
27
+ Requires-Python: >=3.10
28
+ Requires-Dist: click>=8.1.0
29
+ Requires-Dist: httpx>=0.27.0
30
+ Requires-Dist: pydantic>=2.0.0
31
+ Requires-Dist: python-dotenv>=1.0.0
32
+ Requires-Dist: rich>=13.0.0
33
+ Provides-Extra: all
34
+ Requires-Dist: midjourney-pro-cli[dev,release,test]; extra == 'all'
35
+ Provides-Extra: dev
36
+ Requires-Dist: mypy>=1.10.0; extra == 'dev'
37
+ Requires-Dist: pre-commit>=3.7.0; extra == 'dev'
38
+ Requires-Dist: ruff>=0.4.0; extra == 'dev'
39
+ Provides-Extra: release
40
+ Requires-Dist: build>=1.2.0; extra == 'release'
41
+ Requires-Dist: twine>=6.1.0; extra == 'release'
42
+ Provides-Extra: test
43
+ Requires-Dist: pytest-asyncio>=0.23.0; extra == 'test'
44
+ Requires-Dist: pytest-cov>=5.0.0; extra == 'test'
45
+ Requires-Dist: pytest>=8.0.0; extra == 'test'
46
+ Requires-Dist: respx>=0.21.0; extra == 'test'
47
+ Description-Content-Type: text/markdown
48
+
49
+ # Midjourney CLI
50
+
51
+ [![PyPI version](https://img.shields.io/pypi/v/midjourney-pro-cli.svg)](https://pypi.org/project/midjourney-pro-cli/)
52
+ [![PyPI downloads](https://img.shields.io/pypi/dm/midjourney-pro-cli.svg)](https://pypi.org/project/midjourney-pro-cli/)
53
+ [![Python 3.10+](https://img.shields.io/badge/python-3.10+-blue.svg)](https://www.python.org/downloads/)
54
+ [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
55
+ [![CI](https://github.com/AceDataCloud/MidjourneyCli/actions/workflows/ci.yaml/badge.svg)](https://github.com/AceDataCloud/MidjourneyCli/actions/workflows/ci.yaml)
56
+
57
+ A command-line tool for AI image and video generation using [Midjourney](https://www.midjourney.com/) through the [AceDataCloud API](https://platform.acedata.cloud/).
58
+
59
+ Generate AI images, edit photos, create videos, and manage tasks directly from your terminal — no MCP client required.
60
+
61
+ ## Features
62
+
63
+ - **Image Generation** — Generate from prompts, transform (upscale/variation/zoom/pan), blend images
64
+ - **Image Editing** — Edit with prompts and masks, describe images (reverse prompt), translate prompts
65
+ - **Video Generation** — Generate video from text + reference image, extend existing videos
66
+ - **Task Management** — Query tasks, batch query, wait with polling
67
+ - **Rich Output** — Beautiful terminal tables and panels via Rich
68
+ - **JSON Mode** — Machine-readable output with `--json` for piping
69
+ - **Multiple Modes** — fast, turbo, relax generation modes
70
+ - **V8 Support** — HD mode, ultra quality, style references
71
+
72
+ ## Quick Start
73
+
74
+ ### 1. Get API Token
75
+
76
+ Get your API token from [AceDataCloud Platform](https://platform.acedata.cloud/):
77
+
78
+ 1. Sign up or log in
79
+ 2. Navigate to [Midjourney API](https://platform.acedata.cloud/documents/c0dbabae-3f91-470f-abb1-22e9ed2753e8)
80
+ 3. Click "Acquire" to get your token
81
+
82
+ ### 2. Install
83
+
84
+ ```bash
85
+ # Install with pip
86
+ pip install midjourney-pro-cli
87
+
88
+ # Or with uv (recommended)
89
+ uv pip install midjourney-pro-cli
90
+
91
+ # Or from source
92
+ git clone https://github.com/AceDataCloud/MidjourneyCli.git
93
+ cd MidjourneyCli
94
+ pip install -e .
95
+ ```
96
+
97
+ ### 3. Configure
98
+
99
+ ```bash
100
+ # Set your API token
101
+ export ACEDATACLOUD_API_TOKEN=your_token_here
102
+
103
+ # Or use .env file
104
+ cp .env.example .env
105
+ # Edit .env with your token
106
+ ```
107
+
108
+ ### 4. Use
109
+
110
+ ```bash
111
+ # Generate an image
112
+ midjourney imagine "A majestic lion at sunset, cinematic lighting"
113
+
114
+ # Generate with V8 HD mode
115
+ midjourney imagine "Cyberpunk city" --version 8 --hd --mode turbo
116
+
117
+ # Upscale a specific image from the grid
118
+ midjourney transform <image_id> upscale1
119
+
120
+ # Edit an existing image
121
+ midjourney edit https://example.com/photo.jpg "Add a sunset background"
122
+
123
+ # Describe an image (reverse prompt)
124
+ midjourney describe https://example.com/photo.jpg
125
+
126
+ # Generate video
127
+ midjourney video "A cat walking" --image-url https://example.com/cat.jpg
128
+
129
+ # Check task status
130
+ midjourney task <task_id>
131
+
132
+ # Wait for completion
133
+ midjourney wait <task_id> --interval 5
134
+ ```
135
+
136
+ ## Commands
137
+
138
+ ### Image Generation
139
+
140
+ | Command | Description |
141
+ |---------|-------------|
142
+ | `midjourney imagine <prompt>` | Generate a 2x2 grid of images from text |
143
+ | `midjourney transform <image_id> <action>` | Upscale, vary, zoom, or pan an image |
144
+ | `midjourney blend <url1> <url2> [...]` | Blend 2-5 images together |
145
+
146
+ ### Image Editing
147
+
148
+ | Command | Description |
149
+ |---------|-------------|
150
+ | `midjourney edit <image_url> <prompt>` | Edit an image with a text prompt |
151
+ | `midjourney describe <image_url>` | Get 4 AI descriptions of an image |
152
+ | `midjourney translate <content>` | Translate Chinese text to English prompts |
153
+
154
+ ### Video Generation
155
+
156
+ | Command | Description |
157
+ |---------|-------------|
158
+ | `midjourney video <prompt> --image-url <url>` | Generate video from text + image |
159
+ | `midjourney extend-video <video_id> <prompt>` | Extend an existing video |
160
+
161
+ ### Task Management
162
+
163
+ | Command | Description |
164
+ |---------|-------------|
165
+ | `midjourney task <task_id>` | Query a single task status |
166
+ | `midjourney tasks <id1> <id2> [...]` | Query multiple tasks at once |
167
+ | `midjourney wait <task_id>` | Wait for task completion with polling |
168
+ | `midjourney seed <image_id>` | Get the seed value of a generated image |
169
+
170
+ ### Utilities
171
+
172
+ | Command | Description |
173
+ |---------|-------------|
174
+ | `midjourney modes` | List available generation modes |
175
+ | `midjourney versions` | List available Midjourney versions |
176
+ | `midjourney actions` | List available transform actions |
177
+ | `midjourney config` | Show current configuration |
178
+
179
+ ## Global Options
180
+
181
+ ```
182
+ --token TEXT API token (or set ACEDATACLOUD_API_TOKEN env var)
183
+ --version Show version
184
+ --help Show help message
185
+ ```
186
+
187
+ Most commands support:
188
+
189
+ ```
190
+ --json Output raw JSON (for piping/scripting)
191
+ --mode TEXT Generation mode: fast (default), turbo, relax
192
+ ```
193
+
194
+ ## Transform Actions
195
+
196
+ After generating a 2x2 grid with `imagine`:
197
+
198
+ | Action | Description |
199
+ |--------|-------------|
200
+ | `upscale1-4` | Upscale one of the 4 grid images |
201
+ | `upscale_2x` / `upscale_4x` | Further upscale an upscaled image |
202
+ | `variation1-4` | Create variations of one grid image |
203
+ | `variation_subtle` / `variation_strong` | Create subtle/strong variations |
204
+ | `variation_region` | Edit specific region with mask |
205
+ | `reroll` | Regenerate all 4 images |
206
+ | `zoom_out_2x` / `zoom_out_1_5x` | Zoom out |
207
+ | `pan_left/right/up/down` | Expand image in a direction |
208
+
209
+ ## Scripting & Piping
210
+
211
+ The `--json` flag outputs machine-readable JSON suitable for piping:
212
+
213
+ ```bash
214
+ # Generate and extract task ID
215
+ TASK_ID=$(midjourney imagine "sunset" --json | jq -r '.task_id')
216
+
217
+ # Wait for completion and get image URL
218
+ midjourney wait $TASK_ID --json | jq -r '.image_url'
219
+
220
+ # Batch generate from a file of prompts
221
+ while IFS= read -r prompt; do
222
+ midjourney imagine "$prompt" --json >> results.jsonl
223
+ done < prompts.txt
224
+ ```
225
+
226
+ ## Available Versions
227
+
228
+ | Version | Notes |
229
+ |---------|-------|
230
+ | `5.2` | Stable, well-tested |
231
+ | `6` | Improved prompt understanding |
232
+ | `6.1` | Enhanced detail and coherence |
233
+ | `7` | Better composition and realism |
234
+ | `8` | Latest V8 Alpha — HD and ultra quality support |
235
+
236
+ ## Configuration
237
+
238
+ ### Environment Variables
239
+
240
+ | Variable | Description | Default |
241
+ |----------|-------------|---------|
242
+ | `ACEDATACLOUD_API_TOKEN` | API token from AceDataCloud | *Required* |
243
+ | `ACEDATACLOUD_API_BASE_URL` | API base URL | `https://api.acedata.cloud` |
244
+ | `MIDJOURNEY_REQUEST_TIMEOUT` | Timeout in seconds | `1800` |
245
+
246
+ ## Development
247
+
248
+ ### Setup Development Environment
249
+
250
+ ```bash
251
+ # Clone repository
252
+ git clone https://github.com/AceDataCloud/MidjourneyCli.git
253
+ cd MidjourneyCli
254
+
255
+ # Create virtual environment
256
+ python -m venv .venv
257
+ source .venv/bin/activate # or `.venv\Scripts\activate` on Windows
258
+
259
+ # Install with dev dependencies
260
+ pip install -e ".[dev,test]"
261
+ ```
262
+
263
+ ### Run Tests
264
+
265
+ ```bash
266
+ # Run unit tests
267
+ pytest
268
+
269
+ # Run with coverage
270
+ pytest --cov=midjourney_cli
271
+
272
+ # Run integration tests (requires API token)
273
+ pytest tests/test_integration.py -m integration
274
+ ```
275
+
276
+ ### Code Quality
277
+
278
+ ```bash
279
+ # Format code
280
+ ruff format .
281
+
282
+ # Lint code
283
+ ruff check .
284
+
285
+ # Type check
286
+ mypy midjourney_cli
287
+ ```
288
+
289
+ ### Build & Publish
290
+
291
+ ```bash
292
+ # Install build dependencies
293
+ pip install -e ".[release]"
294
+
295
+ # Build package
296
+ python -m build
297
+
298
+ # Upload to PyPI
299
+ twine upload dist/*
300
+ ```
301
+
302
+ ## Docker
303
+
304
+ ```bash
305
+ # Pull the image
306
+ docker pull ghcr.io/acedatacloud/midjourney-cli:latest
307
+
308
+ # Run a command
309
+ docker run --rm -e ACEDATACLOUD_API_TOKEN=your_token \
310
+ ghcr.io/acedatacloud/midjourney-cli imagine "A happy scene"
311
+
312
+ # Or use docker-compose
313
+ docker compose run --rm midjourney-cli imagine "A happy scene"
314
+ ```
315
+
316
+ ## Project Structure
317
+
318
+ ```
319
+ MidjourneyCli/
320
+ ├── midjourney_cli/ # Main package
321
+ │ ├── __init__.py
322
+ │ ├── __main__.py # python -m midjourney_cli entry point
323
+ │ ├── main.py # CLI entry point
324
+ │ ├── core/ # Core modules
325
+ │ │ ├── client.py # HTTP client for Midjourney API
326
+ │ │ ├── config.py # Configuration management
327
+ │ │ ├── exceptions.py # Custom exceptions
328
+ │ │ └── output.py # Rich terminal formatting
329
+ │ └── commands/ # CLI command groups
330
+ │ ├── imagine.py # Image generation (imagine, transform, blend)
331
+ │ ├── edit.py # Edit, describe, translate commands
332
+ │ ├── video.py # Video generation commands
333
+ │ ├── task.py # Task management commands
334
+ │ └── info.py # Info & utility commands
335
+ ├── tests/ # Test suite
336
+ ├── Dockerfile # Container image
337
+ ├── .env.example # Environment template
338
+ ├── pyproject.toml # Project configuration
339
+ └── README.md
340
+ ```
341
+
342
+ ## Midjourney CLI vs MCP Midjourney
343
+
344
+ | Feature | Midjourney CLI | MCP Midjourney |
345
+ |---------|---------------|----------------|
346
+ | Interface | Terminal commands | MCP protocol |
347
+ | Usage | Direct shell, scripts, CI/CD | Claude, VS Code, MCP clients |
348
+ | Output | Rich tables / JSON | Structured MCP responses |
349
+ | Automation | Shell scripts, piping | AI agent workflows |
350
+ | Install | `pip install midjourney-pro-cli` | `pip install mcp-midjourney` |
351
+
352
+ Both tools use the same AceDataCloud API and share the same API token.
353
+
354
+ ## API Reference
355
+
356
+ This tool wraps the [AceDataCloud Midjourney API](https://platform.acedata.cloud/documents/c0dbabae-3f91-470f-abb1-22e9ed2753e8):
357
+
358
+ - [Midjourney Imagine API](https://platform.acedata.cloud/documents/c0dbabae-3f91-470f-abb1-22e9ed2753e8) — Image generation
359
+ - [Midjourney Edits API](https://platform.acedata.cloud/documents/0c9f39ff-08a5-4a69-8772-80e48b0db9f0) — Image editing
360
+ - [Midjourney Videos API](https://platform.acedata.cloud/documents/60f6e9cd-09d1-4dab-abe0-4fb95e65e687) — Video generation
361
+
362
+ ## Contributing
363
+
364
+ Contributions are welcome! Please:
365
+
366
+ 1. Fork the repository
367
+ 2. Create a feature branch (`git checkout -b feature/amazing`)
368
+ 3. Commit your changes (`git commit -m 'Add amazing feature'`)
369
+ 4. Push to the branch (`git push origin feature/amazing`)
370
+ 5. Open a Pull Request
371
+
372
+ ## License
373
+
374
+ MIT License - see [LICENSE](LICENSE) for details.
375
+
376
+ ## Links
377
+
378
+ - [AceDataCloud Platform](https://platform.acedata.cloud/)
379
+ - [MCP Midjourney](https://github.com/AceDataCloud/MidjourneyMCP) — MCP server version
380
+ - [Midjourney Official](https://www.midjourney.com/)
381
+
382
+ ---
383
+
384
+ Made with ❤️ by [AceDataCloud](https://platform.acedata.cloud/)