Manifest reference

Quality profiles

A style can declare the derived art it is willing to ship:

{
  "styles": {
    "environment": {
      "generator": "map",
      "outDir": "assets/generated/environment",
      "quality": {
        "outDir": "assets/final/environment",
        "palette": ["#141b1e", "#23312a", "#526a8d", "#709fcf", "#f1bb70"],
        "minGridConfidence": "high",
        "minTransparency": 0.2,
        "fixerPython": ".pixelkiln/pixelfixer/bin/python"
      }
    }
  }
}
FieldType/defaultMeaning
outDirstring, requiredManifest-relative root for refined PNGs and their .pixelkiln.json quality records.
palette2–256 unique hex colorsClosed final palette. PixelKiln applies it without dithering after native-grid recovery.
minGridConfidencehighLowest accepted Pixel Art Fixer result: high, medium, or low.
minTransparencynumber 0–1Optional minimum transparent share for isolated assets. Omit it for opaque scenes.
fixerRevisiontested pinned revisionExact Pixel Art Fixer revision recorded in the quality companion.
fixerPythonPIXELKILN_PIXEL_FIXER_PYTHON, then python3Manifest-relative Python executable containing Pixel Art Fixer. An absolute path is also accepted.
fpsinteger 1–60, 12 for framesPlayback rate stored with a ComfyUI frame set and used by its review preview.

The raw provider output remains under the style's normal outDir. The quality output keeps the asset's relative category and filename under quality.outDir and always uses PNG. A ComfyUI frame set writes role-stable names such as walk-frame-00.png and one shared walk.pixelkiln.json record. PixelKiln reads asset.source for an ordinary asset; otherwise it requires intact downloaded PNG bytes from the lockfile.

Quality settings do not participate in the provider spec hash. Changing the palette, threshold, fixer revision, interpreter, or final output directory never schedules paid generation. The interpreter is execution configuration, so changing only fixerPython does not invalidate already-refined output.

Run the profile as a batch, review its PNGs, and record approval per result:

pixelkiln refine --style environment
pixelkiln refine approve \
  --from assets/final/environment/mountain.pixelkiln.json \
  --reviewer "Your Name"
pixelkiln refine check --style environment

plan reports raw and quality state separately. plan --check, pack, and mount fail until each selected profile output is current and approved. Pack and mount use the approved derived PNG and retain its quality record in their provenance. A stale generation spec blocks the gate even when an approval for the old raw bytes still exists. Repeating refine preserves pending and approved records; use --force only when you intend to rebuild current output and reset approval. pack includes every approved frame. A mounted frame-set asset must declare outputRole, because one fixed cell cannot hold an animation implicitly.

Quality profiles support single-image map, 1dir, and pixflux styles plus atomic ComfyUI frames. The frame record binds every source and output, one palette, fps, ordered roles, and each frame's detected step and phase. A grid disagreement rejects the whole set. The schema rejects tiles and provider animation, whose output contracts differ. See Quality gates for the release workflow.