pixelkiln 0.6.0 → 0.7.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.
@@ -0,0 +1,35 @@
1
+ {
2
+ "$schema": "../../schema/manifest.schema.json",
3
+ "name": "pixelkiln-comfyui-smoke",
4
+ "provider": "comfyui",
5
+ "styles": {
6
+ "smoke": {
7
+ "generator": "map",
8
+ "outDir": "output/smoke",
9
+ "promptPrefix": "pixel art game asset",
10
+ "promptSuffix": "isolated on a plain background, crisp silhouette, limited color palette",
11
+ "seed": 31415,
12
+ "providerOptions": {
13
+ "comfyui": {
14
+ "workflowFile": "workflow-api.json",
15
+ "outputNodeId": "9",
16
+ "numImages": 1,
17
+ "bindings": {
18
+ "prompt": { "nodeId": "6", "input": "text" },
19
+ "width": { "nodeId": "5", "input": "width" },
20
+ "height": { "nodeId": "5", "input": "height" },
21
+ "batchSize": { "nodeId": "5", "input": "batch_size" },
22
+ "seed": { "nodeId": "3", "input": "seed" }
23
+ }
24
+ }
25
+ }
26
+ }
27
+ },
28
+ "assets": {
29
+ "anvil": {
30
+ "prompt": "a compact blacksmith anvil",
31
+ "width": 256,
32
+ "height": 256
33
+ }
34
+ }
35
+ }
@@ -0,0 +1,59 @@
1
+ {
2
+ "3": {
3
+ "class_type": "KSampler",
4
+ "inputs": {
5
+ "seed": 31415,
6
+ "steps": 24,
7
+ "cfg": 7,
8
+ "sampler_name": "euler_ancestral",
9
+ "scheduler": "normal",
10
+ "denoise": 1,
11
+ "model": ["4", 0],
12
+ "positive": ["6", 0],
13
+ "negative": ["7", 0],
14
+ "latent_image": ["5", 0]
15
+ }
16
+ },
17
+ "4": {
18
+ "class_type": "CheckpointLoaderSimple",
19
+ "inputs": {
20
+ "ckpt_name": "v1-5-pruned-emaonly-fp16.safetensors"
21
+ }
22
+ },
23
+ "5": {
24
+ "class_type": "EmptyLatentImage",
25
+ "inputs": {
26
+ "width": 256,
27
+ "height": 256,
28
+ "batch_size": 1
29
+ }
30
+ },
31
+ "6": {
32
+ "class_type": "CLIPTextEncode",
33
+ "inputs": {
34
+ "text": "pixel art game asset",
35
+ "clip": ["4", 1]
36
+ }
37
+ },
38
+ "7": {
39
+ "class_type": "CLIPTextEncode",
40
+ "inputs": {
41
+ "text": "photograph, text, watermark, signature, blurry",
42
+ "clip": ["4", 1]
43
+ }
44
+ },
45
+ "8": {
46
+ "class_type": "VAEDecode",
47
+ "inputs": {
48
+ "samples": ["3", 0],
49
+ "vae": ["4", 2]
50
+ }
51
+ },
52
+ "9": {
53
+ "class_type": "SaveImage",
54
+ "inputs": {
55
+ "filename_prefix": "pixelkiln/comfyui-smoke",
56
+ "images": ["8", 0]
57
+ }
58
+ }
59
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "pixelkiln",
3
- "version": "0.6.0",
3
+ "version": "0.7.0",
4
4
  "description": "Manifest-driven pixel-art generation, review, recovery, and packaging with deterministic provenance.",
5
5
  "type": "module",
6
6
  "sideEffects": false,
@@ -80,6 +80,7 @@
80
80
  "game-assets",
81
81
  "pixellab",
82
82
  "retro-diffusion",
83
+ "comfyui",
83
84
  "image-generation",
84
85
  "asset-pipeline",
85
86
  "generative",
@@ -33,8 +33,8 @@
33
33
  },
34
34
  "size": {
35
35
  "type": "integer",
36
- "minimum": 32,
37
- "maximum": 256
36
+ "minimum": 16,
37
+ "maximum": 8192
38
38
  },
39
39
  "view": {
40
40
  "type": "string"
@@ -191,12 +191,12 @@
191
191
  "width": {
192
192
  "type": "integer",
193
193
  "minimum": 16,
194
- "maximum": 400
194
+ "maximum": 8192
195
195
  },
196
196
  "height": {
197
197
  "type": "integer",
198
198
  "minimum": 16,
199
- "maximum": 400
199
+ "maximum": 8192
200
200
  },
201
201
  "size": {
202
202
  "type": "integer",
@@ -50,7 +50,9 @@ Read only the reference needed for the current decision:
50
50
  - For Retro Diffusion styles, USD budgets, environment assets, animation, or
51
51
  experimental limits, read
52
52
  [references/retro-diffusion.md](references/retro-diffusion.md).
53
- - When one game or repository needs both providers, read
53
+ - For a self-hosted ComfyUI workflow, node bindings, local cost semantics, or
54
+ portable output recovery, read [references/comfyui.md](references/comfyui.md).
55
+ - When one game or repository needs more than one provider, read
54
56
  [references/mixed-providers.md](references/mixed-providers.md).
55
57
 
56
58
  `FakeProvider` is the deterministic test adapter. Do not describe Retro
@@ -58,6 +60,6 @@ Diffusion as production-ready until representative multi-candidate, tileset,
58
60
  GIF, and spritesheet live smoke tests pass.
59
61
 
60
62
  When working in the PixelKiln repository, consult `docs/GETTING_STARTED.md` for
61
- the full workflow, `docs/PIXELLAB.md` or `docs/RETRO_DIFFUSION.md` for provider
62
- setup, `docs/CLI.md` for flags, `docs/MANIFEST.md` for the schema, and
63
+ the full workflow, the matching provider setup guide, `docs/CLI.md` for flags,
64
+ `docs/MANIFEST.md` for the schema, and
63
65
  `docs/RECOVERY.md` before account adoption, salvage, discard, or purge.
@@ -0,0 +1,46 @@
1
+ # ComfyUI
2
+
3
+ Read this reference before operating a PixelKiln manifest whose provider is
4
+ `comfyui`.
5
+
6
+ ComfyUI is self-hosted and needs no provider credential. Never assume the
7
+ server is running or reachable. `pixelkiln doctor --dry-run` validates the
8
+ workflow and bindings offline; `pixelkiln doctor` checks the configured server
9
+ through its read-only system-stats route. The default URL is
10
+ `http://127.0.0.1:8188`; `COMFYUI_BASE_URL` overrides it. Do not advise exposing
11
+ an unauthenticated ComfyUI server to a public network.
12
+
13
+ The style's `providerOptions.comfyui` must name a committed API-format workflow,
14
+ one image output node, the expected candidate count, and bindings for prompt,
15
+ width, height, and batch size. A seed binding is required when the style
16
+ declares a seed. Node IDs and model filenames are workflow-specific. Check the
17
+ exported JSON instead of guessing them.
18
+
19
+ Planning parses and hashes the workflow file without contacting ComfyUI. A
20
+ workflow content change makes affected assets stale. The adapter supports only
21
+ the `map` generator, PNG output from one node, 1–16 candidates, and dimensions
22
+ from 16–4096px. Manifest `styleImages` and `palette` are unsupported; those
23
+ controls belong in the workflow.
24
+
25
+ For the tested higher-quality pixel-art stack, use SDXL Base 1.0 as
26
+ `sd_xl_base_1.0.safetensors` and Pixel Art XL as
27
+ `pixel-art-xl.safetensors`. The repository's
28
+ `benchmarks/provider-environments/comfyui/` project names both files and uses
29
+ core nodes only. Its workflows sample at 1024×1024, then use `ImageScale` with
30
+ `nearest-exact`; width and height bindings point to the scale node so the saved
31
+ PNG still matches the manifest dimensions. The isolated workflow uses LoRA
32
+ strength 1.0, while the environment workflow uses 0.85. Read
33
+ `docs/COMFYUI.md` for download links, checksums, licenses, and measured limits.
34
+
35
+ The plan reports `0 free` and generation uses `--budget 0`. Explain that this
36
+ means no metered API charge. Hardware, electricity, hosting, and model licenses
37
+ can still cost money.
38
+
39
+ The lockfile records a prompt ID, output node, workflow hash, and portable
40
+ `comfyui://` source. Restore from the validated content cache first. If the
41
+ cache is missing, the current ComfyUI server must still retain the history
42
+ output so PixelKiln can resolve the portable source.
43
+
44
+ For the complete setup, quality stack, benchmark, and troubleshooting, use
45
+ `docs/COMFYUI.md` or
46
+ <https://pixelkiln.griffen.codes/docs/comfyui>.
@@ -1,7 +1,7 @@
1
1
  # Mixed-provider projects
2
2
 
3
- Read this reference when one game or repository needs assets from both PixelLab
4
- and Retro Diffusion.
3
+ Read this reference when one game or repository needs assets from PixelLab,
4
+ Retro Diffusion, ComfyUI, or another combination of providers.
5
5
 
6
6
  One manifest selects one top-level `provider`. Do not add undocumented
7
7
  per-style provider fields: the current CLI constructs one account adapter for a
@@ -15,6 +15,8 @@ art/
15
15
  pixelkiln.pixellab.lock.json
16
16
  pixelkiln.retrodiffusion.manifest.json
17
17
  pixelkiln.retrodiffusion.lock.json
18
+ pixelkiln.comfyui.manifest.json
19
+ pixelkiln.comfyui.lock.json
18
20
  pixelkiln.workspace.json
19
21
  ```
20
22
 
@@ -26,18 +28,24 @@ pixelkiln gen --manifest art/pixelkiln.pixellab.manifest.json --lock art/pixelki
26
28
 
27
29
  pixelkiln plan --manifest art/pixelkiln.retrodiffusion.manifest.json --lock art/pixelkiln.retrodiffusion.lock.json
28
30
  pixelkiln gen --manifest art/pixelkiln.retrodiffusion.manifest.json --lock art/pixelkiln.retrodiffusion.lock.json --budget <usd>
31
+
32
+ pixelkiln plan --manifest art/pixelkiln.comfyui.manifest.json --lock art/pixelkiln.comfyui.lock.json
33
+ pixelkiln gen --manifest art/pixelkiln.comfyui.manifest.json --lock art/pixelkiln.comfyui.lock.json --budget 0
29
34
  ```
30
35
 
31
- Register both manifests in the workspace catalog so aggregate status and claim
36
+ Register every manifest in the workspace catalog so aggregate status and claim
32
37
  checks see the whole project. A mixed-provider warning is expected because it
33
38
  prevents account-wide commands from silently assuming one backend.
34
39
 
35
40
  Package each manifest's reviewed outputs independently, or use `pixelkiln pack
36
41
  --inputs <file> --out <path>` with an explicit JSON list when the final sheet
37
- must combine files from both providers. Never merge the two lockfiles or add
38
- generation counts to USD. Each entry must retain the provider that produced it.
42
+ must combine files from multiple providers. Never merge their lockfiles or add
43
+ generation counts, USD, and `free` plans. Each entry must retain the provider
44
+ that produced it.
39
45
 
40
46
  A practical split is PixelLab for prompt-sensitive buildings and mature account
41
47
  recovery, then Retro Diffusion for environment-styled backdrops, clean cutouts,
42
- or native animation. The committed benchmark is evidence for those tendencies,
43
- not a guarantee; run one representative asset before expanding either batch.
48
+ or native animation. ComfyUI fits private work, local models, and custom graph
49
+ control, but its result depends on the exact workflow, model, nodes, and
50
+ hardware. The committed hosted-provider benchmark is evidence for tendencies,
51
+ not a guarantee. Run one representative asset before expanding any batch.