pixelkiln 0.11.0 → 0.12.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/CONTRIBUTING.md +1 -1
- package/PROVIDERS.md +22 -24
- package/README.md +37 -36
- package/SECURITY.md +2 -3
- package/dist/cli.d.ts +5 -3
- package/dist/cli.js +1061 -149
- package/dist/cli.js.map +1 -1
- package/dist/index.cjs +997 -228
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +1282 -1
- package/dist/index.d.ts +1282 -1
- package/dist/index.js +932 -181
- package/dist/index.js.map +1 -1
- package/docs/AGENTS.md +7 -5
- package/docs/CLI.md +69 -5
- package/docs/COMFYUI.md +38 -18
- package/docs/GETTING_STARTED.md +13 -6
- package/docs/LIBRARY.md +46 -0
- package/docs/PROVIDER_BENCHMARK.md +22 -18
- package/docs/QUALITY.md +59 -11
- package/docs/README.md +5 -5
- package/docs/RECIPES.md +113 -0
- package/package.json +3 -1
- package/recipes/comfyui/pixel-art-xl-environment/1.0.0/pixelkiln.recipe.json +82 -0
- package/recipes/comfyui/pixel-art-xl-environment/1.0.0/workflow-api.json +79 -0
- package/schema/quality-baseline.schema.json +189 -0
- package/schema/recipe.schema.json +528 -0
- package/skills/pixelkiln/SKILL.md +8 -2
- package/skills/pixelkiln/references/comfyui.md +18 -7
- package/skills/pixelkiln/references/mixed-providers.md +1 -1
- package/skills/pixelkiln/references/recipes.md +26 -0
- package/skills/pixelkiln/references/retro-diffusion.md +2 -2
package/CONTRIBUTING.md
CHANGED
|
@@ -36,7 +36,7 @@ build time. Do not create a second documentation copy under `website/`.
|
|
|
36
36
|
Website sprites are generated from `website/art/pixelkiln.manifest.json`.
|
|
37
37
|
Treat those requests as paid work: run `plan` and `audit` first, use an explicit
|
|
38
38
|
hard budget, and commit the manifest, lockfile, and reviewed outputs together.
|
|
39
|
-
|
|
39
|
+
Capture the Review UI at 1280×720 only after every asset
|
|
40
40
|
loads. Give a replacement capture a new public filename and update the page
|
|
41
41
|
reference so deployed image caches cannot retain the old version.
|
|
42
42
|
|
package/PROVIDERS.md
CHANGED
|
@@ -1,16 +1,15 @@
|
|
|
1
1
|
# Provider comparison
|
|
2
2
|
|
|
3
|
-
PixelKiln can
|
|
4
|
-
self-hosted ComfyUI server.
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
authentication, pricing, validation, request lifecycle, and output formats.
|
|
3
|
+
PixelKiln can run one manifest through PixelLab, Retro Diffusion, or a
|
|
4
|
+
self-hosted ComfyUI server. Planning, budgets, review, recovery, and packaging
|
|
5
|
+
stay the same. Each adapter handles its service's authentication, prices,
|
|
6
|
+
request lifecycle, and file formats.
|
|
8
7
|
|
|
9
8
|
PixelLab remains the default so existing manifests and spec hashes remain
|
|
10
9
|
compatible. Select another backend with the manifest's top-level `provider`
|
|
11
10
|
field and keep its settings under the matching `providerOptions` key.
|
|
12
11
|
|
|
13
|
-
|
|
12
|
+
To configure a project, use [Set up PixelLab](./docs/PIXELLAB.md),
|
|
14
13
|
[Set up Retro Diffusion](./docs/RETRO_DIFFUSION.md), or
|
|
15
14
|
[Set up ComfyUI](./docs/COMFYUI.md). This page focuses on choosing between
|
|
16
15
|
them.
|
|
@@ -41,7 +40,7 @@ the providers offer directly.
|
|
|
41
40
|
|
|
42
41
|
| Decision | PixelLab | Retro Diffusion |
|
|
43
42
|
|---|---|---|
|
|
44
|
-
| Best fit today |
|
|
43
|
+
| Best fit today | Existing PixelKiln projects, account reconciliation, and live-tested generation | Native pixel-art styles, USD budgets, animation, and alternate tileset workflows |
|
|
45
44
|
| PixelKiln generators | `map`, `pixflux`, `1dir`, `tiles` | `map` and `pixflux` stills, `tiles`, `animation` |
|
|
46
45
|
| Output | PNG stills, candidates, and structural tile members | PNG stills/tiles/spritesheets or animated GIF |
|
|
47
46
|
| Candidate review | Yes; count varies by generator and size | Yes for 1–16 still candidates; animations and tilesets currently use one result |
|
|
@@ -74,11 +73,11 @@ prompt, size, batch, and optional seed inputs PixelKiln may replace.
|
|
|
74
73
|
| Account lifecycle | Read-only connectivity check; no balance, remote object listing, tagging, or purge |
|
|
75
74
|
| Confidence | Full mocked coverage plus live generation, four-candidate review, cache-only restore, and three provider-neutral refinement runs on Apple MPS; background removal stays in the graph and aesthetic approval remains human |
|
|
76
75
|
|
|
77
|
-
Choose ComfyUI when
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
differ
|
|
81
|
-
|
|
76
|
+
Choose ComfyUI when control over the graph is worth the extra validation. Start
|
|
77
|
+
with a hosted provider when you want less cleanup. Two ComfyUI machines can run
|
|
78
|
+
the same graph and still differ because their checkpoint bytes, custom nodes,
|
|
79
|
+
or sampler settings differ. Commit the workflow and record the model stack used
|
|
80
|
+
to test it.
|
|
82
81
|
|
|
83
82
|
## Large environments, mountains, and buildings
|
|
84
83
|
|
|
@@ -92,11 +91,11 @@ background. That distinction matters more than raw canvas size.
|
|
|
92
91
|
| 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. |
|
|
93
92
|
| 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. |
|
|
94
93
|
|
|
95
|
-
For production
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
94
|
+
For a production environment, build a kit: seamless terrain, separate
|
|
95
|
+
landmarks and buildings, foreground occluders, and a distant backdrop. You can
|
|
96
|
+
rerun one weak piece, set collision per object, and move layers independently
|
|
97
|
+
for parallax. Generate each piece at its native pixel resolution, then use
|
|
98
|
+
integer nearest-neighbor scaling.
|
|
100
99
|
|
|
101
100
|
A visual benchmark should use the same briefs for an isolated building, a
|
|
102
101
|
top-down landmark, and a full scenic background. Use the same intended native
|
|
@@ -152,7 +151,7 @@ complete claim checks. Keep the provider lockfiles separate. Package their
|
|
|
152
151
|
reviewed outputs independently, or combine explicit files with `pixelkiln pack
|
|
153
152
|
--inputs <file> --out <path>`.
|
|
154
153
|
|
|
155
|
-
This
|
|
154
|
+
This split works when PixelLab handles prompt-sensitive buildings and
|
|
156
155
|
account recovery, Retro Diffusion handles environment-styled backdrops, clean
|
|
157
156
|
cutouts, or native animation, and ComfyUI handles private or project-specific
|
|
158
157
|
model experiments that can absorb manual cleanup. Retro Diffusion is not a higher-resolution
|
|
@@ -207,12 +206,11 @@ estimate and hard budget remain enforced.
|
|
|
207
206
|
|
|
208
207
|
## What to build next
|
|
209
208
|
|
|
210
|
-
The
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
pixel clusters, and aesthetic approval still require a person.
|
|
209
|
+
The ComfyUI adapter now has a live, versioned core-node workflow. Generation,
|
|
210
|
+
candidate review, cache recovery, native-grid recovery, palette enforcement,
|
|
211
|
+
and the approval record work. The tested SDXL plus Pixel Art XL graph can find
|
|
212
|
+
a composition, but it is not a production preset. Background removal stays in
|
|
213
|
+
the graph. A person must still check the brief, pixel clusters, and drawing.
|
|
216
214
|
|
|
217
215
|
Native per-style provider routing remains the highest-value orchestration
|
|
218
216
|
feature. One manifest should be able to send a building style to PixelLab, an
|
package/README.md
CHANGED
|
@@ -6,42 +6,38 @@
|
|
|
6
6
|
[Documentation](https://pixelkiln.griffen.codes/docs) ·
|
|
7
7
|
[GitHub](https://github.com/gfargo/pixelkiln)
|
|
8
8
|
|
|
9
|
-
|
|
10
|
-
game
|
|
11
|
-
|
|
12
|
-
PixelKiln treats generated art
|
|
13
|
-
|
|
14
|
-
local contact sheet, and commit
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
> **Release status:** PixelKiln is published on npm. Merges to `main` use
|
|
34
|
-
> Semantic Release and npm Trusted Publishing, with signed provenance and no
|
|
35
|
-
> long-lived npm publishing token.
|
|
9
|
+
Generate pixel art from a manifest, review it locally, recover paid work, and
|
|
10
|
+
package the accepted files for a game engine.
|
|
11
|
+
|
|
12
|
+
PixelKiln treats generated art as build output. Declare assets once, inspect the
|
|
13
|
+
cost and changed work, generate only what is missing, choose candidates in a
|
|
14
|
+
local contact sheet, and commit the source and output hashes. No LLM chooses
|
|
15
|
+
what to run or which image wins. The CLI handles provider calls, polling,
|
|
16
|
+
hashing, downloads, and file placement.
|
|
17
|
+
|
|
18
|
+
PixelLab is the production backend. Retro Diffusion and self-hosted ComfyUI are
|
|
19
|
+
experimental. The Retro Diffusion adapter has live coverage for RD Fast and RD
|
|
20
|
+
Plus stills; its multi-candidate, tileset, GIF, and spritesheet paths are tested
|
|
21
|
+
with fixtures but still need paid live runs. ComfyUI has passed local generation,
|
|
22
|
+
four-candidate review, cache recovery, and native-grid refinement on Apple MPS.
|
|
23
|
+
Its tested SDXL workflow can find a composition, but it is not a finished
|
|
24
|
+
pixel-art preset. The [provider comparison](./PROVIDERS.md) lists the tested
|
|
25
|
+
limits and the best route for buildings and environments. `FakeProvider` covers
|
|
26
|
+
the same contract in automated tests.
|
|
27
|
+
|
|
28
|
+
## Release
|
|
29
|
+
|
|
30
|
+
PixelKiln is published on npm. Merges to `main` use Semantic Release and npm
|
|
31
|
+
Trusted Publishing, with signed provenance and no long-lived npm token.
|
|
36
32
|
|
|
37
33
|
## Why PixelKiln
|
|
38
34
|
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
35
|
+
Image generators leave two piles behind: remote jobs that cost money and local
|
|
36
|
+
files that no longer explain where they came from. Prompts drift. Failed
|
|
37
|
+
downloads look like failed generations. Teams rerun whole sets because they
|
|
38
|
+
cannot tell which asset changed.
|
|
43
39
|
|
|
44
|
-
PixelKiln
|
|
40
|
+
PixelKiln keeps the missing record:
|
|
45
41
|
|
|
46
42
|
- a committed manifest defines assets, styles, generators, budgets, and output;
|
|
47
43
|
- a committed lockfile maps each style/asset to paid provider work and exact
|
|
@@ -69,7 +65,7 @@ PixelKiln supplies the missing project model:
|
|
|
69
65
|
| Artifact integrity | Portable source/output hashes, canonical fingerprints, manual-edit protection, transactional promotion, crash journal recovery. |
|
|
70
66
|
| Library/extension | Public TypeScript primitives, provider capability interface, and deterministic `FakeProvider`. |
|
|
71
67
|
|
|
72
|
-
###
|
|
68
|
+
### Local human review
|
|
73
69
|
|
|
74
70
|
`pixelkiln pick` opens an actual local candidate sheet; the orchestration layer
|
|
75
71
|
never asks a model to choose artwork for you.
|
|
@@ -78,7 +74,7 @@ never asks a model to choose artwork for you.
|
|
|
78
74
|
|
|
79
75
|
Use Left/Right to inspect alternatives, Enter or 1–9 to select, and 0 to leave
|
|
80
76
|
a row unresolved. Nothing is applied when the window is closed without using
|
|
81
|
-
**Apply selections**. See the [CLI reference](docs/CLI.md#pick) for the
|
|
77
|
+
**Apply selections**. See the [CLI reference](docs/CLI.md#pick) for the full
|
|
82
78
|
review workflow.
|
|
83
79
|
|
|
84
80
|
## Install
|
|
@@ -202,6 +198,10 @@ still need the graph and a person. `pixelkiln refine` now handles grid recovery,
|
|
|
202
198
|
final palette enforcement, measurable checks, and the hash-bound approval
|
|
203
199
|
record.
|
|
204
200
|
|
|
201
|
+
Versioned recipes capture tested workflows, model hashes, license links, and
|
|
202
|
+
manifest-ready styles with quality boundaries. Start with `pixelkiln recipe install comfyui/pixel-art-xl-environment@1.0.0`.
|
|
203
|
+
Recipes install no models and make no provider calls. See [Versioned recipes](./docs/RECIPES.md).
|
|
204
|
+
|
|
205
205
|
The schema rejects unknown fields and invalid generator combinations before
|
|
206
206
|
planning. See the [Manifest reference](./docs/MANIFEST.md).
|
|
207
207
|
|
|
@@ -347,7 +347,7 @@ const plan = await buildPlan(specs, await loadLock("pixelkiln.lock.json"))
|
|
|
347
347
|
console.log(plan.cost, plan.costUnit, plan.actionable.length)
|
|
348
348
|
```
|
|
349
349
|
|
|
350
|
-
The package also exports audit gates, provider-neutral refinement, lock/output
|
|
350
|
+
The package also exports audit and image-regression gates, provider-neutral refinement, lock/output
|
|
351
351
|
helpers, provider contracts, pipeline stages, sprite packing/mounting, tile
|
|
352
352
|
exporters, managed artifact writes, and offline provenance verification. See
|
|
353
353
|
[Library API](./docs/LIBRARY.md).
|
|
@@ -361,6 +361,7 @@ exporters, managed artifact writes, and offline provenance verification. See
|
|
|
361
361
|
| [Set up PixelLab](./docs/PIXELLAB.md) | Production-provider credentials, manifest, generators, and account workflows. |
|
|
362
362
|
| [Set up Retro Diffusion](./docs/RETRO_DIFFUSION.md) | Experimental-provider credentials, styles, formats, cost checks, and limits. |
|
|
363
363
|
| [Set up ComfyUI](./docs/COMFYUI.md) | Experimental self-hosted server, workflow bindings, local cost semantics, and limits. |
|
|
364
|
+
| [Versioned recipes](./docs/RECIPES.md) | Pinned workflow packs, model hashes, manifest templates, and quality contracts. |
|
|
364
365
|
| [CLI reference](./docs/CLI.md) | Every command, flag, JSON mode, and exit contract. |
|
|
365
366
|
| [Manifest reference](./docs/MANIFEST.md) | Every style/asset field and generator constraint. |
|
|
366
367
|
| [Agent workflows](./docs/AGENTS.md) | Official skill install, operating model, and provider-aware safety. |
|
|
@@ -368,7 +369,7 @@ exporters, managed artifact writes, and offline provenance verification. See
|
|
|
368
369
|
| [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. |
|
|
369
370
|
| [Derived artifacts](./docs/ARTIFACTS.md) | Refine, pack, mount, export, provenance, ownership, transactions, and recovery. |
|
|
370
371
|
| [Recovery](./docs/RECOVERY.md) | Restore, caches, adopt, salvage, claims, and purge safety. |
|
|
371
|
-
| [Quality gates](./docs/QUALITY.md) |
|
|
372
|
+
| [Quality gates](./docs/QUALITY.md) | Image baselines, plan, doctor, refine, audit, cache, human approval, JSON, and CI. |
|
|
372
373
|
| [Architecture](./docs/ARCHITECTURE.md) | State model, lockfile, providers, concurrency, and output identity. |
|
|
373
374
|
| [Library API](./docs/LIBRARY.md) | Public TypeScript contracts and examples. |
|
|
374
375
|
| [Tiles](./docs/TILES.md) | Structural outputs and generic/Tiled/Godot formats. |
|
package/SECURITY.md
CHANGED
|
@@ -2,9 +2,8 @@
|
|
|
2
2
|
|
|
3
3
|
## Supported versions
|
|
4
4
|
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
may be asked to upgrade before a fix is backported.
|
|
5
|
+
Security fixes target `main` and the latest npm release. Older versions may
|
|
6
|
+
need to upgrade before a fix is backported.
|
|
8
7
|
|
|
9
8
|
## Reporting a vulnerability
|
|
10
9
|
|
package/dist/cli.d.ts
CHANGED
|
@@ -42,11 +42,13 @@ interface Args {
|
|
|
42
42
|
minGridConfidence?: GridConfidence;
|
|
43
43
|
reviewer?: string;
|
|
44
44
|
note?: string;
|
|
45
|
-
/** `
|
|
45
|
+
/** ComfyUI `models` directory used for offline recipe model verification. */
|
|
46
|
+
modelRoot?: string;
|
|
47
|
+
/** Subcommand for `quality`, `recipe`, `refine`, or `workspace`. */
|
|
46
48
|
subcommand?: string;
|
|
47
49
|
/** Path to a workspace catalog. Defaults to `pixelkiln.workspace.json` in cwd. */
|
|
48
50
|
workspace?: string;
|
|
49
|
-
/**
|
|
51
|
+
/** Positional target for recipe and workspace subcommands. */
|
|
50
52
|
target?: string;
|
|
51
53
|
/** `workspace add`: provider id to register the project under. Defaults to "pixellab". */
|
|
52
54
|
provider?: string;
|
|
@@ -60,7 +62,7 @@ interface Args {
|
|
|
60
62
|
*/
|
|
61
63
|
explicitLock?: string;
|
|
62
64
|
}
|
|
63
|
-
declare const COMMANDS: readonly ["init", "plan", "doctor", "gen", "submit", "poll", "pick", "fetch", "restore", "adopt", "accept", "salvage", "purge", "prune", "audit", "cache", "pack", "mount", "export", "tag", "balance", "status", "refine", "workspace", "help", "--help", "-h", "--version", "-v"];
|
|
65
|
+
declare const COMMANDS: readonly ["init", "plan", "doctor", "gen", "submit", "poll", "pick", "fetch", "restore", "adopt", "accept", "salvage", "purge", "prune", "audit", "cache", "pack", "mount", "export", "tag", "balance", "status", "quality", "refine", "recipe", "workspace", "help", "--help", "-h", "--version", "-v"];
|
|
64
66
|
/**
|
|
65
67
|
* Strict parsing. Unknown flags are a hard error rather than being ignored,
|
|
66
68
|
* because a silently-dropped filter is expensive here: `--styles neon` (plural,
|