- 추천 원화(P2 b·P3 v2b·P4 v2b·P5 v2a·P6 v2b·P7 v2b)로 얼굴 없는 기본형·몸 원본 codex 편집, 정렬·정규화 후 공통 파이프라인 실행 - 게시 자산 apps/web/public/avatar/v3/p2~p7, 리그 rigs/p2Rig~p7Rig - 세션 레지스트리 P1~P7 전원 활성, Lab은 생성된 리그 자동 수집 - P3·P6 기본 눈 감김을 줄여 중립 렌더를 원화 눈매에 맞춤 - 표정 E2E를 v3 렌더러 기대로 갱신(검사 의도 유지)
1920 lines
No EOL
41 KiB
JSON
1920 lines
No EOL
41 KiB
JSON
{
|
|
"landmarks": {
|
|
"coordSystem": "screen (image pixel: x=0 좌측, y=0 상단; left=작은 x, right=큰 x; 인물 해부학적 좌우 아님)",
|
|
"eyeLeft": {
|
|
"innerCorner": [
|
|
433.39,
|
|
588.66
|
|
],
|
|
"outerCorner": [
|
|
345.62,
|
|
578.8
|
|
],
|
|
"upperLidTop": [
|
|
381.33,
|
|
566.28
|
|
],
|
|
"lowerLidBottom": [
|
|
387.83,
|
|
592.8
|
|
],
|
|
"iris": {
|
|
"center": [
|
|
387.31,
|
|
576.96
|
|
],
|
|
"radius": 19.17
|
|
}
|
|
},
|
|
"eyeRight": {
|
|
"innerCorner": [
|
|
550.71,
|
|
589.88
|
|
],
|
|
"outerCorner": [
|
|
637.67,
|
|
578.54
|
|
],
|
|
"upperLidTop": [
|
|
601.55,
|
|
566.13
|
|
],
|
|
"lowerLidBottom": [
|
|
596.27,
|
|
593.19
|
|
],
|
|
"iris": {
|
|
"center": [
|
|
595.07,
|
|
576.86
|
|
],
|
|
"radius": 19.41
|
|
}
|
|
},
|
|
"eyebrowLeft": {
|
|
"inner": [
|
|
455.8,
|
|
526.95
|
|
],
|
|
"peak": [
|
|
369.0,
|
|
521.19
|
|
],
|
|
"outer": [
|
|
324.2,
|
|
527.5
|
|
]
|
|
},
|
|
"eyebrowRight": {
|
|
"inner": [
|
|
526.5,
|
|
526.84
|
|
],
|
|
"peak": [
|
|
619.5,
|
|
519.78
|
|
],
|
|
"outer": [
|
|
667.5,
|
|
526.96
|
|
]
|
|
},
|
|
"noseTip": [
|
|
493.52,
|
|
712.47
|
|
],
|
|
"mouthCornerLeft": [
|
|
422.65,
|
|
806.53
|
|
],
|
|
"mouthCornerRight": [
|
|
558.88,
|
|
808.4
|
|
],
|
|
"upperLipTopCenter": [
|
|
493.82,
|
|
774.04
|
|
],
|
|
"lowerLipBottomCenter": [
|
|
492.31,
|
|
834.98
|
|
],
|
|
"chinTip": [
|
|
491.82,
|
|
932.41
|
|
],
|
|
"faceWidthAtEyeLevelLeft": [
|
|
273.76,
|
|
630.72
|
|
],
|
|
"faceWidthAtEyeLevelRight": [
|
|
704.05,
|
|
629.99
|
|
]
|
|
},
|
|
"landmarkDetector": "mediapipe FaceLandmarker (tasks) 1.0.1, model=face_landmarker(float16, v1)",
|
|
"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": [
|
|
449.0,
|
|
543.74
|
|
],
|
|
"peak": [
|
|
352.93,
|
|
508.38
|
|
],
|
|
"outer": [
|
|
304.12,
|
|
533.83
|
|
]
|
|
},
|
|
"browRight": {
|
|
"inner": [
|
|
534.98,
|
|
542.72
|
|
],
|
|
"peak": [
|
|
628.43,
|
|
506.85
|
|
],
|
|
"outer": [
|
|
676.51,
|
|
532.35
|
|
]
|
|
}
|
|
},
|
|
"newPoints": {
|
|
"browLeft": {
|
|
"name": "browLeft",
|
|
"bbox": [
|
|
279,
|
|
466,
|
|
474,
|
|
558
|
|
],
|
|
"otsuThresh": 99.0,
|
|
"colRange": [
|
|
320,
|
|
460
|
|
],
|
|
"width": 140.0,
|
|
"nColumns": 129,
|
|
"nOutliersRemoved": 7,
|
|
"fitCoeffs": [
|
|
0.00157525,
|
|
-1.23283377,
|
|
761.61565189
|
|
],
|
|
"inner": [
|
|
455.8,
|
|
526.95
|
|
],
|
|
"peak": [
|
|
369.0,
|
|
521.19
|
|
],
|
|
"outer": [
|
|
324.2,
|
|
527.5
|
|
],
|
|
"peakMethod": "fallback35",
|
|
"peakFracFromOuterEdge": 0.35,
|
|
"peakFail": false,
|
|
"checkA_fracColumnsFitWithinMask": 0.8992,
|
|
"checkA_pass": true,
|
|
"halfWidthInner": 5.39,
|
|
"halfWidthPeak": 7.98,
|
|
"halfWidthOuter": 3.424,
|
|
"bandX0": 279,
|
|
"bandY0": 466,
|
|
"colMin": 320,
|
|
"colMax": 460
|
|
},
|
|
"browRight": {
|
|
"name": "browRight",
|
|
"bbox": [
|
|
510,
|
|
465,
|
|
702,
|
|
557
|
|
],
|
|
"otsuThresh": 108.0,
|
|
"colRange": [
|
|
522,
|
|
672
|
|
],
|
|
"width": 150.0,
|
|
"nColumns": 147,
|
|
"nOutliersRemoved": 4,
|
|
"fitCoeffs": [
|
|
0.00160062,
|
|
-1.91032372,
|
|
1088.9327895
|
|
],
|
|
"inner": [
|
|
526.5,
|
|
526.84
|
|
],
|
|
"peak": [
|
|
619.5,
|
|
519.78
|
|
],
|
|
"outer": [
|
|
667.5,
|
|
526.96
|
|
],
|
|
"peakMethod": "fallback35",
|
|
"peakFracFromOuterEdge": 0.35,
|
|
"peakFail": false,
|
|
"checkA_fracColumnsFitWithinMask": 0.966,
|
|
"checkA_pass": true,
|
|
"halfWidthInner": 6.342,
|
|
"halfWidthPeak": 7.979,
|
|
"halfWidthOuter": 2.926,
|
|
"bandX0": 510,
|
|
"bandY0": 465,
|
|
"colMin": 522,
|
|
"colMax": 672
|
|
}
|
|
},
|
|
"halfWidthLeft": [
|
|
5.39,
|
|
7.98,
|
|
3.424
|
|
],
|
|
"halfWidthRight": [
|
|
6.342,
|
|
7.979,
|
|
2.926
|
|
],
|
|
"halfWidthNote": "원화 눈썹 잉크 띠 반두께[inner,peak,outer](px, 중심선 법선 방향). export_rig.py가 persona.json browHalfWidthFromArt!=false(기본)면 RigBrow.halfWidth로 내보낸다.",
|
|
"checkB_innerMinusPeakY": {
|
|
"browLeft": 5.76,
|
|
"browRight": 7.06
|
|
},
|
|
"checkD_symmetry": {
|
|
"innerYDiff": 0.11,
|
|
"peakYDiff": 1.41
|
|
},
|
|
"evidenceImage": "preview/v2/brow-centerline.jpg"
|
|
},
|
|
"schemaVersion": "vignette.avatar.v3.layers.v1",
|
|
"persona": "P7",
|
|
"canvas": {
|
|
"w": 1005,
|
|
"h": 1566
|
|
},
|
|
"base": {
|
|
"front": "base/base-front.png",
|
|
"faceless": "base/base-faceless.png",
|
|
"facelessPadded": "base/base-faceless-padded.png",
|
|
"facelessSize": [
|
|
1005,
|
|
1566
|
|
],
|
|
"padNote": "base-faceless.png 마지막 행을 0번 복제해 1005x1566(base-front.png 크기)으로 패딩한 것이 F다."
|
|
},
|
|
"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": 659577,
|
|
"1": 157948,
|
|
"2": 76012,
|
|
"3": 183814,
|
|
"4": 494322,
|
|
"5": 2157
|
|
},
|
|
"hairEdgeRefine": {
|
|
"dilatePx": 6,
|
|
"lumThreshold": 110,
|
|
"addedPixels": 7398
|
|
}
|
|
},
|
|
"chinLine": {
|
|
"landmarkIndex": 152,
|
|
"xy": [
|
|
491.82,
|
|
932.41
|
|
],
|
|
"marginPx": 8,
|
|
"cutY": 940.41
|
|
},
|
|
"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"
|
|
},
|
|
"layers": [
|
|
{
|
|
"id": "body",
|
|
"file": "layers/body.png",
|
|
"source": "base-faceless-masked+regenerated-fill",
|
|
"alphaBBox": [
|
|
0,
|
|
725,
|
|
1005,
|
|
1566
|
|
],
|
|
"opaquePixels": 574074,
|
|
"greenResidue": 0,
|
|
"fillTargetPixels": 17280,
|
|
"fillSourceRaw": "raw/body.png (rejected 재생성이 아니라 수용된 body.png의 크로마키 결과; head/hairFront와 달리 body 재생성은 승인됨)"
|
|
},
|
|
{
|
|
"id": "head",
|
|
"file": "layers/head.png",
|
|
"source": "base-faceless-masked",
|
|
"alphaBBox": [
|
|
184,
|
|
184,
|
|
806,
|
|
1043
|
|
],
|
|
"opaquePixels": 345799,
|
|
"greenResidue": 0
|
|
},
|
|
{
|
|
"id": "hairFront",
|
|
"file": "layers/hairFront.png",
|
|
"source": "base-faceless-masked",
|
|
"alphaBBox": [
|
|
258,
|
|
413,
|
|
719,
|
|
802
|
|
],
|
|
"opaquePixels": 28325,
|
|
"greenResidue": 0
|
|
}
|
|
],
|
|
"rejectedRawEdits": {
|
|
"body": {
|
|
"file": "raw/body.png",
|
|
"status": "accepted-as-fill-source",
|
|
"reason": "정렬 (0,0), 형태 변형 없음 — head_mask 채움 전용 소스로 재사용"
|
|
}
|
|
},
|
|
"composite": {
|
|
"meanAbsDiff": {
|
|
"full": 2.085797280095902,
|
|
"face": 0.3415553669119034,
|
|
"hairOutline": 7.633911850659033
|
|
},
|
|
"target": {
|
|
"full": 3.0,
|
|
"pass": true
|
|
},
|
|
"backgroundNote": "카테고리0(배경)은 종이결 텍스처 노이즈(표준편차 ~29/채널)를 포함해 평탄한 크림(#EEE5D3)과 자체적으로 평균절대차 ~7 차이가 난다."
|
|
},
|
|
"layersV2": {
|
|
"chinBandFix": {
|
|
"targetRegionPixels": 13086,
|
|
"sourceBandHeight": 150,
|
|
"rowJitterRange": [
|
|
-2.0,
|
|
2.0
|
|
],
|
|
"rngSeed": 20260930
|
|
},
|
|
"hairEdgeFix": {
|
|
"bandOuterPx": 40,
|
|
"bandInnerPx": 6,
|
|
"lumSmoothstep": [
|
|
205.0,
|
|
150.0
|
|
],
|
|
"minFragmentAreaPx": 60,
|
|
"head": {
|
|
"bandOuterPixels": 72201,
|
|
"bandInnerPixels": 26037,
|
|
"componentsBefore": 80,
|
|
"removed": 77,
|
|
"removedPixels": 684
|
|
},
|
|
"hairFront": {
|
|
"bandOuterPixels": 6035,
|
|
"bandInnerPixels": 15130,
|
|
"componentsBefore": 129,
|
|
"removed": 125,
|
|
"removedPixels": 353
|
|
}
|
|
},
|
|
"hairPaperGapFix": {
|
|
"regionDilatePx": 6,
|
|
"paperColorDistThreshold": 40.0,
|
|
"paperLumThreshold": 195.0,
|
|
"paperSatThreshold": 40.0,
|
|
"opaqueAlphaThreshold": 0.95,
|
|
"regionPixels": 169288,
|
|
"head": {
|
|
"targetPixels": 1261,
|
|
"componentsBefore": 3,
|
|
"removed": 0,
|
|
"removedPixels": 0,
|
|
"faceSkinAlphaDiff": 0.0
|
|
},
|
|
"hairFront": {
|
|
"targetPixels": 11,
|
|
"componentsBefore": 4,
|
|
"removed": 0,
|
|
"removedPixels": 0,
|
|
"faceSkinAlphaDiff": 0.0
|
|
}
|
|
},
|
|
"jawInkFix": {
|
|
"mouthCenterY": 800.29,
|
|
"distThresholdPx": 14.0,
|
|
"mergePx": 3,
|
|
"aspectThreshold": 1.0,
|
|
"removedGroups": [],
|
|
"keptGroups": [
|
|
{
|
|
"pixels": 42,
|
|
"bbox": [
|
|
299,
|
|
801,
|
|
304,
|
|
814
|
|
],
|
|
"width": 5,
|
|
"height": 13,
|
|
"aspect": 0.385
|
|
},
|
|
{
|
|
"pixels": 34,
|
|
"bbox": [
|
|
662,
|
|
801,
|
|
680,
|
|
836
|
|
],
|
|
"width": 18,
|
|
"height": 35,
|
|
"aspect": 0.514
|
|
},
|
|
{
|
|
"pixels": 2,
|
|
"bbox": [
|
|
310,
|
|
825,
|
|
312,
|
|
828
|
|
],
|
|
"width": 2,
|
|
"height": 3,
|
|
"aspect": 0.667
|
|
}
|
|
],
|
|
"removedPixels": 0,
|
|
"strayFragmentCleanup": {
|
|
"componentsBefore": 4,
|
|
"removed": 0,
|
|
"removedPixels": 0
|
|
}
|
|
},
|
|
"metrics": {
|
|
"body": {
|
|
"haloPct": 0.502293077091068
|
|
},
|
|
"head": {
|
|
"haloPct": 0.8726695755652519,
|
|
"bgLeakAlphaMean": 4.8724556565942635e-05,
|
|
"hairPaperOpaquePct": 0.0,
|
|
"disconnectedFragmentsUnder60px": 0
|
|
},
|
|
"hairFront": {
|
|
"haloPct": 0.0,
|
|
"bgLeakAlphaMean": 0.0,
|
|
"hairPaperOpaquePct": 0.0,
|
|
"disconnectedFragmentsUnder60px": 0
|
|
}
|
|
},
|
|
"layers": [
|
|
{
|
|
"id": "body",
|
|
"bbox": [
|
|
0,
|
|
725,
|
|
1005,
|
|
1566
|
|
],
|
|
"opaque": 558776,
|
|
"greenResidue": 1
|
|
},
|
|
{
|
|
"id": "head",
|
|
"bbox": [
|
|
174,
|
|
151,
|
|
822,
|
|
1043
|
|
],
|
|
"opaque": 348927,
|
|
"greenResidue": 0
|
|
},
|
|
{
|
|
"id": "hairFront",
|
|
"bbox": [
|
|
220,
|
|
413,
|
|
755,
|
|
836
|
|
],
|
|
"opaque": 33451,
|
|
"greenResidue": 0
|
|
}
|
|
],
|
|
"faceDetail": {
|
|
"browLandmarksSource": "manifest.landmarks.eyebrowLeft/Right",
|
|
"region": "face",
|
|
"faceInsetPx": 24.0,
|
|
"matchFacelessColor": true,
|
|
"matchFacelessColorDeltaRgb": {
|
|
"eyeLeft": [
|
|
-16.69,
|
|
-16.87,
|
|
-17.95
|
|
],
|
|
"eyeRight": [
|
|
-13.76,
|
|
-14.61,
|
|
-16.21
|
|
],
|
|
"browLeft": [
|
|
1.81,
|
|
0.25,
|
|
-4.16
|
|
],
|
|
"browRight": [
|
|
0.58,
|
|
-0.04,
|
|
-3.37
|
|
],
|
|
"mouth": [
|
|
-0.72,
|
|
-0.94,
|
|
-4.42
|
|
]
|
|
},
|
|
"regions": {
|
|
"eyeLeft": [
|
|
315.6,
|
|
511.2,
|
|
458.4,
|
|
662.8
|
|
],
|
|
"eyeRight": [
|
|
525.7,
|
|
509.8,
|
|
667.7,
|
|
663.2
|
|
],
|
|
"mouth": [
|
|
377.6,
|
|
737.5,
|
|
603.9,
|
|
917.4
|
|
],
|
|
"moles": []
|
|
},
|
|
"exclusionPixels": {
|
|
"eyeLeft": 11350,
|
|
"eyeRight": 10802,
|
|
"browLeft": 12463,
|
|
"browRight": 11270,
|
|
"mouth": 16631,
|
|
"union": 54127
|
|
},
|
|
"hairMaskPixels": 177726,
|
|
"bbox": [
|
|
276,
|
|
423,
|
|
701,
|
|
936
|
|
],
|
|
"textureCloneStamp": {
|
|
"cloneTargetThreshold": 65.0,
|
|
"avoidThreshold": 110.0,
|
|
"lineOpeningIterations": 3,
|
|
"featherPx": 4.0,
|
|
"badTexturePixels": 217,
|
|
"preservedShadowPixels": 0,
|
|
"components": [
|
|
{
|
|
"componentId": 1,
|
|
"pixels": 3,
|
|
"offset": [
|
|
40,
|
|
40
|
|
],
|
|
"method": "clone-stamp"
|
|
},
|
|
{
|
|
"componentId": 2,
|
|
"pixels": 2,
|
|
"offset": [
|
|
0,
|
|
40
|
|
],
|
|
"method": "clone-stamp"
|
|
},
|
|
{
|
|
"componentId": 3,
|
|
"pixels": 1,
|
|
"offset": [
|
|
0,
|
|
-120
|
|
],
|
|
"method": "clone-stamp"
|
|
},
|
|
{
|
|
"componentId": 4,
|
|
"pixels": 1,
|
|
"offset": [
|
|
-80,
|
|
0
|
|
],
|
|
"method": "clone-stamp"
|
|
},
|
|
{
|
|
"componentId": 5,
|
|
"pixels": 1,
|
|
"offset": [
|
|
-60,
|
|
-100
|
|
],
|
|
"method": "clone-stamp"
|
|
},
|
|
{
|
|
"componentId": 6,
|
|
"pixels": 1,
|
|
"offset": [
|
|
0,
|
|
-120
|
|
],
|
|
"method": "clone-stamp"
|
|
},
|
|
{
|
|
"componentId": 7,
|
|
"pixels": 1,
|
|
"offset": [
|
|
-60,
|
|
0
|
|
],
|
|
"method": "clone-stamp"
|
|
},
|
|
{
|
|
"componentId": 8,
|
|
"pixels": 1,
|
|
"offset": [
|
|
0,
|
|
-120
|
|
],
|
|
"method": "clone-stamp"
|
|
},
|
|
{
|
|
"componentId": 9,
|
|
"pixels": 4,
|
|
"offset": [
|
|
-80,
|
|
0
|
|
],
|
|
"method": "clone-stamp"
|
|
},
|
|
{
|
|
"componentId": 10,
|
|
"pixels": 1,
|
|
"offset": [
|
|
0,
|
|
-120
|
|
],
|
|
"method": "clone-stamp"
|
|
},
|
|
{
|
|
"componentId": 11,
|
|
"pixels": 1,
|
|
"offset": [
|
|
0,
|
|
-150
|
|
],
|
|
"method": "clone-stamp"
|
|
},
|
|
{
|
|
"componentId": 12,
|
|
"pixels": 2,
|
|
"offset": [
|
|
-80,
|
|
0
|
|
],
|
|
"method": "clone-stamp"
|
|
},
|
|
{
|
|
"componentId": 13,
|
|
"pixels": 26,
|
|
"offset": [
|
|
0,
|
|
-150
|
|
],
|
|
"method": "clone-stamp"
|
|
},
|
|
{
|
|
"componentId": 14,
|
|
"pixels": 1,
|
|
"offset": [
|
|
-80,
|
|
0
|
|
],
|
|
"method": "clone-stamp"
|
|
},
|
|
{
|
|
"componentId": 15,
|
|
"pixels": 1,
|
|
"offset": [
|
|
-80,
|
|
0
|
|
],
|
|
"method": "clone-stamp"
|
|
},
|
|
{
|
|
"componentId": 16,
|
|
"pixels": 1,
|
|
"offset": [
|
|
-80,
|
|
0
|
|
],
|
|
"method": "clone-stamp"
|
|
},
|
|
{
|
|
"componentId": 17,
|
|
"pixels": 1,
|
|
"offset": [
|
|
0,
|
|
-150
|
|
],
|
|
"method": "clone-stamp"
|
|
},
|
|
{
|
|
"componentId": 18,
|
|
"pixels": 1,
|
|
"offset": [
|
|
-80,
|
|
0
|
|
],
|
|
"method": "clone-stamp"
|
|
},
|
|
{
|
|
"componentId": 19,
|
|
"pixels": 1,
|
|
"offset": [
|
|
-40,
|
|
0
|
|
],
|
|
"method": "clone-stamp"
|
|
},
|
|
{
|
|
"componentId": 20,
|
|
"pixels": 4,
|
|
"offset": [
|
|
40,
|
|
40
|
|
],
|
|
"method": "clone-stamp"
|
|
},
|
|
{
|
|
"componentId": 21,
|
|
"pixels": 1,
|
|
"offset": [
|
|
-100,
|
|
0
|
|
],
|
|
"method": "clone-stamp"
|
|
},
|
|
{
|
|
"componentId": 22,
|
|
"pixels": 1,
|
|
"offset": [
|
|
-40,
|
|
0
|
|
],
|
|
"method": "clone-stamp"
|
|
},
|
|
{
|
|
"componentId": 23,
|
|
"pixels": 1,
|
|
"offset": [
|
|
0,
|
|
-150
|
|
],
|
|
"method": "clone-stamp"
|
|
},
|
|
{
|
|
"componentId": 24,
|
|
"pixels": 1,
|
|
"offset": [
|
|
-60,
|
|
0
|
|
],
|
|
"method": "clone-stamp"
|
|
},
|
|
{
|
|
"componentId": 25,
|
|
"pixels": 1,
|
|
"offset": [
|
|
-40,
|
|
0
|
|
],
|
|
"method": "clone-stamp"
|
|
},
|
|
{
|
|
"componentId": 26,
|
|
"pixels": 2,
|
|
"offset": [
|
|
40,
|
|
40
|
|
],
|
|
"method": "clone-stamp"
|
|
},
|
|
{
|
|
"componentId": 27,
|
|
"pixels": 1,
|
|
"offset": [
|
|
0,
|
|
-150
|
|
],
|
|
"method": "clone-stamp"
|
|
},
|
|
{
|
|
"componentId": 28,
|
|
"pixels": 5,
|
|
"offset": [
|
|
0,
|
|
-180
|
|
],
|
|
"method": "clone-stamp"
|
|
},
|
|
{
|
|
"componentId": 29,
|
|
"pixels": 1,
|
|
"offset": [
|
|
0,
|
|
-150
|
|
],
|
|
"method": "clone-stamp"
|
|
},
|
|
{
|
|
"componentId": 30,
|
|
"pixels": 1,
|
|
"offset": [
|
|
0,
|
|
-150
|
|
],
|
|
"method": "clone-stamp"
|
|
},
|
|
{
|
|
"componentId": 31,
|
|
"pixels": 7,
|
|
"offset": [
|
|
100,
|
|
0
|
|
],
|
|
"method": "clone-stamp"
|
|
},
|
|
{
|
|
"componentId": 32,
|
|
"pixels": 1,
|
|
"offset": [
|
|
-100,
|
|
0
|
|
],
|
|
"method": "clone-stamp"
|
|
},
|
|
{
|
|
"componentId": 33,
|
|
"pixels": 1,
|
|
"offset": [
|
|
100,
|
|
0
|
|
],
|
|
"method": "clone-stamp"
|
|
},
|
|
{
|
|
"componentId": 34,
|
|
"pixels": 1,
|
|
"offset": [
|
|
60,
|
|
-100
|
|
],
|
|
"method": "clone-stamp"
|
|
},
|
|
{
|
|
"componentId": 35,
|
|
"pixels": 1,
|
|
"offset": [
|
|
0,
|
|
-100
|
|
],
|
|
"method": "clone-stamp"
|
|
},
|
|
{
|
|
"componentId": 36,
|
|
"pixels": 1,
|
|
"offset": [
|
|
0,
|
|
40
|
|
],
|
|
"method": "clone-stamp"
|
|
},
|
|
{
|
|
"componentId": 37,
|
|
"pixels": 2,
|
|
"offset": [
|
|
0,
|
|
40
|
|
],
|
|
"method": "clone-stamp"
|
|
},
|
|
{
|
|
"componentId": 38,
|
|
"pixels": 1,
|
|
"offset": [
|
|
-40,
|
|
40
|
|
],
|
|
"method": "clone-stamp"
|
|
},
|
|
{
|
|
"componentId": 39,
|
|
"pixels": 15,
|
|
"offset": [
|
|
0,
|
|
-100
|
|
],
|
|
"method": "clone-stamp"
|
|
},
|
|
{
|
|
"componentId": 40,
|
|
"pixels": 2,
|
|
"offset": [
|
|
0,
|
|
40
|
|
],
|
|
"method": "clone-stamp"
|
|
},
|
|
{
|
|
"componentId": 41,
|
|
"pixels": 2,
|
|
"offset": [
|
|
0,
|
|
-180
|
|
],
|
|
"method": "clone-stamp"
|
|
},
|
|
{
|
|
"componentId": 42,
|
|
"pixels": 1,
|
|
"offset": [
|
|
0,
|
|
60
|
|
],
|
|
"method": "clone-stamp"
|
|
},
|
|
{
|
|
"componentId": 43,
|
|
"pixels": 8,
|
|
"offset": [
|
|
60,
|
|
-100
|
|
],
|
|
"method": "clone-stamp"
|
|
},
|
|
{
|
|
"componentId": 44,
|
|
"pixels": 7,
|
|
"offset": [
|
|
-40,
|
|
40
|
|
],
|
|
"method": "clone-stamp"
|
|
},
|
|
{
|
|
"componentId": 45,
|
|
"pixels": 8,
|
|
"offset": [
|
|
0,
|
|
-150
|
|
],
|
|
"method": "clone-stamp"
|
|
},
|
|
{
|
|
"componentId": 46,
|
|
"pixels": 4,
|
|
"offset": [
|
|
40,
|
|
-40
|
|
],
|
|
"method": "clone-stamp"
|
|
},
|
|
{
|
|
"componentId": 47,
|
|
"pixels": 1,
|
|
"offset": [
|
|
0,
|
|
-120
|
|
],
|
|
"method": "clone-stamp"
|
|
},
|
|
{
|
|
"componentId": 48,
|
|
"pixels": 2,
|
|
"offset": [
|
|
-40,
|
|
40
|
|
],
|
|
"method": "clone-stamp"
|
|
},
|
|
{
|
|
"componentId": 49,
|
|
"pixels": 10,
|
|
"offset": [
|
|
-120,
|
|
-60
|
|
],
|
|
"method": "clone-stamp"
|
|
},
|
|
{
|
|
"componentId": 50,
|
|
"pixels": 1,
|
|
"offset": [
|
|
-40,
|
|
40
|
|
],
|
|
"method": "clone-stamp"
|
|
},
|
|
{
|
|
"componentId": 51,
|
|
"pixels": 2,
|
|
"offset": [
|
|
120,
|
|
-60
|
|
],
|
|
"method": "clone-stamp"
|
|
},
|
|
{
|
|
"componentId": 52,
|
|
"pixels": 4,
|
|
"offset": [
|
|
0,
|
|
-100
|
|
],
|
|
"method": "clone-stamp"
|
|
},
|
|
{
|
|
"componentId": 53,
|
|
"pixels": 2,
|
|
"offset": [
|
|
120,
|
|
-60
|
|
],
|
|
"method": "clone-stamp"
|
|
},
|
|
{
|
|
"componentId": 54,
|
|
"pixels": 2,
|
|
"offset": [
|
|
0,
|
|
-80
|
|
],
|
|
"method": "clone-stamp"
|
|
},
|
|
{
|
|
"componentId": 55,
|
|
"pixels": 1,
|
|
"offset": [
|
|
0,
|
|
-60
|
|
],
|
|
"method": "clone-stamp"
|
|
},
|
|
{
|
|
"componentId": 56,
|
|
"pixels": 4,
|
|
"offset": [
|
|
0,
|
|
-180
|
|
],
|
|
"method": "clone-stamp"
|
|
},
|
|
{
|
|
"componentId": 57,
|
|
"pixels": 3,
|
|
"offset": [
|
|
-40,
|
|
40
|
|
],
|
|
"method": "clone-stamp"
|
|
},
|
|
{
|
|
"componentId": 58,
|
|
"pixels": 1,
|
|
"offset": [
|
|
0,
|
|
-100
|
|
],
|
|
"method": "clone-stamp"
|
|
},
|
|
{
|
|
"componentId": 59,
|
|
"pixels": 4,
|
|
"offset": [
|
|
0,
|
|
-150
|
|
],
|
|
"method": "clone-stamp"
|
|
},
|
|
{
|
|
"componentId": 60,
|
|
"pixels": 1,
|
|
"offset": [
|
|
-60,
|
|
-100
|
|
],
|
|
"method": "clone-stamp"
|
|
},
|
|
{
|
|
"componentId": 61,
|
|
"pixels": 1,
|
|
"offset": [
|
|
120,
|
|
-60
|
|
],
|
|
"method": "clone-stamp"
|
|
},
|
|
{
|
|
"componentId": 62,
|
|
"pixels": 1,
|
|
"offset": [
|
|
-60,
|
|
-100
|
|
],
|
|
"method": "clone-stamp"
|
|
},
|
|
{
|
|
"componentId": 63,
|
|
"pixels": 3,
|
|
"offset": [
|
|
-60,
|
|
-100
|
|
],
|
|
"method": "clone-stamp"
|
|
},
|
|
{
|
|
"componentId": 64,
|
|
"pixels": 1,
|
|
"offset": [
|
|
-120,
|
|
-60
|
|
],
|
|
"method": "clone-stamp"
|
|
},
|
|
{
|
|
"componentId": 65,
|
|
"pixels": 1,
|
|
"offset": [
|
|
0,
|
|
-40
|
|
],
|
|
"method": "clone-stamp"
|
|
},
|
|
{
|
|
"componentId": 66,
|
|
"pixels": 1,
|
|
"offset": [
|
|
0,
|
|
-180
|
|
],
|
|
"method": "clone-stamp"
|
|
},
|
|
{
|
|
"componentId": 67,
|
|
"pixels": 1,
|
|
"offset": [
|
|
0,
|
|
60
|
|
],
|
|
"method": "clone-stamp"
|
|
},
|
|
{
|
|
"componentId": 68,
|
|
"pixels": 1,
|
|
"offset": [
|
|
-60,
|
|
-100
|
|
],
|
|
"method": "clone-stamp"
|
|
},
|
|
{
|
|
"componentId": 69,
|
|
"pixels": 6,
|
|
"offset": [
|
|
0,
|
|
-80
|
|
],
|
|
"method": "clone-stamp"
|
|
},
|
|
{
|
|
"componentId": 70,
|
|
"pixels": 1,
|
|
"offset": [
|
|
0,
|
|
60
|
|
],
|
|
"method": "clone-stamp"
|
|
},
|
|
{
|
|
"componentId": 71,
|
|
"pixels": 3,
|
|
"offset": [
|
|
-60,
|
|
-100
|
|
],
|
|
"method": "clone-stamp"
|
|
},
|
|
{
|
|
"componentId": 72,
|
|
"pixels": 2,
|
|
"offset": [
|
|
0,
|
|
-60
|
|
],
|
|
"method": "clone-stamp"
|
|
},
|
|
{
|
|
"componentId": 73,
|
|
"pixels": 1,
|
|
"offset": [
|
|
0,
|
|
-80
|
|
],
|
|
"method": "clone-stamp"
|
|
},
|
|
{
|
|
"componentId": 74,
|
|
"pixels": 9,
|
|
"offset": [
|
|
0,
|
|
-150
|
|
],
|
|
"method": "clone-stamp"
|
|
},
|
|
{
|
|
"componentId": 75,
|
|
"pixels": 2,
|
|
"offset": [
|
|
0,
|
|
-60
|
|
],
|
|
"method": "clone-stamp"
|
|
},
|
|
{
|
|
"componentId": 76,
|
|
"pixels": 5,
|
|
"offset": [
|
|
-60,
|
|
-100
|
|
],
|
|
"method": "clone-stamp"
|
|
},
|
|
{
|
|
"componentId": 77,
|
|
"pixels": 1,
|
|
"offset": [
|
|
-40,
|
|
-40
|
|
],
|
|
"method": "clone-stamp"
|
|
},
|
|
{
|
|
"componentId": 78,
|
|
"pixels": 2,
|
|
"offset": [
|
|
0,
|
|
-120
|
|
],
|
|
"method": "clone-stamp"
|
|
},
|
|
{
|
|
"componentId": 79,
|
|
"pixels": 2,
|
|
"offset": [
|
|
0,
|
|
-60
|
|
],
|
|
"method": "clone-stamp"
|
|
},
|
|
{
|
|
"componentId": 80,
|
|
"pixels": 3,
|
|
"offset": [
|
|
120,
|
|
-60
|
|
],
|
|
"method": "clone-stamp"
|
|
}
|
|
]
|
|
},
|
|
"genericPatches": {
|
|
"forehead": [
|
|
530,
|
|
419,
|
|
578,
|
|
467
|
|
],
|
|
"cheekLeft": [
|
|
338,
|
|
640,
|
|
386,
|
|
688
|
|
],
|
|
"cheekRight": [
|
|
513,
|
|
641,
|
|
561,
|
|
689
|
|
]
|
|
},
|
|
"genericPatchBaseline": {
|
|
"highFreqEnergy": 9.080476197978074,
|
|
"lineEnergy": 4.482899101781223
|
|
},
|
|
"checkA_meanAbsDiff": 0.551403778535253,
|
|
"checkB_seamLumDiff": 4.8619307927367,
|
|
"checkC_holeDarkResiduePct": 0.33517397699597307,
|
|
"checkC_violationPixels": 139,
|
|
"checkD_texturePreservation": {
|
|
"eyeLeft": {
|
|
"insideEnergy": 11.728178068836447,
|
|
"baselineEnergy": 9.080476197978074,
|
|
"ratio": 1.2915818304163311,
|
|
"pass": true
|
|
},
|
|
"eyeRight": {
|
|
"insideEnergy": 9.141842269631741,
|
|
"baselineEnergy": 9.080476197978074,
|
|
"ratio": 1.0067580235128342,
|
|
"pass": true
|
|
},
|
|
"browLeft": {
|
|
"insideEnergy": 17.537053096939957,
|
|
"baselineEnergy": 9.080476197978074,
|
|
"ratio": 1.9312922268156913,
|
|
"pass": true
|
|
},
|
|
"browRight": {
|
|
"insideEnergy": 13.608813222720961,
|
|
"baselineEnergy": 9.080476197978074,
|
|
"ratio": 1.498689377738934,
|
|
"pass": true
|
|
},
|
|
"mouth": {
|
|
"insideEnergy": 6.004906204634735,
|
|
"baselineEnergy": 9.080476197978074,
|
|
"ratio": 0.6612986008345941,
|
|
"pass": false
|
|
}
|
|
},
|
|
"checkD_allPass": false,
|
|
"checkE_ghostOutline": {
|
|
"eyeLeft": {
|
|
"bandLineEnergy": 10.536511919699906,
|
|
"baselineLineEnergy": 4.482899101781223,
|
|
"ratio": 2.350379002622066,
|
|
"pass": false
|
|
},
|
|
"eyeRight": {
|
|
"bandLineEnergy": 8.918524608958212,
|
|
"baselineLineEnergy": 4.482899101781223,
|
|
"ratio": 1.9894546824430086,
|
|
"pass": false
|
|
},
|
|
"browLeft": {
|
|
"bandLineEnergy": 14.994533403406946,
|
|
"baselineLineEnergy": 4.482899101781223,
|
|
"ratio": 3.3448295540377115,
|
|
"pass": false
|
|
},
|
|
"browRight": {
|
|
"bandLineEnergy": 4.481198714945496,
|
|
"baselineLineEnergy": 4.482899101781223,
|
|
"ratio": 0.999620694823345,
|
|
"pass": true
|
|
},
|
|
"mouth": {
|
|
"bandLineEnergy": 4.588176972223662,
|
|
"baselineLineEnergy": 4.482899101781223,
|
|
"ratio": 1.023484327452431,
|
|
"pass": true
|
|
}
|
|
},
|
|
"checkE_allPass": false,
|
|
"checkDarkCircle": {
|
|
"eyeLeft": {
|
|
"compositeMean": 142.89866666666666,
|
|
"frontMean": 142.80361904761904,
|
|
"diff": 0.09504761904761949,
|
|
"pass": true
|
|
},
|
|
"eyeRight": {
|
|
"compositeMean": 141.6638095238095,
|
|
"frontMean": 141.38838095238094,
|
|
"diff": 0.2754285714285629,
|
|
"pass": true
|
|
}
|
|
},
|
|
"checkDarkCircle_allPass": true
|
|
},
|
|
"paperGrain": {
|
|
"sourceImage": "base/base-front.png",
|
|
"sourceOrigin": [
|
|
10,
|
|
10
|
|
],
|
|
"tileSize": 256,
|
|
"personMarginPx": 20,
|
|
"cleanFraction": 0.9999847412109375,
|
|
"contaminatedPixelsFilled": 1,
|
|
"chromaKeep": 0.3,
|
|
"targetLumRange": [
|
|
245.0,
|
|
250.0
|
|
],
|
|
"lumShift": 23.471405029296875,
|
|
"finalMeanLum": 247.49236309765936,
|
|
"finalLumStd": 2.192897744732887,
|
|
"seamContinuity": {
|
|
"leftRightDiff": 0.15942372250082334,
|
|
"topBottomDiff": 0.01046539273550214
|
|
}
|
|
}
|
|
},
|
|
"lipTexture": {
|
|
"designVersion": "A5(아랫입술 그늘 띠를 lip-shadow 조각으로 분리)",
|
|
"landmarks": {
|
|
"mouthCornerLeft": [
|
|
422.65,
|
|
806.53
|
|
],
|
|
"mouthCornerRight": [
|
|
558.88,
|
|
808.4
|
|
],
|
|
"upperLipTop": [
|
|
493.82,
|
|
774.04
|
|
],
|
|
"lowerLipBottom": [
|
|
492.31,
|
|
834.98
|
|
],
|
|
"mouthCenter": [
|
|
493.23816396296024,
|
|
800.2905101180077
|
|
]
|
|
},
|
|
"capBBox": [
|
|
409.76,
|
|
769.51,
|
|
571.76,
|
|
839.51
|
|
],
|
|
"otsuThreshLabA": 135.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": 5345,
|
|
"fullOpacityPixelCount": 4579,
|
|
"rampPixelCount": 766,
|
|
"preserveMaxDiffFullOpacity": 0,
|
|
"check1Preserve": true,
|
|
"spriteBBoxWorkingLocal": [
|
|
36,
|
|
33,
|
|
170,
|
|
50
|
|
]
|
|
},
|
|
"lip-lower": {
|
|
"regionPixelCount": 5690,
|
|
"fullOpacityPixelCount": 4980,
|
|
"rampPixelCount": 710,
|
|
"preserveMaxDiffFullOpacity": 0,
|
|
"check1Preserve": true,
|
|
"spriteBBoxWorkingLocal": [
|
|
38,
|
|
71,
|
|
164,
|
|
49
|
|
]
|
|
},
|
|
"lip-shadow": {
|
|
"regionPixelCount": 3024,
|
|
"fullOpacityPixelCount": 1512,
|
|
"rampPixelCount": 1512,
|
|
"preserveMaxDiffFullOpacity": 0,
|
|
"check1Preserve": true,
|
|
"spriteBBoxWorkingLocal": [
|
|
58,
|
|
77,
|
|
126,
|
|
51
|
|
]
|
|
},
|
|
"splitOverlapPixelCount": 327,
|
|
"splitOverlapBandOk": true,
|
|
"splitOverlapAlphaMaxDiff": 0,
|
|
"splitOverlapConsistentOk": true,
|
|
"splitCoverageMismatchPixelCount": 0,
|
|
"splitCheckOk": true,
|
|
"shadowLowerOverlapPixelCount": 2256,
|
|
"shadowLowerOverlapMaxDiff": 25.3765628604383,
|
|
"shadowLowerOverlapDiffGt1PixelCount": 106,
|
|
"shadowLowerOverlapOk": false
|
|
},
|
|
"check3NeutralComposite": {
|
|
"fullOpacityMaxDiff": 0.0,
|
|
"rampMeanAbsDiff": 3.033,
|
|
"mouthBBoxMeanAbsDiff": 1.48
|
|
},
|
|
"pngFileSizes": {
|
|
"lip-upper": 23136,
|
|
"lip-lower": 21665,
|
|
"lip-shadow": 18046
|
|
},
|
|
"canvasOrigin": {
|
|
"upper": [
|
|
406,
|
|
763
|
|
],
|
|
"lower": [
|
|
408,
|
|
801
|
|
],
|
|
"shadow": [
|
|
428,
|
|
807
|
|
]
|
|
},
|
|
"evidenceImage": "preview/v2/lip-texture.jpg",
|
|
"check4WebpVsPngMeanAbsDiff": {
|
|
"upper": 0.0,
|
|
"lower": 0.0,
|
|
"shadow": 0.0
|
|
}
|
|
},
|
|
"jaw": {
|
|
"designVersion": "A5(결정문 §8.4 하관 띠 변형 — 턱 조각 원본)",
|
|
"noseTip": [
|
|
493.52,
|
|
712.47
|
|
],
|
|
"chinTip": [
|
|
491.82,
|
|
932.41
|
|
],
|
|
"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": [
|
|
251,
|
|
652,
|
|
729,
|
|
973
|
|
],
|
|
"naiveXRangeForComparison": [
|
|
251,
|
|
729
|
|
],
|
|
"checks": {
|
|
"head": {
|
|
"pngRoundTripMaxDiff": 0,
|
|
"pngRoundTripOk": true,
|
|
"pngFileSize": 308210
|
|
},
|
|
"detail": {
|
|
"pngRoundTripMaxDiff": 0,
|
|
"pngRoundTripOk": true,
|
|
"pngFileSize": 356378
|
|
}
|
|
},
|
|
"evidenceImage": "preview/v2/jaw-pieces.jpg",
|
|
"check1VsPublishedLayerAbsDiff": {
|
|
"head": {
|
|
"comparedAgainstPublishedLayer": "head.webp",
|
|
"meanAbsDiffPremultipliedRgb": 2.673,
|
|
"maxAbsDiffPremultipliedRgb": 34.0,
|
|
"meanAbsDiffAlpha": 0.0,
|
|
"maxAbsDiffAlpha": 0.0,
|
|
"meetsTarget": false
|
|
},
|
|
"detail": {
|
|
"comparedAgainstPublishedLayer": "face-detail.webp",
|
|
"meanAbsDiffPremultipliedRgb": 1.819,
|
|
"maxAbsDiffPremultipliedRgb": 38.0,
|
|
"meanAbsDiffAlpha": 0.0,
|
|
"maxAbsDiffAlpha": 0.0,
|
|
"meetsTarget": true
|
|
}
|
|
}
|
|
},
|
|
"pipelineRun": {
|
|
"persona": "P7",
|
|
"timestamp": "2026-10-01T21:42:40",
|
|
"completed": true,
|
|
"stages": [
|
|
{
|
|
"stage": "brow_sprite",
|
|
"ok": true,
|
|
"elapsedSec": 2.84
|
|
},
|
|
{
|
|
"stage": "paper_grain",
|
|
"ok": true,
|
|
"elapsedSec": 2.47
|
|
},
|
|
{
|
|
"stage": "lip_texture",
|
|
"ok": true,
|
|
"elapsedSec": 2.27
|
|
},
|
|
{
|
|
"stage": "jaw_pieces",
|
|
"ok": true,
|
|
"elapsedSec": 2.2
|
|
},
|
|
{
|
|
"stage": "export_rig",
|
|
"ok": true,
|
|
"elapsedSec": 17.28
|
|
},
|
|
{
|
|
"stage": "final_previews",
|
|
"ok": true,
|
|
"elapsedSec": 19.7
|
|
}
|
|
]
|
|
},
|
|
"lipTexturePublish": {
|
|
"quality": "lossless",
|
|
"fileSizes": {
|
|
"lip-upper": 15948,
|
|
"lip-lower": 15146,
|
|
"lip-shadow": 13252
|
|
},
|
|
"totalBytes": 44346,
|
|
"budgetBytes": 81920,
|
|
"webpVsPngMeanAbsDiff": {
|
|
"upper": 0.0,
|
|
"lower": 0.0,
|
|
"shadow": 0.0
|
|
}
|
|
},
|
|
"jawPublish": {
|
|
"quality": 80,
|
|
"scale": 1.0,
|
|
"fileSizes": {
|
|
"jaw-head": 24328,
|
|
"jaw-detail": 23986
|
|
},
|
|
"totalBytes": 48314,
|
|
"budgetBytes": 204800,
|
|
"vsPublishedLayerAbsDiff": {
|
|
"head": {
|
|
"comparedAgainstPublishedLayer": "head.webp",
|
|
"meanAbsDiffPremultipliedRgb": 2.673,
|
|
"maxAbsDiffPremultipliedRgb": 34.0,
|
|
"meanAbsDiffAlpha": 0.0,
|
|
"maxAbsDiffAlpha": 0.0,
|
|
"meetsTarget": false
|
|
},
|
|
"detail": {
|
|
"comparedAgainstPublishedLayer": "face-detail.webp",
|
|
"meanAbsDiffPremultipliedRgb": 1.819,
|
|
"maxAbsDiffPremultipliedRgb": 38.0,
|
|
"meanAbsDiffAlpha": 0.0,
|
|
"maxAbsDiffAlpha": 0.0,
|
|
"meetsTarget": true
|
|
}
|
|
}
|
|
},
|
|
"motifPublish": null,
|
|
"browSprite": {
|
|
"enabled": true,
|
|
"bandExtraHalfHeightPx": 8.0,
|
|
"bandEndExtendPx": 6.0,
|
|
"diffThresh": 25.0,
|
|
"closingKernel": [
|
|
7,
|
|
11
|
|
],
|
|
"minComponentAreaPx": 30.0,
|
|
"hairSource": "layers/v2/hairFront.png alpha(게시되는 레이어 그 자체, 분할 카테고리 아님)",
|
|
"hairAlphaThresh": 128.0,
|
|
"hairDilateIterations": 1,
|
|
"rampPx": 1.5,
|
|
"inkLumMethod": "median(ink-classified pixels in band, region after hair removal)",
|
|
"minAlphaForUnmix": 0.05,
|
|
"hairMaskPixelCount": 37836,
|
|
"left": {
|
|
"bboxCanvas": [
|
|
324,
|
|
509,
|
|
137,
|
|
29
|
|
],
|
|
"halfHeightPx": 15.98,
|
|
"otsuThresh": 102.0,
|
|
"lSkin": 171.333,
|
|
"lInk": 39.667,
|
|
"regionPixelCount": 1362,
|
|
"hairOverlapPixelCount": 402,
|
|
"neutralCompositeMeanAbsDiffAlphaRegion": 7.827,
|
|
"pngFileSizeBytes": 5345
|
|
},
|
|
"right": {
|
|
"bboxCanvas": [
|
|
521,
|
|
509,
|
|
150,
|
|
28
|
|
],
|
|
"halfHeightPx": 15.979,
|
|
"otsuThresh": 109.0,
|
|
"lSkin": 179.0,
|
|
"lInk": 44.667,
|
|
"regionPixelCount": 2054,
|
|
"hairOverlapPixelCount": 67,
|
|
"neutralCompositeMeanAbsDiffAlphaRegion": 4.989,
|
|
"pngFileSizeBytes": 7329
|
|
},
|
|
"canvasOrigin": {
|
|
"left": [
|
|
324.0,
|
|
509.0
|
|
],
|
|
"right": [
|
|
521.0,
|
|
509.0
|
|
]
|
|
},
|
|
"evidenceImage": "preview/v2/brow-sprite.jpg",
|
|
"checkWebpVsPngMeanAbsDiff": {
|
|
"left": 0.0,
|
|
"right": 0.0
|
|
}
|
|
},
|
|
"eyeLineScale": {
|
|
"enabled": true,
|
|
"method": "눈 폭 가운데 60% 열마다 upperLidTop.y-12 ~ 홍채중심y 사이 첫 연속 어두운(lum<80) 구간 길이의 중앙값",
|
|
"windowAbovePx": 12.0,
|
|
"darkLumThresh": 80.0,
|
|
"columnMiddleFrac": 0.6,
|
|
"p1BaselinePx": 2.0,
|
|
"lineScaleClampRange": [
|
|
1.0,
|
|
2.5
|
|
],
|
|
"left": {
|
|
"measuredPx": 10.0,
|
|
"nColumns": 54,
|
|
"ratio": 5.0,
|
|
"lineScale": 2.5
|
|
},
|
|
"right": {
|
|
"measuredPx": 11.0,
|
|
"nColumns": 53,
|
|
"ratio": 5.5,
|
|
"lineScale": 2.5
|
|
}
|
|
},
|
|
"browSpritePublish": {
|
|
"quality": "lossless",
|
|
"fileSizes": {
|
|
"brow-left": 3510,
|
|
"brow-right": 4848
|
|
},
|
|
"totalBytes": 8358,
|
|
"budgetBytes": 61440,
|
|
"webpVsPngMeanAbsDiff": {
|
|
"left": 0.0,
|
|
"right": 0.0
|
|
}
|
|
},
|
|
"iris": {
|
|
"method": "가로: 중심 y 부근 상하 각 4행에서 중심 x를 포함하는 연속 어두운(lum<100) 구간의 중앙값으로 반지름·중심x. 세로: 중심 x 부근 좌우 각 4열에서 중심 y를 포함하는 연속 어두운 구간의 아래쪽 끝 중앙값에서 가로 반지름을 빼 중심y(세로축은 윗눈꺼풀 잉크와 홍채가 같은 톤으로 이어져 위쪽 경계를 가를 수 없다).",
|
|
"darkLumThresh": 100.0,
|
|
"scanBandPx": 4,
|
|
"left": {
|
|
"measuredCenter": [
|
|
387.5,
|
|
574.5
|
|
],
|
|
"measuredRadius": 16.5,
|
|
"rigCenter": [
|
|
387.31,
|
|
576.96
|
|
],
|
|
"rigRadius": 19.17,
|
|
"nRowsHorizontal": 9,
|
|
"nColsVertical": 9
|
|
},
|
|
"right": {
|
|
"measuredCenter": [
|
|
593.5,
|
|
572.5
|
|
],
|
|
"measuredRadius": 16.5,
|
|
"rigCenter": [
|
|
595.07,
|
|
576.86
|
|
],
|
|
"rigRadius": 19.41,
|
|
"nRowsHorizontal": 9,
|
|
"nColsVertical": 9
|
|
}
|
|
}
|
|
} |