- P1 전용 스크립트를 docs/avatar-art/linocut-pipeline 으로 옮겨 persona.json 설정으로 일반화(P1 재실행 리그 바이트 동일) - 7명 외형·상징 설계(linocut-cast.md)와 P2~P7 정면 원화 생성 프롬프트, 얼굴 없는 화풍 참조 - P1 원화 생성 프롬프트 보존
1779 lines
No EOL
38 KiB
JSON
1779 lines
No EOL
38 KiB
JSON
{
|
|
"schemaVersion": "vignette.avatar.v3.layers.v1",
|
|
"persona": "P1",
|
|
"canvas": {
|
|
"w": 1005,
|
|
"h": 1566
|
|
},
|
|
"base": {
|
|
"front": "base/base-front.png",
|
|
"faceless": "base/base-faceless.png",
|
|
"facelessPadded": "base/base-faceless-padded.png",
|
|
"facelessSize": [
|
|
1005,
|
|
1565
|
|
],
|
|
"padNote": "base-faceless.png 마지막 행을 복제해 1005x1566(base-front.png 크기)으로 패딩한 것이 F다."
|
|
},
|
|
"layers": [
|
|
{
|
|
"id": "body",
|
|
"file": "layers/body.png",
|
|
"source": "base-faceless-masked+regenerated-fill",
|
|
"alphaBBox": [
|
|
0,
|
|
807,
|
|
1005,
|
|
1566
|
|
],
|
|
"opaquePixels": 676997,
|
|
"greenResidue": 0,
|
|
"fillTargetPixels": 111193,
|
|
"fillSourceRaw": "raw/body.png (rejected 재생성이 아니라 수용된 body.png의 크로마키 결과; head/hairFront와 달리 body 재생성은 승인됨)"
|
|
},
|
|
{
|
|
"id": "head",
|
|
"file": "layers/head.png",
|
|
"source": "base-faceless-masked",
|
|
"alphaBBox": [
|
|
114,
|
|
86,
|
|
941,
|
|
1121
|
|
],
|
|
"opaquePixels": 581114,
|
|
"greenResidue": 0
|
|
},
|
|
{
|
|
"id": "hairFront",
|
|
"file": "layers/hairFront.png",
|
|
"source": "base-faceless-masked",
|
|
"alphaBBox": [
|
|
260,
|
|
391,
|
|
751,
|
|
932
|
|
],
|
|
"opaquePixels": 26681,
|
|
"greenResidue": 0
|
|
}
|
|
],
|
|
"composite": {
|
|
"meanAbsDiff": {
|
|
"full": 1.2217247097844115,
|
|
"face": 0.31938995265429254,
|
|
"hairOutline": 5.581258439408577
|
|
},
|
|
"target": {
|
|
"full": 3.0,
|
|
"pass": true
|
|
},
|
|
"backgroundNote": "카테고리0(배경)은 종이결 텍스처 노이즈(표준편차 ~29/채널)를 포함해 평탄한 크림(#EEE5D3)과 자체적으로 평균절대차 ~7 차이가 난다."
|
|
},
|
|
"landmarks": {
|
|
"coordSystem": "screen (image pixel: x=0 좌측, y=0 상단; left=작은 x, right=큰 x; 인물 해부학적 좌우 아님)",
|
|
"eyeLeft": {
|
|
"innerCorner": [
|
|
430.91,
|
|
592.22
|
|
],
|
|
"outerCorner": [
|
|
339.05,
|
|
578.79
|
|
],
|
|
"upperLidTop": [
|
|
376.31,
|
|
564.31
|
|
],
|
|
"lowerLidBottom": [
|
|
381.06,
|
|
598.18
|
|
],
|
|
"iris": {
|
|
"center": [
|
|
387.33,
|
|
579.15
|
|
],
|
|
"radius": 21.43
|
|
}
|
|
},
|
|
"eyeRight": {
|
|
"innerCorner": [
|
|
552.78,
|
|
590.87
|
|
],
|
|
"outerCorner": [
|
|
648.01,
|
|
575.45
|
|
],
|
|
"upperLidTop": [
|
|
607.07,
|
|
562.12
|
|
],
|
|
"lowerLidBottom": [
|
|
603.89,
|
|
595.01
|
|
],
|
|
"iris": {
|
|
"center": [
|
|
601.93,
|
|
576.21
|
|
],
|
|
"radius": 21.28
|
|
}
|
|
},
|
|
"eyebrowLeft": {
|
|
"inner": [
|
|
450.62,
|
|
525.06
|
|
],
|
|
"peak": [
|
|
360.1,
|
|
510.44
|
|
],
|
|
"outer": [
|
|
313.38,
|
|
513.28
|
|
]
|
|
},
|
|
"eyebrowRight": {
|
|
"inner": [
|
|
518.25,
|
|
521.66
|
|
],
|
|
"peak": [
|
|
626.75,
|
|
508.19
|
|
],
|
|
"outer": [
|
|
682.75,
|
|
510.7
|
|
]
|
|
},
|
|
"noseTip": [
|
|
486.6,
|
|
713.03
|
|
],
|
|
"mouthCornerLeft": [
|
|
422.12,
|
|
804.71
|
|
],
|
|
"mouthCornerRight": [
|
|
567.47,
|
|
805.8
|
|
],
|
|
"upperLipTopCenter": [
|
|
489.77,
|
|
773.37
|
|
],
|
|
"lowerLipBottomCenter": [
|
|
492.98,
|
|
831.48
|
|
],
|
|
"chinTip": [
|
|
500.61,
|
|
919.55
|
|
],
|
|
"faceWidthAtEyeLevelLeft": [
|
|
281.78,
|
|
623.96
|
|
],
|
|
"faceWidthAtEyeLevelRight": [
|
|
736.2,
|
|
621.0
|
|
]
|
|
},
|
|
"landmarkDetector": "mediapipe FaceLandmarker (tasks) 1.0.1, model=face_landmarker(float16, v1)",
|
|
"segmenter": {
|
|
"model": "selfie_multiclass_256x256.tflite (mediapipe ImageSegmenter, storage.googleapis.com)",
|
|
"categories": {
|
|
"0": "background",
|
|
"1": "hair",
|
|
"2": "bodySkin",
|
|
"3": "faceSkin",
|
|
"4": "clothes",
|
|
"5": "others"
|
|
},
|
|
"categoryPixelCounts": {
|
|
"0": 407753,
|
|
"1": 383398,
|
|
"2": 68311,
|
|
"3": 188992,
|
|
"4": 525376
|
|
},
|
|
"hairEdgeRefine": {
|
|
"dilatePx": 6,
|
|
"lumThreshold": 110,
|
|
"addedPixels": 22965
|
|
}
|
|
},
|
|
"chinLine": {
|
|
"landmarkIndex": 152,
|
|
"xy": [
|
|
500.61,
|
|
919.55
|
|
],
|
|
"marginPx": 8,
|
|
"cutY": 927.55
|
|
},
|
|
"faceOval": {
|
|
"landmarkLoop": [
|
|
10,
|
|
338,
|
|
297,
|
|
332,
|
|
284,
|
|
251,
|
|
389,
|
|
356,
|
|
454,
|
|
323,
|
|
361,
|
|
288,
|
|
397,
|
|
365,
|
|
379,
|
|
378,
|
|
400,
|
|
377,
|
|
152,
|
|
148,
|
|
176,
|
|
149,
|
|
150,
|
|
136,
|
|
172,
|
|
58,
|
|
132,
|
|
93,
|
|
234,
|
|
127,
|
|
162,
|
|
21,
|
|
54,
|
|
103,
|
|
67,
|
|
109
|
|
],
|
|
"scale": 1.04,
|
|
"sourceImage": "base/base-front.png"
|
|
},
|
|
"rejectedRawEdits": {
|
|
"head": {
|
|
"file": "raw/head.png",
|
|
"status": "rejected",
|
|
"reason": "얼굴 폭·턱선·귀·머리숱이 base-faceless와 달라짐(2단계-A 1차 반려 사유)"
|
|
},
|
|
"hairFront": {
|
|
"file": "raw/hair-front.png",
|
|
"status": "rejected",
|
|
"reason": "노란 하이라이트 획 등 기준에 없던 색상 아티팩트, 형태 변형(2단계-A 1차 반려 사유)"
|
|
},
|
|
"body": {
|
|
"file": "raw/body.png",
|
|
"status": "accepted-as-fill-source",
|
|
"reason": "정렬 (0,0), 형태 변형 없음 — head_mask 채움 전용 소스로 재사용"
|
|
}
|
|
},
|
|
"layersV2": {
|
|
"chinBandFix": {
|
|
"targetRegionPixels": 51052,
|
|
"sourceBandHeight": 150,
|
|
"rowJitterRange": [
|
|
-2.0,
|
|
2.0
|
|
],
|
|
"rngSeed": 20260930
|
|
},
|
|
"hairEdgeFix": {
|
|
"bandOuterPx": 40,
|
|
"bandInnerPx": 6,
|
|
"lumSmoothstep": [
|
|
205.0,
|
|
150.0
|
|
],
|
|
"minFragmentAreaPx": 60,
|
|
"head": {
|
|
"bandOuterPixels": 93622,
|
|
"bandInnerPixels": 60104,
|
|
"componentsBefore": 67,
|
|
"removed": 63,
|
|
"removedPixels": 322
|
|
},
|
|
"hairFront": {
|
|
"bandOuterPixels": 0,
|
|
"bandInnerPixels": 21491,
|
|
"componentsBefore": 217,
|
|
"removed": 207,
|
|
"removedPixels": 526
|
|
}
|
|
},
|
|
"hairPaperGapFix": {
|
|
"regionDilatePx": 6,
|
|
"paperColorDistThreshold": 40.0,
|
|
"paperLumThreshold": 195.0,
|
|
"paperSatThreshold": 40.0,
|
|
"opaqueAlphaThreshold": 0.95,
|
|
"regionPixels": 410064,
|
|
"head": {
|
|
"targetPixels": 1359,
|
|
"componentsBefore": 4,
|
|
"removed": 0,
|
|
"removedPixels": 0,
|
|
"faceSkinAlphaDiff": 0.0
|
|
},
|
|
"hairFront": {
|
|
"targetPixels": 0,
|
|
"componentsBefore": 10,
|
|
"removed": 0,
|
|
"removedPixels": 0,
|
|
"faceSkinAlphaDiff": 0.0
|
|
}
|
|
},
|
|
"jawInkFix": {
|
|
"mouthCenterY": 797.52,
|
|
"distThresholdPx": 14.0,
|
|
"mergePx": 3,
|
|
"aspectThreshold": 1.0,
|
|
"removedGroups": [
|
|
{
|
|
"pixels": 4410,
|
|
"bbox": [
|
|
459,
|
|
798,
|
|
700,
|
|
933
|
|
],
|
|
"width": 241,
|
|
"height": 135,
|
|
"aspect": 1.785
|
|
}
|
|
],
|
|
"keptGroups": [
|
|
{
|
|
"pixels": 1471,
|
|
"bbox": [
|
|
322,
|
|
798,
|
|
382,
|
|
870
|
|
],
|
|
"width": 60,
|
|
"height": 72,
|
|
"aspect": 0.833
|
|
}
|
|
],
|
|
"removedPixels": 4410,
|
|
"strayFragmentCleanup": {
|
|
"componentsBefore": 21,
|
|
"removed": 14,
|
|
"removedPixels": 118
|
|
}
|
|
},
|
|
"metrics": {
|
|
"body": {
|
|
"haloPct": 0.6339468302658486
|
|
},
|
|
"head": {
|
|
"haloPct": 0.04071661237785017,
|
|
"bgLeakAlphaMean": 0.0,
|
|
"hairPaperOpaquePct": 0.0,
|
|
"disconnectedFragmentsUnder60px": 0
|
|
},
|
|
"hairFront": {
|
|
"haloPct": 0.0,
|
|
"bgLeakAlphaMean": 0.0,
|
|
"hairPaperOpaquePct": 0.0,
|
|
"disconnectedFragmentsUnder60px": 0
|
|
}
|
|
},
|
|
"layers": [
|
|
{
|
|
"id": "body",
|
|
"bbox": [
|
|
0,
|
|
807,
|
|
1005,
|
|
1566
|
|
],
|
|
"opaque": 672038,
|
|
"greenResidue": 1
|
|
},
|
|
{
|
|
"id": "head",
|
|
"bbox": [
|
|
111,
|
|
72,
|
|
960,
|
|
1121
|
|
],
|
|
"opaque": 593623,
|
|
"greenResidue": 0
|
|
},
|
|
{
|
|
"id": "hairFront",
|
|
"bbox": [
|
|
260,
|
|
391,
|
|
751,
|
|
907
|
|
],
|
|
"opaque": 31928,
|
|
"greenResidue": 0
|
|
}
|
|
],
|
|
"faceDetail": {
|
|
"browLandmarksSource": "persona.json faceDetail.browLandmarksOverride",
|
|
"regions": {
|
|
"eyeLeft": [
|
|
309.1,
|
|
487.9,
|
|
455.9,
|
|
668.2
|
|
],
|
|
"eyeRight": [
|
|
527.8,
|
|
486.1,
|
|
678.0,
|
|
665.0
|
|
],
|
|
"mouth": [
|
|
377.1,
|
|
738.0,
|
|
612.5,
|
|
904.5
|
|
],
|
|
"moles": [
|
|
{
|
|
"center": [
|
|
661.3,
|
|
627.9
|
|
],
|
|
"radius": 20.0
|
|
}
|
|
]
|
|
},
|
|
"exclusionPixels": {
|
|
"eyeLeft": 12830,
|
|
"eyeRight": 12345,
|
|
"browLeft": 17125,
|
|
"browRight": 19863,
|
|
"mouth": 18912,
|
|
"union": 66536
|
|
},
|
|
"hairMaskPixels": 402878,
|
|
"bbox": [
|
|
284,
|
|
444,
|
|
721,
|
|
922
|
|
],
|
|
"textureCloneStamp": {
|
|
"cloneTargetThreshold": 65.0,
|
|
"avoidThreshold": 110.0,
|
|
"lineOpeningIterations": 3,
|
|
"featherPx": 4.0,
|
|
"badTexturePixels": 353,
|
|
"preservedShadowPixels": 0,
|
|
"components": [
|
|
{
|
|
"componentId": 1,
|
|
"pixels": 1,
|
|
"offset": [
|
|
-80,
|
|
0
|
|
],
|
|
"method": "clone-stamp"
|
|
},
|
|
{
|
|
"componentId": 2,
|
|
"pixels": 4,
|
|
"offset": [
|
|
-100,
|
|
0
|
|
],
|
|
"method": "clone-stamp"
|
|
},
|
|
{
|
|
"componentId": 3,
|
|
"pixels": 1,
|
|
"offset": [
|
|
0,
|
|
40
|
|
],
|
|
"method": "clone-stamp"
|
|
},
|
|
{
|
|
"componentId": 4,
|
|
"pixels": 1,
|
|
"offset": [
|
|
0,
|
|
40
|
|
],
|
|
"method": "clone-stamp"
|
|
},
|
|
{
|
|
"componentId": 5,
|
|
"pixels": 4,
|
|
"offset": [
|
|
0,
|
|
-180
|
|
],
|
|
"method": "clone-stamp"
|
|
},
|
|
{
|
|
"componentId": 6,
|
|
"pixels": 4,
|
|
"offset": [
|
|
0,
|
|
40
|
|
],
|
|
"method": "clone-stamp"
|
|
},
|
|
{
|
|
"componentId": 7,
|
|
"pixels": 1,
|
|
"offset": [
|
|
100,
|
|
0
|
|
],
|
|
"method": "clone-stamp"
|
|
},
|
|
{
|
|
"componentId": 8,
|
|
"pixels": 4,
|
|
"offset": [
|
|
100,
|
|
0
|
|
],
|
|
"method": "clone-stamp"
|
|
},
|
|
{
|
|
"componentId": 9,
|
|
"pixels": 1,
|
|
"offset": [
|
|
80,
|
|
0
|
|
],
|
|
"method": "clone-stamp"
|
|
},
|
|
{
|
|
"componentId": 10,
|
|
"pixels": 1,
|
|
"offset": [
|
|
80,
|
|
0
|
|
],
|
|
"method": "clone-stamp"
|
|
},
|
|
{
|
|
"componentId": 11,
|
|
"pixels": 17,
|
|
"offset": [
|
|
80,
|
|
0
|
|
],
|
|
"method": "clone-stamp"
|
|
},
|
|
{
|
|
"componentId": 12,
|
|
"pixels": 23,
|
|
"offset": [
|
|
40,
|
|
40
|
|
],
|
|
"method": "clone-stamp"
|
|
},
|
|
{
|
|
"componentId": 13,
|
|
"pixels": 4,
|
|
"offset": [
|
|
0,
|
|
100
|
|
],
|
|
"method": "clone-stamp"
|
|
},
|
|
{
|
|
"componentId": 14,
|
|
"pixels": 1,
|
|
"offset": [
|
|
0,
|
|
-180
|
|
],
|
|
"method": "clone-stamp"
|
|
},
|
|
{
|
|
"componentId": 15,
|
|
"pixels": 8,
|
|
"offset": [
|
|
80,
|
|
0
|
|
],
|
|
"method": "clone-stamp"
|
|
},
|
|
{
|
|
"componentId": 16,
|
|
"pixels": 81,
|
|
"offset": null,
|
|
"method": "nearest-good-pixel"
|
|
},
|
|
{
|
|
"componentId": 17,
|
|
"pixels": 1,
|
|
"offset": [
|
|
-60,
|
|
-100
|
|
],
|
|
"method": "clone-stamp"
|
|
},
|
|
{
|
|
"componentId": 18,
|
|
"pixels": 1,
|
|
"offset": [
|
|
-120,
|
|
-60
|
|
],
|
|
"method": "clone-stamp"
|
|
},
|
|
{
|
|
"componentId": 19,
|
|
"pixels": 1,
|
|
"offset": [
|
|
-60,
|
|
-100
|
|
],
|
|
"method": "clone-stamp"
|
|
},
|
|
{
|
|
"componentId": 20,
|
|
"pixels": 1,
|
|
"offset": [
|
|
-60,
|
|
-100
|
|
],
|
|
"method": "clone-stamp"
|
|
},
|
|
{
|
|
"componentId": 21,
|
|
"pixels": 5,
|
|
"offset": [
|
|
0,
|
|
-180
|
|
],
|
|
"method": "clone-stamp"
|
|
},
|
|
{
|
|
"componentId": 22,
|
|
"pixels": 1,
|
|
"offset": [
|
|
0,
|
|
-150
|
|
],
|
|
"method": "clone-stamp"
|
|
},
|
|
{
|
|
"componentId": 23,
|
|
"pixels": 1,
|
|
"offset": [
|
|
-40,
|
|
40
|
|
],
|
|
"method": "clone-stamp"
|
|
},
|
|
{
|
|
"componentId": 24,
|
|
"pixels": 1,
|
|
"offset": [
|
|
0,
|
|
-80
|
|
],
|
|
"method": "clone-stamp"
|
|
},
|
|
{
|
|
"componentId": 25,
|
|
"pixels": 2,
|
|
"offset": [
|
|
0,
|
|
-80
|
|
],
|
|
"method": "clone-stamp"
|
|
},
|
|
{
|
|
"componentId": 26,
|
|
"pixels": 1,
|
|
"offset": [
|
|
0,
|
|
40
|
|
],
|
|
"method": "clone-stamp"
|
|
},
|
|
{
|
|
"componentId": 27,
|
|
"pixels": 1,
|
|
"offset": [
|
|
-40,
|
|
40
|
|
],
|
|
"method": "clone-stamp"
|
|
},
|
|
{
|
|
"componentId": 28,
|
|
"pixels": 1,
|
|
"offset": [
|
|
0,
|
|
-80
|
|
],
|
|
"method": "clone-stamp"
|
|
},
|
|
{
|
|
"componentId": 29,
|
|
"pixels": 3,
|
|
"offset": [
|
|
0,
|
|
40
|
|
],
|
|
"method": "clone-stamp"
|
|
},
|
|
{
|
|
"componentId": 30,
|
|
"pixels": 1,
|
|
"offset": [
|
|
0,
|
|
-100
|
|
],
|
|
"method": "clone-stamp"
|
|
},
|
|
{
|
|
"componentId": 31,
|
|
"pixels": 1,
|
|
"offset": [
|
|
0,
|
|
40
|
|
],
|
|
"method": "clone-stamp"
|
|
},
|
|
{
|
|
"componentId": 32,
|
|
"pixels": 2,
|
|
"offset": [
|
|
0,
|
|
60
|
|
],
|
|
"method": "clone-stamp"
|
|
},
|
|
{
|
|
"componentId": 33,
|
|
"pixels": 1,
|
|
"offset": [
|
|
0,
|
|
-40
|
|
],
|
|
"method": "clone-stamp"
|
|
},
|
|
{
|
|
"componentId": 34,
|
|
"pixels": 3,
|
|
"offset": [
|
|
60,
|
|
-100
|
|
],
|
|
"method": "clone-stamp"
|
|
},
|
|
{
|
|
"componentId": 35,
|
|
"pixels": 1,
|
|
"offset": [
|
|
-120,
|
|
-60
|
|
],
|
|
"method": "clone-stamp"
|
|
},
|
|
{
|
|
"componentId": 36,
|
|
"pixels": 1,
|
|
"offset": [
|
|
-100,
|
|
0
|
|
],
|
|
"method": "clone-stamp"
|
|
},
|
|
{
|
|
"componentId": 37,
|
|
"pixels": 40,
|
|
"offset": [
|
|
0,
|
|
-180
|
|
],
|
|
"method": "clone-stamp"
|
|
},
|
|
{
|
|
"componentId": 38,
|
|
"pixels": 1,
|
|
"offset": [
|
|
0,
|
|
-180
|
|
],
|
|
"method": "clone-stamp"
|
|
},
|
|
{
|
|
"componentId": 39,
|
|
"pixels": 9,
|
|
"offset": [
|
|
0,
|
|
-150
|
|
],
|
|
"method": "clone-stamp"
|
|
},
|
|
{
|
|
"componentId": 40,
|
|
"pixels": 4,
|
|
"offset": [
|
|
0,
|
|
-120
|
|
],
|
|
"method": "clone-stamp"
|
|
},
|
|
{
|
|
"componentId": 41,
|
|
"pixels": 1,
|
|
"offset": [
|
|
0,
|
|
-150
|
|
],
|
|
"method": "clone-stamp"
|
|
},
|
|
{
|
|
"componentId": 42,
|
|
"pixels": 1,
|
|
"offset": [
|
|
0,
|
|
-180
|
|
],
|
|
"method": "clone-stamp"
|
|
},
|
|
{
|
|
"componentId": 43,
|
|
"pixels": 2,
|
|
"offset": [
|
|
0,
|
|
-80
|
|
],
|
|
"method": "clone-stamp"
|
|
},
|
|
{
|
|
"componentId": 44,
|
|
"pixels": 1,
|
|
"offset": [
|
|
0,
|
|
-150
|
|
],
|
|
"method": "clone-stamp"
|
|
},
|
|
{
|
|
"componentId": 45,
|
|
"pixels": 2,
|
|
"offset": [
|
|
-60,
|
|
-100
|
|
],
|
|
"method": "clone-stamp"
|
|
},
|
|
{
|
|
"componentId": 46,
|
|
"pixels": 1,
|
|
"offset": [
|
|
0,
|
|
-120
|
|
],
|
|
"method": "clone-stamp"
|
|
},
|
|
{
|
|
"componentId": 47,
|
|
"pixels": 2,
|
|
"offset": [
|
|
-60,
|
|
-100
|
|
],
|
|
"method": "clone-stamp"
|
|
},
|
|
{
|
|
"componentId": 48,
|
|
"pixels": 21,
|
|
"offset": [
|
|
0,
|
|
-100
|
|
],
|
|
"method": "clone-stamp"
|
|
},
|
|
{
|
|
"componentId": 49,
|
|
"pixels": 1,
|
|
"offset": [
|
|
-40,
|
|
-40
|
|
],
|
|
"method": "clone-stamp"
|
|
},
|
|
{
|
|
"componentId": 50,
|
|
"pixels": 3,
|
|
"offset": [
|
|
0,
|
|
-100
|
|
],
|
|
"method": "clone-stamp"
|
|
},
|
|
{
|
|
"componentId": 51,
|
|
"pixels": 1,
|
|
"offset": [
|
|
0,
|
|
-120
|
|
],
|
|
"method": "clone-stamp"
|
|
},
|
|
{
|
|
"componentId": 52,
|
|
"pixels": 1,
|
|
"offset": [
|
|
-40,
|
|
-40
|
|
],
|
|
"method": "clone-stamp"
|
|
},
|
|
{
|
|
"componentId": 53,
|
|
"pixels": 1,
|
|
"offset": [
|
|
0,
|
|
-150
|
|
],
|
|
"method": "clone-stamp"
|
|
},
|
|
{
|
|
"componentId": 54,
|
|
"pixels": 1,
|
|
"offset": [
|
|
-120,
|
|
-60
|
|
],
|
|
"method": "clone-stamp"
|
|
},
|
|
{
|
|
"componentId": 55,
|
|
"pixels": 1,
|
|
"offset": [
|
|
0,
|
|
-150
|
|
],
|
|
"method": "clone-stamp"
|
|
},
|
|
{
|
|
"componentId": 56,
|
|
"pixels": 1,
|
|
"offset": [
|
|
0,
|
|
-100
|
|
],
|
|
"method": "clone-stamp"
|
|
},
|
|
{
|
|
"componentId": 57,
|
|
"pixels": 6,
|
|
"offset": [
|
|
-80,
|
|
0
|
|
],
|
|
"method": "clone-stamp"
|
|
},
|
|
{
|
|
"componentId": 58,
|
|
"pixels": 15,
|
|
"offset": [
|
|
0,
|
|
-150
|
|
],
|
|
"method": "clone-stamp"
|
|
},
|
|
{
|
|
"componentId": 59,
|
|
"pixels": 1,
|
|
"offset": [
|
|
0,
|
|
-100
|
|
],
|
|
"method": "clone-stamp"
|
|
},
|
|
{
|
|
"componentId": 60,
|
|
"pixels": 1,
|
|
"offset": [
|
|
-80,
|
|
0
|
|
],
|
|
"method": "clone-stamp"
|
|
},
|
|
{
|
|
"componentId": 61,
|
|
"pixels": 1,
|
|
"offset": [
|
|
-40,
|
|
-40
|
|
],
|
|
"method": "clone-stamp"
|
|
},
|
|
{
|
|
"componentId": 62,
|
|
"pixels": 1,
|
|
"offset": [
|
|
-40,
|
|
-40
|
|
],
|
|
"method": "clone-stamp"
|
|
},
|
|
{
|
|
"componentId": 63,
|
|
"pixels": 10,
|
|
"offset": [
|
|
60,
|
|
-100
|
|
],
|
|
"method": "clone-stamp"
|
|
},
|
|
{
|
|
"componentId": 64,
|
|
"pixels": 1,
|
|
"offset": [
|
|
-100,
|
|
0
|
|
],
|
|
"method": "clone-stamp"
|
|
},
|
|
{
|
|
"componentId": 65,
|
|
"pixels": 2,
|
|
"offset": [
|
|
-100,
|
|
0
|
|
],
|
|
"method": "clone-stamp"
|
|
},
|
|
{
|
|
"componentId": 66,
|
|
"pixels": 2,
|
|
"offset": [
|
|
-100,
|
|
0
|
|
],
|
|
"method": "clone-stamp"
|
|
},
|
|
{
|
|
"componentId": 67,
|
|
"pixels": 8,
|
|
"offset": [
|
|
0,
|
|
-100
|
|
],
|
|
"method": "clone-stamp"
|
|
},
|
|
{
|
|
"componentId": 68,
|
|
"pixels": 1,
|
|
"offset": [
|
|
0,
|
|
-150
|
|
],
|
|
"method": "clone-stamp"
|
|
},
|
|
{
|
|
"componentId": 69,
|
|
"pixels": 1,
|
|
"offset": [
|
|
-100,
|
|
0
|
|
],
|
|
"method": "clone-stamp"
|
|
},
|
|
{
|
|
"componentId": 70,
|
|
"pixels": 1,
|
|
"offset": [
|
|
-100,
|
|
0
|
|
],
|
|
"method": "clone-stamp"
|
|
},
|
|
{
|
|
"componentId": 71,
|
|
"pixels": 1,
|
|
"offset": [
|
|
-100,
|
|
0
|
|
],
|
|
"method": "clone-stamp"
|
|
},
|
|
{
|
|
"componentId": 72,
|
|
"pixels": 1,
|
|
"offset": [
|
|
0,
|
|
-40
|
|
],
|
|
"method": "clone-stamp"
|
|
},
|
|
{
|
|
"componentId": 73,
|
|
"pixels": 4,
|
|
"offset": [
|
|
0,
|
|
-150
|
|
],
|
|
"method": "clone-stamp"
|
|
},
|
|
{
|
|
"componentId": 74,
|
|
"pixels": 1,
|
|
"offset": [
|
|
0,
|
|
-100
|
|
],
|
|
"method": "clone-stamp"
|
|
},
|
|
{
|
|
"componentId": 75,
|
|
"pixels": 3,
|
|
"offset": [
|
|
0,
|
|
-150
|
|
],
|
|
"method": "clone-stamp"
|
|
},
|
|
{
|
|
"componentId": 76,
|
|
"pixels": 4,
|
|
"offset": [
|
|
0,
|
|
-180
|
|
],
|
|
"method": "clone-stamp"
|
|
},
|
|
{
|
|
"componentId": 77,
|
|
"pixels": 1,
|
|
"offset": [
|
|
0,
|
|
-100
|
|
],
|
|
"method": "clone-stamp"
|
|
},
|
|
{
|
|
"componentId": 78,
|
|
"pixels": 1,
|
|
"offset": [
|
|
0,
|
|
-100
|
|
],
|
|
"method": "clone-stamp"
|
|
},
|
|
{
|
|
"componentId": 79,
|
|
"pixels": 5,
|
|
"offset": [
|
|
-120,
|
|
-60
|
|
],
|
|
"method": "clone-stamp"
|
|
}
|
|
]
|
|
},
|
|
"genericPatches": {
|
|
"forehead": [
|
|
450,
|
|
411,
|
|
498,
|
|
459
|
|
],
|
|
"cheekLeft": [
|
|
337,
|
|
646,
|
|
385,
|
|
694
|
|
],
|
|
"cheekRight": [
|
|
506,
|
|
643,
|
|
554,
|
|
691
|
|
]
|
|
},
|
|
"genericPatchBaseline": {
|
|
"highFreqEnergy": 11.156430639089423,
|
|
"lineEnergy": 3.887366952020924
|
|
},
|
|
"checkA_meanAbsDiff": 1.7134750660286082,
|
|
"checkB_seamLumDiff": 4.286507356166055,
|
|
"checkC_holeDarkResiduePct": 0.338642256204032,
|
|
"checkC_violationPixels": 192,
|
|
"checkD_texturePreservation": {
|
|
"eyeLeft": {
|
|
"insideEnergy": 9.38281754159341,
|
|
"baselineEnergy": 11.156430639089423,
|
|
"ratio": 0.8410232488443298,
|
|
"pass": true
|
|
},
|
|
"eyeRight": {
|
|
"insideEnergy": 10.293938339280684,
|
|
"baselineEnergy": 11.156430639089423,
|
|
"ratio": 0.9226910176103479,
|
|
"pass": true
|
|
},
|
|
"browLeft": {
|
|
"insideEnergy": 10.557405723240223,
|
|
"baselineEnergy": 11.156430639089423,
|
|
"ratio": 0.9463067592828155,
|
|
"pass": true
|
|
},
|
|
"browRight": {
|
|
"insideEnergy": 13.693225750578769,
|
|
"baselineEnergy": 11.156430639089423,
|
|
"ratio": 1.2273841153640155,
|
|
"pass": true
|
|
},
|
|
"mouth": {
|
|
"insideEnergy": 6.263508649377403,
|
|
"baselineEnergy": 11.156430639089423,
|
|
"ratio": 0.5614258585027715,
|
|
"pass": false
|
|
}
|
|
},
|
|
"checkD_allPass": false,
|
|
"checkE_ghostOutline": {
|
|
"eyeLeft": {
|
|
"bandLineEnergy": 5.890396770321027,
|
|
"baselineLineEnergy": 3.887366952020924,
|
|
"ratio": 1.5152664626267889,
|
|
"pass": false
|
|
},
|
|
"eyeRight": {
|
|
"bandLineEnergy": 5.7916340703027815,
|
|
"baselineLineEnergy": 3.887366952020924,
|
|
"ratio": 1.4898603969691842,
|
|
"pass": true
|
|
},
|
|
"browLeft": {
|
|
"bandLineEnergy": 2.409716430748075,
|
|
"baselineLineEnergy": 3.887366952020924,
|
|
"ratio": 0.6198839627155179,
|
|
"pass": true
|
|
},
|
|
"browRight": {
|
|
"bandLineEnergy": 4.83612006778533,
|
|
"baselineLineEnergy": 3.887366952020924,
|
|
"ratio": 1.2440606012949662,
|
|
"pass": true
|
|
},
|
|
"mouth": {
|
|
"bandLineEnergy": 3.810132841546642,
|
|
"baselineLineEnergy": 3.887366952020924,
|
|
"ratio": 0.980132024728427,
|
|
"pass": true
|
|
}
|
|
},
|
|
"checkE_allPass": false,
|
|
"checkDarkCircle": {
|
|
"eyeLeft": {
|
|
"compositeMean": 127.63085714285714,
|
|
"frontMean": 127.29714285714286,
|
|
"diff": 0.3337142857142794,
|
|
"pass": true
|
|
},
|
|
"eyeRight": {
|
|
"compositeMean": 131.44914285714285,
|
|
"frontMean": 131.20609523809526,
|
|
"diff": 0.2430476190475872,
|
|
"pass": true
|
|
}
|
|
},
|
|
"checkDarkCircle_allPass": true
|
|
},
|
|
"paperGrain": {
|
|
"sourceImage": "base/base-front.png",
|
|
"sourceOrigin": [
|
|
10,
|
|
10
|
|
],
|
|
"tileSize": 256,
|
|
"personMarginPx": 20,
|
|
"cleanFraction": 0.952606201171875,
|
|
"contaminatedPixelsFilled": 3106,
|
|
"chromaKeep": 0.3,
|
|
"targetLumRange": [
|
|
245.0,
|
|
250.0
|
|
],
|
|
"lumShift": 22.883758544921875,
|
|
"finalMeanLum": 247.49081557865418,
|
|
"finalLumStd": 2.7344333398808125,
|
|
"seamContinuity": {
|
|
"leftRightDiff": 0.2262236423635405,
|
|
"topBottomDiff": 0.623485711518839
|
|
}
|
|
}
|
|
},
|
|
"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
|
|
},
|
|
"browCenterline": {
|
|
"method": "Otsu(front lum in bbox) AND diff(F-front)>=25, morphological closing to merge hatching, single global degree-2 polyfit on column-weighted centroid with one-pass outlier removal",
|
|
"diffThresh": 25.0,
|
|
"bboxPad": {
|
|
"x": 25.0,
|
|
"yUp": 42.0,
|
|
"yDown": 14.0
|
|
},
|
|
"closingKernel": [
|
|
7,
|
|
11
|
|
],
|
|
"minComponentAreaPx": 30.0,
|
|
"outlierStdMult": 2.0,
|
|
"edgeInsetFrac": 0.03,
|
|
"peakWindow": [
|
|
0.25,
|
|
0.6
|
|
],
|
|
"peakFallbackFrac": 0.35,
|
|
"peakFlatHeightPx": 3.0,
|
|
"peakFailEdgeFrac": 0.2,
|
|
"oldPoints": {
|
|
"browLeft": {
|
|
"inner": [
|
|
441.16,
|
|
535.91
|
|
],
|
|
"peak": [
|
|
345.46,
|
|
497.87
|
|
],
|
|
"outer": [
|
|
298.95,
|
|
524.32
|
|
]
|
|
},
|
|
"browRight": {
|
|
"inner": [
|
|
531.24,
|
|
535.37
|
|
],
|
|
"peak": [
|
|
628.82,
|
|
496.05
|
|
],
|
|
"outer": [
|
|
687.99,
|
|
522.25
|
|
]
|
|
}
|
|
},
|
|
"newPoints": {
|
|
"browLeft": {
|
|
"name": "browLeft",
|
|
"bbox": [
|
|
274,
|
|
456,
|
|
466,
|
|
550
|
|
],
|
|
"otsuThresh": 105.0,
|
|
"colRange": [
|
|
309,
|
|
455
|
|
],
|
|
"width": 146.0,
|
|
"nColumns": 146,
|
|
"nOutliersRemoved": 7,
|
|
"fitCoeffs": [
|
|
0.00161949,
|
|
-1.15147737,
|
|
715.08915879
|
|
],
|
|
"inner": [
|
|
450.62,
|
|
525.06
|
|
],
|
|
"peak": [
|
|
360.1,
|
|
510.44
|
|
],
|
|
"outer": [
|
|
313.38,
|
|
513.28
|
|
],
|
|
"peakMethod": "fallback35",
|
|
"peakFracFromOuterEdge": 0.35,
|
|
"peakFail": false,
|
|
"checkA_fracColumnsFitWithinMask": 0.9247,
|
|
"checkA_pass": true,
|
|
"bandX0": 274,
|
|
"bandY0": 456,
|
|
"colMin": 309,
|
|
"colMax": 455
|
|
},
|
|
"browRight": {
|
|
"name": "browRight",
|
|
"bbox": [
|
|
506,
|
|
454,
|
|
713,
|
|
549
|
|
],
|
|
"otsuThresh": 110.0,
|
|
"colRange": [
|
|
513,
|
|
688
|
|
],
|
|
"width": 175.0,
|
|
"nColumns": 163,
|
|
"nOutliersRemoved": 11,
|
|
"fitCoeffs": [
|
|
0.00102658,
|
|
-1.29955603,
|
|
919.43219697
|
|
],
|
|
"inner": [
|
|
518.25,
|
|
521.66
|
|
],
|
|
"peak": [
|
|
626.75,
|
|
508.19
|
|
],
|
|
"outer": [
|
|
682.75,
|
|
510.7
|
|
],
|
|
"peakMethod": "fallback35",
|
|
"peakFracFromOuterEdge": 0.35,
|
|
"peakFail": false,
|
|
"checkA_fracColumnsFitWithinMask": 0.9202,
|
|
"checkA_pass": true,
|
|
"bandX0": 506,
|
|
"bandY0": 454,
|
|
"colMin": 513,
|
|
"colMax": 688
|
|
}
|
|
},
|
|
"checkB_innerMinusPeakY": {
|
|
"browLeft": 14.62,
|
|
"browRight": 13.47
|
|
},
|
|
"checkD_symmetry": {
|
|
"innerYDiff": 3.4,
|
|
"peakYDiff": 2.25
|
|
},
|
|
"evidenceImage": "preview/v2/brow-centerline.jpg"
|
|
},
|
|
"lipTexture": {
|
|
"designVersion": "A5(아랫입술 그늘 띠를 lip-shadow 조각으로 분리)",
|
|
"landmarks": {
|
|
"mouthCornerLeft": [
|
|
422.12,
|
|
804.71
|
|
],
|
|
"mouthCornerRight": [
|
|
567.47,
|
|
805.8
|
|
],
|
|
"upperLipTop": [
|
|
489.77,
|
|
773.37
|
|
],
|
|
"lowerLipBottom": [
|
|
492.98,
|
|
831.48
|
|
],
|
|
"mouthCenter": [
|
|
491.55401542782784,
|
|
797.5187528729439
|
|
]
|
|
},
|
|
"capBBox": [
|
|
413.8,
|
|
767.42,
|
|
575.8,
|
|
837.42
|
|
],
|
|
"otsuThreshLabA": 136.0,
|
|
"diffThresh": 20.0,
|
|
"dilatePx": 10.0,
|
|
"alphaRampPx": 4.0,
|
|
"splitOverlapPx": 2.0,
|
|
"shadowBandPx": 18.0,
|
|
"shadowTopOverlapPx": 6.0,
|
|
"shadowSideRampPx": 6.0,
|
|
"shadowTopRampPx": 4.0,
|
|
"checks": {
|
|
"lip-upper": {
|
|
"regionPixelCount": 5996,
|
|
"fullOpacityPixelCount": 5179,
|
|
"rampPixelCount": 817,
|
|
"preserveMaxDiffFullOpacity": 0,
|
|
"check1Preserve": true,
|
|
"spriteBBoxWorkingLocal": [
|
|
30,
|
|
31,
|
|
182,
|
|
54
|
|
]
|
|
},
|
|
"lip-lower": {
|
|
"regionPixelCount": 6482,
|
|
"fullOpacityPixelCount": 5704,
|
|
"rampPixelCount": 778,
|
|
"preserveMaxDiffFullOpacity": 0,
|
|
"check1Preserve": true,
|
|
"spriteBBoxWorkingLocal": [
|
|
30,
|
|
71,
|
|
182,
|
|
49
|
|
]
|
|
},
|
|
"lip-shadow": {
|
|
"regionPixelCount": 3888,
|
|
"fullOpacityPixelCount": 2071,
|
|
"rampPixelCount": 1817,
|
|
"preserveMaxDiffFullOpacity": 0,
|
|
"check1Preserve": true,
|
|
"spriteBBoxWorkingLocal": [
|
|
40,
|
|
75,
|
|
162,
|
|
53
|
|
]
|
|
},
|
|
"splitOverlapPixelCount": 362,
|
|
"splitOverlapBandOk": true,
|
|
"splitOverlapAlphaMaxDiff": 0,
|
|
"splitOverlapConsistentOk": true,
|
|
"splitCoverageMismatchPixelCount": 0,
|
|
"splitCheckOk": true,
|
|
"shadowLowerOverlapPixelCount": 2845,
|
|
"shadowLowerOverlapMaxDiff": 35.95294117647059,
|
|
"shadowLowerOverlapDiffGt1PixelCount": 138,
|
|
"shadowLowerOverlapOk": false
|
|
},
|
|
"check3NeutralComposite": {
|
|
"fullOpacityMaxDiff": 0.0,
|
|
"rampMeanAbsDiff": 3.069,
|
|
"mouthBBoxMeanAbsDiff": 0.707
|
|
},
|
|
"pngFileSizes": {
|
|
"lip-upper": 24050,
|
|
"lip-lower": 22210,
|
|
"lip-shadow": 21762
|
|
},
|
|
"canvasOrigin": {
|
|
"upper": [
|
|
404,
|
|
758
|
|
],
|
|
"lower": [
|
|
404,
|
|
798
|
|
],
|
|
"shadow": [
|
|
414,
|
|
802
|
|
]
|
|
},
|
|
"evidenceImage": "preview/v2/lip-texture.jpg",
|
|
"check4WebpVsPngMeanAbsDiff": {
|
|
"upper": 0.0,
|
|
"lower": 0.0,
|
|
"shadow": 0.0
|
|
}
|
|
},
|
|
"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
|
|
}
|
|
},
|
|
"jaw": {
|
|
"designVersion": "A5(결정문 §8.4 하관 띠 변형 — 턱 조각 원본)",
|
|
"noseTip": [
|
|
486.6,
|
|
713.03
|
|
],
|
|
"chinTip": [
|
|
500.61,
|
|
919.55
|
|
],
|
|
"yFormula": "noseTip.y - 50 - 10 .. chinTip.y + 40",
|
|
"noseToTopPx": 60.0,
|
|
"chinToBottomPx": 40.0,
|
|
"ovalOutsetPx": 18.0,
|
|
"faceOvalSource": "export_rig.detect_face_landmarks + compute_face_oval(base-front.png, 결정적)",
|
|
"bboxCanvas": [
|
|
260,
|
|
653,
|
|
760,
|
|
960
|
|
],
|
|
"naiveXRangeForComparison": [
|
|
260,
|
|
760
|
|
],
|
|
"checks": {
|
|
"head": {
|
|
"pngRoundTripMaxDiff": 0,
|
|
"pngRoundTripOk": true,
|
|
"pngFileSize": 314304
|
|
},
|
|
"detail": {
|
|
"pngRoundTripMaxDiff": 0,
|
|
"pngRoundTripOk": true,
|
|
"pngFileSize": 332332
|
|
}
|
|
},
|
|
"evidenceImage": "preview/v2/jaw-pieces.jpg",
|
|
"check1VsPublishedLayerAbsDiff": {
|
|
"head": {
|
|
"comparedAgainstPublishedLayer": "head.webp",
|
|
"meanAbsDiffPremultipliedRgb": 3.131,
|
|
"maxAbsDiffPremultipliedRgb": 40.0,
|
|
"meanAbsDiffAlpha": 0.0,
|
|
"maxAbsDiffAlpha": 0.0,
|
|
"meetsTarget": false
|
|
},
|
|
"detail": {
|
|
"comparedAgainstPublishedLayer": "face-detail.webp",
|
|
"meanAbsDiffPremultipliedRgb": 0.565,
|
|
"maxAbsDiffPremultipliedRgb": 25.0,
|
|
"meanAbsDiffAlpha": 0.0,
|
|
"maxAbsDiffAlpha": 0.0,
|
|
"meetsTarget": true
|
|
}
|
|
}
|
|
},
|
|
"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
|
|
},
|
|
"detail": {
|
|
"comparedAgainstPublishedLayer": "face-detail.webp",
|
|
"meanAbsDiffPremultipliedRgb": 0.565,
|
|
"maxAbsDiffPremultipliedRgb": 25.0,
|
|
"meanAbsDiffAlpha": 0.0,
|
|
"maxAbsDiffAlpha": 0.0,
|
|
"meetsTarget": true
|
|
}
|
|
}
|
|
},
|
|
"pipelineRun": {
|
|
"persona": "P1",
|
|
"timestamp": "2026-10-01T11:04:58",
|
|
"completed": true,
|
|
"stages": [
|
|
{
|
|
"stage": "landmarks",
|
|
"ok": true,
|
|
"elapsedSec": 1.24
|
|
},
|
|
{
|
|
"stage": "brow_centerline",
|
|
"ok": true,
|
|
"elapsedSec": 0.64
|
|
},
|
|
{
|
|
"stage": "segmentation",
|
|
"ok": true,
|
|
"elapsedSec": 7.84
|
|
},
|
|
{
|
|
"stage": "layers_v2",
|
|
"ok": true,
|
|
"elapsedSec": 12.39
|
|
},
|
|
{
|
|
"stage": "face_detail",
|
|
"ok": true,
|
|
"elapsedSec": 12.25
|
|
},
|
|
{
|
|
"stage": "paper_grain",
|
|
"ok": true,
|
|
"elapsedSec": 1.91
|
|
},
|
|
{
|
|
"stage": "lip_texture",
|
|
"ok": true,
|
|
"elapsedSec": 1.92
|
|
},
|
|
{
|
|
"stage": "jaw_pieces",
|
|
"ok": true,
|
|
"elapsedSec": 1.89
|
|
},
|
|
{
|
|
"stage": "export_rig",
|
|
"ok": true,
|
|
"elapsedSec": 21.12
|
|
},
|
|
{
|
|
"stage": "final_previews",
|
|
"ok": true,
|
|
"elapsedSec": 16.83
|
|
}
|
|
]
|
|
}
|
|
} |