pixelkiln 0.43.0 → 0.44.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/docs/MANIFEST.md CHANGED
@@ -105,6 +105,7 @@ constant across the set.
105
105
  | `proportions` | | `character` only, `standard` humanoid bases. A preset (`default`, `chibi`, `cartoon`, `stylized`, `realistic_male`, `realistic_female`, `heroic`) or multipliers `{ headSize, armsLength, legsLength, shoulderWidth, hipWidth }`, each 0.5 to 2. An asset may override it. |
106
106
  | `textGuidanceScale` | `8` | `character` only. How closely a `standard` base and a template loop follow their text, 1 to 20. |
107
107
  | `isometric` | `false` | `character` only. Draw `standard` bases and every loop in isometric view. |
108
+ | `enhancePrompt` | `false` | `character` only, `v3` bases. Let PixelLab expand the prompt into a fuller one before drawing. |
108
109
  | `mount` | object | Stable-cell sheet placement; documented below. |
109
110
  | `quality` | object | Optional native-grid, final-palette, and human-approval contract; documented below. |
110
111
  | `tags` | string array, `[]` | Tags inherited by every generated provider object in the style. |
@@ -584,6 +585,8 @@ override it, and only the mannequin template has proportions to set.
584
585
  is followed, and applies to template loops as well. `isometric` draws the
585
586
  base and every loop in isometric view. The v3 and pro engines take none of
586
587
  the three for a base; a v3 style may still set the last two for its loops.
588
+ A `v3` base takes `enhancePrompt` instead, which has PixelLab expand the
589
+ prompt into a fuller one before drawing.
587
590
 
588
591
  A base can also start from your own sprite. `reference` names a
589
592
  manifest-relative PNG or JPEG of the character facing south, and PixelLab
@@ -634,6 +637,30 @@ the loop and accepts or rejects it whole. One asset per direction; declare
634
637
  another asset for another direction, or a [mirror](#mirrors) of this one
635
638
  for the direction that faces the other way.
636
639
 
640
+ A v3 loop can start and end where you say. `startFrame` is a
641
+ manifest-relative image of the pose to begin from instead of the
642
+ character's rotation; `endFrame` is a pose to reach, and with it the loop
643
+ interpolates from the start frame to that image (both up to 256px, and the
644
+ end frame the same size as the start frame or, without one, as the
645
+ character's rotation, which `plan` checks once the parent is on disk; the
646
+ frames can still come back on a taller canvas when the motion needs it, as
647
+ a 92px crouch did at 92×104). `subject` replaces the character's own description for this loop when it
648
+ would mislead the model (a state that took the armour off), and
649
+ `enhancePrompt` lets PixelLab expand the action into a fuller motion
650
+ description first. A template loop takes none of those; it takes
651
+ `outline`, `shading`, and `detail` overrides instead, over the character's
652
+ own. The style's `palette` goes to every loop as a colour reference, as it
653
+ does to a `standard` base, and `enforcePalette` still snaps the frames
654
+ afterwards. Pose images hash into the loop's identity and are read again
655
+ at submit time, like a base's `reference`.
656
+
657
+ ```json
658
+ "mira.bow": {
659
+ "prompt": "bowing deeply from the waist",
660
+ "animation": { "of": "mira", "direction": "south", "frames": 6, "endFrame": "poses/mira-bowed.png" }
661
+ }
662
+ ```
663
+
637
664
  States and animations depend on their parent the way a revision does. The
638
665
  parent must be downloaded and current before the child is actionable;
639
666
  `plan` reports the child as `blocked` and names the parent until then, and
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "pixelkiln",
3
- "version": "0.43.0",
3
+ "version": "0.44.0",
4
4
  "description": "Manifest-driven pixel-art generation, review, recovery, and packaging with deterministic provenance.",
5
5
  "type": "module",
6
6
  "sideEffects": false,
@@ -206,6 +206,9 @@
206
206
  "isometric": {
207
207
  "type": "boolean"
208
208
  },
209
+ "enhancePrompt": {
210
+ "type": "boolean"
211
+ },
209
212
  "seed": {
210
213
  "type": "integer"
211
214
  },
@@ -499,6 +502,9 @@
499
502
  "isometric": {
500
503
  "type": "boolean"
501
504
  },
505
+ "enhancePrompt": {
506
+ "type": "boolean"
507
+ },
502
508
  "seed": {
503
509
  "type": "integer"
504
510
  },
@@ -788,6 +794,33 @@
788
794
  "v3",
789
795
  "pro"
790
796
  ]
797
+ },
798
+ "startFrame": {
799
+ "type": "string",
800
+ "minLength": 1
801
+ },
802
+ "endFrame": {
803
+ "type": "string",
804
+ "minLength": 1
805
+ },
806
+ "subject": {
807
+ "type": "string",
808
+ "minLength": 1
809
+ },
810
+ "outline": {
811
+ "type": "string",
812
+ "minLength": 1
813
+ },
814
+ "shading": {
815
+ "type": "string",
816
+ "minLength": 1
817
+ },
818
+ "detail": {
819
+ "type": "string",
820
+ "minLength": 1
821
+ },
822
+ "enhancePrompt": {
823
+ "type": "boolean"
791
824
  }
792
825
  },
793
826
  "required": [
@@ -281,6 +281,9 @@
281
281
  "isometric": {
282
282
  "type": "boolean"
283
283
  },
284
+ "enhancePrompt": {
285
+ "type": "boolean"
286
+ },
284
287
  "seed": {
285
288
  "type": "integer"
286
289
  },
@@ -29,6 +29,11 @@ the asset; standard wants it at the style's size, v3 up to 256px, pro up
29
29
  to 168px), and a standard humanoid base takes `proportions` (`chibi`,
30
30
  `heroic`, or multipliers) on the style or the asset.
31
31
 
32
+ A v3 loop can start from a pose image (`startFrame`) or interpolate to one
33
+ (`endFrame`), take a `subject` when the character's own description would
34
+ mislead, and ask PixelLab to `enhancePrompt`; a template loop takes
35
+ `outline`, `shading`, and `detail` overrides instead.
36
+
32
37
  A loop costs per direction, and a sprite facing east is the sprite facing
33
38
  west flipped. Declare the west loop and make the east one `{ "mirror":
34
39
  "hero.walk.west" }`: PixelKiln flips it locally for nothing, in the wave