pixelkiln 0.7.0 → 0.9.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/PROVIDERS.md +24 -21
- package/README.md +11 -3
- package/docs/AGENTS.md +4 -2
- package/docs/COMFYUI.md +218 -17
- package/docs/GETTING_STARTED.md +3 -1
- package/docs/MANIFEST.md +6 -2
- package/docs/PROVIDER_BENCHMARK.md +86 -19
- package/docs/QUALITY.md +23 -0
- package/docs/README.md +2 -2
- package/package.json +1 -1
- package/skills/pixelkiln/SKILL.md +3 -0
- package/skills/pixelkiln/references/comfyui.md +67 -7
- package/skills/pixelkiln/references/mixed-providers.md +5 -3
package/PROVIDERS.md
CHANGED
|
@@ -66,19 +66,19 @@ prompt, size, batch, and optional seed inputs PixelKiln may replace.
|
|
|
66
66
|
|
|
67
67
|
| Decision | ComfyUI through PixelKiln |
|
|
68
68
|
|---|---|
|
|
69
|
-
| Best fit today |
|
|
69
|
+
| Best fit today | Local composition experiments, private inputs, and teams prepared to maintain and manually validate custom graphs |
|
|
70
70
|
| PixelKiln generator | `map` stills |
|
|
71
71
|
| Output | One PNG output node, with 1–16 review candidates |
|
|
72
72
|
| Cost model | `0 free`; local compute and hosting are outside PixelKiln's estimate |
|
|
73
73
|
| Reproducibility | Workflow content is hashed; model files, custom-node versions, and runtime settings must still be managed outside PixelKiln |
|
|
74
74
|
| Account lifecycle | Read-only connectivity check; no balance, remote object listing, tagging, or purge |
|
|
75
|
-
| Confidence | Full mocked coverage plus
|
|
75
|
+
| Confidence | Full mocked coverage plus live generation, four-candidate review, and cache-only restore on Apple MPS; cleanup and native-grid experiments remain manual, and aesthetic approval remains human |
|
|
76
76
|
|
|
77
|
-
ComfyUI
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
custom-node versions, or sampler behavior. Commit
|
|
81
|
-
external model stack used to validate it.
|
|
77
|
+
Choose ComfyUI when workflow ownership is worth manual validation. If the goal
|
|
78
|
+
is the least cleanup between a prompt and usable pixel art, start with a
|
|
79
|
+
specialized hosted provider. Two ComfyUI machines can share the same graph but
|
|
80
|
+
differ in checkpoint bytes, custom-node versions, or sampler behavior. Commit
|
|
81
|
+
the workflow and document the external model stack used to validate it.
|
|
82
82
|
|
|
83
83
|
## Large environments, mountains, and buildings
|
|
84
84
|
|
|
@@ -87,8 +87,8 @@ background. That distinction matters more than raw canvas size.
|
|
|
87
87
|
|
|
88
88
|
| Asset type | PixelLab | Retro Diffusion | ComfyUI |
|
|
89
89
|
|---|---|---|---|
|
|
90
|
-
| Isolated house, building, mountain, or landmark | Start with `map`: arbitrary dimensions up to 400×400 and a measured one-generation cost. Live benchmark outputs had opaque backgrounds, so plan for cleanup. Use `1dir` only when references or candidate variety justify 20–40 generations and a square canvas. | Start with `rd_plus__topdown_asset`, `rd_plus__isometric_asset`, or `rd_tile__scene_object`, depending on perspective. `rd_tile__scene_object` is intended for 64–384px objects placed on tile maps. | Choose a checkpoint or LoRA trained for the intended perspective, then keep background removal or segmentation in the workflow.
|
|
91
|
-
| Full scenic background | Use `pixflux` with `noBackground: false` when an exact palette matters, or `map` for a simple scene. Current PixelKiln routes top out at 400×400. | `rd_plus__environment` targets one-point-perspective scenes; `rd_plus__topdown_map` targets 3/4 top-down maps. These styles support up to 384×384. |
|
|
90
|
+
| Isolated house, building, mountain, or landmark | Start with `map`: arbitrary dimensions up to 400×400 and a measured one-generation cost. Live benchmark outputs had opaque backgrounds, so plan for cleanup. Use `1dir` only when references or candidate variety justify 20–40 generations and a square canvas. | Start with `rd_plus__topdown_asset`, `rd_plus__isometric_asset`, or `rd_tile__scene_object`, depending on perspective. `rd_tile__scene_object` is intended for 64–384px objects placed on tile maps. | Choose a checkpoint or LoRA trained for the intended perspective, then keep background removal or segmentation in the workflow. For the tested Pixel Art XL stack, target 48–128px native components even though the adapter accepts larger working canvases. |
|
|
91
|
+
| Full scenic background | Use `pixflux` with `noBackground: false` when an exact palette matters, or `map` for a simple scene. Current PixelKiln routes top out at 400×400. | `rd_plus__environment` targets one-point-perspective scenes; `rd_plus__topdown_map` targets 3/4 top-down maps. These styles support up to 384×384. | Use composition controls only to establish the scene. Recover and review native components, then compose them at 1× with one grid and palette. A large model canvas is not a large native pixel-art canvas. |
|
|
92
92
|
| Style consistency across a set | `1dir` accepts a style reference and returns size-dependent candidates, but it is more expensive and capped at the square-object range. | RD Pro accepts up to nine references and has stronger prompt following, but its common styles top out at 256×256 and cost $0.18 per image. Environment-specific RD Plus styles trade references for a larger 384px canvas. | LoRAs, reference adapters, ControlNet, and shared latent settings can live in the committed workflow. Reproducibility also depends on external model and custom-node versions. |
|
|
93
93
|
| Very large final scene | Generate reusable objects, terrain, and background layers separately; assemble them deterministically and integer-upscale the result. | Use the same layered approach. The API has a 512px overall ceiling, but the useful environment and scene-object styles currently cap at 384px. | The graph can tile, upscale, or composite beyond hosted-provider limits, but memory and seam quality become workflow concerns. Prefer reusable layers unless the scene truly needs one render. |
|
|
94
94
|
|
|
@@ -155,7 +155,7 @@ reviewed outputs independently, or combine explicit files with `pixelkiln pack
|
|
|
155
155
|
This is a useful split when PixelLab handles prompt-sensitive buildings and
|
|
156
156
|
account recovery, Retro Diffusion handles environment-styled backdrops, clean
|
|
157
157
|
cutouts, or native animation, and ComfyUI handles private or project-specific
|
|
158
|
-
model
|
|
158
|
+
model experiments that can absorb manual cleanup. Retro Diffusion is not a higher-resolution
|
|
159
159
|
route through PixelKiln today: its useful environment styles cap at 384×384,
|
|
160
160
|
while PixelLab `map` reaches 400×400. Its advantage is the model/style and
|
|
161
161
|
output type, not raw dimensions.
|
|
@@ -207,11 +207,11 @@ estimate and hard budget remain enforced.
|
|
|
207
207
|
|
|
208
208
|
## What to build next
|
|
209
209
|
|
|
210
|
-
The first ComfyUI release
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
210
|
+
The first ComfyUI release has a live, versioned core-node reference workflow.
|
|
211
|
+
Transport, candidate review, provenance, and cache recovery work. Art quality is
|
|
212
|
+
still the gap. The tested SDXL plus Pixel Art XL graph is useful for composition,
|
|
213
|
+
but it is not a production preset. Native-grid recovery, final palette
|
|
214
|
+
enforcement, prompt coverage, and aesthetic approval remain manual.
|
|
215
215
|
|
|
216
216
|
Native per-style provider routing remains the highest-value orchestration
|
|
217
217
|
feature. One manifest should be able to send a building style to PixelLab, an
|
|
@@ -240,15 +240,18 @@ captured before submission.
|
|
|
240
240
|
|
|
241
241
|
Recommended order:
|
|
242
242
|
|
|
243
|
-
1.
|
|
244
|
-
|
|
243
|
+
1. Build a provider-neutral post-processing record for background removal,
|
|
244
|
+
native-grid recovery, final palette enforcement, and human approval.
|
|
245
|
+
2. Benchmark pinned ComfyUI models and prompt patterns across at least two scene
|
|
246
|
+
families. Reject any supposed improvement that helps only one subject.
|
|
247
|
+
3. Add per-style provider selection, provider-keyed budgets, and mixed-provider
|
|
245
248
|
integration tests.
|
|
246
|
-
|
|
249
|
+
4. Finish live Retro Diffusion multi-candidate, tileset, GIF, and spritesheet
|
|
247
250
|
smoke tests.
|
|
248
|
-
|
|
251
|
+
5. Build the Scenario still-image spike from issue #52 with dry-run cost, submit, poll,
|
|
249
252
|
download, and one custom-model or reference-image benchmark.
|
|
250
|
-
|
|
251
|
-
|
|
253
|
+
6. Design ComfyUI Cloud as a separate authenticated and billable adapter.
|
|
254
|
+
7. Consider general raster marketplaces only with explicit nearest-neighbor,
|
|
252
255
|
palette, transparency, and reproducibility checks.
|
|
253
256
|
|
|
254
257
|
Midjourney is not an adapter target without an official public API. Automating
|
package/README.md
CHANGED
|
@@ -24,7 +24,8 @@ tileset, GIF, and spritesheet live runs remain. An experimental ComfyUI adapter
|
|
|
24
24
|
runs committed API-format still-image workflows on a self-hosted server. Its
|
|
25
25
|
core-node smoke project has passed live generation, candidate queueing, and
|
|
26
26
|
cache-only recovery on Apple MPS. An SDXL plus Pixel Art XL workflow also has
|
|
27
|
-
four
|
|
27
|
+
four baseline samples and four diagnostic cleanup samples. It is source
|
|
28
|
+
material, not a production-ready pixel-art preset. See
|
|
28
29
|
[provider comparison](./PROVIDERS.md) for the trade-offs, including large
|
|
29
30
|
environment and building workflows.
|
|
30
31
|
`FakeProvider` exercises the same contract deterministically in tests.
|
|
@@ -189,7 +190,14 @@ select another provider and pass namespaced `providerOptions`; see
|
|
|
189
190
|
[Set up Retro Diffusion](./docs/RETRO_DIFFUSION.md), and
|
|
190
191
|
[Set up ComfyUI](./docs/COMFYUI.md). The
|
|
191
192
|
[provider comparison](./PROVIDERS.md) covers costs,
|
|
192
|
-
current confidence, and limitations.
|
|
193
|
+
current confidence, and limitations. The committed ComfyUI projects now include
|
|
194
|
+
transparent cutouts, palette-controlled backgrounds, wide environment canvases,
|
|
195
|
+
and native-grid recovery for model output that only looks like pixel art. The
|
|
196
|
+
ComfyUI guidance is quality-first: start with 48–128px native components,
|
|
197
|
+
apply the final palette after grid recovery, require prompt-coverage and human
|
|
198
|
+
cluster-and-silhouette review, and compose larger scenes from accepted parts
|
|
199
|
+
instead of chasing a larger raster. Those cleanup and approval steps are manual
|
|
200
|
+
today.
|
|
193
201
|
|
|
194
202
|
The schema rejects unknown fields and invalid generator combinations before
|
|
195
203
|
planning. See the [Manifest reference](./docs/MANIFEST.md).
|
|
@@ -347,7 +355,7 @@ writes, and offline provenance verification. See [Library API](./docs/LIBRARY.md
|
|
|
347
355
|
| [Manifest reference](./docs/MANIFEST.md) | Every style/asset field and generator constraint. |
|
|
348
356
|
| [Agent workflows](./docs/AGENTS.md) | Official skill install, operating model, and provider-aware safety. |
|
|
349
357
|
| [Generators](./docs/GENERATORS.md) | Capability choice, measured costs, palettes, style references, and tiles. |
|
|
350
|
-
| [Environment provider benchmark](./docs/PROVIDER_BENCHMARK.md) |
|
|
358
|
+
| [Environment provider benchmark](./docs/PROVIDER_BENCHMARK.md) | Thirty provider outputs plus three deterministic native-grid results comparing large scenes, transparency, palette size, and file readiness. |
|
|
351
359
|
| [Derived artifacts](./docs/ARTIFACTS.md) | Pack, mount, export, provenance, ownership, transactions, and recovery. |
|
|
352
360
|
| [Recovery](./docs/RECOVERY.md) | Restore, caches, adopt, salvage, claims, and purge safety. |
|
|
353
361
|
| [Quality gates](./docs/QUALITY.md) | Plan, doctor, audit, cache, JSON, and CI. |
|
package/docs/AGENTS.md
CHANGED
|
@@ -28,7 +28,9 @@ With the skill loaded, an agent should:
|
|
|
28
28
|
5. Pass an explicit `--budget` within the amount the user authorized.
|
|
29
29
|
6. Leave artwork selection in the local `pick` page unless the user gives a
|
|
30
30
|
specific selection rule.
|
|
31
|
-
7.
|
|
31
|
+
7. Treat ComfyUI output as source material until native-grid, final-palette,
|
|
32
|
+
prompt-coverage, and human 1× checks pass.
|
|
33
|
+
8. Commit the manifest, lockfile, generated output, and artifact companions, but
|
|
32
34
|
never credentials or `.pixelkiln/` caches.
|
|
33
35
|
|
|
34
36
|
The skill guides the workflow; PixelKiln remains the deterministic execution
|
|
@@ -48,7 +50,7 @@ not a replacement:
|
|
|
48
50
|
| PixelKiln library/CLI | Budgets, state, provenance, review, recovery, audit, and packaging. |
|
|
49
51
|
| PixelLab adapter | The current production and live-tested generation backend. |
|
|
50
52
|
| Retro Diffusion adapter | Experimental backend; authenticated paid single-still lifecycle plus mocked advanced-workflow tests. |
|
|
51
|
-
| ComfyUI adapter | Experimental self-hosted still-image backend
|
|
53
|
+
| ComfyUI adapter | Experimental self-hosted still-image backend; generated PNGs need manual structural and visual approval. |
|
|
52
54
|
|
|
53
55
|
PixelKiln's core is provider-neutral, but PixelLab remains the only production
|
|
54
56
|
and paid-generation-tested adapter. Retro Diffusion generation support is
|
package/docs/COMFYUI.md
CHANGED
|
@@ -4,9 +4,44 @@ PixelKiln can run a committed ComfyUI workflow on a self-hosted server. This
|
|
|
4
4
|
adapter is experimental. It supports still-image `map` jobs, one or more review
|
|
5
5
|
candidates, local provenance, and cache-backed recovery. A core-node Stable
|
|
6
6
|
Diffusion 1.5 workflow has passed single-image generation and a four-candidate
|
|
7
|
-
review queue on Apple MPS.
|
|
7
|
+
review queue on Apple MPS. An SDXL composition workflow has also passed four
|
|
8
8
|
building and environment renders. ComfyUI Cloud is not part of this release.
|
|
9
9
|
|
|
10
|
+
[Visit ComfyUI](https://www.comfy.org/) or continue with the local setup below.
|
|
11
|
+
|
|
12
|
+
## Decide whether ComfyUI fits
|
|
13
|
+
|
|
14
|
+
Use this adapter when local control, private inputs, or a custom graph justifies
|
|
15
|
+
maintaining the workflow. It is not a turnkey route to game-ready pixel art.
|
|
16
|
+
The tested SDXL plus Pixel Art XL graph can produce useful source compositions,
|
|
17
|
+
but the result still needs native-grid recovery, a final palette pass, and human
|
|
18
|
+
art review.
|
|
19
|
+
|
|
20
|
+
If the main goal is the shortest path to usable pixel art, compare PixelLab and
|
|
21
|
+
Retro Diffusion first. Choose ComfyUI when owning the workflow is worth the
|
|
22
|
+
extra model testing and cleanup.
|
|
23
|
+
|
|
24
|
+
### Minimal safe path
|
|
25
|
+
|
|
26
|
+
1. Generate two to four candidates at the model's normal working size.
|
|
27
|
+
2. Reject missing subjects, weak silhouettes, and bad composition before doing
|
|
28
|
+
any cleanup.
|
|
29
|
+
3. For isolated art, remove the background at full resolution.
|
|
30
|
+
4. Recover one native pixel per detected cell.
|
|
31
|
+
5. Quantize the recovered native image to the final project palette. Start with
|
|
32
|
+
16–32 colors and no dithering.
|
|
33
|
+
6. Review the native file at 1× and an integer zoom.
|
|
34
|
+
7. Keep the smallest clear result. Start with 48–128px native components and
|
|
35
|
+
compose larger scenes from accepted parts.
|
|
36
|
+
|
|
37
|
+
Stop after step 2 when the image misses the brief. Background removal,
|
|
38
|
+
pixel-grid recovery, and palette reduction cannot restore a missing building or
|
|
39
|
+
repair a weak composition.
|
|
40
|
+
|
|
41
|
+
PixelKiln currently automates generation, candidate review, provenance, and
|
|
42
|
+
recovery from its local cache. It does not automate steps 3–6. Treat every
|
|
43
|
+
ComfyUI output as source material until those checks pass.
|
|
44
|
+
|
|
10
45
|
## Start ComfyUI
|
|
11
46
|
|
|
12
47
|
Install and start ComfyUI using its
|
|
@@ -53,30 +88,191 @@ The repository includes a working core-node
|
|
|
53
88
|
from ComfyUI's official first-generation guide to test plumbing, not to claim
|
|
54
89
|
pixel-art quality.
|
|
55
90
|
|
|
56
|
-
## Install the tested
|
|
91
|
+
## Install the tested composition stack
|
|
57
92
|
|
|
58
|
-
The committed
|
|
93
|
+
The committed composition and post-processing benchmarks use three public model
|
|
94
|
+
files:
|
|
59
95
|
|
|
60
96
|
| File | ComfyUI folder | SHA-256 | License named by the model card |
|
|
61
97
|
|---|---|---|---|
|
|
62
98
|
| [`sd_xl_base_1.0.safetensors`](https://huggingface.co/stabilityai/stable-diffusion-xl-base-1.0/blob/main/sd_xl_base_1.0.safetensors) | `models/checkpoints` | `31e35c80fc4829d14f90153f4c74cd59c90b779f6afe05a74cd6120b893f7e5b` | CreativeML Open RAIL++-M |
|
|
63
99
|
| [`pixel-art-xl.safetensors`](https://huggingface.co/nerijs/pixel-art-xl/blob/main/pixel-art-xl.safetensors) | `models/loras` | `4234637cb80c998f41e348e6a6cb6bc20d8d038b2b0f256b6129b3b5e353eef7` | CreativeML OpenRAIL-M |
|
|
100
|
+
| [`birefnet.safetensors`](https://huggingface.co/Comfy-Org/BiRefNet/blob/main/background_removal/birefnet.safetensors) | `models/background_removal` | `9ab37426bf4de0567af6b5d21b16151357149139362e6e8992021b8ce356a154` | MIT |
|
|
64
101
|
|
|
65
102
|
Download each file into the named folder, verify its checksum, then confirm the
|
|
66
|
-
checkpoint and
|
|
67
|
-
They are not bundled with PixelKiln. Read
|
|
68
|
-
the models or their outputs.
|
|
69
|
-
|
|
70
|
-
The benchmark renders at 1024×1024, where SDXL has enough room to
|
|
71
|
-
scene, then uses ComfyUI's core `ImageScale` node with
|
|
72
|
-
the requested 256px or 384px PNG. Asset width and
|
|
73
|
-
the scale node, not the latent node.
|
|
74
|
-
|
|
75
|
-
|
|
103
|
+
checkpoint, LoRA, and background-removal model appear in ComfyUI. The files are
|
|
104
|
+
about 6.9 GB, 171 MB, and 444 MB. They are not bundled with PixelKiln. Read the
|
|
105
|
+
model cards before distributing the models or their outputs.
|
|
106
|
+
|
|
107
|
+
The environment benchmark renders at 1024×1024, where SDXL has enough room to
|
|
108
|
+
compose the scene, then uses ComfyUI's core `ImageScale` node with
|
|
109
|
+
`nearest-exact` to write the requested 256px or 384px PNG. Asset width and
|
|
110
|
+
height are therefore bound to the scale node, not the latent node. Those files
|
|
111
|
+
prove exact delivery dimensions; they do not prove a native pixel grid. The
|
|
112
|
+
separate native-grid benchmark saves the model canvas and reconstructs its
|
|
113
|
+
implied cells afterward.
|
|
76
114
|
|
|
77
115
|
You can reproduce the four samples with the committed
|
|
78
116
|
[ComfyUI benchmark project](../benchmarks/provider-environments/comfyui/README.md).
|
|
79
117
|
|
|
118
|
+
## Background removal and palette experiments
|
|
119
|
+
|
|
120
|
+
ComfyUI 0.34.3 has the required nodes in core. No custom-node package is needed.
|
|
121
|
+
The tested isolated-asset graph runs these nodes in this order:
|
|
122
|
+
|
|
123
|
+
1. Decode the 1024×1024 SDXL image.
|
|
124
|
+
2. Run `RemoveBackground` with the loaded BiRefNet model.
|
|
125
|
+
3. Invert the returned background mask for use as foreground alpha.
|
|
126
|
+
4. Run `ImageQuantize` on the RGB image with 64 colors and no dithering.
|
|
127
|
+
5. Join the quantized RGB image with the alpha mask.
|
|
128
|
+
6. Reduce the RGBA result with `ImageScale` set to `nearest-exact`.
|
|
129
|
+
|
|
130
|
+
This graph is a diagnostic experiment, not the recommended finished pipeline.
|
|
131
|
+
It proves the cleanup nodes run and preserves the alpha mask by letting BiRefNet
|
|
132
|
+
see the full-resolution, full-color image. Its pre-scale quantization does not
|
|
133
|
+
guarantee the color count of a later native-grid reconstruction, because grid
|
|
134
|
+
recovery can introduce averaged colors.
|
|
135
|
+
|
|
136
|
+
For an isolated production candidate, use this order instead:
|
|
137
|
+
|
|
138
|
+
1. decode the full-resolution model output;
|
|
139
|
+
2. remove its background and preserve the alpha mask;
|
|
140
|
+
3. recover the native pixel grid without resampling the alpha edge;
|
|
141
|
+
4. quantize the recovered native RGB image to the final project palette;
|
|
142
|
+
5. audit and review the final native RGBA file.
|
|
143
|
+
|
|
144
|
+
Scenic backgrounds skip background removal. They still need grid recovery,
|
|
145
|
+
final palette enforcement, and review.
|
|
146
|
+
|
|
147
|
+
The [post-processing benchmark](../benchmarks/provider-postprocessing/comfyui/README.md)
|
|
148
|
+
reuses the same prompts, seeds, SDXL settings, and LoRA strengths as the first
|
|
149
|
+
ComfyUI run. Its two isolated assets have 60% and 62% transparent pixels and 55
|
|
150
|
+
and 58 RGB colors. The two backgrounds use 64 and 60 colors. The original
|
|
151
|
+
files ranged from 16,811 to 50,985 colors.
|
|
152
|
+
|
|
153
|
+
Use PixelKiln to keep those requirements enforceable:
|
|
154
|
+
|
|
155
|
+
```bash
|
|
156
|
+
pixelkiln audit --style isolated-refined --min-transparency 0.5 --max-colors 64 --check
|
|
157
|
+
pixelkiln audit --style background-refined --max-colors 64 --check
|
|
158
|
+
```
|
|
159
|
+
|
|
160
|
+
Start without dithering for compact game art. Floyd-Steinberg can soften bands,
|
|
161
|
+
but it adds noisy pixel patterns. Ordered Bayer dithering is easier to art-direct
|
|
162
|
+
when a project needs deliberate texture. Whichever mode you choose becomes part
|
|
163
|
+
of the committed workflow hash.
|
|
164
|
+
|
|
165
|
+
## Recover a native pixel grid
|
|
166
|
+
|
|
167
|
+
File size is not pixel-art resolution. Keep these three measurements separate:
|
|
168
|
+
|
|
169
|
+
1. The **generation canvas** is the raster SDXL produces, such as 1024×1024.
|
|
170
|
+
2. The **native art grid** has one stored pixel for each editable pixel-art cell.
|
|
171
|
+
3. The **display size** is an integer-scaled view of the native art.
|
|
172
|
+
|
|
173
|
+
Pixel Art XL can draw convincing pixel-shaped texture without producing a
|
|
174
|
+
consistent one-pixel grid. Our 1024×1024 test image carried an implied 8px cell
|
|
175
|
+
and resolved to 128×128 native art. Its 1344×768 wide version resolved to 168×96.
|
|
176
|
+
Nearest-neighbor scaling preserved those fake cells but did not fix them.
|
|
177
|
+
|
|
178
|
+
Retro Diffusion's MIT-licensed
|
|
179
|
+
[Pixel Art Fixer](https://github.com/Retro-Diffusion/pixel-art-fixer) detects the
|
|
180
|
+
implied grid and reconstructs one output pixel per cell. Both benchmark sources
|
|
181
|
+
returned the high-confidence `fast:ac+rl(S)` decision. The checked-in
|
|
182
|
+
[native-grid boundary benchmark](../benchmarks/provider-hires/comfyui/README.md) includes
|
|
183
|
+
the source PNGs, native reconstructions, dimensions, hashes, and pinned fixer
|
|
184
|
+
revision.
|
|
185
|
+
|
|
186
|
+
Treat the native PNG as the canonical asset. Edit and compose it at 1×. Scale it
|
|
187
|
+
only for display, using integer dimensions and nearest-neighbor rendering. A
|
|
188
|
+
2048px file made from a 1024px pseudo-pixel source is not higher-quality pixel
|
|
189
|
+
art, even when every source pixel becomes an exact 2×2 block.
|
|
190
|
+
|
|
191
|
+
The open fixer is deterministic image processing. Its maintainers also offer a
|
|
192
|
+
[hosted neural fixer](https://www.retrodiffusion.ai/tools/pixel-art-fixer/) for
|
|
193
|
+
damaged inputs where a reliable grid no longer exists. PixelKiln does not yet
|
|
194
|
+
run either fixer automatically.
|
|
195
|
+
|
|
196
|
+
### Quality-first resolution policy
|
|
197
|
+
|
|
198
|
+
Use 48×48 through 128×128 as the default native range for an independently
|
|
199
|
+
generated component with this tested stack. This is an operating range, not an
|
|
200
|
+
adapter restriction: ComfyUI may work on a 1024px canvas internally, and a wide
|
|
201
|
+
or tall asset may exceed one native axis when review supports it. Do not grow
|
|
202
|
+
both native dimensions merely because the machine can render them. This matches
|
|
203
|
+
the [Aseprite Diffusion author's published working range](https://www.reddit.com/r/PixelArt/comments/yv2q51/making_high_quality_game_tiles_in_less_than_a/)
|
|
204
|
+
of 48–128px, centered on a 64px native target, and our current 128px recovery.
|
|
205
|
+
|
|
206
|
+
Start with a deliberate 16–32 color project palette. Add colors only when they
|
|
207
|
+
improve readable depth, material, or lighting. After grid recovery, review the
|
|
208
|
+
asset at 1× and an integer zoom for silhouette, clusters, contours, single-pixel
|
|
209
|
+
noise, palette separation, and seams. High-confidence grid detection only
|
|
210
|
+
proves structure; it is not an aesthetic approval.
|
|
211
|
+
|
|
212
|
+
Test a proposed graph and prompt pattern on at least two different scene
|
|
213
|
+
families. One prompt can clean up one subject and damage another. Generate a
|
|
214
|
+
small candidate set, reject any image that misses required objects, and keep the
|
|
215
|
+
prompt and workflow only when the final native files improve consistently.
|
|
216
|
+
|
|
217
|
+
Stop increasing resolution when clusters become soft, gradients replace
|
|
218
|
+
intentional ramps, or important forms stop reading at 1×. Keep the smaller
|
|
219
|
+
result when it is clearer. See the [quality gates](./QUALITY.md) for the human
|
|
220
|
+
review checklist.
|
|
221
|
+
|
|
222
|
+
## Build larger environments
|
|
223
|
+
|
|
224
|
+
Do not ask the model for one enormous finished level. Generate and review the
|
|
225
|
+
scene as 48–128px native-grid parts:
|
|
226
|
+
|
|
227
|
+
- sky and atmosphere;
|
|
228
|
+
- distant mountains;
|
|
229
|
+
- midground terrain and forest;
|
|
230
|
+
- buildings and landmarks;
|
|
231
|
+
- foreground framing and gameplay tiles.
|
|
232
|
+
|
|
233
|
+
Keep one grid origin, native scale, and palette contract across the parts, then
|
|
234
|
+
compose them at 1×. This preserves editable clusters and lets you regenerate one
|
|
235
|
+
weak region without touching the rest of the scene.
|
|
236
|
+
|
|
237
|
+
ComfyUI's official [outpainting workflow](https://docs.comfy.org/tutorials/basic/outpaint)
|
|
238
|
+
can extend a canvas. The official
|
|
239
|
+
[crop-and-stitch nodes](https://github.com/comfyorg/comfyui-crop-and-stitch) can
|
|
240
|
+
sample a region at the model's working size and blend it back.
|
|
241
|
+
[Tiled diffusion](https://github.com/comfyorg/comfyui-tiled-diffusion) can cover
|
|
242
|
+
a larger semantic canvas with overlapping windows. These techniques help
|
|
243
|
+
composition and regional detail; none guarantees a native pixel grid. Run grid
|
|
244
|
+
recovery after accepting each layer or the final composite. Check licenses
|
|
245
|
+
before shipping: the linked tiled implementation marks its MultiDiffusion,
|
|
246
|
+
Mixture of Diffusers, and tiled VAE code as non-commercial share-alike.
|
|
247
|
+
|
|
248
|
+
Do not add a latent refinement pass by default. We tested `LatentUpscale` to
|
|
249
|
+
1536px and 2048px, low-denoise resampling, and tiled VAE decode. Every version
|
|
250
|
+
completed on the 64 GB M1 Max, but the extra interpolation, diffusion, and VAE
|
|
251
|
+
round trip visibly blurred the shapes. Reducing the result to 64 colors did not
|
|
252
|
+
restore the lost structure.
|
|
253
|
+
|
|
254
|
+
The neural [ComfyUI Pixelization](https://github.com/DarioFT/ComfyUI-Pixelization)
|
|
255
|
+
node is another possible raster-to-pixel-art step, but its underlying model is
|
|
256
|
+
limited to non-commercial research use. It is not a safe default for a general
|
|
257
|
+
game-asset pipeline.
|
|
258
|
+
|
|
259
|
+
### What each technique can and cannot do
|
|
260
|
+
|
|
261
|
+
| Technique | Useful for | Limitation |
|
|
262
|
+
|---|---|---|
|
|
263
|
+
| [Pixel Art Fixer](https://github.com/Retro-Diffusion/pixel-art-fixer) | Recovering a native grid from softened, non-integer, or oversized pseudo-pixel art | Classical detection can fail when the grid is badly damaged or cells are very small |
|
|
264
|
+
| [ComfyUI Pixelization](https://github.com/DarioFT/ComfyUI-Pixelization) | Turning ordinary digital art into sharper, cell-controlled pixel art | Underlying model is non-commercial research only and may damage existing pixel art |
|
|
265
|
+
| [Outpainting](https://docs.comfy.org/tutorials/basic/outpaint) | Extending the scene beyond its current borders | Produces more raster canvas, not a guaranteed pixel grid |
|
|
266
|
+
| [Crop and Stitch](https://github.com/comfyorg/comfyui-crop-and-stitch) | Repairing one region at the model's preferred resolution | Blending and resampling still need native-grid normalization |
|
|
267
|
+
| [Tiled diffusion](https://github.com/comfyorg/comfyui-tiled-diffusion) | Panoramas, regional prompts, and canvases larger than working memory | The linked implementation has non-commercial components and does not enforce pixel cells |
|
|
268
|
+
| [MMPX](https://jcgt.org/published/0010/02/04/paper.pdf) | Magnifying true native pixel art while preserving its style | Assumes the input is already real pixel art; it cannot recover a fake grid |
|
|
269
|
+
|
|
270
|
+
That makes the deterministic fixer the best current structural fallback after
|
|
271
|
+
ComfyUI, not a quality generator. Use outpainting, regional generation, or tiles
|
|
272
|
+
to solve composition first. Recover the grid next, enforce palette and alpha
|
|
273
|
+
rules after that, perform the human art review, and reserve nearest-neighbor or
|
|
274
|
+
MMPX for presentation of an already-valid native asset.
|
|
275
|
+
|
|
80
276
|
## Configure the manifest
|
|
81
277
|
|
|
82
278
|
Put dimensions on each asset. Put workflow configuration under
|
|
@@ -163,14 +359,16 @@ the portable reference against the current `COMFYUI_BASE_URL`.
|
|
|
163
359
|
- PixelKiln does not install checkpoints or custom nodes. Every machine running
|
|
164
360
|
the project must provide the models and nodes named by the workflow. The
|
|
165
361
|
benchmark workflows use only core ComfyUI nodes.
|
|
362
|
+
- PixelKiln does not yet run background removal, native-grid recovery, final
|
|
363
|
+
palette enforcement, or aesthetic review as one automated pipeline. Until
|
|
364
|
+
those external or manual steps pass, a generated PNG remains source material.
|
|
166
365
|
|
|
167
366
|
For large mountains, buildings, and backgrounds, model choice and working
|
|
168
367
|
resolution matter more than the provider label. The SDXL benchmark produced a
|
|
169
368
|
coherent 384px cliff fortress and two layered environments where the starter
|
|
170
|
-
SD1.5 workflow did not.
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
production batch.
|
|
369
|
+
SD1.5 workflow did not. Those results still required manual structural and
|
|
370
|
+
visual review. Benchmark the exact committed workflow on more than one subject
|
|
371
|
+
before assigning it a production batch.
|
|
174
372
|
|
|
175
373
|
## Troubleshooting
|
|
176
374
|
|
|
@@ -185,6 +383,9 @@ production batch.
|
|
|
185
383
|
- **Out of memory:** lower asset dimensions or batch size, or change the
|
|
186
384
|
workflow. PixelKiln's 4096px ceiling is a schema limit, not a promise that a
|
|
187
385
|
particular machine can render that canvas.
|
|
386
|
+
- **The result looks pixelated but muddy:** reject it as source material. Do not
|
|
387
|
+
upscale it or accept it because grid detection succeeds. Compare a different
|
|
388
|
+
model, prompt pattern, or smaller native target on at least two scene types.
|
|
188
389
|
|
|
189
390
|
ComfyUI's official server route reference documents the `/prompt`,
|
|
190
391
|
`/history/{prompt_id}`, `/view`, and `/system_stats` endpoints used by this
|
package/docs/GETTING_STARTED.md
CHANGED
|
@@ -71,7 +71,9 @@ provider options and current limits, or
|
|
|
71
71
|
For self-hosted generation, set `provider` to `comfyui`, commit an API-format
|
|
72
72
|
workflow, and bind the inputs PixelKiln may replace. Local ComfyUI jobs use a
|
|
73
73
|
zero `free` budget, which describes the lack of a metered provider charge, not
|
|
74
|
-
the cost of hardware or electricity.
|
|
74
|
+
the cost of hardware or electricity. ComfyUI is not the shortest path to
|
|
75
|
+
game-ready pixel art: use it only when local control justifies manual grid
|
|
76
|
+
recovery, palette enforcement, and art review. See [Set up ComfyUI](COMFYUI.md).
|
|
75
77
|
|
|
76
78
|
The provider setup guides give the shortest complete path for
|
|
77
79
|
[PixelLab](PIXELLAB.md), [Retro Diffusion](RETRO_DIFFUSION.md), and
|
package/docs/MANIFEST.md
CHANGED
|
@@ -178,7 +178,9 @@ input constraints are checked during the free planning phase.
|
|
|
178
178
|
|
|
179
179
|
ComfyUI runs a committed API-format workflow on a self-hosted server. The
|
|
180
180
|
workflow file is resolved relative to the manifest and its parsed content is
|
|
181
|
-
part of the spec hash.
|
|
181
|
+
part of the spec hash. Adapter success proves transport and output structure,
|
|
182
|
+
not pixel-art quality. The tested workflows still need manual native-grid,
|
|
183
|
+
final-palette, prompt-coverage, and human 1× checks.
|
|
182
184
|
|
|
183
185
|
```jsonc
|
|
184
186
|
{
|
|
@@ -219,7 +221,9 @@ Node IDs come from the exported workflow; they are not stable across unrelated
|
|
|
219
221
|
workflows. The current adapter supports `map`, PNG output from one node, 1–16
|
|
220
222
|
candidates, and dimensions from 16–4096px. It rejects manifest `styleImages`
|
|
221
223
|
and `palette`; keep those controls inside the workflow. See
|
|
222
|
-
[Set up ComfyUI](COMFYUI.md) for the complete procedure and
|
|
224
|
+
[Set up ComfyUI](COMFYUI.md) for the complete procedure, safe workflow, and
|
|
225
|
+
quality limits. The 4096px adapter ceiling is not a recommended generation or
|
|
226
|
+
native-art size.
|
|
223
227
|
|
|
224
228
|
## Asset fields
|
|
225
229
|
|
|
@@ -4,8 +4,8 @@ This benchmark compares PixelLab and Retro Diffusion on five game-art briefs,
|
|
|
4
4
|
with a four-brief ComfyUI extension using a named SDXL stack. Three briefs use
|
|
5
5
|
256×256 output; two use 384×384 to test larger buildings and environment
|
|
6
6
|
backgrounds. The hosted providers have two attempts per brief. ComfyUI has one
|
|
7
|
-
attempt on each supported brief. Prompt text
|
|
8
|
-
are not portable between models.
|
|
7
|
+
baseline and one post-processed attempt on each supported brief. Prompt text
|
|
8
|
+
and seed numbers match, but seeds are not portable between models.
|
|
9
9
|
|
|
10
10
|
The benchmark tests the adapters that PixelKiln ships. It does not rank every
|
|
11
11
|
model or endpoint sold by either provider.
|
|
@@ -164,19 +164,75 @@ workflows use core ComfyUI nodes, generate at 1024×1024, and finish with
|
|
|
164
164
|
|---|---|---|---|
|
|
165
165
|
|  |  |  |  |
|
|
166
166
|
|
|
167
|
-
The observatory and fortress
|
|
168
|
-
|
|
167
|
+
The observatory and fortress have the clearest architecture in this small
|
|
168
|
+
sample. The fortress has a clear entrance, tower hierarchy, stairs, and a
|
|
169
169
|
single readable footprint. The alpine scene keeps the river, village, tree
|
|
170
170
|
line, and distant ridges separate. The volcanic scene is dramatic and legible,
|
|
171
171
|
but it drops the requested basalt fortress, the same prompt-coverage failure
|
|
172
|
-
seen in both hosted providers.
|
|
172
|
+
seen in both hosted providers. These composition strengths do not make the
|
|
173
|
+
files finished pixel art.
|
|
173
174
|
|
|
174
175
|
The trade-off is production cleanup. All four ComfyUI PNGs are opaque. The two
|
|
175
176
|
isolated files use 16,811 and 31,572 RGB colors, while the backgrounds use
|
|
176
177
|
36,248 and 50,985. They look pixelated because of the LoRA and nearest-exact
|
|
177
178
|
reduction, but they are not indexed, low-palette sprites. Add explicit
|
|
178
|
-
background removal
|
|
179
|
-
|
|
179
|
+
background removal, native-grid recovery, final palette quantization, and human
|
|
180
|
+
review before treating them as game assets.
|
|
181
|
+
|
|
182
|
+
### ComfyUI post-processing result
|
|
183
|
+
|
|
184
|
+
The follow-up graph keeps the generation settings fixed and changes only the
|
|
185
|
+
cleanup nodes. BiRefNet removes the isolated backgrounds, and ComfyUI's core
|
|
186
|
+
quantizer limits every image to 64 colors without dithering.
|
|
187
|
+
|
|
188
|
+
| Original observatory | Cleanup experiment | Original fortress | Cleanup experiment |
|
|
189
|
+
|---|---|---|---|
|
|
190
|
+
|  |  |  |  |
|
|
191
|
+
|
|
192
|
+
| Original alpine valley | 64-color alpine valley | Original volcanic pass | 64-color volcanic pass |
|
|
193
|
+
|---|---|---|---|
|
|
194
|
+
|  |  |  |  |
|
|
195
|
+
|
|
196
|
+
The cutouts retained their silhouettes while reaching 60% and 62% transparent
|
|
197
|
+
pixels. They use 55 and 58 RGB colors instead of 16,811 and 31,572. The scenic
|
|
198
|
+
images fell to 64 and 60 colors without losing their main depth bands. The
|
|
199
|
+
committed [post-processing project](../benchmarks/provider-postprocessing/comfyui/README.md)
|
|
200
|
+
contains the workflows, manifest, audit commands, and provenance. These outputs
|
|
201
|
+
still need native-grid recovery and final palette enforcement. They are not a
|
|
202
|
+
finished production path.
|
|
203
|
+
|
|
204
|
+
### ComfyUI resolution result
|
|
205
|
+
|
|
206
|
+
A second benchmark keeps the alpine brief and seed fixed while separating the
|
|
207
|
+
model's generation canvas from the actual editable pixel grid.
|
|
208
|
+
|
|
209
|
+
| SDXL source | Recovered native art | Wide SDXL source | Recovered wide art |
|
|
210
|
+
|---|---|---|---|
|
|
211
|
+
|  |  |  |  |
|
|
212
|
+
|
|
213
|
+
The 1024×1024 source carried an implied 8px cell and resolved to a 128×128
|
|
214
|
+
native grid. The 1344×768 source used the same cell step and resolved to 168×96.
|
|
215
|
+
Retro Diffusion Pixel Art Fixer reported high-confidence consensus for both.
|
|
216
|
+
The reconstructed outputs contain 48 colors and one stored pixel per recovered
|
|
217
|
+
cell.
|
|
218
|
+
|
|
219
|
+
That is a structural result, not an aesthetic endorsement. Grid recovery cannot
|
|
220
|
+
turn weak composition, painterly gradients, or muddy source clusters into good
|
|
221
|
+
pixel art. These files remain review candidates, and the 1024px source should
|
|
222
|
+
not be presented as a high-resolution pixel-art deliverable. For this tested
|
|
223
|
+
stack, 48–128px native components are the default operating range; larger
|
|
224
|
+
environments should be assembled from reviewed parts with one palette and grid.
|
|
225
|
+
|
|
226
|
+
This invalidated our earlier 2048px nearest-neighbor result. That file perfectly
|
|
227
|
+
duplicated the source raster, including its fake, softened cells. It was a larger
|
|
228
|
+
delivery file, not better pixel art, and has been removed from the showcase.
|
|
229
|
+
|
|
230
|
+
Earlier 1536px and 2048px latent refinements also looked blurred. The extra
|
|
231
|
+
interpolation and resampling softened the structure; color quantization could
|
|
232
|
+
not repair it. The committed
|
|
233
|
+
[resolution project](../benchmarks/provider-hires/comfyui/README.md) contains
|
|
234
|
+
the two provider workflows, source outputs, native reconstructions, fixer
|
|
235
|
+
report, audit instructions, and lock provenance.
|
|
180
236
|
|
|
181
237
|
## Cost and operational results
|
|
182
238
|
|
|
@@ -184,7 +240,7 @@ requires them.
|
|
|
184
240
|
|---|---:|---:|---:|
|
|
185
241
|
| PixelLab | 10 | 10 generations | 4,411 generations |
|
|
186
242
|
| Retro Diffusion | 10 | $0.744 | $9.73 |
|
|
187
|
-
| ComfyUI |
|
|
243
|
+
| ComfyUI | 10 | 0 `free` PixelKiln units | No account balance |
|
|
188
244
|
|
|
189
245
|
PixelLab charged one generation per image. Retro Diffusion quoted and charged
|
|
190
246
|
$0.058 for each 256px RD Plus image and $0.099 for each 384px RD Plus image;
|
|
@@ -199,8 +255,9 @@ The run also caught two integration details:
|
|
|
199
255
|
quote precision, so planning remains a safe ceiling.
|
|
200
256
|
|
|
201
257
|
All three manifests now pass `doctor` and report a current plan. The hosted
|
|
202
|
-
projects have ten healthy PNG cache entries each; the ComfyUI
|
|
203
|
-
four.
|
|
258
|
+
projects have ten healthy PNG cache entries each; the ComfyUI projects have
|
|
259
|
+
four baseline, four cleanup, and two resolution-test entries. Three additional
|
|
260
|
+
native-grid PNGs are deterministic post-processing results, not provider jobs.
|
|
204
261
|
|
|
205
262
|
## Recommendation
|
|
206
263
|
|
|
@@ -214,18 +271,28 @@ For full scenic backgrounds, start with PixelLab Pixflux. These two attempts
|
|
|
214
271
|
were cheaper and more faithful to the brief. Try Retro Diffusion when you want
|
|
215
272
|
foreground framing and a closer illustrated scene.
|
|
216
273
|
|
|
217
|
-
Try
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
274
|
+
Try ComfyUI when local control and custom composition work matter enough to
|
|
275
|
+
justify manual cleanup. The tested SDXL stack produced a strong building and
|
|
276
|
+
layered valley, but its large files only imitated a pixel grid. Its cleanup
|
|
277
|
+
graph and native-grid recovery are diagnostic steps, not a production preset.
|
|
278
|
+
A one-pass 1024px render took roughly 60 to 90 seconds on the tested Apple MPS
|
|
279
|
+
machine. Recover the native grid, enforce the final palette afterward, and
|
|
280
|
+
review prompt coverage and pixel clusters by hand. The tested latent-upscale
|
|
281
|
+
passes blurred the art, while nearest-neighbor scaling only duplicated its
|
|
282
|
+
pseudo-pixels.
|
|
283
|
+
|
|
284
|
+
Do not choose the current ComfyUI stack only because it has no provider charge.
|
|
285
|
+
It carries the most local setup and manual validation in this comparison. Test
|
|
286
|
+
any proposed prompt pattern on at least two scene families; a universal cleanup
|
|
287
|
+
prompt can improve one subject while degrading another.
|
|
222
288
|
|
|
223
289
|
Do not ask any provider for one giant finished level. Generate terrain,
|
|
224
|
-
background, buildings, landmarks, and foreground pieces separately.
|
|
225
|
-
them
|
|
290
|
+
background, buildings, landmarks, and foreground pieces separately. Normalize
|
|
291
|
+
them to one native grid, compose at 1×, then use integer nearest-neighbor scaling
|
|
292
|
+
for display.
|
|
226
293
|
|
|
227
294
|
This sample is useful, not definitive. Two attempts expose obvious tendencies,
|
|
228
295
|
but they do not measure every style, prompt family, or model update. The new
|
|
229
296
|
volcanic brief also shows why prompt coverage needs review at the object level:
|
|
230
|
-
all
|
|
231
|
-
|
|
297
|
+
all providers lost the requested fortress. Rerun the committed manifests when
|
|
298
|
+
a provider or local model changes.
|
package/docs/QUALITY.md
CHANGED
|
@@ -63,6 +63,29 @@ measured member-by-member with stable role-qualified ids. Standard
|
|
|
63
63
|
non-interlaced greyscale, indexed, RGB, greyscale-alpha, and RGBA PNGs are
|
|
64
64
|
normalized to RGBA before measurement.
|
|
65
65
|
|
|
66
|
+
## Human pixel-art gate
|
|
67
|
+
|
|
68
|
+
The audit catches measurable drift; it does not decide whether an image is good
|
|
69
|
+
pixel art. A grid-aligned file can still contain painterly gradients, noisy
|
|
70
|
+
single-pixel marks, weak silhouettes, or clusters inherited from a blurred
|
|
71
|
+
source. Review every candidate at its native 1× size and at an integer zoom.
|
|
72
|
+
|
|
73
|
+
For each candidate, verify:
|
|
74
|
+
|
|
75
|
+
- every required subject and landmark from the brief is present and readable;
|
|
76
|
+
- the silhouette and focal point read at 1×;
|
|
77
|
+
- clusters look deliberate instead of averaged or smeared;
|
|
78
|
+
- contours do not contain accidental stair-steps or isolated noise;
|
|
79
|
+
- the palette separates depth and gameplay-relevant shapes;
|
|
80
|
+
- transparency and tile seams are clean when applicable;
|
|
81
|
+
- the asset still fits the project's shared grid, palette, and perspective.
|
|
82
|
+
|
|
83
|
+
Reject a candidate that fails those checks even when dimensions, hashes,
|
|
84
|
+
transparency, palette count, and grid recovery all pass. For the tested ComfyUI
|
|
85
|
+
pixel-art stack, begin with 48–128px native components and compose larger scenes
|
|
86
|
+
from reviewed parts. Apply the final palette after grid recovery. Resolution is
|
|
87
|
+
a ceiling imposed by quality, not a target.
|
|
88
|
+
|
|
66
89
|
## Cache integrity gate
|
|
67
90
|
|
|
68
91
|
```bash
|
package/docs/README.md
CHANGED
|
@@ -12,7 +12,7 @@ This source also renders at
|
|
|
12
12
|
| [Getting started](./GETTING_STARTED.md) | Install from a checkout, create or adopt a project, run the everyday workflow, and decide what belongs in Git. |
|
|
13
13
|
| [Set up PixelLab](./PIXELLAB.md) | Configure the production provider, choose a generator, and use its account workflows. |
|
|
14
14
|
| [Set up Retro Diffusion](./RETRO_DIFFUSION.md) | Configure the experimental provider, choose a style, and understand its live-tested boundary. |
|
|
15
|
-
| [Set up ComfyUI](./COMFYUI.md) |
|
|
15
|
+
| [Set up ComfyUI](./COMFYUI.md) | Bind a local composition workflow and understand the manual quality boundary. |
|
|
16
16
|
| [CLI reference](./CLI.md) | Every command and flag, offline/provider requirements, JSON output, and exit behavior. |
|
|
17
17
|
| [Manifest reference](./MANIFEST.md) | Every style and asset field, inheritance, generator-specific constraints, mounting, and schema validation. |
|
|
18
18
|
| [Agent workflows](./AGENTS.md) | Install the official skill and pair agent guidance with the deterministic CLI. |
|
|
@@ -22,7 +22,7 @@ This source also renders at
|
|
|
22
22
|
| Guide | Use it for |
|
|
23
23
|
|---|---|
|
|
24
24
|
| [Generators](./GENERATORS.md) | Choose between `map`, `1dir`, `pixflux`, and `tiles`; understand measured costs and capability trade-offs. |
|
|
25
|
-
| [Environment provider benchmark](./PROVIDER_BENCHMARK.md) | Compare PixelLab, Retro Diffusion, and
|
|
25
|
+
| [Environment provider benchmark](./PROVIDER_BENCHMARK.md) | Compare PixelLab, Retro Diffusion, and ComfyUI on buildings, backgrounds, cleanup, and native-grid recovery. |
|
|
26
26
|
| [Derived artifacts](./ARTIFACTS.md) | Pack, mount, and export; provenance companions; ownership; force takeover; transactional and crash recovery. |
|
|
27
27
|
| [Recovery and account safety](./RECOVERY.md) | Restore, caches, adopt, salvage, cross-project claims, tagging, and confirmed purge. |
|
|
28
28
|
| [Quality gates](./QUALITY.md) | Plan, doctor, audit, cache checks, JSON contracts, and CI usage. |
|
package/package.json
CHANGED
|
@@ -20,6 +20,9 @@ submission, reviewed by a human, and recorded with exact provenance.
|
|
|
20
20
|
explicit `--budget` no higher than the authorized estimate.
|
|
21
21
|
- Leave visual selection to the local `pixelkiln pick` review page unless the
|
|
22
22
|
user explicitly provides a selection rule. Closing it applies nothing.
|
|
23
|
+
- Treat every ComfyUI output as source material until it passes the native-grid,
|
|
24
|
+
final-palette, prompt-coverage, and human 1× checks in the ComfyUI reference.
|
|
25
|
+
A successful PNG or high-confidence grid result is not quality approval.
|
|
23
26
|
- Preserve manual edits and ownership errors. Inspect the difference before any
|
|
24
27
|
`--force` operation.
|
|
25
28
|
- Commit the manifest, lockfile, generated outputs, and derived artifact
|
|
@@ -3,12 +3,46 @@
|
|
|
3
3
|
Read this reference before operating a PixelKiln manifest whose provider is
|
|
4
4
|
`comfyui`.
|
|
5
5
|
|
|
6
|
+
## Position it honestly
|
|
7
|
+
|
|
8
|
+
The ComfyUI adapter automates a committed graph, candidate review, provenance,
|
|
9
|
+
and recovery. It does not make a general image model produce good pixel art.
|
|
10
|
+
Use it when local control, private inputs, or a custom graph justify manual art
|
|
11
|
+
direction. Do not call the current SDXL plus Pixel Art XL setup production-ready
|
|
12
|
+
or game-ready.
|
|
13
|
+
|
|
14
|
+
If the user mainly wants the shortest path to usable pixel art, compare the
|
|
15
|
+
specialized hosted providers first. Choose ComfyUI when owning the workflow is
|
|
16
|
+
worth the extra model testing and cleanup.
|
|
17
|
+
|
|
18
|
+
## Minimal safe path
|
|
19
|
+
|
|
20
|
+
1. Generate two to four candidates on the model's normal working canvas.
|
|
21
|
+
2. Reject weak composition and missing prompt elements before post-processing.
|
|
22
|
+
3. For isolated art, remove the background at full resolution.
|
|
23
|
+
4. Recover one native pixel per detected cell.
|
|
24
|
+
5. Quantize the recovered native image to the project's final palette, usually
|
|
25
|
+
16–32 colors without dithering to start.
|
|
26
|
+
6. Review the native file at 1× and an integer zoom. Check silhouette, clusters,
|
|
27
|
+
contours, single-pixel noise, palette separation, alpha, and seams.
|
|
28
|
+
7. Accept the smallest clear result. For the tested stack, start with 48–128px
|
|
29
|
+
native components and compose larger scenes from reviewed parts.
|
|
30
|
+
|
|
31
|
+
PixelKiln does not automate steps 3–6 yet. Say so. Do not present the generated
|
|
32
|
+
working canvas, a nearest-neighbor resize, or a grid-recovery result as the
|
|
33
|
+
finished asset.
|
|
34
|
+
|
|
35
|
+
Test a workflow on at least two different scene families before recommending
|
|
36
|
+
it. A prompt that reduced noise in the alpine benchmark increased noise in the
|
|
37
|
+
volcanic benchmark and still missed the requested fortress.
|
|
38
|
+
|
|
39
|
+
## Connection and workflow contract
|
|
40
|
+
|
|
6
41
|
ComfyUI is self-hosted and needs no provider credential. Never assume the
|
|
7
|
-
server is
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
an unauthenticated ComfyUI server to a public network.
|
|
42
|
+
server is reachable. `pixelkiln doctor --dry-run` validates workflow bindings
|
|
43
|
+
offline; `pixelkiln doctor` checks the read-only system-stats route. The default
|
|
44
|
+
URL is `http://127.0.0.1:8188`; `COMFYUI_BASE_URL` overrides it. Keep an
|
|
45
|
+
unauthenticated server off public networks.
|
|
12
46
|
|
|
13
47
|
The style's `providerOptions.comfyui` must name a committed API-format workflow,
|
|
14
48
|
one image output node, the expected candidate count, and bindings for prompt,
|
|
@@ -22,7 +56,9 @@ the `map` generator, PNG output from one node, 1–16 candidates, and dimensions
|
|
|
22
56
|
from 16–4096px. Manifest `styleImages` and `palette` are unsupported; those
|
|
23
57
|
controls belong in the workflow.
|
|
24
58
|
|
|
25
|
-
|
|
59
|
+
## Tested evidence, not a preset
|
|
60
|
+
|
|
61
|
+
The diagnostic stack uses SDXL Base 1.0 as
|
|
26
62
|
`sd_xl_base_1.0.safetensors` and Pixel Art XL as
|
|
27
63
|
`pixel-art-xl.safetensors`. The repository's
|
|
28
64
|
`benchmarks/provider-environments/comfyui/` project names both files and uses
|
|
@@ -32,6 +68,30 @@ PNG still matches the manifest dimensions. The isolated workflow uses LoRA
|
|
|
32
68
|
strength 1.0, while the environment workflow uses 0.85. Read
|
|
33
69
|
`docs/COMFYUI.md` for download links, checksums, licenses, and measured limits.
|
|
34
70
|
|
|
71
|
+
The cleanup experiment in
|
|
72
|
+
`benchmarks/provider-postprocessing/comfyui/` runs BiRefNet on the decoded
|
|
73
|
+
full-resolution image, quantizes RGB separately, joins the inverted background
|
|
74
|
+
mask as alpha, and scales last. It proves those nodes run; it is not the complete
|
|
75
|
+
recommended pipeline. Background removal belongs before grid recovery. Final
|
|
76
|
+
palette quantization belongs after grid recovery. Always audit the final native
|
|
77
|
+
file, because reconstruction can introduce averaged colors.
|
|
78
|
+
|
|
79
|
+
The boundary experiment in
|
|
80
|
+
`benchmarks/provider-hires/comfyui/` keeps generation canvas, native art grid,
|
|
81
|
+
and display size separate. Pixel Art XL can make a 1024px raster whose implied
|
|
82
|
+
cells resolve to a much smaller editable grid. Nearest-neighbor scaling
|
|
83
|
+
preserves those fake cells; it does not repair them. Reconstruct accepted output
|
|
84
|
+
at 1× with a grid-aware tool such as Retro Diffusion Pixel Art Fixer, then
|
|
85
|
+
compose and edit the native PNG. Record the fixer revision, source and output
|
|
86
|
+
hashes, detected grid, confidence, and dimensions.
|
|
87
|
+
|
|
88
|
+
Do not add `LatentUpscale` and a second sampling pass by default. The tested
|
|
89
|
+
1536px and 2048px variants blurred the output. Nearest-neighbor scaling preserves
|
|
90
|
+
existing cells but cannot repair them. Grid recovery proves structure, not good
|
|
91
|
+
clusters or prompt coverage.
|
|
92
|
+
|
|
93
|
+
## Operation and recovery
|
|
94
|
+
|
|
35
95
|
The plan reports `0 free` and generation uses `--budget 0`. Explain that this
|
|
36
96
|
means no metered API charge. Hardware, electricity, hosting, and model licenses
|
|
37
97
|
can still cost money.
|
|
@@ -41,6 +101,6 @@ The lockfile records a prompt ID, output node, workflow hash, and portable
|
|
|
41
101
|
cache is missing, the current ComfyUI server must still retain the history
|
|
42
102
|
output so PixelKiln can resolve the portable source.
|
|
43
103
|
|
|
44
|
-
For the complete setup,
|
|
104
|
+
For the complete setup, composition stack, benchmark, and troubleshooting, use
|
|
45
105
|
`docs/COMFYUI.md` or
|
|
46
106
|
<https://pixelkiln.griffen.codes/docs/comfyui>.
|
|
@@ -46,6 +46,8 @@ that produced it.
|
|
|
46
46
|
A practical split is PixelLab for prompt-sensitive buildings and mature account
|
|
47
47
|
recovery, then Retro Diffusion for environment-styled backdrops, clean cutouts,
|
|
48
48
|
or native animation. ComfyUI fits private work, local models, and custom graph
|
|
49
|
-
control
|
|
50
|
-
|
|
51
|
-
|
|
49
|
+
control when the user accepts manual native-grid recovery, final palette
|
|
50
|
+
enforcement, and art review. Start with a specialized hosted provider when
|
|
51
|
+
minimizing cleanup matters more than local control. The committed benchmark is
|
|
52
|
+
evidence for tendencies, not a guarantee. Run one representative asset before
|
|
53
|
+
expanding any batch, and test a ComfyUI graph on at least two scene families.
|