해커뉴스 Show, RGB 구체 기반으로 무한한 피부톤 생성하는 색공간과 알고리즘 공개
- 개발자 Toney Alexander가 RGB 색공간 안에 구(sphere) 형태로 정의한 커스텀 피부톤 색공간과 절차적 생성 알고리즘을 파이썬과 자바스크립트로 공개함
- 좌표 t, u, v를 to_rgb 함수로 변환해 RGB값을 산출하며, R² 값으로 샘플링 반경을 조절해 색 범위를 넓히거나 좁힐 수 있음
- R²를 약 1.5로 낮추면 초록, 파랑, 보라 같은 비현실적 색은 제외되고 실제 피부톤에 가까운 범위만 남으며, 반대로 키우면 오크나 나비족처럼 판타지 캐릭터용 피부색까지 확장됨
- 이모지의 5가지 피부톤, 화장품 브랜드의 약 50가지 색상, 캐릭터 생성기의 1677만 색상 선택지 사이에 있는 간극을 메우려는 목적으로 프로젝트가 시작됨
- 코드는 MIT 라이선스로 공개되어 게임 캐릭터 생성기나 디지털 아트 툴 등에 자유롭게 활용 가능함
Hacker News 의견들
VR 아바타 소프트웨어 만들 때 하드코딩된 피부톤 옵션밖에 없었는데, 이런 색공간 도구가 있었으면 진짜 좋았을 것 같음. 색공간을 의미 단위로 나누는 작업 자체가 생각보다 재밌는 분야더라.
밝은 피부톤에 비해 어두운 피부톤 다양성이 부족해 보이는데, 이거 최근 연구나 소셜미디어 흐름이랑 안 맞는 거 아님?
기사 읽고 피커 써본 거 맞아? 연속 색공간이라 검은색 계열도 수천 가지로 나오고, 위에 뜨는 예시들은 그냥 랜덤으로 뽑힌 거임.
괜찮은 색이 대부분인데 초록, 파랑, 보라도 섞여 보임. 수동 큐레이션이면 문제없겠지만 "현실적인 색만"으로 거르는 건 다른 문제 아닌가 싶음.
슬라이더를 오른쪽 끝까지 내리면 진짜 피부톤만 남고, 반대로 올리면 오크나 나비족 같은 피부색까지 커버됨. R² 값을 1.5 정도로 낮추면 극단적인 초록/파랑/보라는 빠지고 딱 좋은 지점이 됨.
옅은 피부톤 쪽 다양성이 부족해 보이는데?
다크모드 리더 확장 꺼봐라 ㅋㅋ 그것 때문에 색이 이상하게 보이는 거임.
PCA로 3D를 2D로 줄일 줄 알았는데 함수 피팅으로 접근한 게 신선함. 근데 수작업 레이블링 과정에 편향이 들어갈 것 같은데, 결과물 일관성은 인정함.
내 박사논문 보면 피부색은 멜라닌이랑 헤모글로빈 농도로 사실상 2차원 파라미터화가 가능함. 픽셀 색을 역산해서 색소 농도까지 추정할 수 있음.
이 코드 내 프로젝트에 써도 됨? 라이선스 있는지 궁금함.
MIT 라이선스 추가했음. 수식 자체는 저작권 대상도 아니라서 법적으로는 제한이 거의 없을 것 같음.