pixelkiln 0.14.0 → 0.15.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 CHANGED
@@ -9,6 +9,11 @@ PixelLab remains the default so existing manifests and spec hashes remain
9
9
  compatible. The manifest's top-level `provider` is the default; a style may
10
10
  override it. Keep service settings under the matching `providerOptions` key.
11
11
 
12
+ Provider choice and release quality are separate. Any supported single-image
13
+ style can declare one `quality` profile for native-grid recovery, a closed
14
+ palette, measurable checks, and named approval. The profile does not change the
15
+ provider request or its cost. Pack and mount use only approved derived PNGs.
16
+
12
17
  To configure a project, use [Set up PixelLab](./docs/PIXELLAB.md),
13
18
  [Set up Retro Diffusion](./docs/RETRO_DIFFUSION.md),
14
19
  [Set up ComfyUI](./docs/COMFYUI.md), or
package/README.md CHANGED
@@ -14,16 +14,16 @@ what to run or which image wins. The CLI handles provider calls, polling,
14
14
  hashing, downloads, and file placement.
15
15
 
16
16
  PixelLab is the production backend. Retro Diffusion, self-hosted ComfyUI, and
17
- Scenario are experimental. The Retro Diffusion adapter has live coverage for
18
- RD Fast and RD Plus stills; its multi-candidate, tileset, GIF, and spritesheet
19
- paths are tested with fixtures but still need paid live runs. ComfyUI has passed
20
- local generation, four-candidate review, cache recovery, and native-grid
21
- refinement on Apple MPS. Its tested SDXL workflow can find a composition, but
22
- it is not a finished pixel-art preset. Scenario has live-tested authentication,
23
- CU preflight, single- and two-output generation, human review, and durable
24
- restore with BFL Flux 2 Dev. It remains experimental. Styles may use different providers with separate
25
- budget ceilings. The [provider comparison](./PROVIDERS.md) lists the tested limits
26
- and best routes. `FakeProvider` covers the same contract in automated tests.
17
+ Scenario are experimental. Retro Diffusion has live coverage for RD Fast and
18
+ RD Plus stills; its other paths still need paid live runs. ComfyUI has passed
19
+ local generation, candidate review, recovery, and native-grid refinement on
20
+ Apple MPS. Its tested SDXL workflow finds compositions, not finished pixel art.
21
+ Scenario has passed CU preflight, generation, human review, and durable restore
22
+ with BFL Flux 2 Dev.
23
+
24
+ Styles may use different providers with separate budget ceilings. The
25
+ [provider comparison](./PROVIDERS.md) lists the tested limits and best routes.
26
+ `FakeProvider` covers the shared contract in automated tests.
27
27
 
28
28
  ## Release
29
29
 
@@ -59,7 +59,7 @@ PixelKiln keeps the missing record:
59
59
  | Existing-art onboarding | Manifest scaffolding, exact-hash account adoption, and prompt recovery. |
60
60
  | Recovery | Validated local content cache, durable provider-reference restore, account object-hash cache, and resumable jobs. |
61
61
  | Shared-account safety | Cross-project claim files or a registered workspace catalog, sibling-style exclusion, reviewed salvage, keep/discard tags, separate confirmed purge. |
62
- | Quality control | Palette distance, transparency, color-count, relative outlier, cache-integrity, and doctor gates. |
62
+ | Quality control | Manifest-native grid recovery, closed palettes, named approval, regression baselines, and fail-closed packaging. |
63
63
  | Sprite packaging | Deterministic RGBA packing, stable-cell mounting, explicit external input lists, structural output roles. |
64
64
  | Engine export | Lossless generic tile contract, Tiled Wang sets, and Godot 4 terrain sets. |
65
65
  | Artifact integrity | Portable source/output hashes, canonical fingerprints, manual-edit protection, transactional promotion, crash journal recovery. |
@@ -67,8 +67,9 @@ PixelKiln keeps the missing record:
67
67
 
68
68
  ### Local human review
69
69
 
70
- `pixelkiln pick` opens an actual local candidate sheet; the orchestration layer
71
- never asks a model to choose artwork for you.
70
+ `pixelkiln pick` opens a local candidate sheet. It preserves each image's aspect
71
+ ratio, fits large work without blurring small sprites, and never asks a model to
72
+ choose artwork for you.
72
73
 
73
74
  ![PixelKiln candidate review UI](./website/public/review-ui-showcase.jpg)
74
75
 
@@ -191,16 +192,12 @@ select another provider and pass namespaced `providerOptions`; see
191
192
  [Set up ComfyUI](./docs/COMFYUI.md), and
192
193
  [Set up Scenario](./docs/SCENARIO.md). The
193
194
  [provider comparison](./PROVIDERS.md) covers costs,
194
- current confidence, and limitations. The committed ComfyUI projects now include
195
- transparent cutouts, palette-controlled backgrounds, wide environment canvases,
196
- and native-grid recovery for model output that only looks like pixel art. The
197
- ComfyUI guidance is quality-first: start with 48–128px native components,
198
- apply the final palette after grid recovery, require prompt-coverage and human
199
- cluster-and-silhouette review, and compose larger scenes from accepted parts
200
- instead of chasing a larger raster. Background removal and the art decision
201
- still need the graph and a person. `pixelkiln refine` now handles grid recovery,
202
- final palette enforcement, measurable checks, and the hash-bound approval
203
- record.
195
+ current confidence, and limitations. ComfyUI works best as a composition tool:
196
+ start with 48–128px native components and build larger scenes from accepted
197
+ parts. Any single-image style can declare a `quality` profile for grid recovery,
198
+ a closed palette, measurable checks, and named human approval. `plan --check`,
199
+ `pack`, and `mount` then fail closed when that derived output is missing or
200
+ stale. Changing the profile never schedules another provider generation.
204
201
 
205
202
  Versioned recipes capture tested workflows, model hashes, license links, and
206
203
  manifest-ready styles with quality boundaries. Start with `pixelkiln recipe install comfyui/pixel-art-xl-environment@1.0.0`.
@@ -226,11 +223,10 @@ pixelkiln restore
226
223
  pixelkiln audit --check --max-distance 35 --min-transparency 0.1
227
224
  pixelkiln cache --check
228
225
 
229
- # Provider-neutral pixel cleanup after selecting a generated candidate.
230
- pixelkiln refine --from candidate.png --out art/native.png \
231
- --palette "#141b1e,#23312a,#384d4f,#526a8d,#709fcf,#865c45,#c6a766,#f1bb70"
232
- pixelkiln refine approve --from art/native.pixelkiln.json --reviewer "Your Name"
233
- pixelkiln refine check --from art/native.pixelkiln.json
226
+ # Build and verify the quality output declared by style.quality.
227
+ pixelkiln refine --style base
228
+ pixelkiln refine approve --from assets/final/anvil.pixelkiln.json --reviewer "Your Name"
229
+ pixelkiln refine check --style base
234
230
  ```
235
231
 
236
232
  Repeated `--style`, `--only`, `--claims`, and `--output-role` filters
@@ -272,11 +268,10 @@ pixelkiln mount --style ground
272
268
  pixelkiln export --style ground --only terrain --format tiled
273
269
  ```
274
270
 
275
- Pack, mount, and export write managed bundles. A `.pixelkiln.json` companion
276
- records portable source paths/hashes, layout/export options, output hashes, and
277
- a canonical fingerprint. Existing unowned output is adopted only when already
278
- byte-identical; manual edits stop the whole write unless `--force` explicitly
279
- takes ownership.
271
+ Pack, mount, and export write managed bundles. When a style has a quality
272
+ profile, pack and mount consume only its current approved PNGs and include their
273
+ records in provenance. Existing unowned output is adopted only when already
274
+ byte-identical; manual edits stop the whole write unless `--force` takes ownership.
280
275
 
281
276
  All changing members stage before promotion. Ordinary failures roll back.
282
277
  Abrupt termination leaves a validated transaction journal: the next invocation
@@ -346,8 +341,8 @@ const plan = await buildPlan(specs, await loadLock("pixelkiln.lock.json"))
346
341
  console.log(plan.groups, plan.actionable.length)
347
342
  ```
348
343
 
349
- The package also exports audit and image-regression gates, provider-neutral refinement, lock/output
350
- helpers, provider contracts, pipeline stages, sprite packing/mounting, tile
344
+ The package also exports audit and image-regression gates, quality-profile
345
+ inspection and refinement, lock/output helpers, provider contracts, sprite packing/mounting, tile
351
346
  exporters, managed artifact writes, and offline provenance verification. See
352
347
  [Library API](./docs/LIBRARY.md).
353
348
 
@@ -363,7 +358,7 @@ exporters, managed artifact writes, and offline provenance verification. See
363
358
  | [Set up Scenario](./docs/SCENARIO.md) | Experimental hosted models, two-part credentials, CU preflight, review, and durable downloads. |
364
359
  | [Versioned recipes](./docs/RECIPES.md) | Pinned workflow packs, model hashes, manifest templates, and quality contracts. |
365
360
  | [CLI reference](./docs/CLI.md) | Every command, flag, JSON mode, and exit contract. |
366
- | [Manifest reference](./docs/MANIFEST.md) | Every style/asset field and generator constraint. |
361
+ | [Manifest reference](./docs/MANIFEST.md) | Style/asset fields, quality profiles, and generator constraints. |
367
362
  | [Mixed-provider projects](./docs/MIXED_PROVIDERS.md) | Per-style routing, provider-keyed budgets, recovery, and account commands. |
368
363
  | [Agent workflows](./docs/AGENTS.md) | Official skill install, operating model, and provider-aware safety. |
369
364
  | [Generators](./docs/GENERATORS.md) | Capability choice, measured costs, palettes, style references, and tiles. |
package/dist/cli.d.ts CHANGED
@@ -1,5 +1,8 @@
1
1
  #!/usr/bin/env node
2
- type GridConfidence = "low" | "medium" | "high";
2
+ import { z } from 'zod';
3
+
4
+ declare const GridConfidenceSchema: z.ZodEnum<["low", "medium", "high"]>;
5
+ type GridConfidence = z.infer<typeof GridConfidenceSchema>;
3
6
 
4
7
  type TilesetFormat = "generic" | "tiled" | "godot";
5
8