pixelkiln 0.68.0 → 0.68.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/PROVIDERS.md +30 -15
- package/README.md +18 -18
- package/docs/AGENTS.md +1 -1
- package/docs/CHARACTERS.md +4 -1
- package/docs/CLI.md +32 -25
- package/docs/GENERATORS.md +10 -1
- package/docs/MANIFEST.md +4 -2
- package/docs/PIXELLAB.md +14 -3
- package/docs/README.md +2 -2
- package/package.json +1 -1
- package/skills/pixelkiln/SKILL.md +10 -4
- package/skills/pixelkiln/references/pixellab-roadmap.md +52 -80
- package/skills/pixelkiln/references/pixellab.md +22 -11
- package/skills/pixelkiln/references/revisions.md +18 -4
package/PROVIDERS.md
CHANGED
|
@@ -57,19 +57,20 @@ the providers offer directly.
|
|
|
57
57
|
| Decision | PixelLab | Retro Diffusion |
|
|
58
58
|
|---|---|---|
|
|
59
59
|
| Best fit today | Existing PixelKiln projects, account reconciliation, and live-tested generation | Native pixel-art styles, USD budgets, animation, and alternate tileset workflows |
|
|
60
|
-
| PixelKiln generators | `map`, `pixflux`, `1dir`, `tiles`, `character` | `map` and `pixflux` stills, `tiles`, `animation` |
|
|
61
|
-
| Output | PNG stills, candidates,
|
|
60
|
+
| PixelKiln generators | `map`, `pixflux`, `1dir`, `imagePro`, `imageProFlash`, `tiles`, `terrain`, `isometricTile`, `character`, `objectPro`, `uiAsset`, `uiElement` | `map` and `pixflux` stills, `tiles`, `animation` |
|
|
61
|
+
| Output | PNG stills, candidates, structural tile members, and ordered frame sets | PNG stills/tiles/spritesheets or animated GIF |
|
|
62
62
|
| Candidate review | Yes; count varies by generator and size | Yes for 1–16 still candidates; animations and tilesets currently use one result |
|
|
63
|
-
| References | `1dir` and tile style modes | Up to nine for supported RD Pro/user still styles; constrained inputs for animation and tiles |
|
|
63
|
+
| References | `1dir` and tile style modes; a character or `objectPro` reference sprite; a `pro` character concept image; one `imageProFlash` style image; one `uiElement` concept image | Up to nine for supported RD Pro/user still styles; constrained inputs for animation and tiles |
|
|
64
64
|
| Cost model | Subscription generations | Prepaid USD balance |
|
|
65
65
|
| Cost safety | Offline estimate plus hard generation budget | Offline estimate, hard USD budget, then a free authoritative quote before submission |
|
|
66
66
|
| Account lifecycle | Balance, list, adopt, salvage, tag, and confirmed purge | Balance only in the current adapter |
|
|
67
67
|
| Live confidence | Full paid generation workflows exercised | RD Fast and RD Plus single-candidate stills exercised end to end; multi-candidate, tileset, GIF, and spritesheet runs pending |
|
|
68
68
|
|
|
69
69
|
Choose PixelLab when mature account-object recovery and reconciliation matter,
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
70
|
+
when the measured one-generation `map`/`pixflux` routes fit the work, or when an
|
|
71
|
+
animation belongs to a character, an object, or an existing image. Choose
|
|
72
|
+
Retro Diffusion when a GIF or spritesheet from one prompt fits, an RD style is
|
|
73
|
+
the desired look, or a USD quote is easier to budget. For a production batch,
|
|
73
74
|
run one representative asset through the selected provider before expanding the
|
|
74
75
|
scope.
|
|
75
76
|
|
|
@@ -96,9 +97,12 @@ the same graph and still differ because their checkpoint bytes, custom nodes,
|
|
|
96
97
|
or sampler settings differ. Commit the workflow and record the model stack used
|
|
97
98
|
to test it.
|
|
98
99
|
|
|
99
|
-
The revision manifest and dependency gate are provider-neutral
|
|
100
|
-
|
|
101
|
-
|
|
100
|
+
The revision manifest and dependency gate are provider-neutral. ComfyUI and
|
|
101
|
+
PixelLab opt in; Retro Diffusion and Scenario reject revision assets offline.
|
|
102
|
+
PixelLab covers `image-to-image`, `inpaint`, `reduce-colors`,
|
|
103
|
+
`correct-pixelart`, `animate`, `animate-pixminimax`, `animate-skeleton`,
|
|
104
|
+
`interpolate`, and `edit-animation`, but not `outpaint`. ComfyUI covers the
|
|
105
|
+
single-image modes through its workflow bindings. See
|
|
102
106
|
[Controlled asset revisions](./docs/REVISIONS.md) before using the bundled
|
|
103
107
|
square image-to-image graph.
|
|
104
108
|
|
|
@@ -131,7 +135,7 @@ background. That distinction matters more than raw canvas size.
|
|
|
131
135
|
| Asset type | PixelLab | Retro Diffusion | ComfyUI | Scenario |
|
|
132
136
|
|---|---|---|---|---|
|
|
133
137
|
| Isolated house, building, mountain, or landmark | Start with `map`: arbitrary dimensions up to 400×400 and a measured one-generation cost. Live benchmark outputs had opaque backgrounds, so plan for cleanup. Use `1dir` only when references or candidate variety justify 20–40 generations and a square canvas. | Start with `rd_plus__topdown_asset`, `rd_plus__isometric_asset`, or `rd_tile__scene_object`, depending on perspective. `rd_tile__scene_object` is intended for 64–384px objects placed on tile maps. | Choose a checkpoint or LoRA trained for the intended perspective, then keep background removal or segmentation in the workflow. For the tested Pixel Art XL stack, target 48–128px native components even though the adapter accepts larger working canvases. | The live BFL smoke produced a readable 512px keep, but it was opaque and used 19,619 colors. Use that profile for concepts or refinement input, not a finished limited-palette asset. A project-specific model may improve consistency but needs its own smoke. |
|
|
134
|
-
| Full scenic background | Use `pixflux` with `noBackground: false` when an exact palette matters, or `map` for a simple scene
|
|
138
|
+
| Full scenic background | Use `pixflux` with `noBackground: false` when an exact palette matters, or `map` for a simple scene; both top out at 400×400. `imagePro` reaches 792 wide or 688 tall for a flat 40 generations. | `rd_plus__environment` targets one-point-perspective scenes; `rd_plus__topdown_map` targets 3/4 top-down maps. These styles support up to 384×384. | Use composition controls only to establish the scene. Recover and review native components, then compose them at 1× with one grid and palette. A large model canvas is not a large native pixel-art canvas. | The BFL profile accepts canvases up to 2048px, but no Scenario scenic brief has passed the shared benchmark. Treat that as model-canvas capacity, not native pixel resolution. Start with one 512px concept before raising size or steps. |
|
|
135
139
|
| Style consistency across a set | `1dir` accepts a style reference and returns size-dependent candidates, but it is more expensive and capped at the square-object range. | RD Pro accepts up to nine references and has stronger prompt following, but its common styles top out at 256×256 and cost $0.18 per image. Environment-specific RD Plus styles trade references for a larger 384px canvas. | LoRAs, reference adapters, ControlNet, and shared latent settings can live in the committed workflow. Reproducibility also depends on external model and custom-node versions. | Scenario's project models and LoRAs are the main reason to use it for a set. PixelKiln can pin the model ID and parameters, but its first live run covers only the public BFL profile. |
|
|
136
140
|
| Very large final scene | Generate reusable objects, terrain, and background layers separately; assemble them deterministically and integer-upscale the result. | Use the same layered approach. The API has a 512px overall ceiling, but the useful environment and scene-object styles currently cap at 384px. | The graph can tile, upscale, or composite beyond hosted-provider limits, but memory and seam quality become workflow concerns. Prefer reusable layers unless the scene truly needs one render. | Scenario can request a larger raster from a compatible model, but the same rule applies: generate reusable layers at their useful native detail, compose at 1×, and integer-upscale only the final scene. |
|
|
137
141
|
|
|
@@ -194,18 +198,29 @@ not share one runtime.
|
|
|
194
198
|
The services use different billing units, so PixelKiln never adds their costs
|
|
195
199
|
together.
|
|
196
200
|
|
|
197
|
-
PixelLab figures below
|
|
198
|
-
|
|
201
|
+
PixelLab figures below come from the endpoints PixelKiln currently uses. Rows
|
|
202
|
+
marked unmeasured or quoted are `plan` estimates, not bills. None is a
|
|
203
|
+
conversion to dollars:
|
|
199
204
|
|
|
200
|
-
| PixelLab route |
|
|
205
|
+
| PixelLab route | Cost |
|
|
201
206
|
|---|---:|
|
|
202
207
|
| `map` | 1 generation |
|
|
203
208
|
| `pixflux` | 1 generation |
|
|
204
209
|
| `1dir` | 20–40 generations |
|
|
210
|
+
| `imagePro` | 40 generations |
|
|
211
|
+
| `imageProFlash` | 5–9 generations (provisional quote) |
|
|
205
212
|
| `tiles` | 20–40 generations |
|
|
206
|
-
| `
|
|
207
|
-
| `
|
|
213
|
+
| `terrain` | 20–40 generations (unmeasured) |
|
|
214
|
+
| `isometricTile` | 1 generation (measured once) |
|
|
215
|
+
| `character` base | 1 (standard), 2–9 (v3), 20–40 (pro), 6–17 (pro-flash; rotations only from a reference) |
|
|
216
|
+
| `character` state or portrait | 20–40 generations |
|
|
208
217
|
| `character` animation | 1 (template), 1 at 64px from text, 20–40 (pro) |
|
|
218
|
+
| `character` outfit | 20 generations (one 2-frame, 92×92 job) |
|
|
219
|
+
| `objectPro` base | 6 at 64px (unmeasured) |
|
|
220
|
+
| `uiAsset` | 20 generations (measured once, at 256×192) |
|
|
221
|
+
| `uiElement` | 20–40 generations (unmeasured) |
|
|
222
|
+
| `image-to-image` / `inpaint` revision | 20–40 generations; 5–9 with `engine: "pro-flash"` (provisional quote) |
|
|
223
|
+
| `reduce-colors` / `correct-pixelart` revision | 0.1 generations (measured at 32×32) |
|
|
209
224
|
|
|
210
225
|
Retro Diffusion publishes USD formulas and fixed prices. Examples relevant to
|
|
211
226
|
PixelKiln include RD Fast from about $0.015 per image, RD Plus from about $0.025,
|
package/README.md
CHANGED
|
@@ -53,8 +53,9 @@ provenance and no long-lived npm token.
|
|
|
53
53
|
| Plan and budget | Offline manifest/lock/disk diff, provider-grouped estimates, keyed mixed-provider budget ceilings, JSON/CI gate. |
|
|
54
54
|
| Generate and review | Resumable submit/poll/pick/fetch pipeline, exact next-step hints, candidate or atomic frame-set review, and a provenance gallery that can edit intent, generate under a budget, and compare records. |
|
|
55
55
|
| Hand edits | Touch-ups in your own editor or a pinned in-browser Pixelorama, kept beside the generated art with the generation still the record; frame and tile sets member by member. |
|
|
56
|
-
| Controlled inputs | Hashed image-to-image
|
|
57
|
-
| Characters | A base in 4 or 8 directions from a prompt or your own sprite (four PixelLab engines), poses and
|
|
56
|
+
| Controlled inputs | Hashed revision lineage (image-to-image and inpaint; on PixelLab also palette reduction, pixel cleanup, animation, skeleton posing, interpolation, and animation edits), fail-closed parent approval, source-versus-candidate review, and content-addressed per-asset ComfyUI bindings. |
|
|
57
|
+
| Characters | A base in 4 or 8 directions from a prompt or your own sprite (four PixelLab engines), poses, loops, portraits, and outfit transfers as dependent assets generated in waves, free mirrored directions (one `directions` list declares a loop and mirrors the rest), account adoption and salvage, and SpriteFrames export. |
|
|
58
|
+
| PixelLab utilities | `unzoom` returns upscaled reference art to its native grid, `font` generates a `.ttf` and glyph atlas, and `estimate-skeleton` starts a keypoints file for skeleton animation. |
|
|
58
59
|
| Existing-art onboarding | Manifest scaffolding, exact-hash account adoption, and prompt recovery. |
|
|
59
60
|
| Recovery | Safe stale-output replacement, validated caches, durable references, resumable paid jobs, and per-asset generation history with free restores. |
|
|
60
61
|
| Shared-account safety | Cross-project claim files or a registered workspace catalog, sibling-style exclusion, reviewed salvage, keep/discard tags, separate confirmed purge. |
|
|
@@ -258,18 +259,17 @@ Measured PixelLab economics vary by 40×:
|
|
|
258
259
|
| Independent or connectable ground tiles | `tiles` | 20–40 generations |
|
|
259
260
|
| A character in 4 or 8 directions, its poses, its loops | `character` | 1 per base, 20–40 per pose, 1 per template loop per direction; a `mirror` of a loop is free |
|
|
260
261
|
|
|
261
|
-
Start with the required capability, not the most expensive endpoint. Forty
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
[measured endpoint reference](./docs/ENDPOINTS.md).
|
|
262
|
+
Start with the required capability, not the most expensive endpoint. Forty `map`
|
|
263
|
+
re-rolls cost the same as one 64×64 `1dir` call; conversely, `map` cannot replace a
|
|
264
|
+
hard palette or reference-image constraint. PixelLab has seven more generators
|
|
265
|
+
(`imagePro`, `imageProFlash`, `terrain`, `isometricTile`, `objectPro`, `uiAsset`,
|
|
266
|
+
`uiElement`); see [Generator selection](./docs/GENERATORS.md) and the [measured endpoint reference](./docs/ENDPOINTS.md).
|
|
266
267
|
|
|
267
|
-
Generator names describe PixelKiln workflows; their exact capabilities and
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
Compare the adapters in the [provider comparison](./PROVIDERS.md).
|
|
268
|
+
Generator names describe PixelKiln workflows; their exact capabilities and prices
|
|
269
|
+
depend on the selected provider. Retro Diffusion also supports the provider-specific
|
|
270
|
+
`animation` generator. ComfyUI supports `map` plus atomic still-image `frames` through
|
|
271
|
+
an operator-supplied workflow. Scenario supports `map` with a required offline CU
|
|
272
|
+
ceiling and a live quote before each paid call. Compare the adapters in the [provider comparison](./PROVIDERS.md).
|
|
273
273
|
|
|
274
274
|
## Derived artifacts
|
|
275
275
|
|
|
@@ -368,12 +368,13 @@ verification. See [Library API](./docs/LIBRARY.md).
|
|
|
368
368
|
| [Set up ComfyUI](./docs/COMFYUI.md) | Self-hosted stills, revisions, ordered frame sets, per-asset inputs, and quality limits. |
|
|
369
369
|
| [Set up Scenario](./docs/SCENARIO.md) | Experimental hosted models, two-part credentials, CU preflight, review, and durable downloads. |
|
|
370
370
|
| [Versioned recipes](./docs/RECIPES.md) | Pinned workflow packs, model hashes, manifest templates, and quality contracts. |
|
|
371
|
-
| [Controlled revisions](./docs/REVISIONS.md) | Image-to-image
|
|
371
|
+
| [Controlled revisions](./docs/REVISIONS.md) | Image-to-image, inpaint, palette cleanup, animation, and interpolation from a parent; masks, fail-closed readiness, provenance, and ComfyUI bindings. |
|
|
372
372
|
| [CLI reference](./docs/CLI.md) | Every command, flag, JSON mode, and exit contract. |
|
|
373
373
|
| [Manifest reference](./docs/MANIFEST.md) | Style/asset fields, quality profiles, and generator constraints. |
|
|
374
374
|
| [Mixed-provider projects](./docs/MIXED_PROVIDERS.md) | Per-style routing, provider-keyed budgets, recovery, and account commands. |
|
|
375
375
|
| [Agent workflows](./docs/AGENTS.md) | Official skill install, operating model, and provider-aware safety. |
|
|
376
376
|
| [Generators](./docs/GENERATORS.md) | Capability choice, measured costs, palettes, style references, and tiles. |
|
|
377
|
+
| [Characters](./docs/CHARACTERS.md) | Bases, states, loops, mirrors, portraits, outfits, the `directions` shorthand, and per-engine costs. |
|
|
377
378
|
| [Environment provider benchmark](./docs/PROVIDER_BENCHMARK.md) | Thirty provider outputs plus native-grid and final-palette results comparing large scenes, transparency, palette size, and file readiness. |
|
|
378
379
|
| [Derived artifacts](./docs/ARTIFACTS.md) | Refine, pack, mount, export, provenance, ownership, transactions, and recovery. |
|
|
379
380
|
| [Recovery](./docs/RECOVERY.md) | Restore, caches, adopt, salvage, claims, and purge safety. |
|
|
@@ -384,10 +385,9 @@ verification. See [Library API](./docs/LIBRARY.md).
|
|
|
384
385
|
| [Endpoint research](./docs/ENDPOINTS.md) | Measured PixelLab API behavior and recipes. |
|
|
385
386
|
| [Provider comparison](./PROVIDERS.md) | Provider selection, costs, supported workflows, confidence, and limitations. |
|
|
386
387
|
|
|
387
|
-
The [public documentation site](https://pixelkiln.griffen.codes/docs) is built from
|
|
388
|
-
|
|
389
|
-
|
|
390
|
-
[Security](./SECURITY.md), [provider comparison](./PROVIDERS.md).
|
|
388
|
+
The [public documentation site](https://pixelkiln.griffen.codes/docs) is built from these Markdown
|
|
389
|
+
files by [`website/`](./website/README.md), so the site and the package share one source.
|
|
390
|
+
Policies: [Contributing](./CONTRIBUTING.md), [Security](./SECURITY.md).
|
|
391
391
|
|
|
392
392
|
## Scope
|
|
393
393
|
|
package/docs/AGENTS.md
CHANGED
|
@@ -67,7 +67,7 @@ not a replacement:
|
|
|
67
67
|
| PixelLab MCP | Agent-facing access to PixelLab generation capabilities. |
|
|
68
68
|
| PixelKiln skill | Agent guidance for safe project-level operations. |
|
|
69
69
|
| PixelKiln library/CLI | Budgets, state, provenance, review, recovery, audit, and packaging. |
|
|
70
|
-
| PixelLab adapter | The current production and live-tested generation backend: stills, tiles, and the character family (four engines, states, loops, mirrors, adoption). |
|
|
70
|
+
| PixelLab adapter | The current production and live-tested generation backend: stills, tiles, UI panels and elements, `objectPro` objects, controlled revisions, and the character family (four engines, states, loops, mirrors, portraits, outfits, adoption). |
|
|
71
71
|
| Retro Diffusion adapter | Experimental backend; authenticated paid single-still lifecycle plus mocked advanced-workflow tests. |
|
|
72
72
|
| ComfyUI adapter | Experimental self-hosted still, controlled-revision, and atomic frame-set backend; PixelKiln automates lineage and mechanical quality checks while a person retains visual approval. |
|
|
73
73
|
| Scenario adapter | Experimental hosted still-image backend; BFL Flux 2 Dev quote, paid single/two-output generation, human review, and durable recovery live-tested. |
|
package/docs/CHARACTERS.md
CHANGED
|
@@ -264,7 +264,10 @@ Characters that already exist on the account come under the manifest with
|
|
|
264
264
|
PixelLab's own tools shows both) and run `pixelkiln adopt`: it records the
|
|
265
265
|
character, writes every direction and frame that is not on disk, and costs
|
|
266
266
|
nothing. A base can also be matched by the bytes of its south-facing file.
|
|
267
|
-
See [`adopt`](CLI.md#adopt).
|
|
267
|
+
See [`adopt`](CLI.md#adopt). Characters no lockfile claims go through
|
|
268
|
+
`pixelkiln salvage`, one card per base with its states and loops, and a
|
|
269
|
+
character tagged for discard is deleted by `pixelkiln purge`; see
|
|
270
|
+
[Recovery](RECOVERY.md#characters).
|
|
268
271
|
|
|
269
272
|
## Mirrors
|
|
270
273
|
|
package/docs/CLI.md
CHANGED
|
@@ -4,9 +4,11 @@
|
|
|
4
4
|
pixelkiln <command> [options]
|
|
5
5
|
```
|
|
6
6
|
|
|
7
|
-
Unknown commands, positional arguments, and flags are errors.
|
|
8
|
-
|
|
9
|
-
|
|
7
|
+
Unknown commands, positional arguments, and flags are errors. The only
|
|
8
|
+
positional words accepted are a command's own subcommands (`refine approve`,
|
|
9
|
+
`workspace add <manifest>`, and the like) and `estimate-skeleton`'s one image
|
|
10
|
+
path. Repeated `--style`, `--only`, `--claims`, and `--output-role` values
|
|
11
|
+
accumulate; comma-separated values work too. This strict parsing prevents a misspelled filter
|
|
10
12
|
from widening a paid run.
|
|
11
13
|
|
|
12
14
|
The manifest's top-level `provider` is the default; each style may select a
|
|
@@ -27,6 +29,8 @@ Which command:
|
|
|
27
29
|
| draw a character in 8 directions, then its poses and loops | a `character` style with `state` and `animation` assets; one `pixelkiln gen` runs the waves |
|
|
28
30
|
| rotate your own sprite into 8 directions | `"reference": "refs/bot-south.png"` on the base; `mode: pro-flash` does it for 1 generation at 64px |
|
|
29
31
|
| get the east-facing loop without paying for it | `"bot.walk.east": { "mirror": "bot.walk.west" }` |
|
|
32
|
+
| declare one loop for several directions, mirroring the rest | `"animation": { "of": "bot", "directions": ["south", "west", "north"] }`; `--only bot.walk` selects the whole family |
|
|
33
|
+
| make a bust portrait, or re-clothe a loop from an outfit image | `"portrait": { "of": "mira", "size": 64 }`, `"outfit": { "of": "mira.walk", "reference": "refs/armor.png" }` |
|
|
30
34
|
| generate one asset, or one style | `pixelkiln gen --only anvil --budget 2`, `pixelkiln gen --style neon --budget 20` |
|
|
31
35
|
| finish a run that was interrupted | `pixelkiln plan`, then the `next:` command it prints (`poll`, `pick`, or `fetch`) |
|
|
32
36
|
| choose among candidates the provider returned | `pixelkiln pick` |
|
|
@@ -48,6 +52,9 @@ Which command:
|
|
|
48
52
|
| drop lock entries the manifest no longer declares | `pixelkiln prune` |
|
|
49
53
|
| check the project before committing or in CI | `pixelkiln doctor`, `pixelkiln plan --check` |
|
|
50
54
|
| see the account balance | `pixelkiln balance` |
|
|
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
|
+
| generate a pixel font (`.ttf` plus glyph atlas) | `pixelkiln font --description "warm orange arcade font" --out fonts/arcade` |
|
|
57
|
+
| start an `animate-skeleton` keypoints file from an image | `pixelkiln estimate-skeleton poses/hero.png --out poses/hero-swing.json` |
|
|
51
58
|
| work across several projects | `pixelkiln workspace add ../other/pixelkiln.manifest.json`, then `--workspace` on `gallery` and `salvage` |
|
|
52
59
|
|
|
53
60
|
Every command takes `--manifest <file>` when the manifest is not in the
|
|
@@ -344,23 +351,6 @@ Show one provider's remaining balance and cost unit. A mixed manifest requires
|
|
|
344
351
|
`--provider`; a single-provider manifest infers it. Reports a capability error
|
|
345
352
|
when an installed provider, such as local ComfyUI, has no balance endpoint.
|
|
346
353
|
|
|
347
|
-
### `estimate-skeleton`
|
|
348
|
-
|
|
349
|
-
```bash
|
|
350
|
-
pixelkiln estimate-skeleton <image> [--out keypoints.json]
|
|
351
|
-
```
|
|
352
|
-
|
|
353
|
-
PixelLab only. Derives an 18-joint skeleton from an image via
|
|
354
|
-
`/estimate-skeleton` and prints the keypoints JSON, or writes it with `--out`.
|
|
355
|
-
Same category as `balance`: a direct, un-budgeted account call outside the
|
|
356
|
-
manifest/plan/lock pipeline — no manifest is read beyond locating
|
|
357
|
-
`.env.local`, and nothing is written to a lockfile. This is how to bootstrap
|
|
358
|
-
an `animate-skeleton` revision's `keypointsFile` (see
|
|
359
|
-
[Controlled asset revisions](./REVISIONS.md#skeleton-driven-animation)):
|
|
360
|
-
estimate once, sanity-check the result, hand-tweak a few joints for
|
|
361
|
-
in-between frames, rather than hand-authoring 18 joints of
|
|
362
|
-
`{label, x, y, z_index}` from scratch.
|
|
363
|
-
|
|
364
354
|
### `status`
|
|
365
355
|
|
|
366
356
|
Summarize lock entries by state and successful submission spend by cost unit.
|
|
@@ -882,10 +872,10 @@ See [derived artifacts](./ARTIFACTS.md) and [tiles](./TILES.md).
|
|
|
882
872
|
|
|
883
873
|
## PixelLab utilities
|
|
884
874
|
|
|
885
|
-
|
|
886
|
-
reads the manifest or touches the lockfile;
|
|
887
|
-
the environment or a `.env.local`/`.env` beside `--manifest` or in the
|
|
888
|
-
directory, the same as every other command.
|
|
875
|
+
Three commands call PixelLab on loose files rather than manifest assets. None
|
|
876
|
+
reads the manifest or touches the lockfile; all three load `PIXELLAB_API_KEY`
|
|
877
|
+
from the environment or a `.env.local`/`.env` beside `--manifest` or in the
|
|
878
|
+
working directory, the same as every other command.
|
|
889
879
|
|
|
890
880
|
### `unzoom`
|
|
891
881
|
|
|
@@ -936,6 +926,23 @@ A font is deliberately not a manifest generator: it has no style suffix to
|
|
|
936
926
|
share, no prompt-per-asset, no candidates to pick, and its main output is not
|
|
937
927
|
an image, so there is nothing for the lockfile's provenance model to hold.
|
|
938
928
|
|
|
929
|
+
### `estimate-skeleton`
|
|
930
|
+
|
|
931
|
+
```bash
|
|
932
|
+
pixelkiln estimate-skeleton <image> [--out keypoints.json]
|
|
933
|
+
```
|
|
934
|
+
|
|
935
|
+
PixelLab only. Derives an 18-joint skeleton from an image via
|
|
936
|
+
`/estimate-skeleton` and prints the keypoints JSON, or writes it with `--out`.
|
|
937
|
+
Same category as `balance`: a direct, un-budgeted account call outside the
|
|
938
|
+
manifest/plan/lock pipeline — no manifest is read beyond locating
|
|
939
|
+
`.env.local`, and nothing is written to a lockfile. This is how to bootstrap
|
|
940
|
+
an `animate-skeleton` revision's `keypointsFile` (see
|
|
941
|
+
[Controlled asset revisions](./REVISIONS.md#skeleton-driven-animation)):
|
|
942
|
+
estimate once, sanity-check the result, hand-tweak a few joints for
|
|
943
|
+
in-between frames, rather than hand-authoring 18 joints of
|
|
944
|
+
`{label, x, y, z_index}` from scratch.
|
|
945
|
+
|
|
939
946
|
## Utility commands
|
|
940
947
|
|
|
941
948
|
### `help`
|
|
@@ -953,7 +960,7 @@ Print the package version. `-v` is an alias.
|
|
|
953
960
|
| `--manifest <path>` | manifest commands | Manifest path; defaults to `pixelkiln.manifest.json`. |
|
|
954
961
|
| `--lock <path>` | manifest commands | Lock path; defaults beside the manifest. |
|
|
955
962
|
| `--style a,b` | most workflows | Restrict styles; repeatable. |
|
|
956
|
-
| `--only id1,id2` | most workflows | Restrict asset ids; repeatable. |
|
|
963
|
+
| `--only id1,id2` | most workflows | Restrict asset ids; repeatable. An `animation.directions` shorthand id selects every loop and mirror it expands into. |
|
|
957
964
|
| `--budget <n\|provider=n>` | submit/gen/gallery | Refuse work above this cost. Repeat `provider=n` for every provider in a mixed run; do not mix keyed and unkeyed forms. For `gallery`, the session ceiling that enables generation from the page. |
|
|
958
965
|
| `--force` | gen/fetch/derived commands/recipe install/quality snapshot | Regenerate current work, replace a changed or untracked fetch destination, rebuild current quality-profile output, take ownership of modified/unowned derived output, replace changed recipe files, or replace a changed quality baseline. A refinement rebuild resets approval. |
|
|
959
966
|
| `--dry-run` | supported mutating commands | Inspect without spending or mutating provider state. |
|
package/docs/GENERATORS.md
CHANGED
|
@@ -12,9 +12,13 @@ account; [ENDPOINTS.md](./ENDPOINTS.md) contains the detailed experiments.
|
|
|
12
12
|
| Exact fixed palette | `pixflux` | 1 generation | 1 inline image |
|
|
13
13
|
| Candidate variety, richer rendering, future rotation/animation | `1dir` | 20–40 generations | 4–64 by size |
|
|
14
14
|
| Ground tiles or connectable structural sets | `tiles` | 20–40 generations | variations or complete set |
|
|
15
|
+
| Two-terrain Wang tileset for elevation (grass to water, floor to cliff) | `terrain` | 20–40 generations (unmeasured) | 16 or 25 tiles |
|
|
15
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` | 40 generations flat | 1–64 by size |
|
|
16
18
|
| Controlled pose/expression sequence in ComfyUI | `frames` | 0 `free` provider units | one atomic ordered set |
|
|
17
|
-
|
|
|
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–40 per pose or portrait, 1 per template loop, 20 per outfit (measured once) | one set of directions, one ordered loop, or one portrait |
|
|
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 |
|
|
18
22
|
| UI chrome — panels, buttons, health bars, toolbars | `uiAsset` | 20 generations (measured once, at 256x192) | 1 composited image |
|
|
19
23
|
| One UI element from a description, 16px and up, optionally guided by a concept image | `uiElement` | 20–40 generations (unmeasured) | 1 image |
|
|
20
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 |
|
|
@@ -22,6 +26,11 @@ account; [ENDPOINTS.md](./ENDPOINTS.md) contains the detailed experiments.
|
|
|
22
26
|
Start with `map` unless a required capability points elsewhere. Forty `map`
|
|
23
27
|
re-rolls cost the same as one 64×64 `1dir` call.
|
|
24
28
|
|
|
29
|
+
`terrain` and `imagePro` have no section below: their fields and limits are in
|
|
30
|
+
the [PixelLab skill reference](../skills/pixelkiln/references/pixellab.md), and
|
|
31
|
+
a `terrain` set's export shape is in [Tiles](./TILES.md). Retro Diffusion
|
|
32
|
+
`animation` styles are in [Set up Retro Diffusion](./RETRO_DIFFUSION.md).
|
|
33
|
+
|
|
25
34
|
## `map`
|
|
26
35
|
|
|
27
36
|
`map` calls PixelLab's map-object endpoint. It is purpose-built for isolated
|
package/docs/MANIFEST.md
CHANGED
|
@@ -56,7 +56,7 @@ not merely a label edit.
|
|
|
56
56
|
|
|
57
57
|
| Field | Type/default | Meaning |
|
|
58
58
|
|---|---|---|
|
|
59
|
-
| `prompt` | string, required unless `mirror` | The subject wording wrapped by the selected style's prompt prefix and suffix. |
|
|
59
|
+
| `prompt` | string, required unless `mirror`, `portrait`, or `outfit` | The subject wording wrapped by the selected style's prompt prefix and suffix. |
|
|
60
60
|
| `width` / `height` | integer 16–8192 | Per-asset dimensions for generators that accept rectangular output. Provider limits may be lower. |
|
|
61
61
|
| `size` | integer 16–8192 | Per-asset square size where the generator uses one dimension. |
|
|
62
62
|
| `file` | string | Output path below the style's `outDir`; defaults to `<category>/<assetId>.png`. |
|
|
@@ -64,9 +64,11 @@ not merely a label edit.
|
|
|
64
64
|
| `source` | string | Manifest-relative committed art used instead of generation. For a set of PNG outputs (a `frames` animation, a `tiles` set) a path that is not a file is the stem of a hand edit laid beside the generated members (`<stem>-<role>.png` each); the set still generates. Mutually exclusive with `revision`. |
|
|
65
65
|
| `sourceByStyle` | object | Per-style `source`, keyed by style id; wins over `source` for that style. Written by `pixelkiln edit` for a hand edit of an asset that is in several styles. |
|
|
66
66
|
| `remoteId` | string | The provider's own id for art that already exists on the account, so `adopt` maps it without matching bytes: an object id, a character id, or `<character id>#<animation group id>`. Not part of the spec's identity. |
|
|
67
|
-
| `revision` | object | Controlled image-to-image or inpaint
|
|
67
|
+
| `revision` | object | Controlled dependency on another asset: `image-to-image`, `inpaint`, or `outpaint`; on PixelLab also `reduce-colors`, `correct-pixelart`, the animate modes (`animate`, `animate-pixminimax`, `animate-skeleton`), `interpolate`, and `edit-animation`. `engine: "pro-flash"` selects PixelLab's Pro Flash tier for `image-to-image`/`inpaint`. See [controlled revisions](REVISIONS.md). |
|
|
68
68
|
| `state` | object | `character` styles: a pose or outfit of another character asset. See [Characters](./CHARACTERS.md). |
|
|
69
69
|
| `animation` | object | `character` styles: a loop of another character asset in one direction. `directions` (a list, instead of `direction`) declares the loop for several directions at once and fills the unnamed flips with mirrors; see [One loop, several directions](./CHARACTERS.md#one-loop-several-directions). |
|
|
70
|
+
| `portrait` | object | `character` styles: a bust of a base or state's south sprite, `{ "of": "<asset>", "size": 64 }`; `size` is 16, 32, 48, 64 (default), 128, or 160. See [Portraits](./CHARACTERS.md#portraits). |
|
|
71
|
+
| `outfit` | object | `character` styles: an existing loop's frames re-clothed from an outfit image, `{ "of": "<loop asset>", "reference": "<image>" }`, with optional `additionalInstructions`. See [Outfit transfer](./CHARACTERS.md#outfit-transfer). |
|
|
70
72
|
| `mirror` | string | Another asset of the same style flipped left to right, made locally at no cost. See [Mirrors](./CHARACTERS.md#mirrors). |
|
|
71
73
|
| `scene` | object | `map` styles, PixelLab only: draw this object into a scene image, in its style. `{ "image": "scene.png", "placement": { "oval": 0.3 } }`; `placement` is `oval` or `rectangle` (a fraction, 0.05–0.95) or `mask` (a PNG the size of the scene). See [Drawing into a scene](./GENERATORS.md#drawing-into-a-scene). |
|
|
72
74
|
| `batch` | object | `1dir` styles: rides along on another `1dir` asset's `item_descriptions` submission instead of generating on its own — `{ "of": "<leader asset id>", "index": <1-based slot> }`. See [`1dir`](./GENERATORS.md#1dir). |
|
package/docs/PIXELLAB.md
CHANGED
|
@@ -71,6 +71,14 @@ unapproved files. See [Manifest quality profiles](./MANIFEST.md#quality-profiles
|
|
|
71
71
|
| `pixflux` | You need a closed palette or a full-bleed background | 1 generation |
|
|
72
72
|
| `1dir` | You need references or several candidates for human review | 20 to 40 generations |
|
|
73
73
|
| `tiles` | You need ground variations or a connected structural set | 20 to 40 generations |
|
|
74
|
+
| `terrain` | You need a two-terrain Wang tileset (grass to water, floor to cliff) | 20 to 40 generations (unmeasured) |
|
|
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 | 40 generations |
|
|
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
|
+
| `character` | You need a character in 4 or 8 directions, with states, loops, portraits, or outfits | See [Characters](./CHARACTERS.md) |
|
|
79
|
+
| `objectPro` | You need a prop or creature with rotations, states, or loops but no character rig | about 6 at 64px (unmeasured) |
|
|
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 | 20 to 40 generations (unmeasured) |
|
|
74
82
|
|
|
75
83
|
`map` accepts these values:
|
|
76
84
|
|
|
@@ -123,9 +131,9 @@ recorded, and records the new URLs. A refreshed base makes its states and
|
|
|
123
131
|
animations stale, because their identity hashes the base's south file;
|
|
124
132
|
`pixelkiln gen` regenerates them.
|
|
125
133
|
|
|
126
|
-
##
|
|
134
|
+
## Four ways to drive PixelLab, and why this one
|
|
127
135
|
|
|
128
|
-
PixelLab is reachable
|
|
136
|
+
PixelLab is reachable four ways, and it is easy to conflate them when
|
|
129
137
|
comparing notes with someone using a different one:
|
|
130
138
|
|
|
131
139
|
- **PixelLab's Game Builder**, a hosted web IDE with its own chat agent and a
|
|
@@ -167,7 +175,10 @@ reference image frame-by-frame from a supplied keypoint skeleton, not a text
|
|
|
167
175
|
description) are the `revision` asset shape, not the `character` generator;
|
|
168
176
|
see [Controlled asset revisions](./REVISIONS.md). The same revision shape
|
|
169
177
|
animates, interpolates, recolors, and cleans up any asset, a whole character
|
|
170
|
-
or loop at once where the endpoint takes a set
|
|
178
|
+
or loop at once where the endpoint takes a set; `pixelkiln estimate-skeleton`
|
|
179
|
+
starts a skeleton file from an image. Pro Flash stills are the
|
|
180
|
+
`imageProFlash` generator, and Pro Flash edit and inpaint are a revision's
|
|
181
|
+
`"engine": "pro-flash"`. Object Creator is the
|
|
171
182
|
`objectPro` generator, UI panels and elements are `uiAsset` and `uiElement`,
|
|
172
183
|
and fonts and unzooming reference art are the standalone `pixelkiln font` and
|
|
173
184
|
`pixelkiln unzoom` commands. Map Workshop
|
package/docs/README.md
CHANGED
|
@@ -22,10 +22,10 @@ provider you are using. These Markdown files also render at
|
|
|
22
22
|
|
|
23
23
|
| Guide | Use it for |
|
|
24
24
|
|---|---|
|
|
25
|
-
| [Characters](./CHARACTERS.md) | A base in 4 or 8 directions from a prompt or your own sprite, states, loops, mirrors, the four PixelLab engines, and what each costs. |
|
|
25
|
+
| [Characters](./CHARACTERS.md) | A base in 4 or 8 directions from a prompt or your own sprite, states, loops, mirrors, portraits, outfit transfer, the four PixelLab engines, and what each costs. |
|
|
26
26
|
| [Generators](./GENERATORS.md) | Choose between still, tile, character, hosted animation, and ComfyUI frame-set workflows. |
|
|
27
27
|
| [Environment provider benchmark](./PROVIDER_BENCHMARK.md) | Compare PixelLab, Retro Diffusion, and ComfyUI on buildings, backgrounds, cleanup, and native-grid recovery. |
|
|
28
|
-
| [Controlled asset revisions](./REVISIONS.md) |
|
|
28
|
+
| [Controlled asset revisions](./REVISIONS.md) | Image-to-image and inpaint edits, PixelLab palette cleanup, animation, skeleton posing, and interpolation from a parent asset; masks, approval gates, side-by-side review, and ComfyUI bindings. |
|
|
29
29
|
| [Derived artifacts](./ARTIFACTS.md) | Refine, pack, mount, and export; provenance, approval gates, ownership, and crash recovery. |
|
|
30
30
|
| [Recovery and account safety](./RECOVERY.md) | Restore, caches, adopt, salvage, cross-project claims, tagging, and confirmed purge. |
|
|
31
31
|
| [Quality gates](./QUALITY.md) | Manifest quality profiles, image baselines, human review, audit, cache, and CI usage. |
|
package/package.json
CHANGED
|
@@ -44,8 +44,8 @@ hashes.
|
|
|
44
44
|
- When an asset declares `revision`, read the revision reference, require its
|
|
45
45
|
parent gate to pass, and never bypass a `blocked` plan. Generate or approve
|
|
46
46
|
the parent explicitly before re-planning the child.
|
|
47
|
-
- A character `state`, `animation`, `mirror`, or pro
|
|
48
|
-
dependent asset the same way: one `pixelkiln gen` runs the waves in order
|
|
47
|
+
- A character `state`, `animation`, `portrait`, `outfit`, `mirror`, or pro
|
|
48
|
+
`styleCharacter` is a dependent asset the same way: one `pixelkiln gen` runs the waves in order
|
|
49
49
|
and stops when the budget cannot cover the next one. Before declaring the
|
|
50
50
|
east-facing loop of a character, check whether a `mirror` of the west one
|
|
51
51
|
does the job for nothing (an animation's `directions` list declares the
|
|
@@ -53,6 +53,10 @@ hashes.
|
|
|
53
53
|
selects the whole family); before drawing a base from text, ask whether the
|
|
54
54
|
user has a south-facing sprite to `reference` instead (1 generation on
|
|
55
55
|
`pro-flash` at 64px). Mirrors swap handedness.
|
|
56
|
+
- Before an outside or upscaled sprite becomes a `reference` or `styleImages`
|
|
57
|
+
path, run `pixelkiln unzoom --from <file> --out <file>` to bring it back to
|
|
58
|
+
its native pixel grid. Upscaled input degrades every PixelLab endpoint that
|
|
59
|
+
takes a reference, and the unzoomed result is opaque.
|
|
56
60
|
- Treat every ComfyUI output as source material until it passes the native-grid,
|
|
57
61
|
final-palette, prompt-coverage, and human 1× checks in the ComfyUI reference.
|
|
58
62
|
A successful PNG or high-confidence grid result is not quality approval.
|
|
@@ -105,8 +109,10 @@ composition review and, for an isolated asset, background removal.
|
|
|
105
109
|
|
|
106
110
|
Read only the reference needed for the current decision:
|
|
107
111
|
|
|
108
|
-
- For PixelLab configuration, generators
|
|
109
|
-
|
|
112
|
+
- For PixelLab configuration, generators (including `uiElement` for single UI
|
|
113
|
+
pieces and `imageProFlash` for styled stills), costs, alpha behavior,
|
|
114
|
+
account operations, or the `unzoom`, `font`, and `estimate-skeleton`
|
|
115
|
+
utilities, read [references/pixellab.md](references/pixellab.md). For a
|
|
110
116
|
PixelLab style aimed at a specific resolution or fidelity tier (retro,
|
|
111
117
|
high-detail, or matching an existing set's look), read
|
|
112
118
|
[references/pixellab-fidelity.md](references/pixellab-fidelity.md) first.
|
|
@@ -1,7 +1,8 @@
|
|
|
1
|
-
# PixelLab
|
|
1
|
+
# PixelLab coverage and remaining gaps
|
|
2
2
|
|
|
3
|
-
A catalog of PixelLab capabilities
|
|
4
|
-
|
|
3
|
+
A catalog of PixelLab capabilities checked against PixelKiln: what this
|
|
4
|
+
adapter now covers, and what is still absent. It was built by reading all 29
|
|
5
|
+
tutorials on PixelLab's official YouTube channel (the original
|
|
5
6
|
26 — the 12 featured on pixellab.ai plus 14 more from the channel's "PixelLab
|
|
6
7
|
Tutorial" playlist, filtered to ~12 months back from that pass — plus 3 more
|
|
7
8
|
published since: "Level Up Your Game: Custom Sprite Animation Tutorial,"
|
|
@@ -16,8 +17,8 @@ confirmed gap with real demand rather than a guess. Nothing here is a
|
|
|
16
17
|
commitment to build it — it is what is missing, with the evidence for why it
|
|
17
18
|
might matter, so that decision can be made deliberately.
|
|
18
19
|
|
|
19
|
-
Each entry names the PixelLab tool, why pixelkiln doesn't have it today,
|
|
20
|
-
which tutorial(s) demonstrated real (not hypothetical) demand for it.
|
|
20
|
+
Each open entry names the PixelLab tool, why pixelkiln doesn't have it today,
|
|
21
|
+
and which tutorial(s) demonstrated real (not hypothetical) demand for it.
|
|
21
22
|
|
|
22
23
|
## Already closed since this catalog's research began
|
|
23
24
|
|
|
@@ -93,7 +94,7 @@ which tutorial(s) demonstrated real (not hypothetical) demand for it.
|
|
|
93
94
|
formula, since the request bodies are near-identical minus `template_id` —
|
|
94
95
|
a real assumption pending a live check, not a confirmed number the way
|
|
95
96
|
`isometricTile`'s now is. Batch "pack" generation (N distinct objects from
|
|
96
|
-
one call)
|
|
97
|
+
one call) is covered on `1dir` by its `batch` field — see below.
|
|
97
98
|
- **Pixel correction** (`/correct-pixelart`, a dedicated cleanup pass distinct
|
|
98
99
|
from `image-to-pixelart` — the latter is documented, docs/ENDPOINTS.md, as
|
|
99
100
|
being "for photographs and 3-D renders, not for reprocessing" pixel art)
|
|
@@ -281,6 +282,50 @@ which tutorial(s) demonstrated real (not hypothetical) demand for it.
|
|
|
281
282
|
Closed by `pixelkiln unzoom`, a standalone command on a loose file, since
|
|
282
283
|
the art it is for comes from outside the manifest. Its result is opaque
|
|
283
284
|
(transparency is composited onto white first). Cost unmeasured.
|
|
285
|
+
- **Pro Flash for plain image create, edit, and inpaint** — a third image
|
|
286
|
+
tier, distinct from `pixflux`/`map`'s 1-generation endpoints and
|
|
287
|
+
`imagePro`'s flat-40 `generate-image-v2`, on the same model
|
|
288
|
+
`character`/`objectPro` already use for their `pro-flash` engine
|
|
289
|
+
(`gpt-image-2.5-flare`), confirmed against PixelLab's MCP tool schemas.
|
|
290
|
+
Demonstrated in "Pixel Art Animation Tutorial: Images Pro Flash, Skeleton
|
|
291
|
+
V3 & PixMiniMax": a styled character from a style image, re-edited
|
|
292
|
+
repeatedly ("give him a winter outfit," then a thicker one from *that*
|
|
293
|
+
result), then inpainted hair, shirt, and pants as separate masked passes.
|
|
294
|
+
Closed by the `imageProFlash` generator (`create`, one style image +
|
|
295
|
+
`styleTraits`, 16–256px in multiples of 4) and a revision's
|
|
296
|
+
`"engine": "pro-flash"`, which sends `image-to-image` to `edit` (text
|
|
297
|
+
method) and `inpaint` to `inpaint` (32–256px in multiples of 4, no
|
|
298
|
+
`strength`). A still's `source_image_id` is recorded and reused when a Pro
|
|
299
|
+
Flash character or object base's `reference` is that still's exact file
|
|
300
|
+
(issue #145). Shape, via `get_pro_flash_capabilities` (a free quote, not
|
|
301
|
+
billed):
|
|
302
|
+
- `create`: native 16×16 (experimental, always grid-corrected), 24×24,
|
|
303
|
+
32×32, 32×48, 64×64, 96×64, 96×96; custom (beta) 16–256 in steps of 4.
|
|
304
|
+
One output, no reference images.
|
|
305
|
+
- `edit`: native 32×32 up to 128×128, custom 32–256 step 4. Two
|
|
306
|
+
`edit_methods`: `"text"` or `"reference"` (one `reference_image` that
|
|
307
|
+
must fit the edit canvas natively). Canvas never grows.
|
|
308
|
+
- `inpaint`: same sizes as `edit`; a rectangle or a same-size mask PNG
|
|
309
|
+
(white = generate, black = preserve). Always crops to the mask.
|
|
310
|
+
- Cost quotes (provisional): `create` 5 at 32 and 64px, 9 at 256px;
|
|
311
|
+
`edit`/`inpaint` 5 at 64px, `inpaint` 6 at 128px; `character` and
|
|
312
|
+
`object` at 64px `image: 5, rotations: 1, total: 6`, matching
|
|
313
|
+
pixelkiln's measured `proFlashCharacterCost`. None billed live yet.
|
|
314
|
+
|
|
315
|
+
Still unmodeled: `edit`'s `"reference"` method, the
|
|
316
|
+
`use_color_palette_correction` flag (snap the edit back to the source's
|
|
317
|
+
palette), inpaint's three `output_methods` (`"New layer with changes"`,
|
|
318
|
+
`"Modify current layer, only changes"`, `"Modify current layer"`), and
|
|
319
|
+
`context_image` + a required `bounding_box`, which lets the model see up to
|
|
320
|
+
3× the native canvas of surrounding context — the problem
|
|
321
|
+
`docs/REVISIONS.md`'s "select a sub-region" workaround for `inpaint-v3`'s
|
|
322
|
+
512px ceiling solves by hand today.
|
|
323
|
+
- **Portraits and outfit transfer** (`portrait-character-pro`,
|
|
324
|
+
`transfer-outfit-v2`) — closed as the `character` asset kinds `portrait`
|
|
325
|
+
(a bust of a base or state's south sprite) and `outfit` (an existing
|
|
326
|
+
loop's frames re-clothed from a reference image); see
|
|
327
|
+
`docs/CHARACTERS.md`. Both were live-measured: a 16px portrait billed 20,
|
|
328
|
+
a 2-frame 92×92 outfit transfer billed 20.
|
|
284
329
|
- **`/create-8-direction-object`** is deliberately left unwrapped. `objectPro`
|
|
285
330
|
already covers what it does (8 rotations from a prompt or a reference
|
|
286
331
|
image, a `view`, a style image) on `/create-object-pro-flash` at roughly 6
|
|
@@ -288,76 +333,6 @@ which tutorial(s) demonstrated real (not hypothetical) demand for it.
|
|
|
288
333
|
from an existing 8-direction object's sprites), is not worth a second,
|
|
289
334
|
pricier engine on its own.
|
|
290
335
|
|
|
291
|
-
## Pro Flash for plain image create, edit, and inpaint
|
|
292
|
-
|
|
293
|
-
PixelLab ships a **third image-generation tier**, distinct from both
|
|
294
|
-
pixelkiln's already-modeled ones — `pixflux`/`map`'s cheap 1-generation
|
|
295
|
-
non-Pro endpoints, and `imagePro`'s Pro tier (`generate-image-v2`, flat 40
|
|
296
|
-
generations) — confirmed directly against PixelLab's own MCP tool schemas
|
|
297
|
-
(`create_image_pro_flash`, `edit_image_pro_flash`, `inpaint_image_pro_flash`,
|
|
298
|
-
`get_pro_flash_capabilities`), not just a tutorial's framing, the same
|
|
299
|
-
standard this catalog holds itself to elsewhere. It is the **same underlying
|
|
300
|
-
model** `character`/`objectPro` already use for their `pro-flash` engine
|
|
301
|
-
(`gpt-image-2.5-flare`, "medium" provider quality per
|
|
302
|
-
`get_pro_flash_capabilities`), but exposed here for **plain images** — create,
|
|
303
|
-
edit, and inpaint — with no character or object involved. Demonstrated at
|
|
304
|
-
length in "Pixel Art Animation Tutorial: Images Pro Flash, Skeleton V3 &
|
|
305
|
-
PixMiniMax": creating a styled character from a reference-image "style
|
|
306
|
-
image," then repeatedly re-editing the same asset ("give him a winter
|
|
307
|
-
outfit," then, from *that* result, "a thicker royal winter outfit with a
|
|
308
|
-
bigger sword" — evolving the previous edit rather than restarting from the
|
|
309
|
-
original each time), then inpainting new hair, a shirt, and pants as separate
|
|
310
|
-
masked passes, each isolated onto its own layer.
|
|
311
|
-
|
|
312
|
-
**Confirmed shape, via `get_pro_flash_capabilities` (a free, no-generation
|
|
313
|
-
quote/identity lookup — not billed):**
|
|
314
|
-
|
|
315
|
-
- **`create`**: native sizes 16×16 (experimental, always pixel-grid-corrected
|
|
316
|
-
by `image-to-pixel-art`'s own fixer), 24×24, 32×32, 32×48, 64×64, 96×64,
|
|
317
|
-
96×96; custom sizes (beta) 16–256 in steps of 4 on both sides. Takes a
|
|
318
|
-
`style_image` (URL/base64/owned image id) with `style_options`
|
|
319
|
-
(`color_palette`/`outline`/`detail`/`shading` toggles) — the same
|
|
320
|
-
style-copying mechanic as `character` pro-flash's `styleTraits`, just not
|
|
321
|
-
yet exposed for a plain image. One output, no reference images.
|
|
322
|
-
- **`edit`**: native sizes 32×32 up to **128×128** (a larger ceiling than
|
|
323
|
-
`create`'s 96×96), custom 32–256 step 4. Two distinct `edit_methods`:
|
|
324
|
-
`"text"` (a description) or `"reference"` (a `reference_image`, max 1,
|
|
325
|
-
which must fit the edit canvas natively — no resizing). No style options.
|
|
326
|
-
Canvas never grows. An optional `use_color_palette_correction` flag snaps
|
|
327
|
-
the edited result back to the source's own palette.
|
|
328
|
-
- **`inpaint`**: same size range as `edit`. Mask is a rectangle
|
|
329
|
-
(`mask_x`/`y`/`width`/`height`) or a same-size mask PNG, white = generate /
|
|
330
|
-
black = preserve / alpha ignored — the same convention `inpaint-v3` already
|
|
331
|
-
uses. Always crops to the mask. Three `output_methods`: `"New layer with
|
|
332
|
-
changes"`, `"Modify current layer, only changes"`, `"Modify current
|
|
333
|
-
layer"` — matching exactly what the tutorial's Aseprite/Pixelorama UI
|
|
334
|
-
offers, and a real choice the already-modeled `inpaint-v3` does not expose
|
|
335
|
-
at all today (pixelkiln's `inpaint` revision always gets one behavior). A
|
|
336
|
-
new, genuinely unmodeled mechanic: `context_image` + a required
|
|
337
|
-
`bounding_box` lets the model see up to **3×** the native canvas in either
|
|
338
|
-
dimension of surrounding context beyond the masked region itself — for
|
|
339
|
-
inpainting a sub-region of a larger scene coherently, the same problem
|
|
340
|
-
`docs/REVISIONS.md`'s existing "select a sub-region" workaround for
|
|
341
|
-
`inpaint-v3`'s 512px ceiling solves by hand today.
|
|
342
|
-
- **Cost, from live (but not billed — `get_pro_flash_capabilities`'s quotes
|
|
343
|
-
are provisional) queries**: `create` 32×32 and 64×64 both quote 5
|
|
344
|
-
generations flat; 256×256 quotes 9. `edit`/`inpaint` at 64×64 quote 5;
|
|
345
|
-
`inpaint` at 128×128 quotes 6. `character` and `object` at 64×64 (8
|
|
346
|
-
directions) both quote `image: 5, rotations: 1, total: 6` — matching
|
|
347
|
-
pixelkiln's own already-measured `proFlashCharacterCost` (6 at 64px)
|
|
348
|
-
exactly, reassuring cross-validation of the quote endpoint even though it
|
|
349
|
-
is a quote, not a bill.
|
|
350
|
-
|
|
351
|
-
**Now modeled, in part:** the `imageProFlash` generator wraps `create`
|
|
352
|
-
(style image + `styleTraits`, 16–256px in multiples of 4), and a revision's
|
|
353
|
-
`"engine": "pro-flash"` sends `image-to-image` to `edit` (text method) and
|
|
354
|
-
`inpaint` to `inpaint`. A still's `source_image_id` is recorded and reused
|
|
355
|
-
when a Pro Flash character or object base's `reference` is that still's exact
|
|
356
|
-
file (issue #145). Still unmodeled: `edit`'s `"reference"` method, the
|
|
357
|
-
`use_color_palette_correction` flag, inpaint's `output_method` choice and the
|
|
358
|
-
`context_image` + `bounding_box` mechanism. Costs use the provisional quotes
|
|
359
|
-
above; none has been billed live yet.
|
|
360
|
-
|
|
361
336
|
## Map Workshop (scene composition)
|
|
362
337
|
|
|
363
338
|
PixelLab's actual scene-building surface: lay out a tile floor, place
|
|
@@ -418,7 +393,4 @@ result into a `SkeletonSetSchema` file) — worth scoping once the base
|
|
|
418
393
|
product — "deploy your own agent," confirmed directly from the live tool
|
|
419
394
|
schemas — unrelated to game-asset generation. Nothing to build here.
|
|
420
395
|
- Lip-sync/vocal-animation/talking-gif are named as out of scope in
|
|
421
|
-
docs/PIXELLAB.md, with no in-flight work.
|
|
422
|
-
transfer (`outfit`) are character asset kinds; see docs/CHARACTERS.md. They
|
|
423
|
-
were built and live-measured in September 2026 on a stacked branch that
|
|
424
|
-
never reached `main`, and were ported onto it later.
|
|
396
|
+
docs/PIXELLAB.md, with no in-flight work.
|
|
@@ -12,7 +12,9 @@ providers, or before any PixelLab account operation.
|
|
|
12
12
|
- Cost unit: subscription generations. Copy the exact `pixelkiln plan` total
|
|
13
13
|
into `--budget`; do not translate it into dollars.
|
|
14
14
|
- Account operations: balance, adopt, salvage, tag, and separately confirmed
|
|
15
|
-
purge are supported
|
|
15
|
+
purge are supported, for characters as well as objects (salvage reviews a
|
|
16
|
+
base with its states and loops as one group). Read `docs/RECOVERY.md`
|
|
17
|
+
before using them.
|
|
16
18
|
|
|
17
19
|
## Generator choice
|
|
18
20
|
|
|
@@ -24,7 +26,9 @@ providers, or before any PixelLab account operation.
|
|
|
24
26
|
| `tiles` | Ground variations or connected structures | 20–40 generations |
|
|
25
27
|
| `terrain` | A two-terrain Wang tileset for elevation (grass-to-water, floor-to-cliff) | Unmeasured; borrows the same 20–40 canvas tiers |
|
|
26
28
|
| `imagePro` | A larger or non-square background/scene, or real style transfer | **40 generations flat**, any size |
|
|
27
|
-
| `character` | A character in 4 or 8 directions, its poses (`state`),
|
|
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, 20 per outfit (measured once) |
|
|
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
|
+
| `isometricTile` | One standalone isometric tile (a raised mesa, a cliff block), 16–64px | **1 generation, measured once** (32px `block`) |
|
|
28
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 |
|
|
29
33
|
| `uiElement` | One UI element (button, slot, bar, dialogue box) from the prompt, 16px and up, with an optional concept image | 20–40 generations, **unmeasured** |
|
|
30
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 |
|
|
@@ -172,9 +176,9 @@ not independently measured** — `objectProCost()` assumes it prices
|
|
|
172
176
|
identically to `character` pro-flash's own measured formula
|
|
173
177
|
(`proFlashCharacterCost`), since the request bodies are near-identical minus
|
|
174
178
|
`template_id`; treat it as a working assumption pending a live check.
|
|
175
|
-
|
|
176
|
-
objects from one call
|
|
177
|
-
|
|
179
|
+
`objectPro`'s own place in `pixelkiln adopt` is not modeled yet. (N distinct
|
|
180
|
+
objects from one call, PixelLab's Object Creator "pack", is the `1dir`
|
|
181
|
+
`batch` field above.) `pixelkiln gallery --edit` offers "+ New state" and
|
|
178
182
|
"+ New animation" on a `character` or `objectPro` base/state's drawer, same
|
|
179
183
|
family, same manifest-only write "+ New revision" does — it writes the
|
|
180
184
|
`asset.state`/`asset.animation` fields above (minus `startFrame`/`endFrame`
|
|
@@ -444,12 +448,19 @@ the `direction` value. The same tutorial states outright that PixMiniMax
|
|
|
444
448
|
"allows up to 40 frames," a second, independent (though still not
|
|
445
449
|
live-billed) confirmation of the ceiling above.
|
|
446
450
|
|
|
447
|
-
|
|
448
|
-
|
|
449
|
-
|
|
450
|
-
|
|
451
|
-
|
|
452
|
-
|
|
451
|
+
Parts of Pro Flash image editing are still outside this adapter: `edit`'s
|
|
452
|
+
reference-image method, palette correction, inpaint's output-method choice,
|
|
453
|
+
and inpainting with surrounding `context_image`. See
|
|
454
|
+
[pixellab-roadmap.md](./pixellab-roadmap.md) for the confirmed shape.
|
|
455
|
+
|
|
456
|
+
Three commands call PixelLab on loose files, outside the manifest and
|
|
457
|
+
lockfile. `pixelkiln unzoom --from <file> --out <file>` returns upscaled
|
|
458
|
+
pixel art to its native grid; run it before outside art becomes a
|
|
459
|
+
`reference` or `styleImages` entry (input at least 256×256, result opaque,
|
|
460
|
+
cost unmeasured). `pixelkiln font --description <text> --out <base>` writes a
|
|
461
|
+
`.ttf` and an 80-glyph atlas for PixelLab's documented 25 generations, and
|
|
462
|
+
asks first. `pixelkiln estimate-skeleton <image> --out <file>` starts an
|
|
463
|
+
`animate-skeleton` keypoints file. See `docs/CLI.md`, "PixelLab utilities".
|
|
453
464
|
|
|
454
465
|
For a style aimed at a specific look (a
|
|
455
466
|
retro/console feel or a
|
|
@@ -12,6 +12,11 @@ Read this reference when an asset declares `revision`.
|
|
|
12
12
|
- An inpaint mask must be a PNG and match the available parent dimensions.
|
|
13
13
|
- Start image-to-image strength around `0.2`–`0.4`; explain that the exact
|
|
14
14
|
effect belongs to the model and graph.
|
|
15
|
+
- On PixelLab, `"engine": "pro-flash"` sends an `image-to-image` or `inpaint`
|
|
16
|
+
revision to the Pro Flash edit/inpaint endpoints instead of the Pro ones:
|
|
17
|
+
5 generations up to 96px, 6 up to 208px, 9 beyond (provisional quotes),
|
|
18
|
+
against 20–40. The parent must be 32–256px per side in multiples of 4, and
|
|
19
|
+
`strength` is refused. Other modes reject `engine`.
|
|
15
20
|
- `reduce-colors` and `correct-pixelart` send no prompt to the provider — the
|
|
16
21
|
asset's `prompt` stays a manifest-only label. `numColors`/`paletteImage`
|
|
17
22
|
are mutually exclusive; a `paletteImage` has no size relationship to the
|
|
@@ -40,6 +45,15 @@ Read this reference when an asset declares `revision`.
|
|
|
40
45
|
while cardinal ones in the same batch generate fine — suspect the enhanced
|
|
41
46
|
prompt's wording, not the model, when only some directions of a
|
|
42
47
|
multi-directional set come out wrong.
|
|
48
|
+
- `animate-skeleton` (PixelLab, beta, tier 1+) poses the parent from a
|
|
49
|
+
committed `keypointsFile`: the parent's current pose plus 3–15 per-frame
|
|
50
|
+
poses. It needs `direction`; `prompt` names the motion and the optional
|
|
51
|
+
`description` says what the subject looks like. Bootstrap the file with
|
|
52
|
+
`pixelkiln estimate-skeleton <image> --out <file>` (a direct call, outside
|
|
53
|
+
any budget, like `balance`), then edit the frame poses by hand. Plan cost
|
|
54
|
+
interpolates PixelLab's documented anchors (3 frames = 2, 8 = 3, 15 = 4);
|
|
55
|
+
like the other animate modes it lands in candidate review and is
|
|
56
|
+
unmeasured live.
|
|
43
57
|
- `interpolate` needs `lastFrame` (the end keyframe; the parent is the
|
|
44
58
|
start) and lets the model pick the frame count. Suggest it for motion one
|
|
45
59
|
`animate` pass can't produce cleanly: build the key poses first as
|
|
@@ -53,8 +67,8 @@ Read this reference when an asset declares `revision`.
|
|
|
53
67
|
`/reduce-colors`/`/correct-pixelart` endpoints synchronously (no background
|
|
54
68
|
job); everything else in this file about the dependency gate, hashing, and
|
|
55
69
|
candidate review applies identically regardless of provider. ComfyUI
|
|
56
|
-
cannot back `animate`, `animate-pixminimax`, `
|
|
57
|
-
`edit-animation` at all (`supportsRevision` refuses them) — its revision
|
|
70
|
+
cannot back `animate`, `animate-pixminimax`, `animate-skeleton`,
|
|
71
|
+
`interpolate`, or `edit-animation` at all (`supportsRevision` refuses them) — its revision
|
|
58
72
|
path always writes a single output image, and an animation is a frame
|
|
59
73
|
set; that's a structural gap, not a missing binding.
|
|
60
74
|
- A filtered child resolves its parents for safety but does not generate them.
|
|
@@ -67,8 +81,8 @@ Read this reference when an asset declares `revision`.
|
|
|
67
81
|
from a parent's drawer ("+ New revision" under "Revisions from this
|
|
68
82
|
asset"), once the parent has usable pixels; it does not offer `inpaint`
|
|
69
83
|
(needs a mask upload), `outpaint`, `reduce-colors`, `correct-pixelart`,
|
|
70
|
-
`animate`, `animate-pixminimax`, `interpolate`, or
|
|
71
|
-
so add those by hand.
|
|
84
|
+
`animate`, `animate-pixminimax`, `animate-skeleton`, `interpolate`, or
|
|
85
|
+
`edit-animation` yet, so add those by hand.
|
|
72
86
|
- Before an outside image becomes a `styleImages` or `reference` path,
|
|
73
87
|
suggest `pixelkiln unzoom --from <file>`: upscaled pixel art (every art
|
|
74
88
|
pixel a block of screen pixels) degrades every reference-taking PixelLab
|