CLI referenceLocal quality and derived output

refine

Build or verify the quality profile declared by selected manifest styles. This work is provider-neutral and offline:

pixelkiln refine --style environment --only mountain,fortress
pixelkiln refine check --style environment --json

Manifest mode reads the final output directory, palette, detector confidence, optional transparency floor, fixer revision, and frame-set fps from style.quality. It uses a declared asset source, one intact downloaded PNG, or every ordered ComfyUI frame. Raw provider output stays untouched. A repeated run skips current pending and approved records; --force rebuilds them and resets approval.

refine check exits nonzero until every selected profile result is current and approved. plan shows the same quality state without changing provider cost or generation actionability. pack and mount fail closed and use only approved profile output. For a frame-set style, pack uses every approved role. mount requires asset.outputRole for each frame-set asset assigned to a fixed cell.

Pass --from to refine one PNG without a manifest. Path mode also needs --out and an explicit palette.

Install the pinned Pixel Art Fixer package into an isolated Python environment before the first run. The ComfyUI guide has the exact command and revision.

PALETTE="#141b1e,#23312a,#384d4f,#526a8d,#709fcf,#865c45,#c6a766,#f1bb70"

pixelkiln refine \
  --from working-canvas.png \
  --out art/mountain-native.png \
  --palette "$PALETTE" \
  --fixer-python .pixelkiln/pixelfixer/bin/python

Both modes run Pixel Art Fixer at its recorded revision, require high grid confidence by default, reconstruct one stored pixel per detected cell, and maps every visible pixel to the nearest supplied color without dithering. The palette size becomes the color-count ceiling. --min-transparency can add an alpha threshold for isolated assets. Failed checks write nothing.

The output is accompanied by <name>.pixelkiln.json. The record hashes the source and output and stores the fixer revision, detected grid, palette, audit, and review state. It starts as pending; an automated pass is not art approval.

pixelkiln refine approve \
  --from art/mountain-native.pixelkiln.json \
  --reviewer "Mina" \
  --note "Readable at 1x; alpha edge is clean"

pixelkiln refine check \
  --from art/mountain-native.pixelkiln.json \
  --json

approve remains record-based because approval belongs to exact bytes: one PNG or one ordered frame set. It asks the reviewer to confirm the native 1× and integer-zoom checks. Use --yes only when that review already happened and the named person is recording it non-interactively. check exits nonzero when approval is pending or when the source, output, palette metadata, fixer revision, or audit record has changed. Any actual rebuild resets approval to pending.

--min-grid-confidence medium or low weakens the structural gate. Do that only after inspecting a representative batch. --fixer-revision records a different pinned installation; it does not install or verify that revision for you.