@miketromba/ploof 0.1.2 → 0.1.4
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 +34 -5
- package/SPEC.md +31 -4
- package/dist/ploof.js +181 -181
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
<img src="https://img.shields.io/badge/node-%3E%3D18-brightgreen" alt="node version" />
|
|
10
10
|
</p>
|
|
11
11
|
|
|
12
|
-
Ploof is a CLI for generating and editing creative assets with AI providers. It supports OpenAI image generation and
|
|
12
|
+
Ploof is a CLI for generating and editing creative assets with AI providers. It supports OpenAI image generation, editing, and variations today, with a provider registry designed for audio, video, and broader model marketplaces over time.
|
|
13
13
|
|
|
14
14
|
It is built for both developers and AI agents: predictable commands, parseable output, local auth profiles, YAML manifests, parallel execution, and a companion skill.
|
|
15
15
|
|
|
@@ -20,6 +20,7 @@ It is built for both developers and AI agents: predictable commands, parseable o
|
|
|
20
20
|
| OpenAI auth profiles | Supported |
|
|
21
21
|
| OpenAI image generation | Supported |
|
|
22
22
|
| OpenAI image editing | Supported |
|
|
23
|
+
| OpenAI image variations | Supported |
|
|
23
24
|
| Context images and masks | Supported |
|
|
24
25
|
| YAML/JSON batch manifests | Supported |
|
|
25
26
|
| Dependency-aware parallel runs | Supported |
|
|
@@ -58,7 +59,6 @@ ploof login openai --api-key <your-api-key>
|
|
|
58
59
|
ploof image generate \
|
|
59
60
|
--prompt "Studio product photo of a matte black water bottle" \
|
|
60
61
|
--out assets/hero.png \
|
|
61
|
-
--model gpt-image-1 \
|
|
62
62
|
--size 1024x1024
|
|
63
63
|
|
|
64
64
|
# Edit an image with context
|
|
@@ -108,13 +108,15 @@ ploof login openai \
|
|
|
108
108
|
|
|
109
109
|
## Image Generation
|
|
110
110
|
|
|
111
|
+
OpenAI image generation and editing default to `gpt-image-2` when `--model` is omitted.
|
|
112
|
+
|
|
111
113
|
```bash
|
|
112
114
|
ploof image generate \
|
|
113
115
|
--provider openai \
|
|
114
116
|
--profile default \
|
|
115
117
|
--prompt "Editorial portrait, dramatic side light" \
|
|
116
118
|
--out assets/portrait.png \
|
|
117
|
-
--model gpt-image-
|
|
119
|
+
--model gpt-image-2 \
|
|
118
120
|
--size 1024x1024 \
|
|
119
121
|
--quality high \
|
|
120
122
|
--format png
|
|
@@ -150,6 +152,24 @@ ploof image edit \
|
|
|
150
152
|
|
|
151
153
|
Use repeated `--image` flags for context/reference images. Use `--mask` when the selected provider/model supports masked edits.
|
|
152
154
|
|
|
155
|
+
## Image Variations
|
|
156
|
+
|
|
157
|
+
OpenAI image variations use the legacy variations endpoint and default to `dall-e-2`, which is currently the only supported model for that endpoint.
|
|
158
|
+
|
|
159
|
+
```bash
|
|
160
|
+
ploof image variation \
|
|
161
|
+
--provider openai \
|
|
162
|
+
--image input.png \
|
|
163
|
+
--out variation.png \
|
|
164
|
+
--size 1024x1024
|
|
165
|
+
```
|
|
166
|
+
|
|
167
|
+
The plural alias also works:
|
|
168
|
+
|
|
169
|
+
```bash
|
|
170
|
+
ploof image variations --image input.png --out variation.png
|
|
171
|
+
```
|
|
172
|
+
|
|
153
173
|
## Batch Manifests
|
|
154
174
|
|
|
155
175
|
```yaml
|
|
@@ -161,7 +181,7 @@ tasks:
|
|
|
161
181
|
provider: openai
|
|
162
182
|
prompt: "Studio product photo"
|
|
163
183
|
params:
|
|
164
|
-
model: gpt-image-
|
|
184
|
+
model: gpt-image-2
|
|
165
185
|
size: 1024x1024
|
|
166
186
|
quality: high
|
|
167
187
|
output: assets/base.png
|
|
@@ -176,6 +196,15 @@ tasks:
|
|
|
176
196
|
mask: ./mask.png
|
|
177
197
|
prompt: "Add a premium background"
|
|
178
198
|
output: assets/final.png
|
|
199
|
+
|
|
200
|
+
- id: variation
|
|
201
|
+
kind: image.variation
|
|
202
|
+
provider: openai
|
|
203
|
+
needs: [base]
|
|
204
|
+
inputs:
|
|
205
|
+
images:
|
|
206
|
+
- task: base
|
|
207
|
+
output: assets/variation.png
|
|
179
208
|
```
|
|
180
209
|
|
|
181
210
|
Run it:
|
|
@@ -265,7 +294,7 @@ PLOOF_OPENAI_API_KEY=sk-... bun test tests/e2e
|
|
|
265
294
|
Optional live-test overrides:
|
|
266
295
|
|
|
267
296
|
```bash
|
|
268
|
-
PLOOF_OPENAI_LIVE_MODEL=gpt-image-
|
|
297
|
+
PLOOF_OPENAI_LIVE_MODEL=gpt-image-2
|
|
269
298
|
PLOOF_OPENAI_LIVE_SIZE=1024x1024
|
|
270
299
|
```
|
|
271
300
|
|
package/SPEC.md
CHANGED
|
@@ -86,6 +86,7 @@ Initial capabilities:
|
|
|
86
86
|
|
|
87
87
|
- `image.generate`
|
|
88
88
|
- `image.edit`
|
|
89
|
+
- `image.variation`
|
|
89
90
|
|
|
90
91
|
Future providers should be added through the provider registry without changing the manifest model.
|
|
91
92
|
|
|
@@ -176,13 +177,15 @@ ploof config reset
|
|
|
176
177
|
|
|
177
178
|
### Image Generation
|
|
178
179
|
|
|
180
|
+
OpenAI image generation and editing default to `gpt-image-2` when no model is specified.
|
|
181
|
+
|
|
179
182
|
```bash
|
|
180
183
|
ploof image generate \
|
|
181
184
|
--provider openai \
|
|
182
185
|
--profile default \
|
|
183
186
|
--prompt "Studio product photo" \
|
|
184
187
|
--out assets/hero.png \
|
|
185
|
-
--model gpt-image-
|
|
188
|
+
--model gpt-image-2 \
|
|
186
189
|
--size 1024x1024 \
|
|
187
190
|
--quality high \
|
|
188
191
|
--format png
|
|
@@ -209,6 +212,20 @@ ploof image edit \
|
|
|
209
212
|
|
|
210
213
|
The CLI must support multiple context images where the provider supports them.
|
|
211
214
|
|
|
215
|
+
### Image Variations
|
|
216
|
+
|
|
217
|
+
```bash
|
|
218
|
+
ploof image variation \
|
|
219
|
+
--provider openai \
|
|
220
|
+
--image input.png \
|
|
221
|
+
--out assets/variation.png \
|
|
222
|
+
--model dall-e-2 \
|
|
223
|
+
--size 1024x1024
|
|
224
|
+
```
|
|
225
|
+
|
|
226
|
+
OpenAI variations default to `dall-e-2`, because the current OpenAI variations
|
|
227
|
+
endpoint only supports that model. `ploof image variations` is an alias.
|
|
228
|
+
|
|
212
229
|
### Batch Run
|
|
213
230
|
|
|
214
231
|
```bash
|
|
@@ -226,7 +243,7 @@ tasks:
|
|
|
226
243
|
provider: openai
|
|
227
244
|
prompt: "Studio product photo"
|
|
228
245
|
params:
|
|
229
|
-
model: gpt-image-
|
|
246
|
+
model: gpt-image-2
|
|
230
247
|
size: 1024x1024
|
|
231
248
|
quality: high
|
|
232
249
|
output: assets/base.png
|
|
@@ -241,6 +258,15 @@ tasks:
|
|
|
241
258
|
mask: ./mask.png
|
|
242
259
|
prompt: "Add a premium background"
|
|
243
260
|
output: assets/final.png
|
|
261
|
+
|
|
262
|
+
- id: variation
|
|
263
|
+
kind: image.variation
|
|
264
|
+
provider: openai
|
|
265
|
+
needs: [base]
|
|
266
|
+
inputs:
|
|
267
|
+
images:
|
|
268
|
+
- task: base
|
|
269
|
+
output: assets/variation.png
|
|
244
270
|
```
|
|
245
271
|
|
|
246
272
|
## Asset Input Model
|
|
@@ -280,6 +306,7 @@ type Provider = {
|
|
|
280
306
|
capabilities: ProviderCapability[]
|
|
281
307
|
runImageGenerate(job, context): Promise<ProviderResult>
|
|
282
308
|
runImageEdit(job, context): Promise<ProviderResult>
|
|
309
|
+
runImageVariation(job, context): Promise<ProviderResult>
|
|
283
310
|
}
|
|
284
311
|
```
|
|
285
312
|
|
|
@@ -325,7 +352,7 @@ Asset-producing commands should write the asset to disk and print structured met
|
|
|
325
352
|
"provider": "openai",
|
|
326
353
|
"outputs": ["assets/hero.png"],
|
|
327
354
|
"metadata": {
|
|
328
|
-
"model": "gpt-image-
|
|
355
|
+
"model": "gpt-image-2"
|
|
329
356
|
}
|
|
330
357
|
}
|
|
331
358
|
```
|
|
@@ -429,7 +456,7 @@ The initial complete implementation should include:
|
|
|
429
456
|
- npm package scaffolding for `@miketromba/ploof`.
|
|
430
457
|
- Build, test, typecheck, lint setup.
|
|
431
458
|
- OpenAI auth profiles.
|
|
432
|
-
- OpenAI image generate/edit.
|
|
459
|
+
- OpenAI image generate/edit/variation.
|
|
433
460
|
- Asset input normalization.
|
|
434
461
|
- Manifest run with dependency-aware parallelism.
|
|
435
462
|
- Output formats and sidecar metadata.
|