pixelkiln 0.43.0 → 0.45.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
@@ -59,6 +59,8 @@ not merely a label edit.
59
59
  | `mirror` | string | Another asset of the same style flipped left to right, made locally at no cost. See [Mirrors](#mirrors). |
60
60
  | `proportions` | preset or object | `character` styles: this base's proportions, over the style's. |
61
61
  | `reference` | string or object | `character` styles, bases: the character's own south-facing sprite (or `{ "south": ..., "east": ... }`), which PixelLab rotates instead of drawing from the prompt. See [Characters](#characters). |
62
+ | `concept` | string | `character` styles, `pro` bases: a manifest-relative concept image (up to 1024px) the design is seeded from. |
63
+ | `styleCharacter` | string | `character` styles, `pro` bases: this base's style anchor, over the style's. |
62
64
  | `providerInputs` | JSON scalar/sequence map, `{}` | Named per-asset inputs consumed by the active provider. ComfyUI accepts scalars and, for `frames`, one ordered 2–64 value sequence. Image bindings upload PNG/JPEG inputs. |
63
65
  | `styles` | string array, `[]` | Restrict the asset to named styles; empty means every style. |
64
66
  | `promptByStyle` | string map, `{}` | Replace only the asset prompt for a named style. |
@@ -105,6 +107,8 @@ constant across the set.
105
107
  | `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
108
  | `textGuidanceScale` | `8` | `character` only. How closely a `standard` base and a template loop follow their text, 1 to 20. |
107
109
  | `isometric` | `false` | `character` only. Draw `standard` bases and every loop in isometric view. |
110
+ | `enhancePrompt` | `false` | `character` only, `v3` bases. Let PixelLab expand the prompt into a fuller one before drawing. |
111
+ | `styleCharacter` | | `character` only, `pro` bases. The asset id of a generated 8-direction character in this style whose look bases drawn from text or a concept follow. An asset may override it. |
108
112
  | `mount` | object | Stable-cell sheet placement; documented below. |
109
113
  | `quality` | object | Optional native-grid, final-palette, and human-approval contract; documented below. |
110
114
  | `tags` | string array, `[]` | Tags inherited by every generated provider object in the style. |
@@ -524,6 +528,8 @@ credentials, cost semantics, recovery, and the paid live-test boundary.
524
528
  | `mirror` | string | Another asset of this style, flipped left to right. No prompt, no provider, no cost. See [Mirrors](#mirrors). |
525
529
  | `proportions` | preset or object | This base's body proportions, over the style's. `standard` humanoid bases only. |
526
530
  | `reference` | string or object | The character's own sprite(s) for PixelLab to rotate. Bases only. |
531
+ | `concept` | string | A concept image a `pro` base is designed from. Bases only. |
532
+ | `styleCharacter` | string | The character in this style a `pro` base takes its look from, over the style's. |
527
533
 
528
534
  ## Characters
529
535
 
@@ -584,6 +590,8 @@ override it, and only the mannequin template has proportions to set.
584
590
  is followed, and applies to template loops as well. `isometric` draws the
585
591
  base and every loop in isometric view. The v3 and pro engines take none of
586
592
  the three for a base; a v3 style may still set the last two for its loops.
593
+ A `v3` base takes `enhancePrompt` instead, which has PixelLab expand the
594
+ prompt into a fuller one before drawing.
587
595
 
588
596
  A base can also start from your own sprite. `reference` names a
589
597
  manifest-relative PNG or JPEG of the character facing south, and PixelLab
@@ -605,11 +613,27 @@ is read again at submit time and refused if it changed since `plan`.
605
613
  States, animations, and mirrors take their look from their parent and
606
614
  cannot carry a reference.
607
615
 
616
+ The pro engine has two more ways in. `concept` on a base names a concept
617
+ image (a painting, a photo, a sketch, up to 1024px) that seeds the design
618
+ in place of the prompt alone (PixelLab's `create_from_concept`); the
619
+ prompt still guides it. `styleCharacter`, on the style or a base, names a
620
+ generated 8-direction character in the same style whose look the base
621
+ follows (`style_character_id`); its south sprite becomes the style image
622
+ unless a style image is also given. The anchor is a dependency like a
623
+ loop's character: the base is `blocked` until the anchor is downloaded and
624
+ current, `gen` runs it in the wave after the anchor lands, and a
625
+ regenerated anchor makes every base drawn in its style `stale`. The anchor
626
+ itself ignores the setting, so a style can name its own first character.
627
+ PixelLab wants the base at least as large as the anchor's visible sprite
628
+ and fails the job fast otherwise. A base rotating its own `reference`
629
+ takes neither: the rotate method has one image slot and it is the
630
+ character.
631
+
608
632
  Style images on a `character` style are a pro-only input: one image of up
609
- to 168px that anchors the look of a `pro` base drawn from text (PixelLab's
610
- `create_with_style`). `standard` and `v3` have no such slot and refuse
611
- them; a pro base with a `reference` refuses them too, since the rotate
612
- method has one image slot and it is the character.
633
+ to 168px that anchors the look of a `pro` base drawn from text or a
634
+ concept (`create_with_style` and `create_from_concept` both take it).
635
+ `standard` and `v3` have no such slot and refuse them; a pro base with a
636
+ `reference` refuses them too.
613
637
 
614
638
  A state is a text edit of an existing character, `state.of`, applied to
615
639
  every direction at once: a pose, an outfit, a held object. The prompt is
@@ -634,6 +658,30 @@ the loop and accepts or rejects it whole. One asset per direction; declare
634
658
  another asset for another direction, or a [mirror](#mirrors) of this one
635
659
  for the direction that faces the other way.
636
660
 
661
+ A v3 loop can start and end where you say. `startFrame` is a
662
+ manifest-relative image of the pose to begin from instead of the
663
+ character's rotation; `endFrame` is a pose to reach, and with it the loop
664
+ interpolates from the start frame to that image (both up to 256px, and the
665
+ end frame the same size as the start frame or, without one, as the
666
+ character's rotation, which `plan` checks once the parent is on disk; the
667
+ frames can still come back on a taller canvas when the motion needs it, as
668
+ a 92px crouch did at 92×104). `subject` replaces the character's own description for this loop when it
669
+ would mislead the model (a state that took the armour off), and
670
+ `enhancePrompt` lets PixelLab expand the action into a fuller motion
671
+ description first. A template loop takes none of those; it takes
672
+ `outline`, `shading`, and `detail` overrides instead, over the character's
673
+ own. The style's `palette` goes to every loop as a colour reference, as it
674
+ does to a `standard` base, and `enforcePalette` still snaps the frames
675
+ afterwards. Pose images hash into the loop's identity and are read again
676
+ at submit time, like a base's `reference`.
677
+
678
+ ```json
679
+ "mira.bow": {
680
+ "prompt": "bowing deeply from the waist",
681
+ "animation": { "of": "mira", "direction": "south", "frames": 6, "endFrame": "poses/mira-bowed.png" }
682
+ }
683
+ ```
684
+
637
685
  States and animations depend on their parent the way a revision does. The
638
686
  parent must be downloaded and current before the child is actionable;
639
687
  `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.45.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,13 @@
206
206
  "isometric": {
207
207
  "type": "boolean"
208
208
  },
209
+ "enhancePrompt": {
210
+ "type": "boolean"
211
+ },
212
+ "styleCharacter": {
213
+ "type": "string",
214
+ "minLength": 1
215
+ },
209
216
  "seed": {
210
217
  "type": "integer"
211
218
  },
@@ -499,6 +506,13 @@
499
506
  "isometric": {
500
507
  "type": "boolean"
501
508
  },
509
+ "enhancePrompt": {
510
+ "type": "boolean"
511
+ },
512
+ "styleCharacter": {
513
+ "type": "string",
514
+ "minLength": 1
515
+ },
502
516
  "seed": {
503
517
  "type": "integer"
504
518
  },
@@ -788,6 +802,33 @@
788
802
  "v3",
789
803
  "pro"
790
804
  ]
805
+ },
806
+ "startFrame": {
807
+ "type": "string",
808
+ "minLength": 1
809
+ },
810
+ "endFrame": {
811
+ "type": "string",
812
+ "minLength": 1
813
+ },
814
+ "subject": {
815
+ "type": "string",
816
+ "minLength": 1
817
+ },
818
+ "outline": {
819
+ "type": "string",
820
+ "minLength": 1
821
+ },
822
+ "shading": {
823
+ "type": "string",
824
+ "minLength": 1
825
+ },
826
+ "detail": {
827
+ "type": "string",
828
+ "minLength": 1
829
+ },
830
+ "enhancePrompt": {
831
+ "type": "boolean"
791
832
  }
792
833
  },
793
834
  "required": [
@@ -869,6 +910,14 @@
869
910
  }
870
911
  ]
871
912
  },
913
+ "concept": {
914
+ "type": "string",
915
+ "minLength": 1
916
+ },
917
+ "styleCharacter": {
918
+ "type": "string",
919
+ "minLength": 1
920
+ },
872
921
  "mirror": {
873
922
  "type": "string",
874
923
  "minLength": 1
@@ -281,6 +281,13 @@
281
281
  "isometric": {
282
282
  "type": "boolean"
283
283
  },
284
+ "enhancePrompt": {
285
+ "type": "boolean"
286
+ },
287
+ "styleCharacter": {
288
+ "type": "string",
289
+ "minLength": 1
290
+ },
284
291
  "seed": {
285
292
  "type": "integer"
286
293
  },
@@ -27,7 +27,15 @@ providers, or before any PixelLab account operation.
27
27
  A base can start from the author's own south-facing sprite (`reference` on
28
28
  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
- `heroic`, or multipliers) on the style or the asset.
30
+ `heroic`, or multipliers) on the style or the asset. A pro base can be
31
+ designed from a `concept` image (up to 1024px) and follow the look of
32
+ another generated character in the style (`styleCharacter`), which makes
33
+ that character a dependency the way a loop's parent is.
34
+
35
+ A v3 loop can start from a pose image (`startFrame`) or interpolate to one
36
+ (`endFrame`), take a `subject` when the character's own description would
37
+ mislead, and ask PixelLab to `enhancePrompt`; a template loop takes
38
+ `outline`, `shading`, and `detail` overrides instead.
31
39
 
32
40
  A loop costs per direction, and a sprite facing east is the sprite facing
33
41
  west flipped. Declare the west loop and make the east one `{ "mirror":