pixelkiln 0.5.0 → 0.7.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 +103 -33
- package/README.md +24 -13
- package/dist/cli.js +1347 -897
- package/dist/cli.js.map +1 -1
- package/dist/index.cjs +694 -242
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +95 -5
- package/dist/index.d.ts +95 -5
- package/dist/index.js +655 -204
- package/dist/index.js.map +1 -1
- package/docs/AGENTS.md +7 -5
- package/docs/ARCHITECTURE.md +15 -6
- package/docs/CLI.md +6 -4
- package/docs/COMFYUI.md +191 -0
- package/docs/GETTING_STARTED.md +14 -7
- package/docs/LIBRARY.md +9 -7
- package/docs/MANIFEST.md +54 -8
- package/docs/PROVIDER_BENCHMARK.md +113 -16
- package/docs/README.md +3 -2
- package/docs/RETRO_DIFFUSION.md +1 -1
- package/examples/comfyui/README.md +24 -0
- package/examples/comfyui/pixelkiln.manifest.json +35 -0
- package/examples/comfyui/workflow-api.json +59 -0
- package/package.json +2 -1
- package/schema/manifest.schema.json +4 -4
- package/skills/pixelkiln/SKILL.md +5 -3
- package/skills/pixelkiln/references/comfyui.md +46 -0
- package/skills/pixelkiln/references/mixed-providers.md +15 -7
- package/skills/pixelkiln/references/pixellab.md +5 -3
- package/skills/pixelkiln/references/retro-diffusion.md +7 -0
package/docs/README.md
CHANGED
|
@@ -12,6 +12,7 @@ This source also renders at
|
|
|
12
12
|
| [Getting started](./GETTING_STARTED.md) | Install from a checkout, create or adopt a project, run the everyday workflow, and decide what belongs in Git. |
|
|
13
13
|
| [Set up PixelLab](./PIXELLAB.md) | Configure the production provider, choose a generator, and use its account workflows. |
|
|
14
14
|
| [Set up Retro Diffusion](./RETRO_DIFFUSION.md) | Configure the experimental provider, choose a style, and understand its live-tested boundary. |
|
|
15
|
+
| [Set up ComfyUI](./COMFYUI.md) | Connect a self-hosted server, install the tested SDXL pixel-art stack, and bind a committed workflow. |
|
|
15
16
|
| [CLI reference](./CLI.md) | Every command and flag, offline/provider requirements, JSON output, and exit behavior. |
|
|
16
17
|
| [Manifest reference](./MANIFEST.md) | Every style and asset field, inheritance, generator-specific constraints, mounting, and schema validation. |
|
|
17
18
|
| [Agent workflows](./AGENTS.md) | Install the official skill and pair agent guidance with the deterministic CLI. |
|
|
@@ -21,7 +22,7 @@ This source also renders at
|
|
|
21
22
|
| Guide | Use it for |
|
|
22
23
|
|---|---|
|
|
23
24
|
| [Generators](./GENERATORS.md) | Choose between `map`, `1dir`, `pixflux`, and `tiles`; understand measured costs and capability trade-offs. |
|
|
24
|
-
| [Environment provider benchmark](./PROVIDER_BENCHMARK.md) | Compare PixelLab
|
|
25
|
+
| [Environment provider benchmark](./PROVIDER_BENCHMARK.md) | Compare PixelLab, Retro Diffusion, and a named ComfyUI model stack on buildings and backgrounds. |
|
|
25
26
|
| [Derived artifacts](./ARTIFACTS.md) | Pack, mount, and export; provenance companions; ownership; force takeover; transactional and crash recovery. |
|
|
26
27
|
| [Recovery and account safety](./RECOVERY.md) | Restore, caches, adopt, salvage, cross-project claims, tagging, and confirmed purge. |
|
|
27
28
|
| [Quality gates](./QUALITY.md) | Plan, doctor, audit, cache checks, JSON contracts, and CI usage. |
|
|
@@ -34,7 +35,7 @@ This source also renders at
|
|
|
34
35
|
| [Library API](./LIBRARY.md) | Public TypeScript imports for planning, auditing, providers, packing, exporting, and managed artifact writes. |
|
|
35
36
|
| [Tiles and engine exports](./TILES.md) | Structural tile roles, provider rule preservation, generic JSON, Tiled Wang sets, and Godot terrain sets. |
|
|
36
37
|
| [Measured PixelLab endpoints](./ENDPOINTS.md) | Live-account cost and payload research, endpoint recipes, limits, and unresolved API behavior. |
|
|
37
|
-
| [
|
|
38
|
+
| [Provider comparison](../PROVIDERS.md) | Provider selection, costs, adapter capabilities, confidence, and next work. Start with the provider-specific setup guides above when you are ready to configure a project. |
|
|
38
39
|
|
|
39
40
|
## Project policies
|
|
40
41
|
|
package/docs/RETRO_DIFFUSION.md
CHANGED
|
@@ -103,7 +103,7 @@ building, landmark, and foreground layers.
|
|
|
103
103
|
|
|
104
104
|
The [environment benchmark](./PROVIDER_BENCHMARK.md) found clean transparent,
|
|
105
105
|
low-color Retro Diffusion cutouts, while PixelLab followed the more complex
|
|
106
|
-
building prompts more closely. Read [
|
|
106
|
+
building prompts more closely. Read the [provider comparison](../PROVIDERS.md)
|
|
107
107
|
before committing to a large batch.
|
|
108
108
|
|
|
109
109
|
Retro Diffusion publishes its API examples and pricing formulas in the
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
# ComfyUI smoke project
|
|
2
|
+
|
|
3
|
+
This example uses only ComfyUI core nodes and the public Stable Diffusion 1.5
|
|
4
|
+
checkpoint from Comfy's first-generation guide. It exists to verify the local
|
|
5
|
+
submit, poll, download, provenance, and recovery path. It is not the visual
|
|
6
|
+
benchmark model.
|
|
7
|
+
|
|
8
|
+
Install `v1-5-pruned-emaonly-fp16.safetensors` in ComfyUI's `checkpoints`
|
|
9
|
+
model folder, then copy this directory into a scratch project. From the copy:
|
|
10
|
+
|
|
11
|
+
```bash
|
|
12
|
+
pixelkiln doctor --dry-run
|
|
13
|
+
pixelkiln doctor
|
|
14
|
+
pixelkiln plan
|
|
15
|
+
pixelkiln gen --budget 0
|
|
16
|
+
pixelkiln audit --check
|
|
17
|
+
```
|
|
18
|
+
|
|
19
|
+
The workflow is already in API format. Its bindings match the node and input
|
|
20
|
+
IDs in `pixelkiln.manifest.json`. Editing either file changes the resolved asset
|
|
21
|
+
identity.
|
|
22
|
+
|
|
23
|
+
The checkpoint is not part of this repository. Its model card and license are
|
|
24
|
+
published by [Comfy Org on Hugging Face](https://huggingface.co/Comfy-Org/stable-diffusion-v1-5-archive).
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "../../schema/manifest.schema.json",
|
|
3
|
+
"name": "pixelkiln-comfyui-smoke",
|
|
4
|
+
"provider": "comfyui",
|
|
5
|
+
"styles": {
|
|
6
|
+
"smoke": {
|
|
7
|
+
"generator": "map",
|
|
8
|
+
"outDir": "output/smoke",
|
|
9
|
+
"promptPrefix": "pixel art game asset",
|
|
10
|
+
"promptSuffix": "isolated on a plain background, crisp silhouette, limited color palette",
|
|
11
|
+
"seed": 31415,
|
|
12
|
+
"providerOptions": {
|
|
13
|
+
"comfyui": {
|
|
14
|
+
"workflowFile": "workflow-api.json",
|
|
15
|
+
"outputNodeId": "9",
|
|
16
|
+
"numImages": 1,
|
|
17
|
+
"bindings": {
|
|
18
|
+
"prompt": { "nodeId": "6", "input": "text" },
|
|
19
|
+
"width": { "nodeId": "5", "input": "width" },
|
|
20
|
+
"height": { "nodeId": "5", "input": "height" },
|
|
21
|
+
"batchSize": { "nodeId": "5", "input": "batch_size" },
|
|
22
|
+
"seed": { "nodeId": "3", "input": "seed" }
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
},
|
|
28
|
+
"assets": {
|
|
29
|
+
"anvil": {
|
|
30
|
+
"prompt": "a compact blacksmith anvil",
|
|
31
|
+
"width": 256,
|
|
32
|
+
"height": 256
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
}
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
{
|
|
2
|
+
"3": {
|
|
3
|
+
"class_type": "KSampler",
|
|
4
|
+
"inputs": {
|
|
5
|
+
"seed": 31415,
|
|
6
|
+
"steps": 24,
|
|
7
|
+
"cfg": 7,
|
|
8
|
+
"sampler_name": "euler_ancestral",
|
|
9
|
+
"scheduler": "normal",
|
|
10
|
+
"denoise": 1,
|
|
11
|
+
"model": ["4", 0],
|
|
12
|
+
"positive": ["6", 0],
|
|
13
|
+
"negative": ["7", 0],
|
|
14
|
+
"latent_image": ["5", 0]
|
|
15
|
+
}
|
|
16
|
+
},
|
|
17
|
+
"4": {
|
|
18
|
+
"class_type": "CheckpointLoaderSimple",
|
|
19
|
+
"inputs": {
|
|
20
|
+
"ckpt_name": "v1-5-pruned-emaonly-fp16.safetensors"
|
|
21
|
+
}
|
|
22
|
+
},
|
|
23
|
+
"5": {
|
|
24
|
+
"class_type": "EmptyLatentImage",
|
|
25
|
+
"inputs": {
|
|
26
|
+
"width": 256,
|
|
27
|
+
"height": 256,
|
|
28
|
+
"batch_size": 1
|
|
29
|
+
}
|
|
30
|
+
},
|
|
31
|
+
"6": {
|
|
32
|
+
"class_type": "CLIPTextEncode",
|
|
33
|
+
"inputs": {
|
|
34
|
+
"text": "pixel art game asset",
|
|
35
|
+
"clip": ["4", 1]
|
|
36
|
+
}
|
|
37
|
+
},
|
|
38
|
+
"7": {
|
|
39
|
+
"class_type": "CLIPTextEncode",
|
|
40
|
+
"inputs": {
|
|
41
|
+
"text": "photograph, text, watermark, signature, blurry",
|
|
42
|
+
"clip": ["4", 1]
|
|
43
|
+
}
|
|
44
|
+
},
|
|
45
|
+
"8": {
|
|
46
|
+
"class_type": "VAEDecode",
|
|
47
|
+
"inputs": {
|
|
48
|
+
"samples": ["3", 0],
|
|
49
|
+
"vae": ["4", 2]
|
|
50
|
+
}
|
|
51
|
+
},
|
|
52
|
+
"9": {
|
|
53
|
+
"class_type": "SaveImage",
|
|
54
|
+
"inputs": {
|
|
55
|
+
"filename_prefix": "pixelkiln/comfyui-smoke",
|
|
56
|
+
"images": ["8", 0]
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "pixelkiln",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.7.0",
|
|
4
4
|
"description": "Manifest-driven pixel-art generation, review, recovery, and packaging with deterministic provenance.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"sideEffects": false,
|
|
@@ -80,6 +80,7 @@
|
|
|
80
80
|
"game-assets",
|
|
81
81
|
"pixellab",
|
|
82
82
|
"retro-diffusion",
|
|
83
|
+
"comfyui",
|
|
83
84
|
"image-generation",
|
|
84
85
|
"asset-pipeline",
|
|
85
86
|
"generative",
|
|
@@ -33,8 +33,8 @@
|
|
|
33
33
|
},
|
|
34
34
|
"size": {
|
|
35
35
|
"type": "integer",
|
|
36
|
-
"minimum":
|
|
37
|
-
"maximum":
|
|
36
|
+
"minimum": 16,
|
|
37
|
+
"maximum": 8192
|
|
38
38
|
},
|
|
39
39
|
"view": {
|
|
40
40
|
"type": "string"
|
|
@@ -191,12 +191,12 @@
|
|
|
191
191
|
"width": {
|
|
192
192
|
"type": "integer",
|
|
193
193
|
"minimum": 16,
|
|
194
|
-
"maximum":
|
|
194
|
+
"maximum": 8192
|
|
195
195
|
},
|
|
196
196
|
"height": {
|
|
197
197
|
"type": "integer",
|
|
198
198
|
"minimum": 16,
|
|
199
|
-
"maximum":
|
|
199
|
+
"maximum": 8192
|
|
200
200
|
},
|
|
201
201
|
"size": {
|
|
202
202
|
"type": "integer",
|
|
@@ -50,7 +50,9 @@ Read only the reference needed for the current decision:
|
|
|
50
50
|
- For Retro Diffusion styles, USD budgets, environment assets, animation, or
|
|
51
51
|
experimental limits, read
|
|
52
52
|
[references/retro-diffusion.md](references/retro-diffusion.md).
|
|
53
|
-
-
|
|
53
|
+
- For a self-hosted ComfyUI workflow, node bindings, local cost semantics, or
|
|
54
|
+
portable output recovery, read [references/comfyui.md](references/comfyui.md).
|
|
55
|
+
- When one game or repository needs more than one provider, read
|
|
54
56
|
[references/mixed-providers.md](references/mixed-providers.md).
|
|
55
57
|
|
|
56
58
|
`FakeProvider` is the deterministic test adapter. Do not describe Retro
|
|
@@ -58,6 +60,6 @@ Diffusion as production-ready until representative multi-candidate, tileset,
|
|
|
58
60
|
GIF, and spritesheet live smoke tests pass.
|
|
59
61
|
|
|
60
62
|
When working in the PixelKiln repository, consult `docs/GETTING_STARTED.md` for
|
|
61
|
-
the full workflow,
|
|
62
|
-
|
|
63
|
+
the full workflow, the matching provider setup guide, `docs/CLI.md` for flags,
|
|
64
|
+
`docs/MANIFEST.md` for the schema, and
|
|
63
65
|
`docs/RECOVERY.md` before account adoption, salvage, discard, or purge.
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
# ComfyUI
|
|
2
|
+
|
|
3
|
+
Read this reference before operating a PixelKiln manifest whose provider is
|
|
4
|
+
`comfyui`.
|
|
5
|
+
|
|
6
|
+
ComfyUI is self-hosted and needs no provider credential. Never assume the
|
|
7
|
+
server is running or reachable. `pixelkiln doctor --dry-run` validates the
|
|
8
|
+
workflow and bindings offline; `pixelkiln doctor` checks the configured server
|
|
9
|
+
through its read-only system-stats route. The default URL is
|
|
10
|
+
`http://127.0.0.1:8188`; `COMFYUI_BASE_URL` overrides it. Do not advise exposing
|
|
11
|
+
an unauthenticated ComfyUI server to a public network.
|
|
12
|
+
|
|
13
|
+
The style's `providerOptions.comfyui` must name a committed API-format workflow,
|
|
14
|
+
one image output node, the expected candidate count, and bindings for prompt,
|
|
15
|
+
width, height, and batch size. A seed binding is required when the style
|
|
16
|
+
declares a seed. Node IDs and model filenames are workflow-specific. Check the
|
|
17
|
+
exported JSON instead of guessing them.
|
|
18
|
+
|
|
19
|
+
Planning parses and hashes the workflow file without contacting ComfyUI. A
|
|
20
|
+
workflow content change makes affected assets stale. The adapter supports only
|
|
21
|
+
the `map` generator, PNG output from one node, 1–16 candidates, and dimensions
|
|
22
|
+
from 16–4096px. Manifest `styleImages` and `palette` are unsupported; those
|
|
23
|
+
controls belong in the workflow.
|
|
24
|
+
|
|
25
|
+
For the tested higher-quality pixel-art stack, use SDXL Base 1.0 as
|
|
26
|
+
`sd_xl_base_1.0.safetensors` and Pixel Art XL as
|
|
27
|
+
`pixel-art-xl.safetensors`. The repository's
|
|
28
|
+
`benchmarks/provider-environments/comfyui/` project names both files and uses
|
|
29
|
+
core nodes only. Its workflows sample at 1024×1024, then use `ImageScale` with
|
|
30
|
+
`nearest-exact`; width and height bindings point to the scale node so the saved
|
|
31
|
+
PNG still matches the manifest dimensions. The isolated workflow uses LoRA
|
|
32
|
+
strength 1.0, while the environment workflow uses 0.85. Read
|
|
33
|
+
`docs/COMFYUI.md` for download links, checksums, licenses, and measured limits.
|
|
34
|
+
|
|
35
|
+
The plan reports `0 free` and generation uses `--budget 0`. Explain that this
|
|
36
|
+
means no metered API charge. Hardware, electricity, hosting, and model licenses
|
|
37
|
+
can still cost money.
|
|
38
|
+
|
|
39
|
+
The lockfile records a prompt ID, output node, workflow hash, and portable
|
|
40
|
+
`comfyui://` source. Restore from the validated content cache first. If the
|
|
41
|
+
cache is missing, the current ComfyUI server must still retain the history
|
|
42
|
+
output so PixelKiln can resolve the portable source.
|
|
43
|
+
|
|
44
|
+
For the complete setup, quality stack, benchmark, and troubleshooting, use
|
|
45
|
+
`docs/COMFYUI.md` or
|
|
46
|
+
<https://pixelkiln.griffen.codes/docs/comfyui>.
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
# Mixed-provider projects
|
|
2
2
|
|
|
3
|
-
Read this reference when one game or repository needs assets from
|
|
4
|
-
|
|
3
|
+
Read this reference when one game or repository needs assets from PixelLab,
|
|
4
|
+
Retro Diffusion, ComfyUI, or another combination of providers.
|
|
5
5
|
|
|
6
6
|
One manifest selects one top-level `provider`. Do not add undocumented
|
|
7
7
|
per-style provider fields: the current CLI constructs one account adapter for a
|
|
@@ -15,6 +15,8 @@ art/
|
|
|
15
15
|
pixelkiln.pixellab.lock.json
|
|
16
16
|
pixelkiln.retrodiffusion.manifest.json
|
|
17
17
|
pixelkiln.retrodiffusion.lock.json
|
|
18
|
+
pixelkiln.comfyui.manifest.json
|
|
19
|
+
pixelkiln.comfyui.lock.json
|
|
18
20
|
pixelkiln.workspace.json
|
|
19
21
|
```
|
|
20
22
|
|
|
@@ -26,18 +28,24 @@ pixelkiln gen --manifest art/pixelkiln.pixellab.manifest.json --lock art/pixelki
|
|
|
26
28
|
|
|
27
29
|
pixelkiln plan --manifest art/pixelkiln.retrodiffusion.manifest.json --lock art/pixelkiln.retrodiffusion.lock.json
|
|
28
30
|
pixelkiln gen --manifest art/pixelkiln.retrodiffusion.manifest.json --lock art/pixelkiln.retrodiffusion.lock.json --budget <usd>
|
|
31
|
+
|
|
32
|
+
pixelkiln plan --manifest art/pixelkiln.comfyui.manifest.json --lock art/pixelkiln.comfyui.lock.json
|
|
33
|
+
pixelkiln gen --manifest art/pixelkiln.comfyui.manifest.json --lock art/pixelkiln.comfyui.lock.json --budget 0
|
|
29
34
|
```
|
|
30
35
|
|
|
31
|
-
Register
|
|
36
|
+
Register every manifest in the workspace catalog so aggregate status and claim
|
|
32
37
|
checks see the whole project. A mixed-provider warning is expected because it
|
|
33
38
|
prevents account-wide commands from silently assuming one backend.
|
|
34
39
|
|
|
35
40
|
Package each manifest's reviewed outputs independently, or use `pixelkiln pack
|
|
36
41
|
--inputs <file> --out <path>` with an explicit JSON list when the final sheet
|
|
37
|
-
must combine files from
|
|
38
|
-
generation counts
|
|
42
|
+
must combine files from multiple providers. Never merge their lockfiles or add
|
|
43
|
+
generation counts, USD, and `free` plans. Each entry must retain the provider
|
|
44
|
+
that produced it.
|
|
39
45
|
|
|
40
46
|
A practical split is PixelLab for prompt-sensitive buildings and mature account
|
|
41
47
|
recovery, then Retro Diffusion for environment-styled backdrops, clean cutouts,
|
|
42
|
-
or native animation.
|
|
43
|
-
|
|
48
|
+
or native animation. ComfyUI fits private work, local models, and custom graph
|
|
49
|
+
control, but its result depends on the exact workflow, model, nodes, and
|
|
50
|
+
hardware. The committed hosted-provider benchmark is evidence for tendencies,
|
|
51
|
+
not a guarantee. Run one representative asset before expanding any batch.
|
|
@@ -24,9 +24,11 @@ providers, or before any PixelLab account operation.
|
|
|
24
24
|
| `tiles` | Ground variations or connected structures | 20–40 generations |
|
|
25
25
|
|
|
26
26
|
In the committed environment benchmark, PixelLab followed complex building
|
|
27
|
-
prompts more closely and produced
|
|
28
|
-
objects were opaque despite the route's
|
|
29
|
-
one representative result before a
|
|
27
|
+
prompts more closely and produced broader, more separable depth bands in scenic
|
|
28
|
+
backgrounds. Its 256px and 384px map objects were opaque despite the route's
|
|
29
|
+
transparency claim, so inspect alpha on one representative result before a
|
|
30
|
+
batch. Inspect scenic outputs for stray marks too: one untouched 384px attempt
|
|
31
|
+
contained a generated signature-like glyph.
|
|
30
32
|
|
|
31
33
|
For setup and current field constraints, use
|
|
32
34
|
<https://pixelkiln.griffen.codes/docs/pixellab>. When working in the PixelKiln
|
|
@@ -31,6 +31,13 @@ cutouts, smaller palettes, cinematic framing, or native animation. Build truly
|
|
|
31
31
|
large scenes from separately generated terrain, backdrop, landmark, building,
|
|
32
32
|
and foreground layers, then integer-upscale with nearest-neighbor filtering.
|
|
33
33
|
|
|
34
|
+
The committed 384px benchmark produced substantially larger isometric
|
|
35
|
+
buildings than the earlier 256px brief while retaining 52% to 75%
|
|
36
|
+
transparency and 49 to 55 colors. Its volcanic backgrounds made the pass and
|
|
37
|
+
lava path clear, but dropped a requested fortress and favored close canyon
|
|
38
|
+
framing over separable distant planes. Use a representative large asset before
|
|
39
|
+
assuming prompt details or layerability will survive a batch.
|
|
40
|
+
|
|
34
41
|
For setup, selectors, and option constraints, use
|
|
35
42
|
<https://pixelkiln.griffen.codes/docs/retro-diffusion>. The matched visual
|
|
36
43
|
evidence is at <https://pixelkiln.griffen.codes/docs/provider-benchmark>. When
|