pixelkiln 0.91.2 → 0.92.1
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/dist/cli.js +117 -40
- package/dist/cli.js.map +1 -1
- package/dist/index.cjs +121 -40
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +63 -23
- package/dist/index.d.ts +63 -23
- package/dist/index.js +119 -40
- package/dist/index.js.map +1 -1
- package/docs/ENDPOINTS.md +36 -0
- package/docs/GENERATORS.md +47 -0
- package/docs/MANIFEST.md +6 -4
- package/docs/PIXELLAB.md +14 -1
- package/package.json +1 -1
- package/skills/pixelkiln/references/pixellab-roadmap.md +15 -0
- package/skills/pixelkiln/references/pixellab.md +9 -1
package/docs/ENDPOINTS.md
CHANGED
|
@@ -259,6 +259,42 @@ function `inpaint-v3` and `edit-images-v2` revisions use.
|
|
|
259
259
|
|
|
260
260
|
---
|
|
261
261
|
|
|
262
|
+
## Target palette (`target_palette`)
|
|
263
|
+
|
|
264
|
+
PixelLab 0.4.130 added a beta `target_palette` body field, then gave it to 27
|
|
265
|
+
POST endpoints: `{ colors?: 2-256 hex, name?: string (≤100), max_colors?: 2-64,
|
|
266
|
+
smart?: boolean }`. With `colors` every pixel is one of them; `max_colors` caps
|
|
267
|
+
each image. The schema is documentation only so far: **cost with a palette is
|
|
268
|
+
measured for `generate-image-v2` alone** (a 64×64 call billed 10, the same as
|
|
269
|
+
without), and the rest are unmeasured. PixelKiln never sends `smart` (beta,
|
|
270
|
+
"single images only", needs `colors`, adds 15 to 60 s).
|
|
271
|
+
|
|
272
|
+
| Endpoint | PixelKiln wrapper | Sent |
|
|
273
|
+
|---|---|---|
|
|
274
|
+
| `/generate-image-v2` | `imagePro` | yes |
|
|
275
|
+
| `/create-image-pro-flash` | `imageProFlash` | yes; the style image's colours give way to it |
|
|
276
|
+
| `/create-object-pro-flash` | `objectPro` base | yes |
|
|
277
|
+
| `/objects/{id}/states` | `objectPro` state | yes |
|
|
278
|
+
| `/objects/{id}/animations` | `objectPro` animation | `pro` mode only (the field is documented for `mode='pro'`) |
|
|
279
|
+
| `/create-1-direction-object` | `1dir` | yes |
|
|
280
|
+
| `/create-tiles-pro` | `tiles` | yes |
|
|
281
|
+
| `/create-tileset` | `terrain` top-down | `terrainMode: "pro"` only ("mode='pro' only"; `color_image` is documented as no effect on standard) |
|
|
282
|
+
| `/create-ui-asset`, `/generate-ui-v2` | `uiAsset`, `uiElement` | yes |
|
|
283
|
+
| `/create-character-pro`, `/create-character-pro-flash` | `character` Pro and Pro Flash bases | yes |
|
|
284
|
+
| `/create-character-state`, `/portrait-character-pro`, `/transfer-outfit-v2` | `character` states, portraits, outfits | yes |
|
|
285
|
+
| `/create-character-with-8-directions` | `character` standard base | no: keeps `color_image` + `force_colors`; the field is "mode='pro' only" and this wrapper sends standard |
|
|
286
|
+
| `/animate-character`, `/characters/animations` | `character` animations | no: keep the same swatch on every mode; the schema does not say the two combine |
|
|
287
|
+
| `/interpolation-v2`, `/edit-animation-v2` | `interpolate`, `edit-animation` revisions | yes |
|
|
288
|
+
| `/create-8-direction-object`, `/generate-with-style-v2`, `/image-to-pixelart-pro`, `/animate-with-text-v2`, `/generate-8-rotations-v2`, `/tilesets` | not wrapped | no |
|
|
289
|
+
| `/image-to-pixelart-pro-flash` | `pixelkiln pixelate` | no: a loose-file utility with no style, so no palette |
|
|
290
|
+
|
|
291
|
+
`/create-tileset-sidescroller`, `/create-character-v3`, `/animate-with-text-v3`
|
|
292
|
+
and `/animate-pixminimax` have no such field. Every request body is built by
|
|
293
|
+
one helper (`targetPaletteBody` in `src/client.ts`), so the field is spelled
|
|
294
|
+
once.
|
|
295
|
+
|
|
296
|
+
---
|
|
297
|
+
|
|
262
298
|
## VFX workbench (MCP only), measured
|
|
263
299
|
|
|
264
300
|
Create VFX shipped in PixelLab 0.4.128 as a web tool
|
package/docs/GENERATORS.md
CHANGED
|
@@ -687,6 +687,53 @@ change price, use `pixelkiln vfx --description "<what to change>" --effect
|
|
|
687
687
|
repeatable recipe, export it with `pixelkiln vfx --effect <id> --out
|
|
688
688
|
fx/zap` and point a workbench `recipe` at the record.
|
|
689
689
|
|
|
690
|
+
## Target palette
|
|
691
|
+
|
|
692
|
+
PixelLab 0.4.130 added the beta `target_palette` (`colors`, `name`,
|
|
693
|
+
`max_colors`) to `imagePro` and, since, 27 POST endpoints. A style's `palette`
|
|
694
|
+
(2 to 256 colours; one colour is refused), `paletteName` and `maxColors` (2 to
|
|
695
|
+
64, an optional cap per image) are sent as it wherever the endpoint takes it,
|
|
696
|
+
so PixelLab draws with the palette instead of leaving it all to local
|
|
697
|
+
`enforcePalette` snapping. `paletteName` and `maxColors` are accepted on the
|
|
698
|
+
styles of `imagePro`, `imageProFlash`, `objectPro`, `1dir`, `character`,
|
|
699
|
+
`tiles`, `terrain`, `uiAsset` and `uiElement`, and enter `specHash` only when
|
|
700
|
+
set. PixelLab's `smart` flag is not sent (beta, "single images only"). The
|
|
701
|
+
full endpoint list is in [ENDPOINTS.md](./ENDPOINTS.md#target-palette-target_palette).
|
|
702
|
+
|
|
703
|
+
What goes out per asset shape:
|
|
704
|
+
|
|
705
|
+
| Shape | Sent | Not sent, and why |
|
|
706
|
+
|---|---|---|
|
|
707
|
+
| `imagePro`, `imageProFlash`, `1dir`, `tiles`, `uiAsset`, `uiElement` | `target_palette` | `pixflux` keeps its `color_image` swatch |
|
|
708
|
+
| `objectPro` | base, state, and `pro`-mode animation | `v3` animation: the endpoint documents the field for `mode='pro'` only |
|
|
709
|
+
| `character` | `pro` and `pro-flash` bases, states, portraits, outfits | `standard` bases keep the `color_image` + `force_colors` swatch; `v3` has no field; animations (every mode) keep the same swatch |
|
|
710
|
+
| `terrain` | top-down `terrainMode: "pro"` | standard sets (documented "mode='pro' only"), and sidescroller sets (the endpoint has none) |
|
|
711
|
+
| `revision` | `interpolate`, `edit-animation` | `animate`, `animate-pixminimax`, `animate-skeleton` (their endpoints have none), `reduce-colors` (it takes `paletteImage`), and the other modes |
|
|
712
|
+
|
|
713
|
+
Where an endpoint takes both a swatch and the new field (standard characters,
|
|
714
|
+
animations), the existing, verified swatch stays and `target_palette` is not
|
|
715
|
+
added, because the schema does not say they combine. On `imageProFlash`,
|
|
716
|
+
a style image's own colours "give way" to the palette, per PixelLab, so
|
|
717
|
+
`styleTraits.palette` is left as authored. `uiColorPalette` (a prose hint) is
|
|
718
|
+
still sent next to the hex palette on UI assets and elements; the hex palette
|
|
719
|
+
is what PixelLab enforces.
|
|
720
|
+
|
|
721
|
+
A style whose `palette` was already set keeps its hash, so `plan` does not
|
|
722
|
+
call it stale, but regenerating it will now send that palette on the routes
|
|
723
|
+
above (it was already true for `imagePro`). **Costs are unchanged by
|
|
724
|
+
PixelLab's documentation**, and two more routes are now measured with a
|
|
725
|
+
palette: `imagePro` (a 64×64 call billed exactly 10), `imageProFlash` (a
|
|
726
|
+
32×32 still billed exactly 5, in only the four palette colours) and `tiles`
|
|
727
|
+
(one numbered description, 4 tiles at 16px, billed exactly 10, every
|
|
728
|
+
candidate in the palette's greens). The other routes are tested against mocked
|
|
729
|
+
requests only. `maxColors` without a `palette` on a multi-direction asset
|
|
730
|
+
caps each direction separately, so the directions may pick different colours;
|
|
731
|
+
give `colors` for those. Not done: `/create-character-v3` and the 4-direction
|
|
732
|
+
standard character endpoint (no field), `/create-8-direction-object`,
|
|
733
|
+
`/generate-with-style-v2`, `/image-to-pixelart-pro`, `/animate-with-text-v2`
|
|
734
|
+
and `/tilesets` (not wrapped), and `pixelkiln pixelate` (a loose-file
|
|
735
|
+
utility with no style, so no palette).
|
|
736
|
+
|
|
690
737
|
## Style variants
|
|
691
738
|
|
|
692
739
|
Styles are namespaces. Add another style to re-derive the same asset ids into a
|
package/docs/MANIFEST.md
CHANGED
|
@@ -132,9 +132,9 @@ One asset using the fields most projects reach for:
|
|
|
132
132
|
| `shading` | string | PixelLab `map`: `flat shading`, `basic shading`, `medium shading`, or `detailed shading`. |
|
|
133
133
|
| `detail` | string | PixelLab `map`: `low detail`, `medium detail`, or `high detail`. |
|
|
134
134
|
| `seed` | integer | Deterministic provider seed where supported. |
|
|
135
|
-
| `palette` | hex array, `[]` | The style's palette; `#` is optional. Sent to providers that take one
|
|
136
|
-
| `paletteName` | string ≤100 | `imagePro`
|
|
137
|
-
| `maxColors` | integer 2–64 |
|
|
135
|
+
| `palette` | hex array, `[]` | The style's palette; `#` is optional. Sent to providers that take one: `pixflux` and standard characters as a swatch, PixelLab's `target_palette` for `imagePro`, `imageProFlash`, `objectPro`, `1dir`, `tiles`, `uiAsset`, `uiElement`, Pro and Pro Flash characters (and their states, portraits, outfits), Pro `terrain`, and `interpolate`/`edit-animation` revisions (2–256 colours there), Retro Diffusion, ComfyUI bindings. See [Target palette](./GENERATORS.md#target-palette). |
|
|
136
|
+
| `paletteName` | string ≤100 | Generators that send `target_palette` (`imagePro`, `imageProFlash`, `objectPro`, `1dir`, `character`, `tiles`, `terrain`, `uiAsset`, `uiElement`); needs `palette`: the palette's name (`Game Boy`, `PICO-8`), which PixelLab uses to help the look. |
|
|
137
|
+
| `maxColors` | integer 2–64 | The same generators: at most this many colours in each image, drawn from `palette` when one is set. |
|
|
138
138
|
| `enforcePalette` | boolean, `false` | Snap every downloaded PNG to the nearest `palette` colour, no dithering. Needs at least two colours. See [Palette enforcement](#palette-enforcement). |
|
|
139
139
|
| `noBackground` | boolean, `true` | `pixflux` background removal. Set false for scenes/backdrops. |
|
|
140
140
|
| `providerOptions` | object, `{}` | Options grouped by provider id. Only the active provider's object is resolved and hashed. |
|
|
@@ -262,7 +262,9 @@ Generator-specific fields are validated before planning. Important constraints:
|
|
|
262
262
|
- `imagePro` sends `palette` (2 to 256 colours) as PixelLab's beta target
|
|
263
263
|
palette: every pixel of every candidate is one of those colours. Add
|
|
264
264
|
`paletteName` to name it and `maxColors` to cap each candidate's colours.
|
|
265
|
-
|
|
265
|
+
PixelLab 0.4.130's target palette now reaches more tools the same way; see
|
|
266
|
+
[Target palette](./GENERATORS.md#target-palette) for which asset shapes and
|
|
267
|
+
modes send it. Cost is unchanged by it, but unmeasured outside `imagePro`.
|
|
266
268
|
- `tiles` cannot combine `tileFeature` with `styleImages` because the provider
|
|
267
269
|
rejects connectable features in style-tile mode.
|
|
268
270
|
- ComfyUI `frames` derives its count from one 2–64 item `providerInputs`
|
package/docs/PIXELLAB.md
CHANGED
|
@@ -158,7 +158,10 @@ PixelLab 0.4.130 (October 2026) added four things. PixelKiln covers each:
|
|
|
158
158
|
sidescrollers yet.
|
|
159
159
|
- **A target palette for Create Image Pro.** An `imagePro` style's `palette`
|
|
160
160
|
now reaches PixelLab, which draws every pixel from it. `maxColors` caps
|
|
161
|
-
each image and `paletteName` names the palette.
|
|
161
|
+
each image and `paletteName` names the palette. PixelLab then added the
|
|
162
|
+
field to 26 more endpoints, and PixelKiln sends it to the ones it wraps
|
|
163
|
+
where no verified palette mechanism exists; see
|
|
164
|
+
[Target palette](./GENERATORS.md#target-palette).
|
|
162
165
|
- **VFX in the API.** A `vfx` block with a `description` asks PixelLab's
|
|
163
166
|
effects artist for the effect, at 1 generation and up. Presets, parts, and
|
|
164
167
|
recipes still render free on the workbench. See
|
|
@@ -174,6 +177,16 @@ call with the Game Boy palette (10, every pixel one of its four colours), a
|
|
|
174
177
|
lite described effect (1), and normal maps (0.5 each). The home page's latest
|
|
175
178
|
updates section shows the results.
|
|
176
179
|
|
|
180
|
+
**The palette now reaches more tools.** `imageProFlash`, `objectPro`, `1dir`,
|
|
181
|
+
`tiles`, `uiAsset`, `uiElement`, Pro and Pro Flash characters (with their
|
|
182
|
+
states, portraits and outfits), Pro `terrain`, and the `interpolate` and
|
|
183
|
+
`edit-animation` revisions send a style's `palette`, `paletteName` and
|
|
184
|
+
`maxColors` as `target_palette`. Standard characters and every character
|
|
185
|
+
animation keep their `color_image` swatch, and `pixflux` keeps its own. Costs
|
|
186
|
+
with a palette are measured for `imagePro` (10), `imageProFlash` (a 32×32
|
|
187
|
+
still, 5, in only the four palette colours), and `tiles` (4 tiles at 16px,
|
|
188
|
+
10), and unverified elsewhere. The other routes are covered by mocked tests only.
|
|
189
|
+
|
|
177
190
|
## Learn from PixelLab's tutorials
|
|
178
191
|
|
|
179
192
|
PixelLab's YouTube channel teaches its web app, not PixelKiln, but most of
|
package/package.json
CHANGED
|
@@ -401,6 +401,21 @@ and which tutorial(s) demonstrated real (not hypothetical) demand for it.
|
|
|
401
401
|
candidates below 171px. **Measured once**: a 64×64 call with the Game Boy
|
|
402
402
|
palette billed exactly 10, and the picked candidate used only those four
|
|
403
403
|
colours.
|
|
404
|
+
**Rolled out** to the other wrapped tools that take it: `imageProFlash`,
|
|
405
|
+
`objectPro` bases, states and `pro` animations, `1dir`, `tiles`, `uiAsset`,
|
|
406
|
+
`uiElement`, Pro and Pro Flash character bases, states, portraits and
|
|
407
|
+
outfits, top-down Pro `terrain`, and `interpolate`/`edit-animation`
|
|
408
|
+
revisions, through one helper (`targetPaletteBody`). `paletteName` and
|
|
409
|
+
`maxColors` are style fields on those generators, hashed only when set; an
|
|
410
|
+
existing style `palette` keeps its hash and is simply sent on regeneration.
|
|
411
|
+
**Measured live** with a Game Boy palette: `imageProFlash` (a 32×32 still, 5, only the four colours) and `tiles` (4 tiles at 16px, 10, every candidate in the palette), matching the plan, as `imagePro` did (10). **The other routes are mocked tests only, costs unmeasured.** **Not done**:
|
|
412
|
+
standard character bases and every character animation (their verified
|
|
413
|
+
`color_image` + `force_colors` swatch stays, and the schema does not say it
|
|
414
|
+
combines), the standard terrain set (the field is "mode='pro' only"), the
|
|
415
|
+
`v3` object animation (`pro` only), `/create-tileset-sidescroller` and the
|
|
416
|
+
`animate*` revisions (no field), `pixelkiln pixelate` (no style), and the
|
|
417
|
+
unwrapped `/create-8-direction-object`, `/generate-with-style-v2`,
|
|
418
|
+
`/image-to-pixelart-pro`, `/animate-with-text-v2`, `/tilesets`.
|
|
404
419
|
- **October 2026 Pro price cut** — PixelLab 0.4.128 moved every Pro tool from
|
|
405
420
|
20/25/40 to 10/15/25 generations. Cost estimates now use the new prices,
|
|
406
421
|
and `imagePro` (`generate-image-v2`) is tiered instead of a flat 40: a
|
|
@@ -208,7 +208,15 @@ generic background-job endpoint the same way a `revision` is. The style's
|
|
|
208
208
|
`palette` goes out as the beta `target_palette` (PixelLab 0.4.130): every
|
|
209
209
|
pixel of every candidate lands on those 2–256 colours, at no extra cost.
|
|
210
210
|
`paletteName` (needs `palette`) names it, and `maxColors` (2–64) caps each
|
|
211
|
-
candidate's colours, with or without a palette.
|
|
211
|
+
candidate's colours, with or without a palette. The same `target_palette`
|
|
212
|
+
now also goes out for `imageProFlash`, `objectPro` (bases, states, `pro`
|
|
213
|
+
animations), `1dir`, `tiles`, `uiAsset`, `uiElement`, Pro and Pro Flash
|
|
214
|
+
characters (bases, states, portraits, outfits), top-down Pro `terrain`, and
|
|
215
|
+
`interpolate`/`edit-animation` revisions, with `paletteName`/`maxColors`
|
|
216
|
+
accepted on those generators' styles. Standard characters and character
|
|
217
|
+
animations keep their `color_image` swatch, `pixflux` its own, and the
|
|
218
|
+
costs with a palette are measured for `imagePro`, `imageProFlash`, and `tiles`, and unmeasured elsewhere (see `docs/GENERATORS.md#target-palette`).
|
|
219
|
+
PixelLab's `smart` palette
|
|
212
220
|
mapping is not wrapped: it is "single images only", and this endpoint
|
|
213
221
|
returns a grid of candidates below 171px. Reference
|
|
214
222
|
images and a style image (`reference_images`, `style_image` +
|