pixelkiln 0.13.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 +68 -27
- package/README.md +46 -51
- package/SECURITY.md +2 -1
- package/dist/cli.d.ts +4 -1
- package/dist/cli.js +3667 -2780
- package/dist/cli.js.map +1 -1
- package/dist/index.cjs +1119 -306
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +740 -122
- package/dist/index.d.ts +740 -122
- package/dist/index.js +1105 -301
- package/dist/index.js.map +1 -1
- package/docs/AGENTS.md +18 -13
- package/docs/ARCHITECTURE.md +33 -13
- package/docs/ARTIFACTS.md +35 -13
- package/docs/CLI.md +59 -29
- package/docs/COMFYUI.md +33 -2
- package/docs/GETTING_STARTED.md +34 -7
- package/docs/LIBRARY.md +26 -3
- package/docs/MANIFEST.md +108 -1
- package/docs/MIXED_PROVIDERS.md +5 -3
- package/docs/PIXELLAB.md +5 -0
- package/docs/PROVIDER_BENCHMARK.md +11 -0
- package/docs/QUALITY.md +64 -15
- package/docs/README.md +4 -3
- package/docs/RECIPES.md +4 -0
- package/docs/RETRO_DIFFUSION.md +6 -0
- package/docs/SCENARIO.md +207 -0
- package/package.json +2 -1
- package/schema/manifest.schema.json +41 -0
- package/schema/recipe.schema.json +41 -0
- package/skills/pixelkiln/SKILL.md +16 -8
- package/skills/pixelkiln/references/quality.md +44 -0
- package/skills/pixelkiln/references/scenario.md +35 -0
package/PROVIDERS.md
CHANGED
|
@@ -1,17 +1,23 @@
|
|
|
1
1
|
# Provider comparison
|
|
2
2
|
|
|
3
|
-
PixelKiln can route one manifest through PixelLab, Retro Diffusion,
|
|
4
|
-
self-hosted ComfyUI server. Planning, review, recovery, and packaging stay
|
|
5
|
-
same. Each adapter handles its service's authentication, prices, request
|
|
3
|
+
PixelKiln can route one manifest through PixelLab, Retro Diffusion, Scenario,
|
|
4
|
+
and a self-hosted ComfyUI server. Planning, review, recovery, and packaging stay
|
|
5
|
+
the same. Each adapter handles its service's authentication, prices, request
|
|
6
6
|
lifecycle, and file formats.
|
|
7
7
|
|
|
8
8
|
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
|
-
[Set up Retro Diffusion](./docs/RETRO_DIFFUSION.md),
|
|
14
|
-
[Set up ComfyUI](./docs/COMFYUI.md)
|
|
18
|
+
[Set up Retro Diffusion](./docs/RETRO_DIFFUSION.md),
|
|
19
|
+
[Set up ComfyUI](./docs/COMFYUI.md), or
|
|
20
|
+
[Set up Scenario](./docs/SCENARIO.md). This page focuses on choosing between
|
|
15
21
|
them.
|
|
16
22
|
|
|
17
23
|
## Support status
|
|
@@ -21,6 +27,7 @@ them.
|
|
|
21
27
|
| PixelLab | Production; paid generation and account workflows live-tested | `PIXELLAB_API_KEY` | generations |
|
|
22
28
|
| Retro Diffusion | Experimental; authenticated paid still generation, download, provenance, and recovery live-tested; advanced workflows pending | `RD_API_KEY` | USD |
|
|
23
29
|
| ComfyUI | Experimental; local single-image generation, four-candidate queue, provenance, and cache-only recovery live-tested on Apple MPS | none; optional `COMFYUI_BASE_URL` | free |
|
|
30
|
+
| Scenario | Experimental; BFL Flux 2 Dev authentication, CU preflight, paid single/two-output generation, review, download, and durable recovery live-tested | `SCENARIO_SDK_API_KEY` and `SCENARIO_SDK_API_SECRET` | compute-units |
|
|
24
31
|
| FakeProvider | Test-only deterministic lifecycle | none | free |
|
|
25
32
|
|
|
26
33
|
Live tests now cover single-candidate RD Fast and RD Plus stills from cost quote
|
|
@@ -35,6 +42,13 @@ ComfyUI's `free` unit means PixelKiln cannot identify a metered provider
|
|
|
35
42
|
charge. It does not count hardware, hosting, electricity, or model-license
|
|
36
43
|
costs.
|
|
37
44
|
|
|
45
|
+
Scenario planning uses the manifest's conservative `maxComputeUnits` value.
|
|
46
|
+
Immediately before paid work, the adapter asks Scenario for a free live quote
|
|
47
|
+
using the identical request. The first live smoke quoted and billed 16 CU for
|
|
48
|
+
one image and 32 CU for two. Human selection and a forced provider restore both
|
|
49
|
+
passed. The smoke is separate from the visual comparison because it uses a
|
|
50
|
+
different brief.
|
|
51
|
+
|
|
38
52
|
## PixelLab vs. Retro Diffusion
|
|
39
53
|
|
|
40
54
|
This comparison describes the adapters PixelKiln ships today, not every feature
|
|
@@ -81,17 +95,38 @@ the same graph and still differ because their checkpoint bytes, custom nodes,
|
|
|
81
95
|
or sampler settings differ. Commit the workflow and record the model stack used
|
|
82
96
|
to test it.
|
|
83
97
|
|
|
98
|
+
## Where Scenario fits
|
|
99
|
+
|
|
100
|
+
Scenario adds hosted third-party models and reusable project-specific models
|
|
101
|
+
without requiring a local GPU. PixelKiln's first adapter intentionally covers
|
|
102
|
+
only the part that fits its existing still-image pipeline.
|
|
103
|
+
|
|
104
|
+
| Decision | Scenario through PixelKiln |
|
|
105
|
+
|---|---|
|
|
106
|
+
| Best fit today | A controlled one-asset spike using a hosted model or project LoRA with a hard CU ceiling |
|
|
107
|
+
| PixelKiln generator | `map` stills |
|
|
108
|
+
| Output | One to four PNG candidates, 128–2048px in multiples of 16 |
|
|
109
|
+
| Cost model | Manifest `maxComputeUnits`, command budget, then free authoritative preflight before each paid request |
|
|
110
|
+
| Recovery | Durable job and asset IDs refresh temporary signed original-file URLs |
|
|
111
|
+
| Account lifecycle | Read-only connectivity check; no balance, list, adopt, salvage, tag, or purge yet |
|
|
112
|
+
| Confidence | BFL Flux 2 Dev live-tested through quote, billing, single/two-output jobs, human selection, PNG download, and provider-backed restore; other model schemas remain unverified |
|
|
113
|
+
|
|
114
|
+
Scenario model schemas differ. The current adapter sends prompt, width, height,
|
|
115
|
+
output count, optional seed, and explicitly declared JSON parameters. Verify
|
|
116
|
+
the chosen model accepts that shape before spending. Use
|
|
117
|
+
[Set up Scenario](./docs/SCENARIO.md) for the safe first-run sequence.
|
|
118
|
+
|
|
84
119
|
## Large environments, mountains, and buildings
|
|
85
120
|
|
|
86
121
|
Start by deciding whether the result is an isolated map object or a complete
|
|
87
122
|
background. That distinction matters more than raw canvas size.
|
|
88
123
|
|
|
89
|
-
| Asset type | PixelLab | Retro Diffusion | ComfyUI |
|
|
90
|
-
|
|
91
|
-
| 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. |
|
|
92
|
-
| Full scenic background | Use `pixflux` with `noBackground: false` when an exact palette matters, or `map` for a simple scene. Current PixelKiln routes top out at 400×400. | `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. |
|
|
93
|
-
| 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. |
|
|
94
|
-
| 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. |
|
|
124
|
+
| Asset type | PixelLab | Retro Diffusion | ComfyUI | Scenario |
|
|
125
|
+
|---|---|---|---|---|
|
|
126
|
+
| 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. |
|
|
127
|
+
| Full scenic background | Use `pixflux` with `noBackground: false` when an exact palette matters, or `map` for a simple scene. Current PixelKiln routes top out at 400×400. | `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. |
|
|
128
|
+
| 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. |
|
|
129
|
+
| 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. |
|
|
95
130
|
|
|
96
131
|
For a production environment, build a kit: seamless terrain, separate
|
|
97
132
|
landmarks and buildings, foreground occluders, and a distant backdrop. You can
|
|
@@ -116,15 +151,16 @@ repeatable.
|
|
|
116
151
|
## Use multiple providers in one project
|
|
117
152
|
|
|
118
153
|
Set a provider on any style that differs from the manifest default. Planning
|
|
119
|
-
and confirmations remain grouped by provider and unit, so PixelLab generations
|
|
120
|
-
|
|
121
|
-
|
|
154
|
+
and confirmations remain grouped by provider and unit, so PixelLab generations,
|
|
155
|
+
Retro Diffusion dollars, Scenario Compute Units, and local free work are never
|
|
156
|
+
added together. A mixed run takes a separate named ceiling for each paid
|
|
157
|
+
provider; the free group may be explicit:
|
|
122
158
|
|
|
123
159
|
```bash
|
|
124
160
|
pixelkiln plan
|
|
125
161
|
pixelkiln gen \
|
|
126
162
|
--budget pixellab=12 \
|
|
127
|
-
--budget
|
|
163
|
+
--budget scenario=60 \
|
|
128
164
|
--budget comfyui=0
|
|
129
165
|
```
|
|
130
166
|
|
|
@@ -169,6 +205,12 @@ style, and candidate count affect the exact still-image quote. Treat
|
|
|
169
205
|
as the authoritative submit-time check. See Retro Diffusion's
|
|
170
206
|
[official API examples and pricing formulas](https://github.com/Retro-Diffusion/api-examples#pricing).
|
|
171
207
|
|
|
208
|
+
Scenario uses Compute Units rather than USD in the API contract. Costs vary by
|
|
209
|
+
model and inputs, so the manifest records a conservative per-asset ceiling
|
|
210
|
+
instead of a stale formula. PixelKiln records Scenario's live dry-run quote and
|
|
211
|
+
final job billing separately. The first BFL Flux 2 Dev smoke measured 16 CU for
|
|
212
|
+
one 512px output and 32 CU for two with 28 inference steps.
|
|
213
|
+
|
|
172
214
|
## Capability boundary
|
|
173
215
|
|
|
174
216
|
The provider boundary owns behavior that differs between services:
|
|
@@ -197,30 +239,29 @@ PixelLab, an animation style to Retro Diffusion, and a private model workflow
|
|
|
197
239
|
to ComfyUI. Provider-keyed budgets, independent orchestration, lock-authoritative
|
|
198
240
|
recovery, and explicit account-provider selection ship with it.
|
|
199
241
|
|
|
200
|
-
Scenario
|
|
201
|
-
|
|
202
|
-
|
|
242
|
+
The Scenario still-image adapter from
|
|
243
|
+
[GitHub issue #52](https://github.com/gfargo/pixelkiln/issues/52) now has mocked
|
|
244
|
+
edge coverage and a paid BFL Flux 2 Dev lifecycle smoke. It remains
|
|
245
|
+
experimental until more model schemas and representative art briefs pass.
|
|
203
246
|
|
|
204
247
|
| Candidate | What it adds | Fit with PixelKiln | Main cost or risk | Priority |
|
|
205
248
|
|---|---|---|---|---:|
|
|
206
|
-
| Scenario | Custom-trained style models
|
|
249
|
+
| Scenario comparable benchmark | Custom-trained style models and hosted third-party generation | Tests the same environment briefs now that CU accounting, review, PNG output, and signed-URL recovery are proven | Model schemas differ, and the first live smoke is not directly comparable to the existing provider set | 1 |
|
|
207
250
|
| ComfyUI Cloud | Managed execution of workflow graphs without running a local GPU | Could reuse part of the workflow model, but authentication, endpoints, billing, and lifecycle must remain separate from the local adapter | Treating cloud as a base-URL swap would hide real security and cost differences | 2 |
|
|
208
251
|
| fal | A large hosted model catalog, including pixel-art style controls, LoRAs, editing, upscaling, and background removal | Queue-based requests and model schemas are accessible through one client | Model-specific schemas and prices move the adapter toward a marketplace abstraction rather than one stable art workflow | 3 |
|
|
209
252
|
|
|
210
|
-
Scenario
|
|
211
|
-
returns
|
|
212
|
-
supports custom models and image references, and its
|
|
253
|
+
Scenario's [custom generation API](https://docs.scenario.com/get-started/generation/third-party-model-generation)
|
|
254
|
+
returns asynchronous jobs, while its
|
|
213
255
|
[Compute Unit guidance](https://help.scenario.com/articles/7934059476-api-usage-and-credits-compute-units)
|
|
214
|
-
documents free cost preflights.
|
|
215
|
-
|
|
216
|
-
captured before submission.
|
|
256
|
+
documents free cost preflights. PixelKiln now maps those mechanics into its
|
|
257
|
+
normal plan, submit, poll, review, fetch, and restore lifecycle.
|
|
217
258
|
|
|
218
259
|
Recommended order from here:
|
|
219
260
|
|
|
220
261
|
1. Finish live Retro Diffusion multi-candidate, tileset, GIF, and spritesheet
|
|
221
262
|
smoke tests.
|
|
222
|
-
2.
|
|
223
|
-
|
|
263
|
+
2. Run the shared environment briefs through Scenario, then add one custom-model
|
|
264
|
+
or project-LoRA benchmark.
|
|
224
265
|
3. Benchmark another pinned ComfyUI model and prompt pattern across at least two
|
|
225
266
|
scene families. Reject any improvement that helps only one subject.
|
|
226
267
|
4. Design ComfyUI Cloud as a separate authenticated and billable adapter.
|
package/README.md
CHANGED
|
@@ -2,9 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|

|
|
4
4
|
|
|
5
|
-
[Website](https://pixelkiln.griffen.codes) ·
|
|
6
|
-
[Documentation](https://pixelkiln.griffen.codes/docs) ·
|
|
7
|
-
[GitHub](https://github.com/gfargo/pixelkiln)
|
|
5
|
+
[Website](https://pixelkiln.griffen.codes) · [Documentation](https://pixelkiln.griffen.codes/docs) · [GitHub](https://github.com/gfargo/pixelkiln)
|
|
8
6
|
|
|
9
7
|
Generate pixel art from a manifest, review it locally, recover paid work, and
|
|
10
8
|
package the accepted files for a game engine.
|
|
@@ -15,16 +13,17 @@ local contact sheet, and commit the source and output hashes. No LLM chooses
|
|
|
15
13
|
what to run or which image wins. The CLI handles provider calls, polling,
|
|
16
14
|
hashing, downloads, and file placement.
|
|
17
15
|
|
|
18
|
-
PixelLab is the production backend. Retro Diffusion
|
|
19
|
-
experimental.
|
|
20
|
-
Plus stills; its
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
the
|
|
16
|
+
PixelLab is the production backend. Retro Diffusion, self-hosted ComfyUI, and
|
|
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.
|
|
28
27
|
|
|
29
28
|
## Release
|
|
30
29
|
|
|
@@ -60,7 +59,7 @@ PixelKiln keeps the missing record:
|
|
|
60
59
|
| Existing-art onboarding | Manifest scaffolding, exact-hash account adoption, and prompt recovery. |
|
|
61
60
|
| Recovery | Validated local content cache, durable provider-reference restore, account object-hash cache, and resumable jobs. |
|
|
62
61
|
| Shared-account safety | Cross-project claim files or a registered workspace catalog, sibling-style exclusion, reviewed salvage, keep/discard tags, separate confirmed purge. |
|
|
63
|
-
| Quality control |
|
|
62
|
+
| Quality control | Manifest-native grid recovery, closed palettes, named approval, regression baselines, and fail-closed packaging. |
|
|
64
63
|
| Sprite packaging | Deterministic RGBA packing, stable-cell mounting, explicit external input lists, structural output roles. |
|
|
65
64
|
| Engine export | Lossless generic tile contract, Tiled Wang sets, and Godot 4 terrain sets. |
|
|
66
65
|
| Artifact integrity | Portable source/output hashes, canonical fingerprints, manual-edit protection, transactional promotion, crash journal recovery. |
|
|
@@ -68,8 +67,9 @@ PixelKiln keeps the missing record:
|
|
|
68
67
|
|
|
69
68
|
### Local human review
|
|
70
69
|
|
|
71
|
-
`pixelkiln pick` opens
|
|
72
|
-
never asks a model to
|
|
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.
|
|
73
73
|
|
|
74
74
|

|
|
75
75
|
|
|
@@ -106,10 +106,11 @@ Put a hosted provider's credential in `.env.local` beside the manifest:
|
|
|
106
106
|
```dotenv
|
|
107
107
|
# PixelLab (the default provider)
|
|
108
108
|
PIXELLAB_API_KEY=...
|
|
109
|
-
|
|
110
109
|
# Or Retro Diffusion when `provider` is `retrodiffusion`
|
|
111
110
|
RD_API_KEY=...
|
|
112
|
-
|
|
111
|
+
# Scenario needs both values when `provider` is `scenario`
|
|
112
|
+
SCENARIO_SDK_API_KEY=...
|
|
113
|
+
SCENARIO_SDK_API_SECRET=...
|
|
113
114
|
# Self-hosted ComfyUI needs no key; override its local URL only when needed
|
|
114
115
|
COMFYUI_BASE_URL=http://127.0.0.1:8188
|
|
115
116
|
```
|
|
@@ -137,8 +138,9 @@ pixelkiln plan
|
|
|
137
138
|
|
|
138
139
|
See [Getting started](./docs/GETTING_STARTED.md) for new and existing projects.
|
|
139
140
|
Use [Set up PixelLab](./docs/PIXELLAB.md),
|
|
140
|
-
[Set up Retro Diffusion](./docs/RETRO_DIFFUSION.md),
|
|
141
|
-
[Set up ComfyUI](./docs/COMFYUI.md)
|
|
141
|
+
[Set up Retro Diffusion](./docs/RETRO_DIFFUSION.md),
|
|
142
|
+
[Set up ComfyUI](./docs/COMFYUI.md), or
|
|
143
|
+
[Set up Scenario](./docs/SCENARIO.md) for provider-specific configuration,
|
|
142
144
|
manifest examples, and current limits. See [Mixed-provider projects](./docs/MIXED_PROVIDERS.md)
|
|
143
145
|
when styles in one manifest need different backends.
|
|
144
146
|
|
|
@@ -186,19 +188,16 @@ set. Generator choice, reference-image bytes, dimensions, palette, seed, and
|
|
|
186
188
|
prompt settings participate in deterministic spec identity. A manifest may
|
|
187
189
|
select another provider and pass namespaced `providerOptions`; see
|
|
188
190
|
[Set up PixelLab](./docs/PIXELLAB.md),
|
|
189
|
-
[Set up Retro Diffusion](./docs/RETRO_DIFFUSION.md),
|
|
190
|
-
[Set up ComfyUI](./docs/COMFYUI.md)
|
|
191
|
+
[Set up Retro Diffusion](./docs/RETRO_DIFFUSION.md),
|
|
192
|
+
[Set up ComfyUI](./docs/COMFYUI.md), and
|
|
193
|
+
[Set up Scenario](./docs/SCENARIO.md). The
|
|
191
194
|
[provider comparison](./PROVIDERS.md) covers costs,
|
|
192
|
-
current confidence, and limitations.
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
instead of chasing a larger raster. Background removal and the art decision
|
|
199
|
-
still need the graph and a person. `pixelkiln refine` now handles grid recovery,
|
|
200
|
-
final palette enforcement, measurable checks, and the hash-bound approval
|
|
201
|
-
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.
|
|
202
201
|
|
|
203
202
|
Versioned recipes capture tested workflows, model hashes, license links, and
|
|
204
203
|
manifest-ready styles with quality boundaries. Start with `pixelkiln recipe install comfyui/pixel-art-xl-environment@1.0.0`.
|
|
@@ -224,11 +223,10 @@ pixelkiln restore
|
|
|
224
223
|
pixelkiln audit --check --max-distance 35 --min-transparency 0.1
|
|
225
224
|
pixelkiln cache --check
|
|
226
225
|
|
|
227
|
-
#
|
|
228
|
-
pixelkiln refine --
|
|
229
|
-
|
|
230
|
-
pixelkiln refine
|
|
231
|
-
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
|
|
232
230
|
```
|
|
233
231
|
|
|
234
232
|
Repeated `--style`, `--only`, `--claims`, and `--output-role` filters
|
|
@@ -255,27 +253,25 @@ replace a hard palette or reference-image constraint. See
|
|
|
255
253
|
Generator names describe PixelKiln workflows; their exact capabilities and
|
|
256
254
|
prices depend on the selected provider. Retro Diffusion also supports the
|
|
257
255
|
provider-specific `animation` generator. ComfyUI currently supports `map`
|
|
258
|
-
through an operator-supplied workflow.
|
|
259
|
-
|
|
256
|
+
through an operator-supplied workflow. Scenario currently supports `map`
|
|
257
|
+
with a required offline CU ceiling and a live quote before each paid call.
|
|
258
|
+
Compare the adapters in the [provider comparison](./PROVIDERS.md).
|
|
260
259
|
|
|
261
260
|
## Derived artifacts
|
|
262
261
|
|
|
263
262
|
```bash
|
|
264
263
|
# Deterministic sheet + atlas + provenance.
|
|
265
264
|
pixelkiln pack --style base
|
|
266
|
-
|
|
267
265
|
# Stable declared cells in an existing sheet.
|
|
268
266
|
pixelkiln mount --style ground
|
|
269
|
-
|
|
270
267
|
# Structural atlas + engine metadata + provenance.
|
|
271
268
|
pixelkiln export --style ground --only terrain --format tiled
|
|
272
269
|
```
|
|
273
270
|
|
|
274
|
-
Pack, mount, and export write managed bundles.
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
byte-identical; manual edits stop the whole write unless `--force`
|
|
278
|
-
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.
|
|
279
275
|
|
|
280
276
|
All changing members stage before promotion. Ordinary failures roll back.
|
|
281
277
|
Abrupt termination leaves a validated transaction journal: the next invocation
|
|
@@ -339,16 +335,14 @@ import {
|
|
|
339
335
|
loadManifest,
|
|
340
336
|
resolveSpecs,
|
|
341
337
|
} from "pixelkiln"
|
|
342
|
-
|
|
343
338
|
const loaded = await loadManifest("pixelkiln.manifest.json")
|
|
344
339
|
const specs = await resolveSpecs(loaded)
|
|
345
340
|
const plan = await buildPlan(specs, await loadLock("pixelkiln.lock.json"))
|
|
346
|
-
|
|
347
341
|
console.log(plan.groups, plan.actionable.length)
|
|
348
342
|
```
|
|
349
343
|
|
|
350
|
-
The package also exports audit and image-regression gates,
|
|
351
|
-
helpers, provider contracts,
|
|
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
|
|
352
346
|
exporters, managed artifact writes, and offline provenance verification. See
|
|
353
347
|
[Library API](./docs/LIBRARY.md).
|
|
354
348
|
|
|
@@ -361,9 +355,10 @@ exporters, managed artifact writes, and offline provenance verification. See
|
|
|
361
355
|
| [Set up PixelLab](./docs/PIXELLAB.md) | Production-provider credentials, manifest, generators, and account workflows. |
|
|
362
356
|
| [Set up Retro Diffusion](./docs/RETRO_DIFFUSION.md) | Experimental-provider credentials, styles, formats, cost checks, and limits. |
|
|
363
357
|
| [Set up ComfyUI](./docs/COMFYUI.md) | Experimental self-hosted server, workflow bindings, local cost semantics, and limits. |
|
|
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) |
|
|
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/SECURITY.md
CHANGED
|
@@ -34,7 +34,8 @@ credentials in their query string. Reports involving authentication leakage, pat
|
|
|
34
34
|
cross-origin review actions, HTML/script injection, unsafe overwrite/delete
|
|
35
35
|
behavior, lockfile corruption, or budget bypass are security relevant.
|
|
36
36
|
|
|
37
|
-
Never attach a real `PIXELLAB_API_KEY`, `RD_API_KEY`,
|
|
37
|
+
Never attach a real `PIXELLAB_API_KEY`, `RD_API_KEY`, `SCENARIO_SDK_API_KEY`,
|
|
38
|
+
`SCENARIO_SDK_API_SECRET`, `.env` file, private
|
|
38
39
|
provider URL, or unredacted lockfile from a confidential project to a public
|
|
39
40
|
report.
|
|
40
41
|
|
package/dist/cli.d.ts
CHANGED
|
@@ -1,5 +1,8 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
|
|
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
|
|