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.4 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.7 MiB

View file

@ -0,0 +1,40 @@
{
"mode": "body",
"ref": "D:\\workspace\\vignette\\docs\\avatar-art\\p5-linocut\\base\\source-front.png",
"edited": "D:\\workspace\\vignette\\docs\\avatar-art\\p5-linocut\\base\\edits\\body-1.png",
"out": "D:\\workspace\\vignette\\docs\\avatar-art\\p5-linocut\\base\\edits\\aligned-body-1.png",
"refSize": [
1145,
1374
],
"editedOriginalSize": [
1145,
1374
],
"eccCorrelation": 0.89496,
"transform": {
"scaleSqrtDet": 1.00107,
"rotationDeg": 0.009,
"translateX": 0.868,
"translateY": -2.827,
"matrix": [
[
1.000537,
-0.000853,
0.867875
],
[
0.000151,
1.001599,
-2.827145
]
],
"direction": "ref(template) 좌표 -> edited(resized, input) 좌표. 정렬된 출력은 이 행렬의 역변환(WARP_INVERSE_MAP)으로 만든다."
},
"eccIncludeMaskPixels": 551610,
"chamferInMask": {
"median": 0.0,
"p90": 2.0,
"nSamples": 76942
}
}

View file

@ -0,0 +1,40 @@
{
"mode": "body",
"ref": "D:\\workspace\\vignette\\docs\\avatar-art\\p5-linocut\\base\\source-front.png",
"edited": "D:\\workspace\\vignette\\docs\\avatar-art\\p5-linocut\\base\\edits\\body-2.png",
"out": "D:\\workspace\\vignette\\docs\\avatar-art\\p5-linocut\\base\\edits\\aligned-body-2.png",
"refSize": [
1145,
1374
],
"editedOriginalSize": [
1145,
1374
],
"eccCorrelation": 0.99029,
"transform": {
"scaleSqrtDet": 1.00132,
"rotationDeg": 0.005,
"translateX": -0.386,
"translateY": -3.197,
"matrix": [
[
1.000755,
2.9e-05,
-0.385584
],
[
9.5e-05,
1.001881,
-3.197296
]
],
"direction": "ref(template) 좌표 -> edited(resized, input) 좌표. 정렬된 출력은 이 행렬의 역변환(WARP_INVERSE_MAP)으로 만든다."
},
"eccIncludeMaskPixels": 540648,
"chamferInMask": {
"median": 0.0,
"p90": 1.414,
"nSamples": 74241
}
}

View file

@ -0,0 +1,129 @@
{
"mode": "faceless",
"ref": "D:\\workspace\\vignette\\docs\\avatar-art\\p5-linocut\\base\\source-front.png",
"edited": "D:\\workspace\\vignette\\docs\\avatar-art\\p5-linocut\\base\\edits\\faceless-1.png",
"out": "D:\\workspace\\vignette\\docs\\avatar-art\\p5-linocut\\base\\edits\\aligned-faceless-1.png",
"refSize": [
1145,
1374
],
"editedOriginalSize": [
1145,
1374
],
"eccCorrelation": 0.99531,
"transform": {
"scaleSqrtDet": 0.99998,
"rotationDeg": 0.004,
"translateX": -0.129,
"translateY": -0.135,
"matrix": [
[
1.000166,
-9.9e-05,
-0.128815
],
[
6.5e-05,
0.999797,
-0.135042
]
],
"direction": "ref(template) 좌표 -> edited(resized, input) 좌표. 정렬된 출력은 이 행렬의 역변환(WARP_INVERSE_MAP)으로 만든다."
},
"eccIncludeMaskPixels": 828124,
"chamferInMask": {
"median": 0.0,
"p90": 1.0,
"nSamples": 116456
},
"faceOvalBandChamfer": {
"median": 0.0,
"p90": 1.0,
"nSamples": 5503
},
"inkRatioByBox": {
"eyeA": {
"box": [
398,
453,
539,
533
],
"refInkRatio": 0.1947,
"editedInkRatio": 0.0
},
"eyeB": {
"box": [
614,
452,
754,
533
],
"refInkRatio": 0.1799,
"editedInkRatio": 0.0
},
"browA": {
"box": [
352,
385,
557,
475
],
"refInkRatio": 0.2908,
"editedInkRatio": 0.1291
},
"browB": {
"box": [
599,
387,
802,
476
],
"refInkRatio": 0.3371,
"editedInkRatio": 0.181
},
"mouth": {
"box": [
475,
653,
672,
769
],
"refInkRatio": 0.1209,
"editedInkRatio": 0.0
}
},
"eccExcludeBoxes": {
"eyeA": [
398,
453,
539,
533
],
"eyeB": [
614,
452,
754,
533
],
"browA": [
352,
385,
557,
475
],
"browB": [
599,
387,
802,
476
],
"mouth": [
475,
653,
672,
769
]
}
}

View file

@ -0,0 +1,129 @@
{
"mode": "faceless",
"ref": "D:\\workspace\\vignette\\docs\\avatar-art\\p5-linocut\\base\\source-front.png",
"edited": "D:\\workspace\\vignette\\docs\\avatar-art\\p5-linocut\\base\\edits\\faceless-2.png",
"out": "D:\\workspace\\vignette\\docs\\avatar-art\\p5-linocut\\base\\edits\\aligned-faceless-2.png",
"refSize": [
1145,
1374
],
"editedOriginalSize": [
1145,
1374
],
"eccCorrelation": 0.99558,
"transform": {
"scaleSqrtDet": 0.99969,
"rotationDeg": 0.004,
"translateX": 0.599,
"translateY": 0.017,
"matrix": [
[
0.999723,
-0.000189,
0.599433
],
[
6.2e-05,
0.999659,
0.017416
]
],
"direction": "ref(template) 좌표 -> edited(resized, input) 좌표. 정렬된 출력은 이 행렬의 역변환(WARP_INVERSE_MAP)으로 만든다."
},
"eccIncludeMaskPixels": 828124,
"chamferInMask": {
"median": 0.0,
"p90": 1.0,
"nSamples": 112934
},
"faceOvalBandChamfer": {
"median": 0.0,
"p90": 1.0,
"nSamples": 5305
},
"inkRatioByBox": {
"eyeA": {
"box": [
398,
453,
539,
533
],
"refInkRatio": 0.1947,
"editedInkRatio": 0.0
},
"eyeB": {
"box": [
614,
452,
754,
533
],
"refInkRatio": 0.1799,
"editedInkRatio": 0.0
},
"browA": {
"box": [
352,
385,
557,
475
],
"refInkRatio": 0.2908,
"editedInkRatio": 0.1199
},
"browB": {
"box": [
599,
387,
802,
476
],
"refInkRatio": 0.3371,
"editedInkRatio": 0.1758
},
"mouth": {
"box": [
475,
653,
672,
769
],
"refInkRatio": 0.1209,
"editedInkRatio": 0.0
}
},
"eccExcludeBoxes": {
"eyeA": [
398,
453,
539,
533
],
"eyeB": [
614,
452,
754,
533
],
"browA": [
352,
385,
557,
475
],
"browB": [
599,
387,
802,
476
],
"mouth": [
475,
653,
672,
769
]
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 53 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\\p5-linocut\\base\\source-front.png",
"faceless": "D:\\workspace\\vignette\\docs\\avatar-art\\p5-linocut\\base\\edits\\aligned-faceless-2.png",
"body": "D:\\workspace\\vignette\\docs\\avatar-art\\p5-linocut\\base\\edits\\aligned-body-2.png",
"frontSize": [
1145,
1374
],
"eyesCenter": [
576.41,
497.08
],
"chin": [
572.45,
849.95
],
"eyeDistance": 215.702,
"eyeChinDistance": 352.891
},
"transform": {
"sHead": 0.974449,
"sWidth": 0.877729,
"s": 0.974449,
"rotationDeg": 0.0,
"offsetXNatural": -68.995,
"offsetXClampRange": [
-110.745,
0.0
],
"offsetX": -68.995,
"offsetY": 99.949
},
"coveredRange": {
"x": [
0.0,
1005
],
"y": [
99.9,
1438.8
]
},
"inputSha256": {
"front": "a929adfeb240a1abb64302c9a31ab5a9911c93afd791fd91c8bda23c79144ac7",
"faceless": "c27e51dc63a5ae515bbfc918b8aad40c892f70e4cacbead4e416ce4453bec8bc",
"body": "fda852c1132d4338adb2e0e34c81ce824659282756edd2d700120c50e51ea089"
}
}