pixelkiln 0.89.4 → 0.89.6
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/dist/cli.js +1 -0
- package/dist/cli.js.map +1 -1
- package/dist/client/gallery.js +30 -7
- package/dist/index.cjs +1 -0
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +6 -0
- package/dist/index.d.ts +6 -0
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/docs/CHARACTERS.md +4 -1
- package/docs/ENDPOINTS.md +28 -0
- package/docs/REVISIONS.md +9 -5
- package/package.json +1 -1
- package/skills/pixelkiln/references/pixellab-roadmap.md +17 -2
package/docs/CHARACTERS.md
CHANGED
|
@@ -490,7 +490,10 @@ reference image change alone also makes it stale.
|
|
|
490
490
|
the base with an optional sprite of your own (uploaded into `refs/`, so
|
|
491
491
|
only the rotations are billed), any number of loops (each a template
|
|
492
492
|
posed by `skeleton-v3` by default, or a plain template, v3, or pro loop,
|
|
493
|
-
in the directions you tick, mirrors added free), and a portrait.
|
|
493
|
+
in the directions you tick, mirrors added free), and a portrait. A
|
|
494
|
+
`standard` base has no 3D skeleton for `skeleton-v3` to pose, so its loops
|
|
495
|
+
start on `template` and the skeleton-v3 choice is greyed out; the new-loop
|
|
496
|
+
form on an existing base does the same. The
|
|
494
497
|
sheet prices the draft live, the way `plan` would. Pro Flash bases are
|
|
495
498
|
priced by PixelLab's own quote (`/pro-flash/cost`, a free call) when the
|
|
496
499
|
project has a key; those rows are marked live, and the offline estimate
|
package/docs/ENDPOINTS.md
CHANGED
|
@@ -894,6 +894,34 @@ Listed so the gaps are known rather than assumed away:
|
|
|
894
894
|
`animate-character`, portraits, and outfit transfer are covered in full; see
|
|
895
895
|
the September 2026 measurements below.
|
|
896
896
|
|
|
897
|
+
## Skeleton-driven motion, measured
|
|
898
|
+
|
|
899
|
+
October 2026, on a v3 character (64×64, `pixen_v3`), each billed exactly 3
|
|
900
|
+
generations and finished in about two minutes:
|
|
901
|
+
|
|
902
|
+
- **`POST /animate-with-skeleton-v3`** (pixelkiln's `animate-skeleton`):
|
|
903
|
+
8 hand-edited poses on a 64×64 sprite returned 8 frames at 64×64, matching
|
|
904
|
+
PixelLab's anchor (8 frames = 3). `description` and `action` are both
|
|
905
|
+
required. Sent with neither, the endpoint answers `422` with a field
|
|
906
|
+
error for each, and a failed request bills nothing. The completed job's
|
|
907
|
+
`last_response` carries `images` (base64, `width`, `height`), `flow_kind`,
|
|
908
|
+
and `billing_usage` beside the top-level `usage`.
|
|
909
|
+
- **`POST /characters/animations`, `mode: "skeleton-v3"` with no
|
|
910
|
+
`template_animation_id`** (PixelLab's new custom motion): a one-sentence
|
|
911
|
+
`action_description` and `frame_count` 8 returned 8 frames at **96×96**
|
|
912
|
+
(the character's own canvas grows from 64) in one job for `south`, saved
|
|
913
|
+
onto the character as an animation (`animation_id`, `animation_group_id`),
|
|
914
|
+
and billed 3. The submit answers `{ background_job_ids, directions,
|
|
915
|
+
animation_group_id, status, enhanced_prompt, enhance_usage }`. The finished
|
|
916
|
+
job's `last_response` has `images`, `storage_urls.frames`,
|
|
917
|
+
`generation_model: "skeleton-v3_custom"`, `animation_description`, and
|
|
918
|
+
`billing_usage: {usd: 0, type: "generations", generations: 3}`, the same
|
|
919
|
+
nested field as the other character jobs, which is where `poll` looks when
|
|
920
|
+
the top-level amount is a dollar zero. PixelLab says the action is written
|
|
921
|
+
into one 3D motion that every direction is drawn from, so later directions
|
|
922
|
+
added with `animation_group_id` move the same way (humanoids). pixelkiln
|
|
923
|
+
does not send this mode yet.
|
|
924
|
+
|
|
897
925
|
## Characters, measured
|
|
898
926
|
|
|
899
927
|
- Standard bases draw on a canvas 28px larger than `image_size` (64 → 92,
|
package/docs/REVISIONS.md
CHANGED
|
@@ -553,11 +553,15 @@ Cost uses PixelLab's own documented anchors (3 frames = 2 generations, 8 = 3,
|
|
|
553
553
|
15 = 4 — barely moving with length, unlike `animate`/`animate-pixminimax`'s
|
|
554
554
|
canvas-area formula) and interpolates between the nearest two for any
|
|
555
555
|
in-between frame count, ceiling'd — the safe direction for `--budget` — since
|
|
556
|
-
no in-between value is confirmed live. **
|
|
557
|
-
|
|
558
|
-
|
|
559
|
-
|
|
560
|
-
|
|
556
|
+
no in-between value is confirmed live. **Both have now run live once**
|
|
557
|
+
(October 2026): `estimate-skeleton` on a 64×64 sprite, then an 8-frame
|
|
558
|
+
`animate-skeleton` revision of it billed exactly 3 generations, matching the
|
|
559
|
+
anchor, and returned 8 frames at the sprite's own 64×64 size. The endpoint
|
|
560
|
+
**requires both `description` and `action`**: the asset's `prompt` is sent as
|
|
561
|
+
`action` (a short motion label such as "wave"), and `revision.description`
|
|
562
|
+
(what the character looks like) is sent as `description`. Without a
|
|
563
|
+
`description` PixelLab answers `422` with `description: Field required`,
|
|
564
|
+
and `plan` does not catch that yet.
|
|
561
565
|
|
|
562
566
|
ComfyUI does not support this mode either, for the same structural reason as
|
|
563
567
|
`animate`/`animate-pixminimax`.
|
package/package.json
CHANGED
|
@@ -297,8 +297,9 @@ and which tutorial(s) demonstrated real (not hypothetical) demand for it.
|
|
|
297
297
|
is wrapped too, but deliberately kept outside the manifest pipeline — a
|
|
298
298
|
standalone `pixelkiln estimate-skeleton` CLI command, not a
|
|
299
299
|
`resolveSpecs`/`estimate()`-time call — so `animate-skeleton`'s submission
|
|
300
|
-
composes exactly one
|
|
301
|
-
|
|
300
|
+
composes exactly one PixelLab endpoint, not two chained together. Both
|
|
301
|
+
endpoints have since run live once (8 frames billed exactly 3), and the
|
|
302
|
+
run found that `description` is required: `plan` does not check for it yet. **Correcting this catalog's own prior research**: this entry
|
|
302
303
|
used to also claim a distinct "animation to animation" endpoint existed,
|
|
303
304
|
for transferring an existing walk cycle's motion onto a different
|
|
304
305
|
character. Checked against the live `animate_with_skeleton_v3` MCP tool
|
|
@@ -516,6 +517,20 @@ missing:
|
|
|
516
517
|
Aseprite. pixelkiln has no frame-set concatenation; `lastFrame` can pin a
|
|
517
518
|
clip's ending to another clip's frame file, but the two sets stay separate.
|
|
518
519
|
|
|
520
|
+
## Sentence-driven skeleton-v3 loops
|
|
521
|
+
|
|
522
|
+
PixelLab's October 2026 character-creator update adds custom animation on the
|
|
523
|
+
skeleton v3 model: a sentence becomes one 3D motion that every direction of
|
|
524
|
+
the animation is drawn from, so a direction added later moves the same way.
|
|
525
|
+
It is `POST /characters/animations` with `mode: "skeleton-v3"`, an
|
|
526
|
+
`action_description`, and no `template_animation_id` (3 to 15 frames, humanoid
|
|
527
|
+
v3 characters). **Measured once**: an 8-frame south loop billed exactly 3 and
|
|
528
|
+
came back at 96×96 (docs/ENDPOINTS.md, "Skeleton-driven motion, measured").
|
|
529
|
+
Still a gap: a character loop's `mode: "skeleton-v3"` needs a `template`,
|
|
530
|
+
and the request never sends `action_description` for it. Closing it means a
|
|
531
|
+
loop that names `skeleton-v3` and a `prompt` without a template, a
|
|
532
|
+
`frames` count from 3 to 15, and adding a direction to an existing group.
|
|
533
|
+
|
|
519
534
|
## Map Workshop (scene composition)
|
|
520
535
|
|
|
521
536
|
PixelLab's actual scene-building surface: lay out a tile floor, place
|