Manifest reference

Controlled revisions

{
  "assets": {
    "keep-rough": {
      "prompt": "rough mountain keep",
      "source": "concepts/keep.png"
    },
    "keep-winter": {
      "prompt": "preserve the keep silhouette; add snow and ice",
      "width": 96,
      "height": 96,
      "revision": {
        "mode": "image-to-image",
        "from": "keep-rough",
        "strength": 0.3
      }
    }
  }
}
Revision fieldTypeMeaning
modeenum, requiredimage-to-image, inpaint, outpaint, reduce-colors, correct-pixelart, remove-background, normal-map, animate, animate-pixminimax, animate-skeleton, interpolate, or edit-animation. The selected provider must opt into the mode.
fromasset id, requiredParent asset, in this asset's style unless fromStyle names another. Self-references, unknown ids, and cycles are rejected. A parent written as a set (a character's directions, an animation's frames) is read as every member: reduce-colors, correct-pixelart, and edit-animation take the whole set in one call, and normal-map takes an animation's frames as one strip but refuses a set of directions; the other modes refuse it. See Revising a whole set at once.
fromStylestyle idThe style the parent lives in, when it is not this asset's own. The parent must be an asset in that style, and styles may depend on one another but not in a cycle. See Across styles.
maskstringManifest-relative PNG required for inpaint; rejected for the other modes. Its dimensions must match an available source.
strengthnumber 0–1Workflow edit/denoise strength (image-to-image, correct-pixelart); rejected for reduce-colors, remove-background, normal-map, animate, animate-pixminimax, interpolate, and edit-animation. Interpretation is provider- and model-specific.
numColorsinteger 2–256reduce-colors only. Target palette size; mutually exclusive with paletteImage.
removalTasksimple or complexremove-background only. simple (PixelLab's default) is faster for flat backgrounds; complex handles detailed edges.
conventionopengl or directxnormal-map only. opengl (PixelLab's default) is green up, for Godot, Unity, and Phaser; directx is green down, for Unreal. A normal-map revision is refused in a style with enforcePalette or quality; see Normal maps.
paletteImagestringreduce-colors only. Manifest-relative image whose colors become the palette; unlike mask, no size relationship to the source is required.
ditheringenumreduce-colors only. none (default), 2x2, 4x4, or 8x8.
ditheringStrengthnumber 0–10reduce-colors only. Ignored when dithering is none.
framesinteger 4–40, evenanimate/animate-pixminimax only. animate caps at 16 (even); animate-pixminimax allows up to 40 in multiples of 4. Rejected for animate-skeleton (frame count comes from keypointsFile instead), interpolate, and edit-animation.
fpsinteger 1–60animate/animate-pixminimax/interpolate/edit-animation only. Playback rate recorded with the frames; the provider does not store one. Defaults to the parent's own rate when it is a loop, else 8.
lastFramestringanimate/animate-pixminimax: manifest-relative image pinning where the motion ends, turning an open-ended animation into an interpolation. interpolate: required, the ending keyframe (the parent is the start); it must match the parent's size.
directionenumanimate-pixminimax/animate-skeleton. Optional for the former (a caption field PixelLab otherwise reads off the image); required for the latter.
enhancePromptbooleananimate/animate-pixminimax only. Lets the provider expand the prompt into a fuller motion description first, for an extra documented +0.05-generation surcharge.
driftThresholdnumber ≥ 0animate/animate-pixminimax only. Colour de-flicker sensitivity: frames drifting from the first beyond it are corrected toward it; 0 corrects every frame. Omit for PixelLab's default.
subjectDescriptionstring ≤ 300animate-pixminimax only. What the parent shows, one noun phrase; PixelLab reads it off the image when omitted and can decline some images.
initialPosestring ≤ 300animate-pixminimax only. The pose the parent is in; read off the image when omitted.
keypointsFilestring, required for animate-skeletonManifest-relative JSON file (src/skeleton.ts's SkeletonSetSchema): the pose the source is already in, plus 3–15 per-frame poses. See Skeleton-driven animation.
skeletonTemplatestringanimate-skeleton only. Body a joint's missing depth is taken from: mannequin (default), bear, cat, dog, horse, or lion.
descriptionstringanimate-skeleton: what the subject looks like (colours, clothing, held items) — the asset's own prompt is sent as the motion's short label instead. remove-background: a hint naming the foreground. Rejected on other modes.
engineenumimage-to-image/inpaint only. pro-flash draws the edit with PixelLab's Pro Flash edit or inpaint endpoint instead of the default Pro one: 5–9 generations instead of 10–25, 32 to 256px per side in multiples of 4, no strength. Omit for the default.

The parent may use committed source, downloaded generated output, or a current approved quality output. Parent and mask hashes participate in the child spec hash; file paths do not. plan reports blocked and schedules no spend until every dependency is current. The check repeats immediately before submission.

ComfyUI is the first adapter with revision support. Its workflow must bind the source image and, when applicable, mask and strength. Other built-in providers reject the revision during offline resolution. See Controlled asset revisions for the full gate and Set up ComfyUI for workflow details.