pixelkiln 0.70.1 → 0.72.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.
@@ -199,6 +199,19 @@ the loop and accepts or rejects it whole. One asset per direction; declare
199
199
  another asset for another direction, or a [mirror](#mirrors) of this one
200
200
  for the direction that faces the other way.
201
201
 
202
+ `mode: "skeleton-v3"` takes the same `template` and poses it onto the
203
+ character with PixelLab's skeleton video model, which moves the character
204
+ rather than redrawing it every frame: steadier identity and colours than a
205
+ plain template loop, at 2 to 4 generations and 3 to 5 minutes per
206
+ direction (plan budgets 4). It is beta and needs a Tier 1 PixelLab plan or
207
+ higher, and it is sent to `/characters/animations`, the endpoint that
208
+ documents it; every other mode keeps using `/animate-character`. Like a
209
+ template loop it takes no `frames` and needs no prompt of its own.
210
+
211
+ ```jsonc
212
+ "mira.walk": { "animation": { "of": "mira", "template": "walk", "mode": "skeleton-v3", "directions": ["south", "west", "north"] } }
213
+ ```
214
+
202
215
  ### Pose frames and other loop controls
203
216
 
204
217
  A v3 loop can start and end where you say. `startFrame` is a
@@ -17,7 +17,7 @@ account; [ENDPOINTS.md](./ENDPOINTS.md) contains the detailed experiments.
17
17
  | Larger or non-square scene or background, up to 792 wide and 688 tall | `imagePro` | 40 generations flat | 1–64 by size |
18
18
  | Controlled pose/expression sequence in ComfyUI | `frames` | 0 `free` provider units | one atomic ordered set |
19
19
  | Animated GIF or spritesheet from Retro Diffusion | `animation` | $0.07–$0.25 per animation (published price) | 1 GIF or PNG sheet |
20
- | A character facing 4 or 8 directions, its poses, and its animations | `character` | 1 per base (standard), 20–40 per pose or portrait, 1 per template loop, 20 per outfit (measured once) | one set of directions, one ordered loop, or one portrait |
20
+ | A character facing 4 or 8 directions, its poses, and its animations | `character` | 1 per base (standard), 20–40 per pose or portrait, 1 per template loop (2–4 as `skeleton-v3`), 20 per outfit (measured once) | one set of directions, one ordered loop, or one portrait |
21
21
  | A prop, creature, or vehicle with rotations, states, or loops but no character rig | `objectPro` | about 6 per base at 64px (unmeasured) | one set of directions, or one ordered loop |
22
22
  | UI chrome — panels, buttons, health bars, toolbars | `uiAsset` | 20 generations (measured once, at 256x192) | 1 composited image |
23
23
  | One UI element from a description, 16px and up, optionally guided by a concept image | `uiElement` | 20–40 generations (unmeasured) | 1 image |
package/docs/REVISIONS.md CHANGED
@@ -72,11 +72,19 @@ in the project, from pasted JSON, or from "Estimate poses", which runs
72
72
  PixelLab's `estimate-skeleton` on the sprite (a direct call on your account,
73
73
  confirmed first and kept apart from the generation budget; at most
74
74
  `--estimate-limit` per session, default 10; square 16–256px sprites only) and
75
- fills in the starting pose and four frames to edit. Every change to the JSON redraws the
76
- poses over the sprite. Saving writes the keypoints file inside the project
75
+ fills in the starting pose and four frames to edit. The poses open in a
76
+ drag-to-edit pose editor: the sprite with the pose being edited over it and
77
+ the previous pose faint underneath, a frame strip, and tools to copy the
78
+ previous pose, mirror a pose left to right, add or remove frames (3 to 15),
79
+ play the motion, and undo. Arrow keys nudge the selected joint and `,`/`.`
80
+ step frames. Dragging rewrites the JSON beside it, and editing the JSON
81
+ redraws the editor. Saving writes the keypoints file inside the project
77
82
  (never over an existing file unless asked, and removed again if the manifest
78
83
  refuses the asset) and adds the revision. An `animate-skeleton` record's
79
- Lineage section draws its poses over its parent the same way.
84
+ Lineage section draws its poses over its parent the same way, and "Edit
85
+ poses" opens the same editor on its keypoints file. Saving rewrites the file
86
+ only if it still holds what the page loaded (an edit made elsewhere since is
87
+ refused, not overwritten), and the animation is stale until generated again.
80
88
 
81
89
  ## Inpainting
82
90
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "pixelkiln",
3
- "version": "0.70.1",
3
+ "version": "0.72.0",
4
4
  "description": "Manifest-driven pixel-art generation, review, recovery, and packaging with deterministic provenance.",
5
5
  "type": "module",
6
6
  "sideEffects": false,
@@ -1210,6 +1210,7 @@
1210
1210
  "type": "string",
1211
1211
  "enum": [
1212
1212
  "template",
1213
+ "skeleton-v3",
1213
1214
  "v3",
1214
1215
  "pro"
1215
1216
  ]
@@ -22,6 +22,12 @@ and which tutorial(s) demonstrated real (not hypothetical) demand for it.
22
22
 
23
23
  ## Already closed since this catalog's research began
24
24
 
25
+ - **Skeleton-v3 template loops** — `/characters/animations`'
26
+ `mode: "skeleton-v3"` poses a template with the skeleton video model
27
+ (2 to 4 generations and 3 to 5 minutes per direction, beta, Tier 1 and
28
+ up). Now a character loop's `mode: "skeleton-v3"`; see
29
+ `docs/CHARACTERS.md`. Not yet billed live.
30
+
25
31
  - **Masked inpainting and whole-image editing** — was the single largest gap
26
32
  found (routine in at least 6 of the 26 tutorials). Now the `revision` asset
27
33
  shape's `inpaint` and `image-to-image` modes; see `docs/REVISIONS.md`.
@@ -26,7 +26,7 @@ providers, or before any PixelLab account operation.
26
26
  | `tiles` | Ground variations or connected structures | 20–40 generations |
27
27
  | `terrain` | A two-terrain Wang tileset for elevation (grass-to-water, floor-to-cliff) | Unmeasured; borrows the same 20–40 canvas tiers |
28
28
  | `imagePro` | A larger or non-square background/scene, or real style transfer | **40 generations flat**, any size |
29
- | `character` | A character in 4 or 8 directions, its poses (`state`), its loops (`animation`), bust `portrait`s, and `outfit` transfers onto a loop | 1 per standard base, 6 per pro-flash base at 64px (1 from a `reference`), 20–40 per pose or portrait, 1 per template loop per direction, 20 per outfit (measured once) |
29
+ | `character` | A character in 4 or 8 directions, its poses (`state`), its loops (`animation`), bust `portrait`s, and `outfit` transfers onto a loop | 1 per standard base, 6 per pro-flash base at 64px (1 from a `reference`), 20–40 per pose or portrait, 1 per template loop per direction (2–4 as `skeleton-v3`), 20 per outfit (measured once) |
30
30
  | `objectPro` | A prop, creature, or vehicle that needs rotations, states, or loops but has no character rig | 6 per base at 64px (1 from a `reference`), **unmeasured**; assumed to match `character` pro-flash |
31
31
  | `isometricTile` | One standalone isometric tile (a raised mesa, a cliff block), 16–64px | **1 generation, measured once** (32px `block`) |
32
32
  | `uiAsset` | A UI panel, button, health bar, or other chrome, from precise `pieces` and/or named `elements` | **20 generations, measured once** (256×192); the borrowed canvas-tier estimate still predicts 40 |
@@ -318,6 +318,13 @@ files, not 6. Account for the `+1` when checking a loop's output count or
318
318
  estimating its budget; set it `false` only when the caller will supply its
319
319
  own first frame downstream.
320
320
 
321
+ `"mode": "skeleton-v3"` with a `template` poses that template onto the
322
+ character with PixelLab's skeleton video model instead of redrawing each
323
+ frame: the steadiest template loop, 2 to 4 generations and 3 to 5 minutes
324
+ per direction (plan budgets 4), beta, Tier 1 plans and up. Prefer it over a
325
+ plain template loop when identity drift matters and the account qualifies;
326
+ plain `template` stays the 1-generation option.
327
+
321
328
  A named `template` loop (`walk`, `breathing-idle`, and similar) is trained
322
329
  mostly on characters with empty hands, and reliably struggles once a
323
330
  character holds an item — a weapon, a tool, anything gripped. For a
@@ -86,8 +86,9 @@ Read this reference when an asset declares `revision`.
86
86
  asset"), once the parent has usable pixels. On a single PixelLab sprite,
87
87
  "+ Skeleton animation" creates an `animate-skeleton` revision: poses from a
88
88
  project file, pasted JSON, or "Estimate poses" (one confirmed, un-budgeted
89
- PixelLab call), previewed over the sprite, written into the project on
90
- save. It does not offer `inpaint` (needs a mask upload), `outpaint`,
89
+ PixelLab call), edited in a drag-to-edit pose editor over the sprite,
90
+ written into the project on save. "Edit poses" on an existing
91
+ `animate-skeleton` record reopens the editor on its keypoints file. It does not offer `inpaint` (needs a mask upload), `outpaint`,
91
92
  `reduce-colors`, `correct-pixelart`, `animate`, `animate-pixminimax`,
92
93
  `interpolate`, or `edit-animation` yet, so add those by hand.
93
94
  - Before an outside image becomes a `styleImages` or `reference` path,