P1 서연 리노컷 아트 원본과 자산 파이프라인

- 아트 디렉션 v3 스타일 프레임·프롬프트(소유자 선택: 리노컷)
- P1 정면 원화·얼굴 없는 기본형, 분할 레이어, 원화 픽셀 입술·턱 조각, 모티프 스프라이트, 소유자 기준 이미지
- 파이프라인 스크립트(분할·얼굴 음영·눈썹 중심선·입술 결·턱 조각·게시)와 manifest 검사 수치
- MediaPipe 모델과 재생성 가능한 진단 PNG는 무시하고 README에 받는 곳을 적었다
This commit is contained in:
Yun Chan 2026-10-01 09:58:15 +09:00
parent 85bd079d18
commit 00169533d8
83 changed files with 7843 additions and 0 deletions

Binary file not shown.

After

Width:  |  Height:  |  Size: 81 KiB

View file

@ -0,0 +1,689 @@
{
"faceOvalBBox": [
262.2,
392.8,
748.5,
929.7
],
"cropsFace": [
204.7,
360.6,
601.4,
601.4
],
"mouthCenter": [
491.6,
797.5
],
"palette": {
"ink": "#1E1F1F",
"sclera": "#D8CEBD",
"iris": "#4F3B2C",
"irisRing": "#1E1F1F",
"lipUpper": "#97684B",
"lipLower": "#AB7857",
"mouthLine": "#292421",
"mouthInner": "#3B201B",
"teeth": "#E9E0CF",
"blush": "#C0624A",
"tear": "#EEE5D3",
"pallor": "#9AA3A6",
"paper": "#EEE5D3",
"motifPetal": "#D0A362",
"motifLeaf": "#53626C"
},
"paletteSamples": {
"eyeLeft": {
"sclera": "#C19670",
"iris": "#372D26",
"irisRing": "#4F3E30",
"n": {
"sclera": 908,
"iris": 208,
"irisRing": 426
}
},
"eyeRight": {
"sclera": "#C1976F",
"iris": "#382D26",
"irisRing": "#463A2E",
"n": {
"sclera": 889,
"iris": 205,
"irisRing": 422
}
},
"scleraIrisIrisRingFixedOverride": {
"reason": "고정값(오케스트레이터 결정), 측정 참고값: sclera 중앙값 #A5917A, 홍채 중간 링 #3E3028",
"measured": {
"sclera": "#C1966F",
"iris": "#382D26",
"irisRing": "#4A3C2F"
},
"fixed": {
"sclera": "#D8CEBD",
"iris": "#4F3B2C",
"irisRing": "#1E1F1F"
}
},
"ink": {
"box": [
280,
100,
720,
350
],
"lumThreshold": 55,
"n": 80222,
"hex": "#1E1F1F"
},
"lipUpper": {
"box": [
417,
770,
572,
795
],
"hex": "#97684B"
},
"lipLower": {
"box": [
417,
799,
572,
834
],
"hex": "#AB7857"
},
"mouthLine": {
"box": [
437,
795,
552,
800
],
"hex": "#292421"
},
"motifPetal": {
"sourceImage": "docs/avatar-art/art-direction-v3/p1/r2-b-linocut.png",
"sun": {
"box": [
1230,
10,
1536,
210
],
"n": 20570,
"hex": "#D3A661"
},
"tulip": {
"box": [
1030,
280,
1170,
560
],
"n": 4314,
"hex": "#CCA063"
},
"hex": "#D0A362"
},
"motifLeaf": {
"sourceImage": "docs/avatar-art/art-direction-v3/p1/r2-b-linocut.png",
"cloudLeft": {
"box": [
20,
20,
380,
190
],
"n": 21312,
"hex": "#636D76"
},
"raincloud": {
"box": [
520,
10,
930,
230
],
"n": 27607,
"hex": "#586B76"
},
"wiltedFlowerLeaf": {
"box": [
520,
280,
650,
580
],
"n": 5818,
"hex": "#495961"
},
"closedBudLeaf": {
"box": [
10,
290,
110,
570
],
"n": 6589,
"hex": "#495961"
},
"hex": "#53626C"
}
},
"publish": {
"fileSizes": {
"body": 130646,
"head": 142134,
"hair-front": 28314,
"face-detail": 35128,
"paper-grain": 1428
},
"encodeMeta": {
"quality": 80,
"scale": 1.0,
"totalBytes": 337650
},
"totalBytes": 337650
},
"grain": {
"href": "/avatar/v3/p1/paper-grain.webp",
"size": 256
},
"lipTexturePublish": {
"quality": "lossless",
"fileSizes": {
"lip-upper": 15904,
"lip-lower": 14630,
"lip-shadow": 14868
},
"totalBytes": 45402,
"budgetBytes": 81920,
"webpVsPngMeanAbsDiff": {
"upper": 0.0,
"lower": 0.0,
"shadow": 0.0
}
},
"jawPublish": {
"quality": 80,
"scale": 1.0,
"fileSizes": {
"jaw-head": 24580,
"jaw-detail": 15488
},
"totalBytes": 40068,
"budgetBytes": 204800,
"vsPublishedLayerAbsDiff": {
"head": {
"comparedAgainstPublishedLayer": "head.webp",
"meanAbsDiffPremultipliedRgb": 3.131,
"maxAbsDiffPremultipliedRgb": 40.0,
"meanAbsDiffAlpha": 0.0,
"maxAbsDiffAlpha": 0.0,
"meetsTarget": false,
"orchestratorAcceptanceNote": "평균차 3.13(목표 2.0 초과) 수용(오케스트레이터, 2026-10-01). 근거: 최대차가 난 자리(왼쪽 위 머리카락)는 띠 clip(얼굴 윤곽 18px 바깥 다각형) 밖이라 렌더러가 그리지 않는다. 띠가 켜지는 동안에도 윗경계(y_n) 부근은 변위 f(y)가 0에 가까워 이 조각의 위쪽 여백이 눈에 띄게 움직이지 않는다. quality를 올려도 이미 게시된 head.webp 자체의 압축 오차만큼은 남아 이득이 없다(비교 대상 자체가 손실 압축본)."
},
"detail": {
"comparedAgainstPublishedLayer": "face-detail.webp",
"meanAbsDiffPremultipliedRgb": 0.565,
"maxAbsDiffPremultipliedRgb": 25.0,
"meanAbsDiffAlpha": 0.0,
"maxAbsDiffAlpha": 0.0,
"meetsTarget": true
}
}
},
"motifPublish": {
"quality": 82,
"fileSizes": {
"bud-closed": 14576,
"bud-half": 14932,
"bud-open": 18278,
"bud-droop": 14102,
"weather-positive": 7594,
"weather-negative": 13262,
"weather-defensive": 14886,
"weather-cognitive": 7790,
"weather-energy": 7132
},
"totalBytes": 112552,
"budgetBytes": 163840,
"halo": {
"bud-closed": 0.09157509157509157,
"bud-half": 0.09174311926605505,
"bud-open": 0.06657789613848203,
"bud-droop": 0.205761316872428,
"weather-positive": 0.0,
"weather-negative": 0.0,
"weather-defensive": 0.0,
"weather-cognitive": 0.0,
"weather-energy": 0.2890173410404624
},
"haloThreshold": 2.0
},
"rig": {
"schemaVersion": "vignette.avatar.v3.rig.v1",
"persona": "P1",
"canvas": {
"w": 1005,
"h": 1566
},
"layers": {
"body": {
"href": "/avatar/v3/p1/body.webp",
"x": 0,
"y": 807,
"w": 1005,
"h": 759
},
"head": {
"href": "/avatar/v3/p1/head.webp",
"x": 111,
"y": 72,
"w": 849,
"h": 1049
},
"hairFront": {
"href": "/avatar/v3/p1/hair-front.webp",
"x": 260,
"y": 391,
"w": 491,
"h": 516
},
"faceDetail": {
"href": "/avatar/v3/p1/face-detail.webp",
"x": 284,
"y": 444,
"w": 437,
"h": 478
}
},
"grain": {
"href": "/avatar/v3/p1/paper-grain.webp",
"size": 256
},
"lipTexture": {
"upper": {
"href": "/avatar/v3/p1/lip-upper.webp",
"x": 404,
"y": 758,
"w": 182,
"h": 54
},
"lower": {
"href": "/avatar/v3/p1/lip-lower.webp",
"x": 404,
"y": 798,
"w": 182,
"h": 49
},
"shadow": {
"href": "/avatar/v3/p1/lip-shadow.webp",
"x": 414,
"y": 802,
"w": 162,
"h": 53
}
},
"jaw": {
"head": {
"href": "/avatar/v3/p1/jaw-head.webp",
"x": 260,
"y": 653,
"w": 500,
"h": 307
},
"detail": {
"href": "/avatar/v3/p1/jaw-detail.webp",
"x": 260,
"y": 653,
"w": 500,
"h": 307
}
},
"motif": {
"bud": {
"canvas": {
"w": 280,
"h": 420
},
"base": [
134.23,
399.0
],
"closed": "/avatar/v3/p1/motif/bud-closed.webp",
"half": "/avatar/v3/p1/motif/bud-half.webp",
"open": "/avatar/v3/p1/motif/bud-open.webp",
"droop": "/avatar/v3/p1/motif/bud-droop.webp"
},
"weather": {
"canvas": {
"w": 320,
"h": 200
},
"sprites": {
"positive": "/avatar/v3/p1/motif/weather-positive.webp",
"negative": "/avatar/v3/p1/motif/weather-negative.webp",
"defensive": "/avatar/v3/p1/motif/weather-defensive.webp",
"cognitive": "/avatar/v3/p1/motif/weather-cognitive.webp",
"energy": "/avatar/v3/p1/motif/weather-energy.webp"
}
}
},
"pivots": {
"neck": [
500,
990
],
"body": [
502,
1566
],
"face": [
490,
660
]
},
"crops": {
"portrait": [
0,
0,
1005,
1566
],
"bust": [
0,
40,
1005,
1005
],
"face": [
204.65089959816135,
360.5630198053121,
601.3858226852418,
601.3858226852418
]
},
"faceOval": [
[
481.0,
392.8
],
[
551.8,
393.6
],
[
612.4,
402.3
],
[
669.7,
421.4
],
[
707.5,
450.3
],
[
731.2,
487.1
],
[
743.8,
526.1
],
[
748.5,
573.7
],
[
745.6,
619.2
],
[
739.1,
666.9
],
[
727.3,
716.7
],
[
709.7,
769.5
],
[
687.0,
813.6
],
[
661.3,
846.5
],
[
629.6,
874.9
],
[
603.3,
894.4
],
[
574.9,
912.1
],
[
542.1,
926.0
],
[
500.6,
929.7
],
[
461.5,
924.7
],
[
432.5,
910.1
],
[
408.0,
891.9
],
[
384.7,
872.6
],
[
356.2,
844.9
],
[
333.7,
812.9
],
[
312.5,
770.3
],
[
294.2,
718.1
],
[
281.0,
668.9
],
[
273.0,
622.3
],
[
265.1,
577.6
],
[
262.2,
530.6
],
[
267.6,
491.4
],
[
282.1,
455.1
],
[
310.0,
426.1
],
[
357.1,
405.8
],
[
412.2,
395.7
]
],
"landmarks": {
"eyeLeft": {
"inner": [
430.9,
592.2
],
"outer": [
339.1,
578.8
],
"upperLidTop": [
376.3,
564.3
],
"lowerLidBottom": [
381.1,
598.2
],
"iris": {
"center": [
387.3,
579.1
],
"radius": 21.4
}
},
"eyeRight": {
"inner": [
552.8,
590.9
],
"outer": [
648.0,
575.5
],
"upperLidTop": [
607.1,
562.1
],
"lowerLidBottom": [
603.9,
595.0
],
"iris": {
"center": [
601.9,
576.2
],
"radius": 21.3
}
},
"browLeft": {
"inner": [
450.6,
525.1
],
"peak": [
360.1,
510.4
],
"outer": [
313.4,
513.3
]
},
"browRight": {
"inner": [
518.2,
521.7
],
"peak": [
626.8,
508.2
],
"outer": [
682.8,
510.7
]
},
"noseTip": [
486.6,
713.0
],
"mouthCornerLeft": [
422.1,
804.7
],
"mouthCornerRight": [
567.5,
805.8
],
"upperLipTop": [
489.8,
773.4
],
"lowerLipBottom": [
493.0,
831.5
],
"mouthCenter": [
491.6,
797.5
],
"chinTip": [
500.6,
919.5
]
},
"palette": {
"ink": "#1E1F1F",
"sclera": "#D8CEBD",
"iris": "#4F3B2C",
"irisRing": "#1E1F1F",
"lipUpper": "#97684B",
"lipLower": "#AB7857",
"mouthLine": "#292421",
"mouthInner": "#3B201B",
"teeth": "#E9E0CF",
"blush": "#C0624A",
"tear": "#EEE5D3",
"pallor": "#9AA3A6",
"paper": "#EEE5D3",
"motifPetal": "#D0A362",
"motifLeaf": "#53626C"
},
"backdrop": {
"cognitive": "#ECE3D1",
"positive": "#F1DEC2",
"negative": "#DCE0E2",
"defensive": "#E6DAD3",
"energy": "#E2E0D0"
}
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 201 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 806 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 42 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 101 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 59 KiB