pixelkiln 0.86.2 → 0.87.0
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/PROVIDERS.md +10 -10
- package/README.md +4 -4
- package/dist/cli.js +167 -20
- package/dist/cli.js.map +1 -1
- package/dist/client/gallery.js +3 -3
- package/dist/index.cjs +136 -18
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +121 -29
- package/dist/index.d.ts +121 -29
- package/dist/index.js +130 -18
- package/dist/index.js.map +1 -1
- package/docs/CHARACTERS.md +2 -2
- package/docs/CLI.md +42 -8
- package/docs/ENDPOINTS.md +88 -11
- package/docs/GENERATORS.md +12 -12
- package/docs/LIBRARY.md +7 -1
- package/docs/MANIFEST.md +1 -1
- package/docs/PIXELLAB.md +6 -6
- package/docs/REVISIONS.md +2 -2
- package/package.json +1 -1
- package/skills/pixelkiln/SKILL.md +5 -2
- package/skills/pixelkiln/references/pixellab-roadmap.md +30 -4
- package/skills/pixelkiln/references/pixellab.md +18 -13
- package/skills/pixelkiln/references/revisions.md +2 -2
package/docs/CHARACTERS.md
CHANGED
|
@@ -69,7 +69,7 @@ asset, that PixelLab draws facing 4 or 8 directions. `mode` picks the
|
|
|
69
69
|
engine: `standard` (1 generation, the skeleton template, `outline`,
|
|
70
70
|
`shading`, and `detail` as soft guidance, and `palette` sent as a colour
|
|
71
71
|
reference), `v3` (2 to 9 by size, the highest quality, up to 256px),
|
|
72
|
-
`pro` (
|
|
72
|
+
`pro` (10 to 25 by size), or `pro-flash` (6 to 17 by size: PixelLab's
|
|
73
73
|
newest image model draws the south sprite and v3 rotates it; sizes are
|
|
74
74
|
multiples of 4 up to 256, `template` may be `custom`, and a `reference`
|
|
75
75
|
pays for the rotations only, 1 at 64px). `size` is the character's size;
|
|
@@ -380,7 +380,7 @@ attached to that character's own PixelLab record:
|
|
|
380
380
|
result sizes (16, 32, 48, 64, 128, or 160 — 128 and 160 render at 2K and cost
|
|
381
381
|
more), independent of the style's own `size`. A portrait takes no prompt: it
|
|
382
382
|
is drawn from the parent's pixels, not text, so it is priced and generated
|
|
383
|
-
like a state,
|
|
383
|
+
like a state, 10 to 25 generations by the size tier (a 16px portrait billed
|
|
384
384
|
exactly 20, the floor, in a live test; see [`docs/ENDPOINTS.md`](ENDPOINTS.md)).
|
|
385
385
|
It lands as `<asset>.png`, one file like a single-direction generator, and
|
|
386
386
|
`pixelkiln fetch` also attaches it to the parent's character record upstream
|
package/docs/CLI.md
CHANGED
|
@@ -53,6 +53,7 @@ Which command:
|
|
|
53
53
|
| check the project before committing or in CI | `pixelkiln doctor`, `pixelkiln plan --check` |
|
|
54
54
|
| see the account balance | `pixelkiln balance` |
|
|
55
55
|
| shrink upscaled outside art to its native grid before using it as a reference | `pixelkiln unzoom --from refs/knight-512.png --out refs/knight.png` |
|
|
56
|
+
| turn a photo, painting, or render into pixel art | `pixelkiln pixelate --from renders/lodge.png --out art/lodge.png` |
|
|
56
57
|
| generate a pixel font (`.ttf` plus glyph atlas) | `pixelkiln font --description "warm orange arcade font" --out fonts/arcade` |
|
|
57
58
|
| start an `animate-skeleton` keypoints file from an image | `pixelkiln estimate-skeleton poses/hero.png --out poses/hero-swing.json` |
|
|
58
59
|
| see a keypoints file's poses over the source before paying | `pixelkiln skeleton-preview hero-swing` |
|
|
@@ -163,11 +164,14 @@ native aspect ratios, uses exact integer zoom for small art, fits large work,
|
|
|
163
164
|
and centers the decision surface on wide displays. A revision row shows its
|
|
164
165
|
parent source beside the new candidates, and a regeneration (`gen --force`)
|
|
165
166
|
shows the art it would replace beside them while that file is still on disk,
|
|
166
|
-
so the question is "is this better?" rather than "is this good?". A
|
|
167
|
-
frame set
|
|
167
|
+
so the question is "is this better?" rather than "is this good?". A frame set
|
|
168
|
+
(a ComfyUI frame set, a PixelLab animation, or a frame-set revision such as
|
|
169
|
+
`animate-skeleton`) appears as an
|
|
168
170
|
animated ordered strip and is accepted or left unresolved as a unit. Its preview
|
|
169
171
|
can be paused, starts paused when reduced motion is enabled, and stops while it
|
|
170
|
-
is offscreen.
|
|
172
|
+
is offscreen. Frames and candidates the provider decoded to a local cache are
|
|
173
|
+
served by the review server itself, since a localhost page may not load a
|
|
174
|
+
`file://` image. Arrow keys navigate, Enter selects, 1–9 choose directly, and 0
|
|
171
175
|
leaves a row unresolved. Only rows submitted
|
|
172
176
|
with **Apply selections** are written to the lockfile. Closing the window applies
|
|
173
177
|
nothing. See the [Getting started guide](GETTING_STARTED.md#start-a-new-project)
|
|
@@ -989,6 +993,36 @@ common cause of disappointing output from every endpoint that takes one.
|
|
|
989
993
|
- `--json` prints the detected zoom factor and both sizes; `--dry-run` sends
|
|
990
994
|
nothing.
|
|
991
995
|
|
|
996
|
+
### `pixelate`
|
|
997
|
+
|
|
998
|
+
```bash
|
|
999
|
+
pixelkiln pixelate --from renders/lodge.png --out art/lodge.png --description "light dithering"
|
|
1000
|
+
```
|
|
1001
|
+
|
|
1002
|
+
Converts a photo, painting, or render into pixel art with PixelLab's Image to
|
|
1003
|
+
Pixel Art Pro Flash (`/image-to-pixelart-pro-flash`). It works on source art
|
|
1004
|
+
that was never pixel art. For pixel art that was only upscaled, use `unzoom`,
|
|
1005
|
+
which recovers the grid instead of redrawing it.
|
|
1006
|
+
|
|
1007
|
+
- PixelLab picks the output size from the source's detected pixel scale; there
|
|
1008
|
+
is no size option. A 256x256 render came back 108x109 and a 384x384 render
|
|
1009
|
+
84x110. Sources over 2048px on the longer side are scaled down upstream.
|
|
1010
|
+
- The result keeps transparency: both opaque renders measured came back with
|
|
1011
|
+
the subject cut out.
|
|
1012
|
+
- `--description` optionally steers the style, e.g. `"retro vibes with light
|
|
1013
|
+
dithering"`.
|
|
1014
|
+
- A flat **6 generations**, confirmed against a live bill. The command prints
|
|
1015
|
+
that and asks first; `--yes` skips the question, `--budget <n>` refuses when
|
|
1016
|
+
`n` is below it, and `--dry-run` sends nothing.
|
|
1017
|
+
- `--out` defaults to `<input>.pixel.png` beside the input, and the input is
|
|
1018
|
+
never overwritten. An existing `--out` is replaced only with `--force`.
|
|
1019
|
+
- `--json` prints the job id, both sizes, the PixelLab gallery `imageId`, and
|
|
1020
|
+
the billed usage.
|
|
1021
|
+
|
|
1022
|
+
Like `unzoom`, it writes a loose file and leaves the lockfile alone. Declare
|
|
1023
|
+
the result as an asset's `source`, or use it as a `styleImages` or
|
|
1024
|
+
`reference` path, to bring it into a manifest.
|
|
1025
|
+
|
|
992
1026
|
### `font`
|
|
993
1027
|
|
|
994
1028
|
```bash
|
|
@@ -1004,8 +1038,8 @@ writes the same two files.
|
|
|
1004
1038
|
- `--weight` is `Bold` or `Regular` (default); `--glyph-px` is the native glyph
|
|
1005
1039
|
size, `8`, `16` (default), `32`, or `64`; `--name` sets the font family name
|
|
1006
1040
|
(PixelLab otherwise uses the description plus the weight).
|
|
1007
|
-
- Costs PixelLab's documented
|
|
1008
|
-
live bill. The command prints that and asks first; `--yes` skips the
|
|
1041
|
+
- Costs PixelLab's documented 15 generations (25 before PixelLab's October
|
|
1042
|
+
2026 Pro price cut), not yet confirmed against a live bill. The command prints that and asks first; `--yes` skips the
|
|
1009
1043
|
question, `--budget <n>` refuses when `n` is below it, and `--dry-run` sends
|
|
1010
1044
|
nothing.
|
|
1011
1045
|
- It waits for the job (PixelLab documents 30-80 s) and then downloads both
|
|
@@ -1092,13 +1126,13 @@ Print the package version. `-v` is an alias.
|
|
|
1092
1126
|
| `--provider <id>` | balance/adopt/salvage/purge/workspace add | Select the account provider for a mixed manifest, or set the workspace catalog's default provider hint. |
|
|
1093
1127
|
| `--account <label>` | workspace add | Free-form account label, e.g. distinguishing sandboxes. |
|
|
1094
1128
|
| `--all` | salvage dry run | List every unclaimed object rather than the first 30. |
|
|
1095
|
-
| `--from <path>` | init/refine/quality check/unzoom | Existing source tree for init; source PNG or quality record for one-file refine mode; baseline for quality check; the upscaled image for unzoom. Omit it to use manifest `style.quality`. |
|
|
1129
|
+
| `--from <path>` | init/refine/quality check/unzoom | Existing source tree for init; source PNG or quality record for one-file refine mode; baseline for quality check; the upscaled image for unzoom; the photo or render for pixelate. Omit it to use manifest `style.quality`. |
|
|
1096
1130
|
| `--exclude <names>` | init | Directory/name fragments to exclude; repeatable. |
|
|
1097
1131
|
| `--generator <name>` | init | Generator assigned to the scaffolded style. |
|
|
1098
1132
|
| `--name <name>` | init/font | Project name for the scaffolded manifest, or the generated font's family name. |
|
|
1099
1133
|
| `--write-prompts` | adopt | Recover provider prompts into the manifest. |
|
|
1100
1134
|
| `--port <n>` | pick/salvage/gallery | Local review or gallery server port; otherwise chooses a free port. |
|
|
1101
|
-
| `--out <path>` | pack/export/refine/recipe install/quality snapshot/unzoom/font | Output base override, final native PNG for path-mode refine, exact recipe destination, quality baseline path, the unzoomed PNG, or the font's `<base>.ttf`/`<base>.png`. Export requires one selected tileset. |
|
|
1135
|
+
| `--out <path>` | pack/export/refine/recipe install/quality snapshot/unzoom/pixelate/font | Output base override, final native PNG for path-mode refine, exact recipe destination, quality baseline path, the unzoomed or pixelated PNG, or the font's `<base>.ttf`/`<base>.png`. Export requires one selected tileset. |
|
|
1102
1136
|
| `--inputs <path>` | pack/quality snapshot | JSON input array; requires `--out`. Quality cases use `{ id, path, record?, tolerances? }`. |
|
|
1103
1137
|
| `--columns <n>` | pack/export | Grid columns, 1–1024; default is near-square. |
|
|
1104
1138
|
| `--format <name>` | export, pack, mount | `export`: `generic` (default), `tiled`, or `godot` (TileSet). `pack` and `mount`: `generic` (default), `aseprite` (sheet JSON), or `godot` (SpriteFrames). |
|
|
@@ -1117,7 +1151,7 @@ Print the package version. `-v` is an alias.
|
|
|
1117
1151
|
| `--note <text>` | refine approve | Optional review note stored in the quality companion. |
|
|
1118
1152
|
| `--model-root <path>` | recipe verify | ComfyUI `models` directory. Enables streamed hash checks for every external model declared by the recipe. |
|
|
1119
1153
|
| `--quantize <n>` | unzoom | `0` auto-detects a palette (default), `-1` keeps every color, `2`-`256` quantizes to exactly that many. |
|
|
1120
|
-
| `--description <text>` | font | The font's style, e.g. `"warm orange arcade font"
|
|
1154
|
+
| `--description <text>` | font/pixelate | The font's style, e.g. `"warm orange arcade font"`, or an optional style steer for pixelate. |
|
|
1121
1155
|
| `--weight <w>` | font | `Bold` or `Regular` (default). |
|
|
1122
1156
|
| `--glyph-px <n>` | font | Native glyph size: `8`, `16` (default), `32`, or `64`. |
|
|
1123
1157
|
| `--generation <n\|hash>` | restore | Bring a replaced generation back: `1` is the most recently replaced, or a prefix of one of its output hashes. One asset at a time. |
|
package/docs/ENDPOINTS.md
CHANGED
|
@@ -38,17 +38,22 @@ matters most for icon and prop work.
|
|
|
38
38
|
| `create-image-pixen` | **1** | sync (~40s) | no | no | Best raw detail at 1 generation |
|
|
39
39
|
| `create-image-bitforge` | **1** | sync (~20s) | yes | yes | Best on paper, poor in practice |
|
|
40
40
|
| `map-objects` | **1** | job (~30s) | rejected | no | Fine when the prompt carries the style |
|
|
41
|
-
| `create-1-direction-object` | **
|
|
41
|
+
| `create-1-direction-object` | **10–25** | job | no | yes | Only when you need rotations |
|
|
42
42
|
| `generate-with-style-v2` (Pro) | **20** | job (~150s) | no | yes | Real style transfer |
|
|
43
|
-
| `generate-image-v2` (Pro) | **
|
|
43
|
+
| `generate-image-v2` (Pro) | **10–25** | job (~150s) | no | yes | Real style transfer |
|
|
44
44
|
|
|
45
|
-
`1dir` prices by canvas area: ≤1024 px =
|
|
46
|
-
64×64 icon therefore costs
|
|
47
|
-
|
|
45
|
+
`1dir` prices by canvas area: ≤1024 px = 10, ≤2048 px = 15, larger = 25. A
|
|
46
|
+
64×64 icon therefore costs 25. These are October 2026 prices; see [the Pro
|
|
47
|
+
price cut](#october-2026-pro-price-cut) below for what changed and what was
|
|
48
|
+
re-measured. `generate-with-style-v2`'s 20 predates the cut and has not been
|
|
49
|
+
re-measured.
|
|
50
|
+
|
|
51
|
+
`generate-image-v2` was a flat 40 at any size until the cut. It now tiers by
|
|
52
|
+
canvas like the other Pro tools: a 64×64 call billed exactly 10.
|
|
48
53
|
|
|
49
54
|
`generate-image-v2` is wrapped by pixelkiln's `imagePro` generator
|
|
50
55
|
(skills/pixelkiln/references/pixellab.md): non-square and larger canvases
|
|
51
|
-
than `pixflux` allows, at the
|
|
56
|
+
than `pixflux` allows, at the 10–25 above. Its `reference_images` and
|
|
52
57
|
`style_image` are not modeled, and its completed job's response shape is
|
|
53
58
|
inferred from `edit-images-v2`'s (also unmeasured for this endpoint
|
|
54
59
|
specifically) rather than confirmed live — see `pollImagePro` in
|
|
@@ -188,6 +193,76 @@ description claims 0.1 generations, the same as the rest of the tier.
|
|
|
188
193
|
|
|
189
194
|
---
|
|
190
195
|
|
|
196
|
+
## Image to Pixel Art Pro Flash, measured
|
|
197
|
+
|
|
198
|
+
`POST /image-to-pixelart-pro-flash` (added in PixelLab 0.4.128, October
|
|
199
|
+
2026) converts a photo, painting, or render into pixel art. Unlike
|
|
200
|
+
`image-to-pixelart` above, it takes no size: PixelLab detects the source's
|
|
201
|
+
pixel scale and picks the output size. The only other fields are an optional
|
|
202
|
+
`description` that steers the style and a `seed`. Sources over 2048px on the
|
|
203
|
+
longer side are scaled down upstream.
|
|
204
|
+
|
|
205
|
+
Measured live, October 2026:
|
|
206
|
+
|
|
207
|
+
| Source | Description | Output | Billed |
|
|
208
|
+
|---|---|---|---|
|
|
209
|
+
| 256×256 opaque render (a knight) | none | 108×109, transparent background | **6** |
|
|
210
|
+
| 384×384 opaque render (a mountain keep) | "light dithering" | 84×110, transparent background | **6** |
|
|
211
|
+
|
|
212
|
+
- It is a background job. The submit response carries `estimated_generations:
|
|
213
|
+
6`, `pricing_provisional: true`, and `image_id`/`source_image_id` (the result
|
|
214
|
+
is also saved to the PixelLab gallery). `usage` on the submit is null.
|
|
215
|
+
- The completed job has `usage: {type: "generations", generations: 6}` and the
|
|
216
|
+
image at `last_response.images[0]` as `{type, base64, width, height}`.
|
|
217
|
+
`last_response.original_images[0]` is the same size, before PixelLab's
|
|
218
|
+
final "touching up pixels" pass. pixelkiln reads `images[0]`.
|
|
219
|
+
- Unlike `image-to-pixelart`, it keeps alpha: both opaque renders came back
|
|
220
|
+
with the subject cut out on transparency.
|
|
221
|
+
|
|
222
|
+
Wired up as `pixelkiln pixelate`, a standalone command on a loose file like
|
|
223
|
+
`unzoom`; see [the CLI reference](./CLI.md#pixelate). Use `unzoom` instead
|
|
224
|
+
for art that is already pixel art and was only upscaled.
|
|
225
|
+
|
|
226
|
+
---
|
|
227
|
+
|
|
228
|
+
## October 2026 Pro price cut
|
|
229
|
+
|
|
230
|
+
PixelLab 0.4.128 (October 2026) cut every Pro tool's price ladder from
|
|
231
|
+
20/25/40 to **10/15/25** generations. The release notes give the new tiers
|
|
232
|
+
by side: 16–256px is 10, 256–384px is 15, 384–512px is 25. PixelLab's
|
|
233
|
+
OpenAPI now quotes "10–25 generations" for 1- and 8-direction objects, Pro
|
|
234
|
+
characters, and Pro object animations, and 15 for `generate-font-pro`
|
|
235
|
+
(previously 25).
|
|
236
|
+
|
|
237
|
+
**Only the prices moved, not the breakpoints.** The release notes put
|
|
238
|
+
352px and 384px in the middle tier, but both billed the top tier (25) when
|
|
239
|
+
re-measured on `inpaint-v3` after the cut, exactly where the old bisection
|
|
240
|
+
below put the boundary. pixelkiln's estimates use the new prices on those
|
|
241
|
+
measured breakpoints. Every historical measurement on this page that says
|
|
242
|
+
20, 25, or 40 predates the cut and is kept as a record.
|
|
243
|
+
|
|
244
|
+
Re-measured after the cut:
|
|
245
|
+
|
|
246
|
+
| Endpoint | Canvas | Before | After |
|
|
247
|
+
|---|---|---|---|
|
|
248
|
+
| `generate-image-v2` | 64×64 | 40 (flat at any size) | **10** |
|
|
249
|
+
| `inpaint-v3` | 256×256 | 20 | **10** |
|
|
250
|
+
| `inpaint-v3` | 288×288 | 25 | **15** |
|
|
251
|
+
| `inpaint-v3` | 352×352 | 40 | **25** |
|
|
252
|
+
| `inpaint-v3` | 384×384 | 40 | **25** |
|
|
253
|
+
|
|
254
|
+
`generate-image-v2` is no longer flat; pixelkiln now prices it with
|
|
255
|
+
`proTierCost` (≤65536px² is 10, ≤102400px² is 15, larger is 25), the same
|
|
256
|
+
function `inpaint-v3` and `edit-images-v2` revisions use.
|
|
257
|
+
|
|
258
|
+
**Create VFX** shipped in the same release as an experimental web tool
|
|
259
|
+
(`pixellab.ai/create-vfx`). As of October 2026 it has no REST endpoint in
|
|
260
|
+
`/v2/openapi.json` and no MCP tool; PixelLab says the MCP tool is coming.
|
|
261
|
+
pixelkiln cannot wrap it until one of those exists; see the
|
|
262
|
+
[roadmap](../skills/pixelkiln/references/pixellab-roadmap.md).
|
|
263
|
+
|
|
264
|
+
---
|
|
265
|
+
|
|
191
266
|
## Tilesets: schema only, not yet measured
|
|
192
267
|
|
|
193
268
|
Called out separately because these are the most capable endpoints for level art
|
|
@@ -385,7 +460,7 @@ constraint, not a hint: 130 badges across two sets came back containing *only*
|
|
|
385
460
|
the requested colours.
|
|
386
461
|
|
|
387
462
|
**Re-roll one bad asset.** 1 generation. `gen --only <id> --force`. Cheaper than
|
|
388
|
-
asking for more candidates. A `1dir` call that yields 16 candidates costs
|
|
463
|
+
asking for more candidates. A `1dir` call that yields 16 candidates costs 10–25.
|
|
389
464
|
|
|
390
465
|
**Clean up fringing.** `remove-background` at 1 generation, and it will not
|
|
391
466
|
disturb the palette.
|
|
@@ -394,7 +469,8 @@ disturb the palette.
|
|
|
394
469
|
size. Do not use `resize`.
|
|
395
470
|
|
|
396
471
|
**Anchor to an existing look rather than a palette.** `generate-with-style-v2`
|
|
397
|
-
(20) or `generate-image-v2`
|
|
472
|
+
(20 before the October 2026 cut, not re-measured) or `generate-image-v2`
|
|
473
|
+
(10–25). `bitforge` claims to do this for 1, but see
|
|
398
474
|
above. `map` has no style anchoring at all. A 1-bit set generated through it
|
|
399
475
|
came back with a yellow star and a brown chocolate bar.
|
|
400
476
|
|
|
@@ -562,8 +638,8 @@ Listed so the gaps are known rather than assumed away:
|
|
|
562
638
|
neither schema carries a usage example.
|
|
563
639
|
- `/generate-font-pro` (+ `GET /generate-font-pro/{job_id}`) — an 80-glyph
|
|
564
640
|
atlas PNG plus a `.ttf` from a style description, `weight`
|
|
565
|
-
(`Bold`/`Regular`), and `glyph_px` (8/16/32/64). Documented at
|
|
566
|
-
generations, unmeasured. Wired up as `pixelkiln font`, outside the
|
|
641
|
+
(`Bold`/`Regular`), and `glyph_px` (8/16/32/64). Documented at 15
|
|
642
|
+
generations since the October 2026 cut (25 before), unmeasured. Wired up as `pixelkiln font`, outside the
|
|
567
643
|
manifest; see [the CLI reference](./CLI.md#font).
|
|
568
644
|
- Everything else PixelLab's own tutorials demonstrate that this file has no
|
|
569
645
|
entry for at all — "animation to animation" motion transfer,
|
|
@@ -575,7 +651,8 @@ Listed so the gaps are known rather than assumed away:
|
|
|
575
651
|
`uiAsset` generator; cost confirmed live at one data point, 20 generations
|
|
576
652
|
for a 256x192 canvas).
|
|
577
653
|
- `image-to-pixelart-pro` takes only `image` + `description`, no size fields.
|
|
578
|
-
The non-Pro version is characterised above
|
|
654
|
+
The non-Pro version is characterised above, and the Pro Flash version,
|
|
655
|
+
which pixelkiln wraps, [below](#image-to-pixel-art-pro-flash-measured).
|
|
579
656
|
- the tileset family, with schema documented above and costs unmeasured
|
|
580
657
|
(the standalone isometric tile endpoint alongside it now has one real
|
|
581
658
|
measured data point — see above)
|
package/docs/GENERATORS.md
CHANGED
|
@@ -10,17 +10,17 @@ account; [ENDPOINTS.md](./ENDPOINTS.md) contains the detailed experiments.
|
|
|
10
10
|
|---|---|---:|---|
|
|
11
11
|
| Standalone prop or icon with arbitrary dimensions | `map` (default) | 1 generation | 1 |
|
|
12
12
|
| Exact fixed palette | `pixflux` | 1 generation | 1 inline image |
|
|
13
|
-
| Candidate variety, richer rendering, future rotation/animation | `1dir` |
|
|
14
|
-
| Ground tiles or connectable structural sets | `tiles` |
|
|
15
|
-
| Two-terrain Wang tileset for elevation (grass to water, floor to cliff) | `terrain` |
|
|
13
|
+
| Candidate variety, richer rendering, future rotation/animation | `1dir` | 10–25 generations | 4–64 by size |
|
|
14
|
+
| Ground tiles or connectable structural sets | `tiles` | 10–25 generations | variations or complete set |
|
|
15
|
+
| Two-terrain Wang tileset for elevation (grass to water, floor to cliff) | `terrain` | 10–25 generations (unmeasured) | 16 or 25 tiles |
|
|
16
16
|
| A single elevation tile — a raised mesa, a cliff block | `isometricTile` | 1 generation | 1 |
|
|
17
|
-
| Larger or non-square scene or background, up to 792 wide and 688 tall | `imagePro` |
|
|
17
|
+
| Larger or non-square scene or background, up to 792 wide and 688 tall | `imagePro` | 10–25 generations by canvas | 1–64 by size |
|
|
18
18
|
| Controlled pose/expression sequence in ComfyUI | `frames` | 0 `free` provider units | one atomic ordered set |
|
|
19
19
|
| Animated GIF or spritesheet from Retro Diffusion | `animation` | $0.07–$0.25 per animation (published price) | 1 GIF or PNG sheet |
|
|
20
|
-
| A character facing 4 or 8 directions, its poses, and its animations | `character` | 1 per base (standard),
|
|
20
|
+
| A character facing 4 or 8 directions, its poses, and its animations | `character` | 1 per base (standard), 10–25 per pose or portrait, 1 per template loop (2–4 as `skeleton-v3`), 20 per outfit (measured once) | one set of directions, one ordered loop, or one portrait |
|
|
21
21
|
| A prop, creature, or vehicle with rotations, states, or loops but no character rig | `objectPro` | about 6 per base at 64px (unmeasured) | one set of directions, or one ordered loop |
|
|
22
22
|
| UI chrome — panels, buttons, health bars, toolbars | `uiAsset` | 20 generations (measured once, at 256x192) | 1 composited image |
|
|
23
|
-
| One UI element from a description, 16px and up, optionally guided by a concept image | `uiElement` |
|
|
23
|
+
| One UI element from a description, 16px and up, optionally guided by a concept image | `uiElement` | 10–25 generations (unmeasured) | 1 image |
|
|
24
24
|
| A styled still on the Pro Flash model, or the south sprite a Pro Flash character will rotate | `imageProFlash` | 5–9 generations (PixelLab's provisional quote) | 1 image |
|
|
25
25
|
|
|
26
26
|
Start with `map` unless a required capability points elsewhere. Forty `map`
|
|
@@ -275,13 +275,13 @@ and regenerating the parent makes the child stale.
|
|
|
275
275
|
|---|---:|---:|
|
|
276
276
|
| base, `mode: standard` | create-character-with-4/8-directions | 1 |
|
|
277
277
|
| base, `mode: v3` | create-character-v3 | 1 + ceil(size² × 8 / 65536): 2 at 64px, 3 at 128px; from a `reference`, the rotations alone on its canvas: 1 at 64px |
|
|
278
|
-
| base, `mode: pro` | create-character-pro |
|
|
278
|
+
| base, `mode: pro` | create-character-pro | 10–25 by canvas |
|
|
279
279
|
| base, `mode: pro-flash` | create-character-pro-flash | image tier (5 to 96px, 6 to 208px, 9 above) + ceil(size² × 8 / 65536): 6 at 64px, 8 at 128px, 17 at 256px; rotations only from a `reference` |
|
|
280
|
-
| state | create-character-state |
|
|
280
|
+
| state | create-character-state | 10–25 by canvas |
|
|
281
281
|
| animation with a `template` | animate-character | 1 |
|
|
282
282
|
| animation from text (v3) | animate-character | ceil(size² × frames / 65536): 1 at 64px, 2 at 128px |
|
|
283
|
-
| animation, `mode: pro` | animate-character |
|
|
284
|
-
| portrait | portrait-character-pro |
|
|
283
|
+
| animation, `mode: pro` | animate-character | 10–25 by canvas |
|
|
284
|
+
| portrait | portrait-character-pro | 10–25 by `size` (16px billed exactly 20 live, before the October 2026 cut) |
|
|
285
285
|
| outfit | transfer-outfit-v2 | 20 (a 2-frame, 92×92 job billed exactly this live; not yet measured at other frame counts or canvases) |
|
|
286
286
|
|
|
287
287
|
The 20–40 tiers are PixelLab's; the tier is resolved from the canvas when
|
|
@@ -450,7 +450,7 @@ Left as an over-read for `--budget` until a second size is measured; see
|
|
|
450
450
|
`imageProFlash` wraps PixelLab's `/create-image-pro-flash`: one native
|
|
451
451
|
pixel-art image on the Pro Flash model, the same model the `character` and
|
|
452
452
|
`objectPro` `pro-flash` engines draw with, as a plain still. It sits between
|
|
453
|
-
`pixflux`/`map` (1 generation, no style reference) and `imagePro` (
|
|
453
|
+
`pixflux`/`map` (1 generation, no style reference) and `imagePro` (10–25 by canvas):
|
|
454
454
|
|
|
455
455
|
```jsonc
|
|
456
456
|
{
|
|
@@ -530,7 +530,7 @@ to 16×16, which suits icons and small widgets:
|
|
|
530
530
|
`imagePro`'s.
|
|
531
531
|
|
|
532
532
|
**Unmeasured.** The schema carries no usage example and no call has been
|
|
533
|
-
billed yet. The plan prices it on the same
|
|
533
|
+
billed yet. The plan prices it on the same 10/15/25 canvas tiers as
|
|
534
534
|
`1dir`/`tiles`, the safe over-read for a Pro endpoint, and the completed
|
|
535
535
|
job's shape is read defensively (`pollUiElement` names the keys it got if
|
|
536
536
|
the shape is not the documented `images` list).
|
package/docs/LIBRARY.md
CHANGED
|
@@ -153,7 +153,13 @@ against `buildPlan` and the session budget and runs `submit`, `poll`, and
|
|
|
153
153
|
and `applyReview` host the `pick` sheet for a job's waiting keys. The sheet
|
|
154
154
|
itself comes from `prepareReview`, which `runPicker` also uses: it gathers the
|
|
155
155
|
candidate groups, the local files the sheet may load, and the apply step,
|
|
156
|
-
without an HTTP server of its own.
|
|
156
|
+
without an HTTP server of its own. Those files (`session.assets`, exact route →
|
|
157
|
+
path and content type) are revision sources, the art a regeneration replaces,
|
|
158
|
+
and any frame or candidate the provider cached on local disk, such as
|
|
159
|
+
PixelLab's decoded animation frames. A browser will not load a `file://` image
|
|
160
|
+
into a page served over HTTP, so the sheet names each of those by its route,
|
|
161
|
+
under `routePrefix` when one is given; a host that embeds the sheet must serve
|
|
162
|
+
every route in `assets`. Hosted provider URLs reach the sheet unchanged.
|
|
157
163
|
|
|
158
164
|
## Hand edits and the in-browser editor
|
|
159
165
|
|
package/docs/MANIFEST.md
CHANGED
|
@@ -492,7 +492,7 @@ their own page: [Characters](./CHARACTERS.md) and
|
|
|
492
492
|
| `keypointsFile` | string, required for `animate-skeleton` | Manifest-relative JSON file (`src/skeleton.ts`'s `SkeletonSetSchema`): the pose the source is already in, plus 3–15 per-frame poses. See [Skeleton-driven animation](./REVISIONS.md#skeleton-driven-animation). |
|
|
493
493
|
| `skeletonTemplate` | string | `animate-skeleton` only. Body a joint's missing `depth` is taken from: `mannequin` (default), `bear`, `cat`, `dog`, `horse`, or `lion`. |
|
|
494
494
|
| `description` | string | `animate-skeleton`: what the subject *looks like* (colours, clothing, held items) — the asset's own `prompt` is sent as the motion's short label instead. `remove-background`: a hint naming the foreground. Rejected on other modes. |
|
|
495
|
-
| `engine` | enum | `image-to-image`/`inpaint` only. `pro-flash` draws the edit with PixelLab's Pro Flash edit or inpaint endpoint instead of the default Pro one: 5–9 generations instead of
|
|
495
|
+
| `engine` | enum | `image-to-image`/`inpaint` only. `pro-flash` draws the edit with PixelLab's Pro Flash edit or inpaint endpoint instead of the default Pro one: 5–9 generations instead of 10–25, 32 to 256px per side in multiples of 4, no `strength`. Omit for the default. |
|
|
496
496
|
|
|
497
497
|
The parent may use committed `source`, downloaded generated output, or a
|
|
498
498
|
current approved quality output. Parent and mask hashes participate in the
|
package/docs/PIXELLAB.md
CHANGED
|
@@ -69,16 +69,16 @@ unapproved files. See [Manifest quality profiles](./MANIFEST.md#quality-profiles
|
|
|
69
69
|
|---|---|---:|
|
|
70
70
|
| `map` | You need one prop, icon, building, or landmark at arbitrary dimensions | 1 generation |
|
|
71
71
|
| `pixflux` | You need a closed palette or a full-bleed background | 1 generation |
|
|
72
|
-
| `1dir` | You need references or several candidates for human review |
|
|
73
|
-
| `tiles` | You need ground variations or a connected structural set |
|
|
74
|
-
| `terrain` | You need a two-terrain Wang tileset (grass to water, floor to cliff) |
|
|
72
|
+
| `1dir` | You need references or several candidates for human review | 10 to 25 generations |
|
|
73
|
+
| `tiles` | You need ground variations or a connected structural set | 10 to 25 generations |
|
|
74
|
+
| `terrain` | You need a two-terrain Wang tileset (grass to water, floor to cliff) | 10 to 25 generations (unmeasured) |
|
|
75
75
|
| `isometricTile` | You need one standalone isometric tile, 16 to 64px | 1 generation (measured once) |
|
|
76
|
-
| `imagePro` | You need a larger or non-square scene, up to 792 wide and 688 tall |
|
|
76
|
+
| `imagePro` | You need a larger or non-square scene, up to 792 wide and 688 tall | 10 to 25 generations |
|
|
77
77
|
| `imageProFlash` | You need a still on the Pro Flash model, optionally styled from one image, 16 to 256px | 5 to 9 generations (provisional quote) |
|
|
78
78
|
| `character` | You need a character in 4 or 8 directions, with states, loops, portraits, or outfits | See [Characters](./CHARACTERS.md) |
|
|
79
79
|
| `objectPro` | You need a prop or creature with rotations, states, or loops but no character rig | about 6 at 64px (unmeasured) |
|
|
80
80
|
| `uiAsset` | You need a UI panel composited from pieces and named elements, 192px and up | 20 generations (measured once) |
|
|
81
|
-
| `uiElement` | You need one UI element from a description, 16px and up |
|
|
81
|
+
| `uiElement` | You need one UI element from a description, 16px and up | 10 to 25 generations (unmeasured) |
|
|
82
82
|
|
|
83
83
|
`map` accepts these values:
|
|
84
84
|
|
|
@@ -93,7 +93,7 @@ channel before building a production batch. For a scenic background, use
|
|
|
93
93
|
`pixflux` with `noBackground: false`.
|
|
94
94
|
|
|
95
95
|
Read [Generator selection](./GENERATORS.md) for the full constraints and
|
|
96
|
-
measured economics. "
|
|
96
|
+
measured economics. "10 to 25 generations" is a tier, not an exact figure:
|
|
97
97
|
`poll` reads what a completed job actually billed and records it as `billed`
|
|
98
98
|
beside the submit-time `cost` estimate a wave budget spends against;
|
|
99
99
|
`pixelkiln history`, `plan --json`, and the gallery show both when they
|
package/docs/REVISIONS.md
CHANGED
|
@@ -593,7 +593,7 @@ source's own size; the canvas never grows) or `/inpaint-image-pro-flash`
|
|
|
593
593
|
(replaces only the mask's white pixels and keeps the rest exactly). It is the
|
|
594
594
|
same model the `imageProFlash` generator and the `pro-flash` character engine
|
|
595
595
|
use, priced on the same provisional Pro Flash tier (5 generations up to 96px,
|
|
596
|
-
6 up to 208px, 9 beyond) instead of the
|
|
596
|
+
6 up to 208px, 9 beyond) instead of the 10–25 of the default Pro endpoints.
|
|
597
597
|
Sources must be 32 to 256px per side in multiples of 4; `strength` is refused,
|
|
598
598
|
since neither endpoint has one. The finished job is read the same way as the
|
|
599
599
|
default endpoints'. PixelLab also offers reference-image edits, a
|
|
@@ -635,7 +635,7 @@ further — there is nothing to ask.
|
|
|
635
635
|
- `interpolate` (`/interpolation-v2`) and `edit-animation`
|
|
636
636
|
(`/edit-animation-v2`) are both documented "Pro" endpoints with no usage
|
|
637
637
|
example in the schema and no live measurement. `estimate()` borrows the
|
|
638
|
-
same
|
|
638
|
+
same 10/15/25 canvas tiers the other unmeasured Pro edits use, sized on the
|
|
639
639
|
keyframe for `interpolate` and on the packed frame grid for
|
|
640
640
|
`edit-animation` (four 32×32 frames price as a 64×64 canvas, the 40 tier).
|
|
641
641
|
Over-reading is the safe direction for `--budget`; expect a live bill at or
|
package/package.json
CHANGED
|
@@ -56,7 +56,10 @@ hashes.
|
|
|
56
56
|
- Before an outside or upscaled sprite becomes a `reference` or `styleImages`
|
|
57
57
|
path, run `pixelkiln unzoom --from <file> --out <file>` to bring it back to
|
|
58
58
|
its native pixel grid. Upscaled input degrades every PixelLab endpoint that
|
|
59
|
-
takes a reference, and the unzoomed result is opaque.
|
|
59
|
+
takes a reference, and the unzoomed result is opaque. For outside art that
|
|
60
|
+
was never pixel art (a photo, painting, or render), `pixelkiln pixelate
|
|
61
|
+
--from <file> --out <file>` converts it with PixelLab's Image to Pixel Art
|
|
62
|
+
Pro Flash for 6 generations and asks first.
|
|
60
63
|
- Treat every ComfyUI output as source material until it passes the native-grid,
|
|
61
64
|
final-palette, prompt-coverage, and human 1× checks in the ComfyUI reference.
|
|
62
65
|
A successful PNG or high-confidence grid result is not quality approval.
|
|
@@ -111,7 +114,7 @@ Read only the reference needed for the current decision:
|
|
|
111
114
|
|
|
112
115
|
- For PixelLab configuration, generators (including `uiElement` for single UI
|
|
113
116
|
pieces and `imageProFlash` for styled stills), costs, alpha behavior,
|
|
114
|
-
account operations, or the `unzoom`, `font`, `estimate-skeleton`, and
|
|
117
|
+
account operations, or the `unzoom`, `pixelate`, `font`, `estimate-skeleton`, and
|
|
115
118
|
`skeleton-preview` utilities, read [references/pixellab.md](references/pixellab.md). For a
|
|
116
119
|
PixelLab style aimed at a specific resolution or fidelity tier (retro,
|
|
117
120
|
high-detail, or matching an existing set's look), read
|
|
@@ -55,7 +55,7 @@ and which tutorial(s) demonstrated real (not hypothetical) demand for it.
|
|
|
55
55
|
— a real gap, not a docs fix: `tiles`'s own `tileFeature: "tileset"` draws
|
|
56
56
|
one terrain's edges, not two named, connected terrain levels with their own
|
|
57
57
|
transition prompt. Closed by the `terrain` generator; see
|
|
58
|
-
`pixellab.md`. Cost is unmeasured (borrows the same
|
|
58
|
+
`pixellab.md`. Cost is unmeasured (borrows the same 10/15/25 canvas tiers
|
|
59
59
|
already confirmed for `tiles` and `1dir`); `/create-tileset-sidescroller`,
|
|
60
60
|
reference images, `color_image`, and the `pro` pipeline's own tunables
|
|
61
61
|
beyond `spreadX`/`slopeSize`/`raggedness` remain unmodeled.
|
|
@@ -161,7 +161,7 @@ and which tutorial(s) demonstrated real (not hypothetical) demand for it.
|
|
|
161
161
|
now wrapped too, as the `interpolate` revision mode (parent = start
|
|
162
162
|
keyframe, required `lastFrame` = end keyframe), alongside
|
|
163
163
|
`/edit-animation-v2` as `edit-animation` (one text edit across a whole
|
|
164
|
-
frame set). Both unmeasured, both borrowing the
|
|
164
|
+
frame set). Both unmeasured, both borrowing the 10/15/25 Pro canvas tiers.
|
|
165
165
|
Real demonstrated demand for Interpolate: "Level Up Your Game: Custom
|
|
166
166
|
Sprite Animation Tutorial" used it
|
|
167
167
|
repeatedly, in Aseprite via PixelLab's own extension, as the fix for an
|
|
@@ -291,16 +291,30 @@ and which tutorial(s) demonstrated real (not hypothetical) demand for it.
|
|
|
291
291
|
unconfirmed beyond the endpoint's existence. Closed by `pixelkiln font`, a
|
|
292
292
|
standalone command rather than a generator: a font has no style suffix,
|
|
293
293
|
candidates, or image-shaped primary output for the lockfile to track. The
|
|
294
|
-
documented 25
|
|
294
|
+
documented price (15 since October 2026, 25 before) is unmeasured.
|
|
295
295
|
- **Unzoom** (`/unzoom`, recover the native grid of upscaled pixel art) —
|
|
296
296
|
PixelLab's own API overview calls upscaled reference art "the most common
|
|
297
297
|
cause of disappointing output" from every reference-taking endpoint.
|
|
298
298
|
Closed by `pixelkiln unzoom`, a standalone command on a loose file, since
|
|
299
299
|
the art it is for comes from outside the manifest. Its result is opaque
|
|
300
300
|
(transparency is composited onto white first). Cost unmeasured.
|
|
301
|
+
- **Image to Pixel Art Pro Flash** (`/image-to-pixelart-pro-flash`, added in
|
|
302
|
+
PixelLab 0.4.128, October 2026) — converts a photo, painting, or render
|
|
303
|
+
into pixel art, choosing the output size itself. Closed by `pixelkiln
|
|
304
|
+
pixelate`, a standalone command on a loose file like `unzoom`, since its
|
|
305
|
+
input comes from outside the manifest. Billed a flat 6 generations live,
|
|
306
|
+
and unlike `image-to-pixelart` it keeps transparency
|
|
307
|
+
(docs/ENDPOINTS.md, "Image to Pixel Art Pro Flash, measured").
|
|
308
|
+
- **October 2026 Pro price cut** — PixelLab 0.4.128 moved every Pro tool from
|
|
309
|
+
20/25/40 to 10/15/25 generations. Cost estimates now use the new prices,
|
|
310
|
+
and `imagePro` (`generate-image-v2`) is tiered instead of a flat 40: a
|
|
311
|
+
64x64 call billed 10 live. Re-measured `inpaint-v3` calls (256, 288, 352,
|
|
312
|
+
and 384px billed 10, 15, 25, 25) show the breakpoints did not move, despite
|
|
313
|
+
the release notes putting 352-384px in the middle tier (docs/ENDPOINTS.md,
|
|
314
|
+
"October 2026 Pro price cut").
|
|
301
315
|
- **Pro Flash for plain image create, edit, and inpaint** — a third image
|
|
302
316
|
tier, distinct from `pixflux`/`map`'s 1-generation endpoints and
|
|
303
|
-
`imagePro`'s
|
|
317
|
+
`imagePro`'s `generate-image-v2` (a flat 40 then, 10–25 since October 2026), on the same model
|
|
304
318
|
`character`/`objectPro` already use for their `pro-flash` engine
|
|
305
319
|
(`gpt-image-2.5-flare`), confirmed against PixelLab's MCP tool schemas.
|
|
306
320
|
Demonstrated in "Pixel Art Animation Tutorial: Images Pro Flash, Skeleton
|
|
@@ -349,6 +363,18 @@ and which tutorial(s) demonstrated real (not hypothetical) demand for it.
|
|
|
349
363
|
from an existing 8-direction object's sprites), is not worth a second,
|
|
350
364
|
pricier engine on its own.
|
|
351
365
|
|
|
366
|
+
## Create VFX (experimental, no API yet)
|
|
367
|
+
|
|
368
|
+
PixelLab 0.4.128 (October 2026) added Create VFX, an experimental web tool
|
|
369
|
+
for pixel-art visual effects (`pixellab.ai/create-vfx`). As of that release it
|
|
370
|
+
has no endpoint in `/v2/openapi.json` and no MCP tool; PixelLab's release
|
|
371
|
+
notes say it "will be added for MCP". Effects are a real gap for game work
|
|
372
|
+
(hit sparks, spell bursts, dust puffs), and pixelkiln's closest substitutes
|
|
373
|
+
are an `animate` revision or an `objectPro` animation, neither built for it.
|
|
374
|
+
Revisit once an endpoint appears: check its request shape, whether the
|
|
375
|
+
result is a frame set or a sheet, and its cost, then decide between a
|
|
376
|
+
generator (frames into a `pack`able set) and a loose-file command.
|
|
377
|
+
|
|
352
378
|
## Map Workshop (scene composition)
|
|
353
379
|
|
|
354
380
|
PixelLab's actual scene-building surface: lay out a tile floor, place
|
|
@@ -22,15 +22,15 @@ providers, or before any PixelLab account operation.
|
|
|
22
22
|
|---|---|---:|
|
|
23
23
|
| `map` | One prop, icon, building, or landmark, up to 400×400 | 1 generation |
|
|
24
24
|
| `pixflux` | Closed palettes or full-bleed backgrounds up to 400×400 | 1 generation |
|
|
25
|
-
| `1dir` | Reference-guided work or several candidates |
|
|
26
|
-
| `tiles` | Ground variations or connected structures |
|
|
27
|
-
| `terrain` | A two-terrain Wang tileset for elevation (grass-to-water, floor-to-cliff) | Unmeasured; borrows the same
|
|
28
|
-
| `imagePro` | A larger or non-square background/scene, or real style transfer | **
|
|
25
|
+
| `1dir` | Reference-guided work or several candidates | 10–25 generations |
|
|
26
|
+
| `tiles` | Ground variations or connected structures | 10–25 generations |
|
|
27
|
+
| `terrain` | A two-terrain Wang tileset for elevation (grass-to-water, floor-to-cliff) | Unmeasured; borrows the same 10–25 canvas tiers |
|
|
28
|
+
| `imagePro` | A larger or non-square background/scene, or real style transfer | **10–25 generations** by canvas (64px billed 10; a flat 40 before October 2026) |
|
|
29
29
|
| `character` | A character in 4 or 8 directions, its poses (`state`), its loops (`animation`), bust `portrait`s, and `outfit` transfers onto a loop | 1 per standard base, 6 per pro-flash base at 64px (1 from a `reference`), 20–40 per pose or portrait, 1 per template loop per direction (2–4 as `skeleton-v3`), 20 per outfit (measured once) |
|
|
30
30
|
| `objectPro` | A prop, creature, or vehicle that needs rotations, states, or loops but has no character rig | 6 per base at 64px (1 from a `reference`), **unmeasured**; assumed to match `character` pro-flash |
|
|
31
31
|
| `isometricTile` | One standalone isometric tile (a raised mesa, a cliff block), 16–64px | **1 generation, measured once** (32px `block`) |
|
|
32
32
|
| `uiAsset` | A UI panel, button, health bar, or other chrome, from precise `pieces` and/or named `elements` | **20 generations, measured once** (256×192); the borrowed canvas-tier estimate still predicts 40 |
|
|
33
|
-
| `uiElement` | One UI element (button, slot, bar, dialogue box) from the prompt, 16px and up, with an optional concept image |
|
|
33
|
+
| `uiElement` | One UI element (button, slot, bar, dialogue box) from the prompt, 16px and up, with an optional concept image | 10–25 generations, **unmeasured** |
|
|
34
34
|
| `imageProFlash` | A styled still on the Pro Flash model (style image + `styleTraits`), 16–256px in multiples of 4; also the natural source for a Pro Flash character's south sprite | 5–9 generations, PixelLab's provisional quote |
|
|
35
35
|
|
|
36
36
|
`tiles` is not limited to top-down ground: `tileType` selects the projection
|
|
@@ -140,9 +140,10 @@ ceiling in a corner also depends on aspect ratio, e.g. 512×512 for square or
|
|
|
140
140
|
688×384 for 16:9), where `pixflux` tops out at 400×400 with no style
|
|
141
141
|
reference at all. Set the asset's `width`/`height` for anything other than
|
|
142
142
|
the style's default square. Unlike every other multi-candidate generator
|
|
143
|
-
here,
|
|
144
|
-
|
|
145
|
-
|
|
143
|
+
here, it was a flat 40 generations at any size until PixelLab's October 2026
|
|
144
|
+
Pro price cut; it now tiers by canvas at 10/15/25 like the other Pro tools,
|
|
145
|
+
and a 64×64 call billed exactly 10 (`docs/ENDPOINTS.md`, "October 2026 Pro
|
|
146
|
+
price cut"). One call still returns
|
|
146
147
|
several candidates to pick from by the same size tiering as `1dir` (up to
|
|
147
148
|
42px: 64, 43–85px: 16, 86–170px: 4, above 170px: 1), reached through the
|
|
148
149
|
generic background-job endpoint the same way a `revision` is. Reference
|
|
@@ -260,7 +261,7 @@ the prompt, no `pieces`/`elements` layout, sizes from 16×16 (up to 792 wide,
|
|
|
260
261
|
the `concept_image` (design guidance); `uiColorPalette` is sent as
|
|
261
262
|
`color_palette`. Reach for it over `uiAsset` for icons, slots, and small
|
|
262
263
|
widgets under `uiAsset`'s 192px floor. Unmeasured: the plan borrows the
|
|
263
|
-
|
|
264
|
+
10/15/25 canvas tiers, and the completed job's shape has not been observed
|
|
264
265
|
live.
|
|
265
266
|
|
|
266
267
|
`imageProFlash` wraps `/create-image-pro-flash`, the Pro Flash model as a plain
|
|
@@ -270,7 +271,7 @@ provisional `/pro-flash/cost` quotes). Its lock entry keeps PixelLab's
|
|
|
270
271
|
byte-for-byte that still's file is sent the id instead of the upload (same
|
|
271
272
|
price, no re-encode). The same model edits and inpaints through a revision's
|
|
272
273
|
`"engine": "pro-flash"` (`image-to-image`/`inpaint` only, 32–256px in multiples
|
|
273
|
-
of 4, no `strength`), at the Pro Flash tier instead of the Pro endpoints'
|
|
274
|
+
of 4, no `strength`), at the Pro Flash tier instead of the Pro endpoints' 10–25.
|
|
274
275
|
|
|
275
276
|
Do not confuse pixelkiln's `map` generator with PixelLab's own "Map
|
|
276
277
|
Workshop": `map` returns one static prop, icon, or building in a single
|
|
@@ -466,12 +467,16 @@ reference-image method, palette correction, inpaint's output-method choice,
|
|
|
466
467
|
and inpainting with surrounding `context_image`. See
|
|
467
468
|
[pixellab-roadmap.md](./pixellab-roadmap.md) for the confirmed shape.
|
|
468
469
|
|
|
469
|
-
|
|
470
|
+
Four commands call PixelLab on loose files, outside the manifest and
|
|
470
471
|
lockfile. `pixelkiln unzoom --from <file> --out <file>` returns upscaled
|
|
471
472
|
pixel art to its native grid; run it before outside art becomes a
|
|
472
473
|
`reference` or `styleImages` entry (input at least 256×256, result opaque,
|
|
473
|
-
cost unmeasured). `pixelkiln
|
|
474
|
-
|
|
474
|
+
cost unmeasured). `pixelkiln pixelate --from <file> --out <file>` converts a
|
|
475
|
+
photo, painting, or render into pixel art with Image to Pixel Art Pro Flash:
|
|
476
|
+
PixelLab picks the output size, the result keeps transparency, an optional
|
|
477
|
+
`--description` steers the style, and it costs a flat 6 generations
|
|
478
|
+
(measured) after asking first. `pixelkiln font --description <text> --out <base>` writes a
|
|
479
|
+
`.ttf` and an 80-glyph atlas for PixelLab's documented 15 generations, and
|
|
475
480
|
asks first. `pixelkiln estimate-skeleton <image> --out <file>` starts an
|
|
476
481
|
`animate-skeleton` keypoints file, and `pixelkiln skeleton-preview <asset>`
|
|
477
482
|
draws its poses over the source for free. See `docs/CLI.md`, "PixelLab utilities".
|
|
@@ -17,7 +17,7 @@ Read this reference when an asset declares `revision`.
|
|
|
17
17
|
- On PixelLab, `"engine": "pro-flash"` sends an `image-to-image` or `inpaint`
|
|
18
18
|
revision to the Pro Flash edit/inpaint endpoints instead of the Pro ones:
|
|
19
19
|
5 generations up to 96px, 6 up to 208px, 9 beyond (provisional quotes),
|
|
20
|
-
against
|
|
20
|
+
against 10–25. The parent must be 32–256px per side in multiples of 4, and
|
|
21
21
|
`strength` is refused. Other modes reject `engine`.
|
|
22
22
|
- `remove-background` (PixelLab, one image up to 400x400, `removalTask`
|
|
23
23
|
`simple` or `complex`, optional `description` hint) cuts the background out
|
|
@@ -71,7 +71,7 @@ Read this reference when an asset declares `revision`.
|
|
|
71
71
|
`edit-animation` applies one prompt across a whole frame set (a cape added
|
|
72
72
|
to every frame of a walk); its frame ceiling falls with frame size (16 up
|
|
73
73
|
to 64px, 9 up to 80px, 4 up to 256px). Both land in candidate review and
|
|
74
|
-
are unmeasured; their plan cost borrows the
|
|
74
|
+
are unmeasured; their plan cost borrows the 10/15/25 Pro tiers.
|
|
75
75
|
- Both PixelLab and ComfyUI can back a `revision`, not just ComfyUI.
|
|
76
76
|
PixelLab's `reduce-colors`/`correct-pixelart` calls its own
|
|
77
77
|
`/reduce-colors`/`/correct-pixelart` endpoints synchronously (no background
|