seedream-cli 2026.3.17.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.
- seedream_cli-2026.3.17.0/.env.example +5 -0
- seedream_cli-2026.3.17.0/.gitignore +32 -0
- seedream_cli-2026.3.17.0/CHANGELOG.md +17 -0
- seedream_cli-2026.3.17.0/LICENSE +21 -0
- seedream_cli-2026.3.17.0/PKG-INFO +266 -0
- seedream_cli-2026.3.17.0/README.md +220 -0
- seedream_cli-2026.3.17.0/pyproject.toml +118 -0
- seedream_cli-2026.3.17.0/seedream_cli/__init__.py +1 -0
- seedream_cli-2026.3.17.0/seedream_cli/__main__.py +5 -0
- seedream_cli-2026.3.17.0/seedream_cli/commands/__init__.py +1 -0
- seedream_cli-2026.3.17.0/seedream_cli/commands/image.py +123 -0
- seedream_cli-2026.3.17.0/seedream_cli/commands/info.py +48 -0
- seedream_cli-2026.3.17.0/seedream_cli/commands/task.py +142 -0
- seedream_cli-2026.3.17.0/seedream_cli/core/__init__.py +1 -0
- seedream_cli-2026.3.17.0/seedream_cli/core/client.py +111 -0
- seedream_cli-2026.3.17.0/seedream_cli/core/config.py +42 -0
- seedream_cli-2026.3.17.0/seedream_cli/core/exceptions.py +37 -0
- seedream_cli-2026.3.17.0/seedream_cli/core/output.py +140 -0
- seedream_cli-2026.3.17.0/seedream_cli/main.py +70 -0
- seedream_cli-2026.3.17.0/tests/__init__.py +0 -0
- seedream_cli-2026.3.17.0/tests/conftest.py +76 -0
- seedream_cli-2026.3.17.0/tests/test_client.py +116 -0
- seedream_cli-2026.3.17.0/tests/test_commands.py +202 -0
- seedream_cli-2026.3.17.0/tests/test_config.py +56 -0
- seedream_cli-2026.3.17.0/tests/test_integration.py +37 -0
- seedream_cli-2026.3.17.0/tests/test_output.py +116 -0
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
# Byte-compiled / optimized / DLL files
|
|
2
|
+
__pycache__/
|
|
3
|
+
*.py[cod]
|
|
4
|
+
*$py.class
|
|
5
|
+
|
|
6
|
+
# Distribution / packaging
|
|
7
|
+
dist/
|
|
8
|
+
build/
|
|
9
|
+
*.egg-info/
|
|
10
|
+
*.egg
|
|
11
|
+
|
|
12
|
+
# Virtual environments
|
|
13
|
+
.venv/
|
|
14
|
+
venv/
|
|
15
|
+
ENV/
|
|
16
|
+
|
|
17
|
+
# Environment variables
|
|
18
|
+
.env
|
|
19
|
+
|
|
20
|
+
# IDE
|
|
21
|
+
.vscode/
|
|
22
|
+
.idea/
|
|
23
|
+
*.swp
|
|
24
|
+
*.swo
|
|
25
|
+
|
|
26
|
+
# Testing
|
|
27
|
+
.coverage
|
|
28
|
+
htmlcov/
|
|
29
|
+
.pytest_cache/
|
|
30
|
+
|
|
31
|
+
# mypy
|
|
32
|
+
.mypy_cache/
|
|
@@ -0,0 +1,17 @@
|
|
|
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-03-18
|
|
9
|
+
|
|
10
|
+
### Added
|
|
11
|
+
- Initial release
|
|
12
|
+
- Seedream image generation from text prompts
|
|
13
|
+
- Image editing capabilities
|
|
14
|
+
- Task management with polling
|
|
15
|
+
- Rich terminal output with tables and panels
|
|
16
|
+
- JSON output mode (`--json` flag)
|
|
17
|
+
- Multiple model 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,266 @@
|
|
|
1
|
+
Metadata-Version: 2.1
|
|
2
|
+
Name: seedream-cli
|
|
3
|
+
Version: 2026.3.17.0
|
|
4
|
+
Summary: CLI tool for Seedream AI Image Generation via AceDataCloud API
|
|
5
|
+
Project-URL: Homepage, https://github.com/AceDataCloud/SeedreamCli
|
|
6
|
+
Project-URL: Repository, https://github.com/AceDataCloud/SeedreamCli
|
|
7
|
+
Project-URL: Issues, https://github.com/AceDataCloud/SeedreamCli/issues
|
|
8
|
+
Project-URL: Changelog, https://github.com/AceDataCloud/SeedreamCli/blob/main/CHANGELOG.md
|
|
9
|
+
Author-email: AceDataCloud <support@acedata.cloud>
|
|
10
|
+
Maintainer-email: AceDataCloud <support@acedata.cloud>
|
|
11
|
+
License: MIT
|
|
12
|
+
License-File: LICENSE
|
|
13
|
+
Keywords: acedata,ai,cli,command-line,generation,image,seedream
|
|
14
|
+
Classifier: Development Status :: 4 - Beta
|
|
15
|
+
Classifier: Environment :: Console
|
|
16
|
+
Classifier: Intended Audience :: Developers
|
|
17
|
+
Classifier: License :: OSI Approved :: MIT License
|
|
18
|
+
Classifier: Operating System :: OS Independent
|
|
19
|
+
Classifier: Programming Language :: Python :: 3
|
|
20
|
+
Classifier: Programming Language :: Python :: 3.10
|
|
21
|
+
Classifier: Programming Language :: Python :: 3.11
|
|
22
|
+
Classifier: Programming Language :: Python :: 3.12
|
|
23
|
+
Classifier: Topic :: Multimedia :: Graphics
|
|
24
|
+
Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence
|
|
25
|
+
Requires-Python: >=3.10
|
|
26
|
+
Requires-Dist: click>=8.1.0
|
|
27
|
+
Requires-Dist: httpx>=0.27.0
|
|
28
|
+
Requires-Dist: pydantic>=2.0.0
|
|
29
|
+
Requires-Dist: python-dotenv>=1.0.0
|
|
30
|
+
Requires-Dist: rich>=13.0.0
|
|
31
|
+
Provides-Extra: all
|
|
32
|
+
Requires-Dist: seedream-cli[dev,release,test]; extra == 'all'
|
|
33
|
+
Provides-Extra: dev
|
|
34
|
+
Requires-Dist: mypy>=1.10.0; extra == 'dev'
|
|
35
|
+
Requires-Dist: pre-commit>=3.7.0; extra == 'dev'
|
|
36
|
+
Requires-Dist: ruff>=0.4.0; extra == 'dev'
|
|
37
|
+
Provides-Extra: release
|
|
38
|
+
Requires-Dist: build>=1.2.0; extra == 'release'
|
|
39
|
+
Requires-Dist: twine>=6.1.0; extra == 'release'
|
|
40
|
+
Provides-Extra: test
|
|
41
|
+
Requires-Dist: pytest-asyncio>=0.23.0; extra == 'test'
|
|
42
|
+
Requires-Dist: pytest-cov>=5.0.0; extra == 'test'
|
|
43
|
+
Requires-Dist: pytest>=8.0.0; extra == 'test'
|
|
44
|
+
Requires-Dist: respx>=0.21.0; extra == 'test'
|
|
45
|
+
Description-Content-Type: text/markdown
|
|
46
|
+
|
|
47
|
+
# Seedream CLI
|
|
48
|
+
|
|
49
|
+
[](https://pypi.org/project/seedream-cli/)
|
|
50
|
+
[](https://pypi.org/project/seedream-cli/)
|
|
51
|
+
[](https://www.python.org/downloads/)
|
|
52
|
+
[](https://opensource.org/licenses/MIT)
|
|
53
|
+
[](https://github.com/AceDataCloud/SeedreamCli/actions/workflows/ci.yaml)
|
|
54
|
+
|
|
55
|
+
A command-line tool for AI image generation using [Seedream](https://platform.acedata.cloud/) through the [AceDataCloud API](https://platform.acedata.cloud/).
|
|
56
|
+
|
|
57
|
+
Generate AI images directly from your terminal — no MCP client required.
|
|
58
|
+
|
|
59
|
+
## Features
|
|
60
|
+
|
|
61
|
+
- **Image Generation** — Generate images from text prompts with multiple models
|
|
62
|
+
- **Image Editing** — Edit, combine, and transform images with AI
|
|
63
|
+
- **Multiple Models** — doubao-seedream-4-5-251128, doubao-seedream-4-0-250828, doubao-seedream-3-0-t2i-250415, doubao-seededit-3-0-i2i-250628
|
|
64
|
+
- **Task Management** — Query tasks, batch query, wait with polling
|
|
65
|
+
- **Rich Output** — Beautiful terminal tables and panels via Rich
|
|
66
|
+
- **JSON Mode** — Machine-readable output with `--json` for piping
|
|
67
|
+
|
|
68
|
+
## Quick Start
|
|
69
|
+
|
|
70
|
+
### 1. Get API Token
|
|
71
|
+
|
|
72
|
+
Get your API token from [AceDataCloud Platform](https://platform.acedata.cloud/):
|
|
73
|
+
|
|
74
|
+
1. Sign up or log in
|
|
75
|
+
2. Navigate to the Seedream API page
|
|
76
|
+
3. Click "Acquire" to get your token
|
|
77
|
+
|
|
78
|
+
### 2. Install
|
|
79
|
+
|
|
80
|
+
```bash
|
|
81
|
+
# Install with pip
|
|
82
|
+
pip install seedream-cli
|
|
83
|
+
|
|
84
|
+
# Or with uv (recommended)
|
|
85
|
+
uv pip install seedream-cli
|
|
86
|
+
|
|
87
|
+
# Or from source
|
|
88
|
+
git clone https://github.com/AceDataCloud/SeedreamCli.git
|
|
89
|
+
cd SeedreamCli
|
|
90
|
+
pip install -e .
|
|
91
|
+
```
|
|
92
|
+
|
|
93
|
+
### 3. Configure
|
|
94
|
+
|
|
95
|
+
```bash
|
|
96
|
+
# Set your API token
|
|
97
|
+
export ACEDATACLOUD_API_TOKEN=your_token_here
|
|
98
|
+
|
|
99
|
+
# Or use .env file
|
|
100
|
+
cp .env.example .env
|
|
101
|
+
# Edit .env with your token
|
|
102
|
+
```
|
|
103
|
+
|
|
104
|
+
### 4. Use
|
|
105
|
+
|
|
106
|
+
```bash
|
|
107
|
+
# Generate an image
|
|
108
|
+
seedream generate "A test image"
|
|
109
|
+
|
|
110
|
+
# Edit an image
|
|
111
|
+
seedream edit "Make it look like a painting" -i https://example.com/photo.jpg
|
|
112
|
+
|
|
113
|
+
# Check task status
|
|
114
|
+
seedream task <task-id>
|
|
115
|
+
|
|
116
|
+
# Wait for completion
|
|
117
|
+
seedream wait <task-id> --interval 5
|
|
118
|
+
|
|
119
|
+
# List available models
|
|
120
|
+
seedream models
|
|
121
|
+
```
|
|
122
|
+
|
|
123
|
+
## Commands
|
|
124
|
+
|
|
125
|
+
| Command | Description |
|
|
126
|
+
|---------|-------------|
|
|
127
|
+
| `seedream generate <prompt>` | Generate an image from a text prompt |
|
|
128
|
+
| `seedream edit <prompt> -i <url>...` | Edit or combine images using AI |
|
|
129
|
+
| `seedream task <task_id>` | Query a single task status |
|
|
130
|
+
| `seedream tasks <id1> <id2>...` | Query multiple tasks at once |
|
|
131
|
+
| `seedream wait <task_id>` | Wait for task completion with polling |
|
|
132
|
+
| `seedream models` | List available Seedream models |
|
|
133
|
+
| `seedream config` | Show current configuration |
|
|
134
|
+
| `seedream resolutions` | List available output resolutions |
|
|
135
|
+
|
|
136
|
+
|
|
137
|
+
## Global Options
|
|
138
|
+
|
|
139
|
+
```
|
|
140
|
+
--token TEXT API token (or set ACEDATACLOUD_API_TOKEN env var)
|
|
141
|
+
--version Show version
|
|
142
|
+
--help Show help message
|
|
143
|
+
```
|
|
144
|
+
|
|
145
|
+
Most commands support:
|
|
146
|
+
|
|
147
|
+
```
|
|
148
|
+
--json Output raw JSON (for piping/scripting)
|
|
149
|
+
--model TEXT Seedream model version (default: doubao-seedream-4-0-250828)
|
|
150
|
+
```
|
|
151
|
+
|
|
152
|
+
## Available Models
|
|
153
|
+
|
|
154
|
+
| Model | Version | Notes |
|
|
155
|
+
|-------|---------|-------|
|
|
156
|
+
| `doubao-seedream-4-5-251128` | V4.5 | Flagship model, best quality |
|
|
157
|
+
| `doubao-seedream-4-0-250828` | V4.0 | Standard quality (default) |
|
|
158
|
+
| `doubao-seedream-3-0-t2i-250415` | V3.0 T2I | Text-to-image generation |
|
|
159
|
+
| `doubao-seededit-3-0-i2i-250628` | V3.0 I2I | Image-to-image editing |
|
|
160
|
+
|
|
161
|
+
|
|
162
|
+
## Configuration
|
|
163
|
+
|
|
164
|
+
### Environment Variables
|
|
165
|
+
|
|
166
|
+
| Variable | Description | Default |
|
|
167
|
+
|----------|-------------|---------|
|
|
168
|
+
| `ACEDATACLOUD_API_TOKEN` | API token from AceDataCloud | *Required* |
|
|
169
|
+
| `ACEDATACLOUD_API_BASE_URL` | API base URL | `https://api.acedata.cloud` |
|
|
170
|
+
| `SEEDREAM_DEFAULT_MODEL` | Default model | `doubao-seedream-4-0-250828` |
|
|
171
|
+
| `SEEDREAM_REQUEST_TIMEOUT` | Timeout in seconds | `1800` |
|
|
172
|
+
|
|
173
|
+
## Development
|
|
174
|
+
|
|
175
|
+
### Setup Development Environment
|
|
176
|
+
|
|
177
|
+
```bash
|
|
178
|
+
git clone https://github.com/AceDataCloud/SeedreamCli.git
|
|
179
|
+
cd SeedreamCli
|
|
180
|
+
python -m venv .venv
|
|
181
|
+
source .venv/bin/activate
|
|
182
|
+
pip install -e ".[dev,test]"
|
|
183
|
+
```
|
|
184
|
+
|
|
185
|
+
### Run Tests
|
|
186
|
+
|
|
187
|
+
```bash
|
|
188
|
+
pytest
|
|
189
|
+
pytest --cov=seedream_cli
|
|
190
|
+
pytest tests/test_integration.py -m integration
|
|
191
|
+
```
|
|
192
|
+
|
|
193
|
+
### Code Quality
|
|
194
|
+
|
|
195
|
+
```bash
|
|
196
|
+
ruff format .
|
|
197
|
+
ruff check .
|
|
198
|
+
mypy seedream_cli
|
|
199
|
+
```
|
|
200
|
+
|
|
201
|
+
## Docker
|
|
202
|
+
|
|
203
|
+
```bash
|
|
204
|
+
docker pull ghcr.io/acedatacloud/seedream-cli:latest
|
|
205
|
+
docker run --rm -e ACEDATACLOUD_API_TOKEN=your_token \
|
|
206
|
+
ghcr.io/acedatacloud/seedream-cli generate "A test image"
|
|
207
|
+
```
|
|
208
|
+
|
|
209
|
+
## Project Structure
|
|
210
|
+
|
|
211
|
+
```
|
|
212
|
+
SeedreamCli/
|
|
213
|
+
├── seedream_cli/ # Main package
|
|
214
|
+
│ ├── __init__.py
|
|
215
|
+
│ ├── __main__.py # python -m seedream_cli entry point
|
|
216
|
+
│ ├── main.py # CLI entry point
|
|
217
|
+
│ ├── core/ # Core modules
|
|
218
|
+
│ │ ├── client.py # HTTP client for Seedream API
|
|
219
|
+
│ │ ├── config.py # Configuration management
|
|
220
|
+
│ │ ├── exceptions.py # Custom exceptions
|
|
221
|
+
│ │ └── output.py # Rich terminal formatting
|
|
222
|
+
│ └── commands/ # CLI command groups
|
|
223
|
+
│ ├── image.py # Image generation commands
|
|
224
|
+
│ ├── task.py # Task management commands
|
|
225
|
+
│ └── info.py # Info & utility commands
|
|
226
|
+
├── tests/ # Test suite
|
|
227
|
+
├── .github/workflows/ # CI/CD (lint, test, publish to PyPI)
|
|
228
|
+
├── Dockerfile # Container image
|
|
229
|
+
├── deploy/ # Kubernetes deployment configs
|
|
230
|
+
├── .env.example # Environment template
|
|
231
|
+
├── pyproject.toml # Project configuration
|
|
232
|
+
└── README.md
|
|
233
|
+
```
|
|
234
|
+
|
|
235
|
+
## Seedream CLI vs MCP Seedream
|
|
236
|
+
|
|
237
|
+
| Feature | Seedream CLI | MCP Seedream |
|
|
238
|
+
|---------|-----------|-----------|
|
|
239
|
+
| Interface | Terminal commands | MCP protocol |
|
|
240
|
+
| Usage | Direct shell, scripts, CI/CD | Claude, VS Code, MCP clients |
|
|
241
|
+
| Output | Rich tables / JSON | Structured MCP responses |
|
|
242
|
+
| Automation | Shell scripts, piping | AI agent workflows |
|
|
243
|
+
| Install | `pip install seedream-cli` | `pip install mcp-seedream` |
|
|
244
|
+
|
|
245
|
+
Both tools use the same AceDataCloud API and share the same API token.
|
|
246
|
+
|
|
247
|
+
## Contributing
|
|
248
|
+
|
|
249
|
+
Contributions are welcome! Please:
|
|
250
|
+
|
|
251
|
+
1. Fork the repository
|
|
252
|
+
2. Create a feature branch (`git checkout -b feature/amazing`)
|
|
253
|
+
3. Commit your changes (`git commit -m 'Add amazing feature'`)
|
|
254
|
+
4. Push to the branch (`git push origin feature/amazing`)
|
|
255
|
+
5. Open a Pull Request
|
|
256
|
+
|
|
257
|
+
### Development Requirements
|
|
258
|
+
|
|
259
|
+
- Python 3.10+
|
|
260
|
+
- Dependencies: `pip install -e ".[all]"`
|
|
261
|
+
- Lint: `ruff check . && ruff format --check .`
|
|
262
|
+
- Test: `pytest`
|
|
263
|
+
|
|
264
|
+
## License
|
|
265
|
+
|
|
266
|
+
This project is licensed under the MIT License — see the [LICENSE](LICENSE) file for details.
|
|
@@ -0,0 +1,220 @@
|
|
|
1
|
+
# Seedream CLI
|
|
2
|
+
|
|
3
|
+
[](https://pypi.org/project/seedream-cli/)
|
|
4
|
+
[](https://pypi.org/project/seedream-cli/)
|
|
5
|
+
[](https://www.python.org/downloads/)
|
|
6
|
+
[](https://opensource.org/licenses/MIT)
|
|
7
|
+
[](https://github.com/AceDataCloud/SeedreamCli/actions/workflows/ci.yaml)
|
|
8
|
+
|
|
9
|
+
A command-line tool for AI image generation using [Seedream](https://platform.acedata.cloud/) through the [AceDataCloud API](https://platform.acedata.cloud/).
|
|
10
|
+
|
|
11
|
+
Generate AI images directly from your terminal — no MCP client required.
|
|
12
|
+
|
|
13
|
+
## Features
|
|
14
|
+
|
|
15
|
+
- **Image Generation** — Generate images from text prompts with multiple models
|
|
16
|
+
- **Image Editing** — Edit, combine, and transform images with AI
|
|
17
|
+
- **Multiple Models** — doubao-seedream-4-5-251128, doubao-seedream-4-0-250828, doubao-seedream-3-0-t2i-250415, doubao-seededit-3-0-i2i-250628
|
|
18
|
+
- **Task Management** — Query tasks, batch query, wait with polling
|
|
19
|
+
- **Rich Output** — Beautiful terminal tables and panels via Rich
|
|
20
|
+
- **JSON Mode** — Machine-readable output with `--json` for piping
|
|
21
|
+
|
|
22
|
+
## Quick Start
|
|
23
|
+
|
|
24
|
+
### 1. Get API Token
|
|
25
|
+
|
|
26
|
+
Get your API token from [AceDataCloud Platform](https://platform.acedata.cloud/):
|
|
27
|
+
|
|
28
|
+
1. Sign up or log in
|
|
29
|
+
2. Navigate to the Seedream API page
|
|
30
|
+
3. Click "Acquire" to get your token
|
|
31
|
+
|
|
32
|
+
### 2. Install
|
|
33
|
+
|
|
34
|
+
```bash
|
|
35
|
+
# Install with pip
|
|
36
|
+
pip install seedream-cli
|
|
37
|
+
|
|
38
|
+
# Or with uv (recommended)
|
|
39
|
+
uv pip install seedream-cli
|
|
40
|
+
|
|
41
|
+
# Or from source
|
|
42
|
+
git clone https://github.com/AceDataCloud/SeedreamCli.git
|
|
43
|
+
cd SeedreamCli
|
|
44
|
+
pip install -e .
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
### 3. Configure
|
|
48
|
+
|
|
49
|
+
```bash
|
|
50
|
+
# Set your API token
|
|
51
|
+
export ACEDATACLOUD_API_TOKEN=your_token_here
|
|
52
|
+
|
|
53
|
+
# Or use .env file
|
|
54
|
+
cp .env.example .env
|
|
55
|
+
# Edit .env with your token
|
|
56
|
+
```
|
|
57
|
+
|
|
58
|
+
### 4. Use
|
|
59
|
+
|
|
60
|
+
```bash
|
|
61
|
+
# Generate an image
|
|
62
|
+
seedream generate "A test image"
|
|
63
|
+
|
|
64
|
+
# Edit an image
|
|
65
|
+
seedream edit "Make it look like a painting" -i https://example.com/photo.jpg
|
|
66
|
+
|
|
67
|
+
# Check task status
|
|
68
|
+
seedream task <task-id>
|
|
69
|
+
|
|
70
|
+
# Wait for completion
|
|
71
|
+
seedream wait <task-id> --interval 5
|
|
72
|
+
|
|
73
|
+
# List available models
|
|
74
|
+
seedream models
|
|
75
|
+
```
|
|
76
|
+
|
|
77
|
+
## Commands
|
|
78
|
+
|
|
79
|
+
| Command | Description |
|
|
80
|
+
|---------|-------------|
|
|
81
|
+
| `seedream generate <prompt>` | Generate an image from a text prompt |
|
|
82
|
+
| `seedream edit <prompt> -i <url>...` | Edit or combine images using AI |
|
|
83
|
+
| `seedream task <task_id>` | Query a single task status |
|
|
84
|
+
| `seedream tasks <id1> <id2>...` | Query multiple tasks at once |
|
|
85
|
+
| `seedream wait <task_id>` | Wait for task completion with polling |
|
|
86
|
+
| `seedream models` | List available Seedream models |
|
|
87
|
+
| `seedream config` | Show current configuration |
|
|
88
|
+
| `seedream resolutions` | List available output resolutions |
|
|
89
|
+
|
|
90
|
+
|
|
91
|
+
## Global Options
|
|
92
|
+
|
|
93
|
+
```
|
|
94
|
+
--token TEXT API token (or set ACEDATACLOUD_API_TOKEN env var)
|
|
95
|
+
--version Show version
|
|
96
|
+
--help Show help message
|
|
97
|
+
```
|
|
98
|
+
|
|
99
|
+
Most commands support:
|
|
100
|
+
|
|
101
|
+
```
|
|
102
|
+
--json Output raw JSON (for piping/scripting)
|
|
103
|
+
--model TEXT Seedream model version (default: doubao-seedream-4-0-250828)
|
|
104
|
+
```
|
|
105
|
+
|
|
106
|
+
## Available Models
|
|
107
|
+
|
|
108
|
+
| Model | Version | Notes |
|
|
109
|
+
|-------|---------|-------|
|
|
110
|
+
| `doubao-seedream-4-5-251128` | V4.5 | Flagship model, best quality |
|
|
111
|
+
| `doubao-seedream-4-0-250828` | V4.0 | Standard quality (default) |
|
|
112
|
+
| `doubao-seedream-3-0-t2i-250415` | V3.0 T2I | Text-to-image generation |
|
|
113
|
+
| `doubao-seededit-3-0-i2i-250628` | V3.0 I2I | Image-to-image editing |
|
|
114
|
+
|
|
115
|
+
|
|
116
|
+
## Configuration
|
|
117
|
+
|
|
118
|
+
### Environment Variables
|
|
119
|
+
|
|
120
|
+
| Variable | Description | Default |
|
|
121
|
+
|----------|-------------|---------|
|
|
122
|
+
| `ACEDATACLOUD_API_TOKEN` | API token from AceDataCloud | *Required* |
|
|
123
|
+
| `ACEDATACLOUD_API_BASE_URL` | API base URL | `https://api.acedata.cloud` |
|
|
124
|
+
| `SEEDREAM_DEFAULT_MODEL` | Default model | `doubao-seedream-4-0-250828` |
|
|
125
|
+
| `SEEDREAM_REQUEST_TIMEOUT` | Timeout in seconds | `1800` |
|
|
126
|
+
|
|
127
|
+
## Development
|
|
128
|
+
|
|
129
|
+
### Setup Development Environment
|
|
130
|
+
|
|
131
|
+
```bash
|
|
132
|
+
git clone https://github.com/AceDataCloud/SeedreamCli.git
|
|
133
|
+
cd SeedreamCli
|
|
134
|
+
python -m venv .venv
|
|
135
|
+
source .venv/bin/activate
|
|
136
|
+
pip install -e ".[dev,test]"
|
|
137
|
+
```
|
|
138
|
+
|
|
139
|
+
### Run Tests
|
|
140
|
+
|
|
141
|
+
```bash
|
|
142
|
+
pytest
|
|
143
|
+
pytest --cov=seedream_cli
|
|
144
|
+
pytest tests/test_integration.py -m integration
|
|
145
|
+
```
|
|
146
|
+
|
|
147
|
+
### Code Quality
|
|
148
|
+
|
|
149
|
+
```bash
|
|
150
|
+
ruff format .
|
|
151
|
+
ruff check .
|
|
152
|
+
mypy seedream_cli
|
|
153
|
+
```
|
|
154
|
+
|
|
155
|
+
## Docker
|
|
156
|
+
|
|
157
|
+
```bash
|
|
158
|
+
docker pull ghcr.io/acedatacloud/seedream-cli:latest
|
|
159
|
+
docker run --rm -e ACEDATACLOUD_API_TOKEN=your_token \
|
|
160
|
+
ghcr.io/acedatacloud/seedream-cli generate "A test image"
|
|
161
|
+
```
|
|
162
|
+
|
|
163
|
+
## Project Structure
|
|
164
|
+
|
|
165
|
+
```
|
|
166
|
+
SeedreamCli/
|
|
167
|
+
├── seedream_cli/ # Main package
|
|
168
|
+
│ ├── __init__.py
|
|
169
|
+
│ ├── __main__.py # python -m seedream_cli entry point
|
|
170
|
+
│ ├── main.py # CLI entry point
|
|
171
|
+
│ ├── core/ # Core modules
|
|
172
|
+
│ │ ├── client.py # HTTP client for Seedream API
|
|
173
|
+
│ │ ├── config.py # Configuration management
|
|
174
|
+
│ │ ├── exceptions.py # Custom exceptions
|
|
175
|
+
│ │ └── output.py # Rich terminal formatting
|
|
176
|
+
│ └── commands/ # CLI command groups
|
|
177
|
+
│ ├── image.py # Image generation commands
|
|
178
|
+
│ ├── task.py # Task management commands
|
|
179
|
+
│ └── info.py # Info & utility commands
|
|
180
|
+
├── tests/ # Test suite
|
|
181
|
+
├── .github/workflows/ # CI/CD (lint, test, publish to PyPI)
|
|
182
|
+
├── Dockerfile # Container image
|
|
183
|
+
├── deploy/ # Kubernetes deployment configs
|
|
184
|
+
├── .env.example # Environment template
|
|
185
|
+
├── pyproject.toml # Project configuration
|
|
186
|
+
└── README.md
|
|
187
|
+
```
|
|
188
|
+
|
|
189
|
+
## Seedream CLI vs MCP Seedream
|
|
190
|
+
|
|
191
|
+
| Feature | Seedream CLI | MCP Seedream |
|
|
192
|
+
|---------|-----------|-----------|
|
|
193
|
+
| Interface | Terminal commands | MCP protocol |
|
|
194
|
+
| Usage | Direct shell, scripts, CI/CD | Claude, VS Code, MCP clients |
|
|
195
|
+
| Output | Rich tables / JSON | Structured MCP responses |
|
|
196
|
+
| Automation | Shell scripts, piping | AI agent workflows |
|
|
197
|
+
| Install | `pip install seedream-cli` | `pip install mcp-seedream` |
|
|
198
|
+
|
|
199
|
+
Both tools use the same AceDataCloud API and share the same API token.
|
|
200
|
+
|
|
201
|
+
## Contributing
|
|
202
|
+
|
|
203
|
+
Contributions are welcome! Please:
|
|
204
|
+
|
|
205
|
+
1. Fork the repository
|
|
206
|
+
2. Create a feature branch (`git checkout -b feature/amazing`)
|
|
207
|
+
3. Commit your changes (`git commit -m 'Add amazing feature'`)
|
|
208
|
+
4. Push to the branch (`git push origin feature/amazing`)
|
|
209
|
+
5. Open a Pull Request
|
|
210
|
+
|
|
211
|
+
### Development Requirements
|
|
212
|
+
|
|
213
|
+
- Python 3.10+
|
|
214
|
+
- Dependencies: `pip install -e ".[all]"`
|
|
215
|
+
- Lint: `ruff check . && ruff format --check .`
|
|
216
|
+
- Test: `pytest`
|
|
217
|
+
|
|
218
|
+
## License
|
|
219
|
+
|
|
220
|
+
This project is licensed under the MIT License — see the [LICENSE](LICENSE) file for details.
|
|
@@ -0,0 +1,118 @@
|
|
|
1
|
+
[project]
|
|
2
|
+
name = "seedream-cli"
|
|
3
|
+
version = "2026.3.17.0"
|
|
4
|
+
description = "CLI tool for Seedream AI Image Generation via AceDataCloud API"
|
|
5
|
+
readme = "README.md"
|
|
6
|
+
license = { text = "MIT" }
|
|
7
|
+
requires-python = ">=3.10"
|
|
8
|
+
authors = [
|
|
9
|
+
{ name = "AceDataCloud", email = "support@acedata.cloud" }
|
|
10
|
+
]
|
|
11
|
+
maintainers = [
|
|
12
|
+
{ name = "AceDataCloud", email = "support@acedata.cloud" }
|
|
13
|
+
]
|
|
14
|
+
keywords = [
|
|
15
|
+
"cli",
|
|
16
|
+
"seedream",
|
|
17
|
+
"ai",
|
|
18
|
+
"image",
|
|
19
|
+
"generation",
|
|
20
|
+
"acedata",
|
|
21
|
+
"command-line"
|
|
22
|
+
]
|
|
23
|
+
classifiers = [
|
|
24
|
+
"Development Status :: 4 - Beta",
|
|
25
|
+
"Intended Audience :: Developers",
|
|
26
|
+
"License :: OSI Approved :: MIT License",
|
|
27
|
+
"Operating System :: OS Independent",
|
|
28
|
+
"Programming Language :: Python :: 3",
|
|
29
|
+
"Programming Language :: Python :: 3.10",
|
|
30
|
+
"Programming Language :: Python :: 3.11",
|
|
31
|
+
"Programming Language :: Python :: 3.12",
|
|
32
|
+
"Topic :: Multimedia :: Graphics",
|
|
33
|
+
"Topic :: Scientific/Engineering :: Artificial Intelligence",
|
|
34
|
+
"Environment :: Console",
|
|
35
|
+
]
|
|
36
|
+
dependencies = [
|
|
37
|
+
"click>=8.1.0",
|
|
38
|
+
"httpx>=0.27.0",
|
|
39
|
+
"python-dotenv>=1.0.0",
|
|
40
|
+
"rich>=13.0.0",
|
|
41
|
+
"pydantic>=2.0.0",
|
|
42
|
+
]
|
|
43
|
+
|
|
44
|
+
[project.optional-dependencies]
|
|
45
|
+
dev = [
|
|
46
|
+
"ruff>=0.4.0",
|
|
47
|
+
"mypy>=1.10.0",
|
|
48
|
+
"pre-commit>=3.7.0",
|
|
49
|
+
]
|
|
50
|
+
test = [
|
|
51
|
+
"pytest>=8.0.0",
|
|
52
|
+
"pytest-asyncio>=0.23.0",
|
|
53
|
+
"pytest-cov>=5.0.0",
|
|
54
|
+
"respx>=0.21.0",
|
|
55
|
+
]
|
|
56
|
+
release = [
|
|
57
|
+
"build>=1.2.0",
|
|
58
|
+
"twine>=6.1.0",
|
|
59
|
+
]
|
|
60
|
+
all = [
|
|
61
|
+
"seedream-cli[dev,test,release]",
|
|
62
|
+
]
|
|
63
|
+
|
|
64
|
+
[project.scripts]
|
|
65
|
+
seedream-cli = "seedream_cli.main:cli"
|
|
66
|
+
seedream = "seedream_cli.main:cli"
|
|
67
|
+
|
|
68
|
+
[project.urls]
|
|
69
|
+
Homepage = "https://github.com/AceDataCloud/SeedreamCli"
|
|
70
|
+
Repository = "https://github.com/AceDataCloud/SeedreamCli"
|
|
71
|
+
Issues = "https://github.com/AceDataCloud/SeedreamCli/issues"
|
|
72
|
+
Changelog = "https://github.com/AceDataCloud/SeedreamCli/blob/main/CHANGELOG.md"
|
|
73
|
+
|
|
74
|
+
[build-system]
|
|
75
|
+
requires = ["hatchling>=1.21.0,<1.22.0"]
|
|
76
|
+
build-backend = "hatchling.build"
|
|
77
|
+
|
|
78
|
+
[tool.hatch.build.targets.wheel]
|
|
79
|
+
packages = ["seedream_cli"]
|
|
80
|
+
|
|
81
|
+
[tool.hatch.build.targets.sdist]
|
|
82
|
+
include = [
|
|
83
|
+
"seedream_cli/",
|
|
84
|
+
"tests/",
|
|
85
|
+
"README.md",
|
|
86
|
+
"LICENSE",
|
|
87
|
+
"CHANGELOG.md",
|
|
88
|
+
".env.example",
|
|
89
|
+
]
|
|
90
|
+
|
|
91
|
+
# Mypy Configuration
|
|
92
|
+
[tool.mypy]
|
|
93
|
+
python_version = "3.10"
|
|
94
|
+
warn_return_any = true
|
|
95
|
+
warn_unused_configs = true
|
|
96
|
+
disallow_untyped_defs = true
|
|
97
|
+
check_untyped_defs = true
|
|
98
|
+
|
|
99
|
+
# Pytest Configuration
|
|
100
|
+
[tool.pytest.ini_options]
|
|
101
|
+
testpaths = ["tests"]
|
|
102
|
+
asyncio_mode = "auto"
|
|
103
|
+
markers = [
|
|
104
|
+
"integration: marks tests that require real API access",
|
|
105
|
+
"slow: marks slow tests",
|
|
106
|
+
]
|
|
107
|
+
|
|
108
|
+
# Ruff Configuration
|
|
109
|
+
[tool.ruff]
|
|
110
|
+
line-length = 100
|
|
111
|
+
target-version = "py310"
|
|
112
|
+
|
|
113
|
+
[tool.ruff.lint]
|
|
114
|
+
select = ["E", "W", "F", "I", "B", "C4", "UP", "ARG", "SIM"]
|
|
115
|
+
ignore = ["E501"]
|
|
116
|
+
|
|
117
|
+
[tool.ruff.format]
|
|
118
|
+
quote-style = "double"
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"""Seedream CLI - AI Seedream Image Generation via AceDataCloud API."""
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"""Seedream CLI command modules."""
|