{
  "schemaVersion": 1,
  "revision": "motion-v11-r1",
  "model": "gpt-image-2.5-sunburst",
  "quality": "high",
  "generationMode": "atom-gpt-image-gen-cli-image-edit",
  "alphaProcess": {
    "helper": "remove_chroma_key.py",
    "keyColor": "#00ff00",
    "softMatte": true,
    "transparentThreshold": 24,
    "spillCleanup": true,
    "edgeContract": 0
  },
  "parts": [
    {
      "id": "closed-eyes-v1",
      "input": "https://pub-236dc9dc170e487faec4c8b5e2d084c6.r2.dev/pages/seosoyoung-vtuber-crop-assembly/r1/inputs/eyes-brows.png",
      "size": [
        1376,
        480
      ],
      "rawSha256": "0f68cfda57bde4fc843cec202c055af197e7eceb84e44ad8672429d00bcee2d6",
      "alphaSha256": "41bbe942aa32761ab0d51bda37cdb3a48729bf7be7f6f7c6eec5706daa78ea2b",
      "stageBounds": {
        "x": 278,
        "y": 352,
        "width": 443,
        "height": 156
      },
      "prompt": "Use case: precise-object-edit. Input is the exact cropped eye region of our anime avatar, 443 by 156 pixels. Make a reusable CLOSED EYELASH PAIR sprite for a gentle natural blink. Preserve original eye widths, outer corner positions, lash color and fine drawing style. Close both eyes softly, NOT a happy inverted-U smile: upper eyelid descends to meet lower lid in a shallow downward bow. Original left eye spans input x70..175 and right eye x272..377; final closed lid curves near input y126, outer corners near y111 and inner near y135. Keep these positions scaled proportionally to output. Retain delicate outward lashes and a subtle fine eyelid crease immediately above each closed line. Delete ALL other elements: no eyebrows, no open iris or white sclera, no skin, no ears, no hair. Exactly two closed eye drawings on perfectly flat solid chroma key green #00ff00 background. No shadow, no glow, no green tint on lashes. Do not move, resize, center, decorate, or add additional eyes. Preserve full rectangular input coordinate layout; output should be the original canvas uniformly enlarged.",
      "review": "MAIN inspected raw and alpha and actual full-face composites. Downward closed lids with outward lashes. Generated canvas had lids above requested input line; stage y352 (+22px) places them naturally and is approved.",
      "raw": "https://pub-236dc9dc170e487faec4c8b5e2d084c6.r2.dev/pages/seosoyoung-vtuber-motion-demo/r1/raw/closed-eyes-v1.png",
      "alpha": "https://pub-236dc9dc170e487faec4c8b5e2d084c6.r2.dev/pages/seosoyoung-vtuber-motion-demo/r1/parts/closed-eyes-v1.png",
      "rawUrl": "https://pub-236dc9dc170e487faec4c8b5e2d084c6.r2.dev/pages/seosoyoung-vtuber-motion-demo/r1/raw/closed-eyes-v1.png",
      "alphaUrl": "https://pub-236dc9dc170e487faec4c8b5e2d084c6.r2.dev/pages/seosoyoung-vtuber-motion-demo/r1/parts/closed-eyes-v1.png"
    },
    {
      "id": "mouth-open-v1",
      "input": "https://pub-236dc9dc170e487faec4c8b5e2d084c6.r2.dev/pages/seosoyoung-vtuber-crop-assembly/r1/inputs/mouth-upscaled-v2.png",
      "size": [
        1120,
        672
      ],
      "rawSha256": "30ea9fff145b25f11fbd681e1dcceafed7935b48b048291c7891b8bafe75e469",
      "alphaSha256": "a06f4bca66a57e43a697a4f5f4da229eacba2c7cbc7863e0f9e651b670c0b508",
      "stageBounds": {
        "x": 466,
        "y": 530,
        "width": 80,
        "height": 48
      },
      "prompt": "Use case: precise-object-edit. Input is the precisely enlarged small mouth crop of an anime girl. Create ONE matching gently OPEN TALKING MOUTH sprite. Preserve the original extremely delicate reddish-brown mouth corner positions x320 and x735, with center x528 on this 1120x672 canvas, original neutral line around y333. Open a small soft rounded oval, width about 405px and height about 225px, centered at x528 y360. Upper lip near y265, lower lip near y480. Fine muted rose outline matching original line, dark warm burgundy interior, a narrow ivory upper teeth strip attached inside the upper lip, soft pink tongue only at the bottom. This represents about 29x16 pixels on the avatar, so keep the expression modest and natural, neither a wide smile nor exaggerated shout. Delete ALL skin and surrounding peach background; outside the complete mouth shape must be flat solid chroma green #00ff00, with clean edges. No skin-colored halo, no nose, no chin, no face, no other mouth, no text. Preserve full input canvas coordinates and scale, do not center by bounding box. Anime illustration sprite, same line softness and palette as input.",
      "review": "MAIN inspected raw and alpha; small speaking mouth with upper teeth and tongue. Preserve original crop placement; actual visible width approximately25 stage px.",
      "raw": "https://pub-236dc9dc170e487faec4c8b5e2d084c6.r2.dev/pages/seosoyoung-vtuber-motion-demo/r1/raw/mouth-open-v1.png",
      "alpha": "https://pub-236dc9dc170e487faec4c8b5e2d084c6.r2.dev/pages/seosoyoung-vtuber-motion-demo/r1/parts/mouth-open-v1.png",
      "rawUrl": "https://pub-236dc9dc170e487faec4c8b5e2d084c6.r2.dev/pages/seosoyoung-vtuber-motion-demo/r1/raw/mouth-open-v1.png",
      "alphaUrl": "https://pub-236dc9dc170e487faec4c8b5e2d084c6.r2.dev/pages/seosoyoung-vtuber-motion-demo/r1/parts/mouth-open-v1.png"
    },
    {
      "id": "mouth-round-v1",
      "input": "https://pub-236dc9dc170e487faec4c8b5e2d084c6.r2.dev/pages/seosoyoung-vtuber-crop-assembly/r1/inputs/mouth-upscaled-v2.png",
      "size": [
        1120,
        672
      ],
      "rawSha256": "cfe324e842eb37103b1013ea106a615aeea5e64eacd69341b0280f443ea7943b",
      "alphaSha256": "e765ba7d2db049e0cba0107e1855b1d1992e1bfd819be6ea220e45f00f97dd36",
      "stageBounds": {
        "x": 466,
        "y": 530,
        "width": 80,
        "height": 48
      },
      "prompt": "Use case: precise-object-edit. Make ONE small rounded O-speaking mouth sprite for the same anime girl as this precisely enlarged mouth crop. Keep the same full 1120x672 canvas, original mouth center near x535 y345. Rounded soft oval O mouth only 240 pixels wide and 230 pixels tall, center x535 y350. Fine muted reddish brown outline, dark warm burgundy interior, tiny soft pink tongue at bottom, no visible teeth. Delicate soft cel shading and line softness matching the original reference, no heavy lipstick and no puckered realistic lips. This maps to a modest 17 by 16 pixel speaking mouth on our avatar, not a surprised screaming face. Delete all skin and original neutral lip marks; everything outside the single open O mouth must be perfectly flat solid chroma key green #00ff00. No skin halo, no shadows outside the mouth, no nose, no extra parts, no text. Do not enlarge to fill the canvas or move the mouth to a new position.",
      "review": "MAIN inspected raw, alpha and actual full-face composite. Smaller O shape accepted as alternate speaking shape at original crop registration. Actual visible width approximately9 stage px.",
      "raw": "https://pub-236dc9dc170e487faec4c8b5e2d084c6.r2.dev/pages/seosoyoung-vtuber-motion-demo/r1/raw/mouth-round-v1.png",
      "alpha": "https://pub-236dc9dc170e487faec4c8b5e2d084c6.r2.dev/pages/seosoyoung-vtuber-motion-demo/r1/parts/mouth-round-v1.png",
      "rawUrl": "https://pub-236dc9dc170e487faec4c8b5e2d084c6.r2.dev/pages/seosoyoung-vtuber-motion-demo/r1/raw/mouth-round-v1.png",
      "alphaUrl": "https://pub-236dc9dc170e487faec4c8b5e2d084c6.r2.dev/pages/seosoyoung-vtuber-motion-demo/r1/parts/mouth-round-v1.png"
    }
  ],
  "scope": "Three new expression sprites; front hair uses connected deformable mesh on combined old bangs texture; ponytail roots fixed; existing static parts reused.",
  "status": "main-approved-static-expression-sprites",
  "visualReview": {
    "neutralRgbaEqualsPreviousAssembly": true,
    "closedEyePlacementApproved": {
      "x": 278,
      "y": 352,
      "width": 443,
      "height": 156
    },
    "allThreeRawAndAlphaInspected": true,
    "closedAndBothMouthShapesCompositedAndInspected": true,
    "motionReview": "pending-renderer"
  }
}
