P2~P7 리노컷 캐스트 원화·리그와 세션 활성화

- 추천 원화(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 렌더러 기대로 갱신(검사 의도 유지)
This commit is contained in:
Yun Chan 2026-10-01 22:38:45 +09:00
parent 98577cf4ae
commit ded312acdc
258 changed files with 18463 additions and 32 deletions

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.6 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.9 MiB

View file

@ -0,0 +1,40 @@
{
"mode": "body",
"ref": "D:\\workspace\\vignette\\docs\\avatar-art\\p4-linocut\\base\\source-front.png",
"edited": "D:\\workspace\\vignette\\docs\\avatar-art\\p4-linocut\\base\\edits\\body-1.png",
"out": "D:\\workspace\\vignette\\docs\\avatar-art\\p4-linocut\\base\\edits\\aligned-body-1.png",
"refSize": [
1024,
1536
],
"editedOriginalSize": [
1024,
1536
],
"eccCorrelation": 0.99798,
"transform": {
"scaleSqrtDet": 1.00131,
"rotationDeg": -0.001,
"translateX": -0.141,
"translateY": -3.301,
"matrix": [
[
1.000428,
-0.000176,
-0.141357
],
[
-1.9e-05,
1.002198,
-3.300659
]
],
"direction": "ref(template) 좌표 -> edited(resized, input) 좌표. 정렬된 출력은 이 행렬의 역변환(WARP_INVERSE_MAP)으로 만든다."
},
"eccIncludeMaskPixels": 554683,
"chamferInMask": {
"median": 0.0,
"p90": 3.0,
"nSamples": 59193
}
}

View file

@ -0,0 +1,40 @@
{
"mode": "body",
"ref": "D:\\workspace\\vignette\\docs\\avatar-art\\p4-linocut\\base\\source-front.png",
"edited": "D:\\workspace\\vignette\\docs\\avatar-art\\p4-linocut\\base\\edits\\body-2.png",
"out": "D:\\workspace\\vignette\\docs\\avatar-art\\p4-linocut\\base\\edits\\aligned-body-2.png",
"refSize": [
1024,
1536
],
"editedOriginalSize": [
1024,
1536
],
"eccCorrelation": 0.99671,
"transform": {
"scaleSqrtDet": 1.00221,
"rotationDeg": 0.0,
"translateX": 0.229,
"translateY": -5.606,
"matrix": [
[
1.000477,
-0.000566,
0.229476
],
[
9e-06,
1.003949,
-5.605988
]
],
"direction": "ref(template) 좌표 -> edited(resized, input) 좌표. 정렬된 출력은 이 행렬의 역변환(WARP_INVERSE_MAP)으로 만든다."
},
"eccIncludeMaskPixels": 555167,
"chamferInMask": {
"median": 0.0,
"p90": 3.0,
"nSamples": 60472
}
}

View file

@ -0,0 +1,129 @@
{
"mode": "faceless",
"ref": "D:\\workspace\\vignette\\docs\\avatar-art\\p4-linocut\\base\\source-front.png",
"edited": "D:\\workspace\\vignette\\docs\\avatar-art\\p4-linocut\\base\\edits\\faceless-1.png",
"out": "D:\\workspace\\vignette\\docs\\avatar-art\\p4-linocut\\base\\edits\\aligned-faceless-1.png",
"refSize": [
1024,
1536
],
"editedOriginalSize": [
1024,
1536
],
"eccCorrelation": 0.99622,
"transform": {
"scaleSqrtDet": 0.99978,
"rotationDeg": 0.003,
"translateX": 0.238,
"translateY": -0.442,
"matrix": [
[
0.999337,
-1.3e-05,
0.238082
],
[
4.8e-05,
1.00023,
-0.441719
]
],
"direction": "ref(template) 좌표 -> edited(resized, input) 좌표. 정렬된 출력은 이 행렬의 역변환(WARP_INVERSE_MAP)으로 만든다."
},
"eccIncludeMaskPixels": 849049,
"chamferInMask": {
"median": 0.0,
"p90": 1.414,
"nSamples": 100203
},
"faceOvalBandChamfer": {
"median": 0.0,
"p90": 1.0,
"nSamples": 6849
},
"inkRatioByBox": {
"eyeA": {
"box": [
319,
506,
465,
595
],
"refInkRatio": 0.1879,
"editedInkRatio": 0.0
},
"eyeB": {
"box": [
550,
501,
696,
590
],
"refInkRatio": 0.1823,
"editedInkRatio": 0.0
},
"browA": {
"box": [
273,
434,
481,
534
],
"refInkRatio": 0.0979,
"editedInkRatio": 0.015
},
"browB": {
"box": [
531,
427,
742,
532
],
"refInkRatio": 0.0989,
"editedInkRatio": 0.0125
},
"mouth": {
"box": [
409,
738,
608,
852
],
"refInkRatio": 0.0547,
"editedInkRatio": 0.0
}
},
"eccExcludeBoxes": {
"eyeA": [
319,
506,
465,
595
],
"eyeB": [
550,
501,
696,
590
],
"browA": [
273,
434,
481,
534
],
"browB": [
531,
427,
742,
532
],
"mouth": [
409,
738,
608,
852
]
}
}

View file

@ -0,0 +1,129 @@
{
"mode": "faceless",
"ref": "D:\\workspace\\vignette\\docs\\avatar-art\\p4-linocut\\base\\source-front.png",
"edited": "D:\\workspace\\vignette\\docs\\avatar-art\\p4-linocut\\base\\edits\\faceless-2.png",
"out": "D:\\workspace\\vignette\\docs\\avatar-art\\p4-linocut\\base\\edits\\aligned-faceless-2.png",
"refSize": [
1024,
1536
],
"editedOriginalSize": [
1024,
1536
],
"eccCorrelation": 0.99715,
"transform": {
"scaleSqrtDet": 1.00005,
"rotationDeg": 0.002,
"translateX": -0.14,
"translateY": -0.529,
"matrix": [
[
0.999762,
5e-06,
-0.140065
],
[
2.8e-05,
1.000345,
-0.529061
]
],
"direction": "ref(template) 좌표 -> edited(resized, input) 좌표. 정렬된 출력은 이 행렬의 역변환(WARP_INVERSE_MAP)으로 만든다."
},
"eccIncludeMaskPixels": 849049,
"chamferInMask": {
"median": 0.0,
"p90": 2.0,
"nSamples": 107586
},
"faceOvalBandChamfer": {
"median": 0.0,
"p90": 1.0,
"nSamples": 7307
},
"inkRatioByBox": {
"eyeA": {
"box": [
319,
506,
465,
595
],
"refInkRatio": 0.1879,
"editedInkRatio": 0.0
},
"eyeB": {
"box": [
550,
501,
696,
590
],
"refInkRatio": 0.1823,
"editedInkRatio": 0.0
},
"browA": {
"box": [
273,
434,
481,
534
],
"refInkRatio": 0.0979,
"editedInkRatio": 0.0147
},
"browB": {
"box": [
531,
427,
742,
532
],
"refInkRatio": 0.0989,
"editedInkRatio": 0.0126
},
"mouth": {
"box": [
409,
738,
608,
852
],
"refInkRatio": 0.0547,
"editedInkRatio": 0.0
}
},
"eccExcludeBoxes": {
"eyeA": [
319,
506,
465,
595
],
"eyeB": [
550,
501,
696,
590
],
"browA": [
273,
434,
481,
534
],
"browB": [
531,
427,
742,
532
],
"mouth": [
409,
738,
608,
852
]
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 85 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 29 KiB

View file

@ -0,0 +1,66 @@
{
"canvas": {
"w": 1005,
"h": 1566
},
"reference": {
"image": "docs\\avatar-art\\p1-linocut\\base\\base-front.png",
"eyesCenter": [
492.69,
584.33
],
"chin": [
500.61,
919.55
],
"eyeDistance": 215.427,
"eyeChinDistance": 335.308
},
"input": {
"front": "D:\\workspace\\vignette\\docs\\avatar-art\\p4-linocut\\base\\source-front.png",
"faceless": "D:\\workspace\\vignette\\docs\\avatar-art\\p4-linocut\\base\\edits\\aligned-faceless-1.png",
"body": "D:\\workspace\\vignette\\docs\\avatar-art\\p4-linocut\\base\\edits\\aligned-body-1.png",
"frontSize": [
1024,
1536
],
"eyesCenter": [
507.78,
552.52
],
"chin": [
512.62,
915.91
],
"eyeDistance": 231.073,
"eyeChinDistance": 363.428
},
"transform": {
"sHead": 0.927458,
"sWidth": 0.981445,
"s": 0.981445,
"rotationDeg": 0.0,
"offsetXNatural": -5.667,
"offsetXClampRange": [
0.0,
0.0
],
"offsetX": 0.0,
"offsetY": 42.064
},
"coveredRange": {
"x": [
0.0,
1005
],
"y": [
42.1,
1549.6
]
},
"inputSha256": {
"front": "b19f4a737e976352dc27adf1ec63d14c777c141acfb90685605f21c1be9921f5",
"faceless": "b2e6111c745e54dc6ba3eb43f67b4da5b07cf9ce42082c0951e27908f7d9a6be",
"body": "fbec8186707a8150c8989ed0e887714611bfe55d46f5cf760b0aafecc96f17ef"
}
}