pixelkiln 0.46.0 → 0.47.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/README.md +5 -5
- package/dist/cli.js +14 -1
- package/dist/cli.js.map +1 -1
- package/dist/index.cjs +14 -1
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +14 -1
- package/dist/index.js.map +1 -1
- package/docs/AGENTS.md +1 -1
- package/docs/ARCHITECTURE.md +21 -10
- package/docs/CHARACTERS.md +309 -0
- package/docs/CLI.md +24 -3
- package/docs/COMFYUI.md +68 -0
- package/docs/ENDPOINTS.md +33 -2
- package/docs/GENERATORS.md +6 -6
- package/docs/GETTING_STARTED.md +25 -1
- package/docs/MANIFEST.md +144 -437
- package/docs/PIXELLAB.md +8 -5
- package/docs/README.md +3 -2
- package/docs/RETRO_DIFFUSION.md +96 -2
- package/docs/SCENARIO.md +46 -0
- package/package.json +1 -1
- package/skills/pixelkiln/SKILL.md +7 -0
- package/skills/pixelkiln/references/pixellab.md +1 -1
package/README.md
CHANGED
|
@@ -54,6 +54,7 @@ provenance and no long-lived npm token.
|
|
|
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
56
|
| Controlled inputs | Hashed image-to-image/inpaint lineage, 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 and loops as dependent assets generated in waves, free mirrored directions, account adoption, and SpriteFrames export. |
|
|
57
58
|
| Existing-art onboarding | Manifest scaffolding, exact-hash account adoption, and prompt recovery. |
|
|
58
59
|
| Recovery | Safe stale-output replacement, validated caches, durable references, resumable paid jobs, and per-asset generation history with free restores. |
|
|
59
60
|
| Shared-account safety | Cross-project claim files or a registered workspace catalog, sibling-style exclusion, reviewed salvage, keep/discard tags, separate confirmed purge. |
|
|
@@ -177,8 +178,8 @@ packaging layer.
|
|
|
177
178
|
"styles": {
|
|
178
179
|
"base": {
|
|
179
180
|
"generator": "map",
|
|
180
|
-
"promptPrefix": "
|
|
181
|
-
"promptSuffix": "
|
|
181
|
+
"promptPrefix": "pixel-art game prop",
|
|
182
|
+
"promptSuffix": "isolated, transparent background",
|
|
182
183
|
"outDir": "assets/generated/base",
|
|
183
184
|
"tags": ["my-game"]
|
|
184
185
|
}
|
|
@@ -390,9 +391,8 @@ package share one source. Policies: [Contributing](./CONTRIBUTING.md),
|
|
|
390
391
|
|
|
391
392
|
## Scope
|
|
392
393
|
|
|
393
|
-
Salvaging characters,
|
|
394
|
-
|
|
395
|
-
are deferred. See the open [roadmap issues](https://github.com/gfargo/pixelkiln/issues).
|
|
394
|
+
Salvaging characters, PixelLab's portrait and outfit tools, cross-project
|
|
395
|
+
cache reuse, and `workspace find` are not implemented; see the open [issues](https://github.com/gfargo/pixelkiln/issues).
|
|
396
396
|
|
|
397
397
|
## License
|
|
398
398
|
|
package/dist/cli.js
CHANGED
|
@@ -5641,6 +5641,10 @@ function pixelLabObjectUrl(generator, objectId) {
|
|
|
5641
5641
|
const setId = objectId.split("#")[0];
|
|
5642
5642
|
return setId ? `https://www.pixellab.ai/maps/tiles/${encodeURIComponent(setId)}` : null;
|
|
5643
5643
|
}
|
|
5644
|
+
if (generator === "character") {
|
|
5645
|
+
const characterId = objectId.split("#")[0];
|
|
5646
|
+
return characterId ? `https://www.pixellab.ai/create-character/${encodeURIComponent(characterId)}` : null;
|
|
5647
|
+
}
|
|
5644
5648
|
return null;
|
|
5645
5649
|
}
|
|
5646
5650
|
function characterCost(spec) {
|
|
@@ -8088,8 +8092,9 @@ async function fetchAssets(provider, specs, lock, lockPath, opts = {}) {
|
|
|
8088
8092
|
const superseded = (entry.supersededOutputs ?? []).find(
|
|
8089
8093
|
(output, oldIndex, all) => currentOutputPath(output, spec, oldIndex, all.length) === target
|
|
8090
8094
|
);
|
|
8095
|
+
const outgoing = Boolean(superseded && currentHash === superseded.sha256);
|
|
8091
8096
|
if (!opts.force) {
|
|
8092
|
-
if (
|
|
8097
|
+
if (outgoing) {
|
|
8093
8098
|
} else if (recorded || superseded) {
|
|
8094
8099
|
throw new Error(
|
|
8095
8100
|
`refusing to overwrite modified output ${target}; pass --force to replace it`
|
|
@@ -8100,6 +8105,14 @@ async function fetchAssets(provider, specs, lock, lockPath, opts = {}) {
|
|
|
8100
8105
|
);
|
|
8101
8106
|
}
|
|
8102
8107
|
}
|
|
8108
|
+
if (outgoing && cacheDir) {
|
|
8109
|
+
try {
|
|
8110
|
+
const oldBytes = await readFile7(target);
|
|
8111
|
+
const oldMediaType = detectMediaType(oldBytes);
|
|
8112
|
+
if (oldMediaType) await cacheMedia(cacheDir, oldBytes, oldMediaType, currentHash);
|
|
8113
|
+
} catch {
|
|
8114
|
+
}
|
|
8115
|
+
}
|
|
8103
8116
|
log2(
|
|
8104
8117
|
` replace ${path14.relative(process.cwd(), target)}` + (opts.force ? " (--force)" : " (previous tracked generation)")
|
|
8105
8118
|
);
|