TL;DR — 혼자 AI로 사진 서비스를 굴립니다. 증명사진은 "얼굴이 위에서 아래로 몇 mm"처럼 규격이 밀리미터 단위로 딱 정해져 있어요. 그래서 얼굴의 위치를 재는 일을 한동안 AI한테 맡겼습니다. 그런데 같은 사진을 넣어도 잴 때마다 답이 조금씩 달랐어요. 며칠을 헤매다 결론을 냈습니다. 재는 일(판정)에서 AI를 빼자. AI는 만드는 일(창조)에만 두자. 그 경계를 그은 이야기입니다.
저는 사진 일을 20년 했어요. 지금은 그 경력을 밑천 삼아, 혼자서 AI로 증명사진 서비스를 만들고 있습니다. 코드도 서투르게나마 직접 만지고, 판단이 필요한 일은 AI 여러 대한테 나눠 시킵니다.
증명사진에는 재미있는 특징이 하나 있어요. 정답이 밀리미터로 정해져 있다는 겁니다. 여권 사진이면 얼굴 길이가 정수리부터 턱까지 몇 mm 안에 들어와야 하고, 눈높이도 아래에서 몇 % 지점이어야 하죠. 나라마다 규격표가 있고, 그 표를 벗어나면 접수처에서 반려됩니다. 예술이 아니라 측량이에요.
그래서 초기에는 자연스럽게 생각했습니다. "AI가 요즘 얼굴 인식 잘하니까, 얼굴이 어디 있는지도 AI한테 물어보면 되겠지."
같은 사진, 다른 대답
그런데 이상한 일이 벌어졌어요.
똑같은 사진 파일을 넣고 "이 얼굴, 턱 끝이 세로로 어디쯤이야?"라고 물으면, 첫 번째엔 482픽셀이라고 하고, 두 번째엔 490, 세 번째엔 470이라고 답하는 겁니다. 사진은 1비트도 안 바뀌었는데요.
처음엔 제가 뭔가 잘못 넣은 줄 알았어요. 파일을 다시 확인하고, 캐시를 지우고, 순서를 바꿔봤죠. 소용없었습니다. 재현이 안 됐어요. 어제 잘 나오던 사진이 오늘은 얼굴 위치가 위로 20~30px 올라가서, 결과물의 여백이 눈에 띄게 틀어지곤 했습니다.
이게 왜 무서운 문제냐면요. 증명사진은 "어제 되던 게 오늘도 똑같이 돼야" 하는 서비스입니다. 손님이 같은 사진을 두 번 올렸는데 결과가 다르면, 그건 서비스가 아니라 복권이에요. 그리고 이런 종류의 오류는 평균을 내면 사라져 보입니다. 열 번 재서 평균 내면 그럴듯한 숫자가 나오거든요. 그래서 한동안 문제가 있는 줄도 몰랐습니다. 문제를 문제로 보려면, 먼저 "같은 입력엔 같은 출력"이라는 잣대부터 세워야 했어요.
AI가 나쁜 게 아니라, 자리가 틀렸던 것
며칠을 붙잡고 나서야 방향을 바꿨습니다. 문제는 AI의 성능이 아니라, 제가 AI에게 시킨 일의 종류였어요.
일을 두 종류로 갈라봤습니다.
- 판정 — 이미 정해진 사실을 재는 일. "얼굴 길이 몇 mm", "눈높이 몇 %", "기울었나 안 기울었나". 정답이 하나입니다. 자로 재는 일이에요.
- 창조 — 없던 것을 만들어내는 일. "번들거리는 피부를 자연스럽게 정리", "밋밋한 배경을 규격 배경으로 교체". 정답이 여러 개고, '더 자연스러운 쪽'이 있을 뿐입니다.
AI(생성 모델)는 본질적으로 창조 쪽에 최적화된 도구입니다. 매번 조금씩 다른 답을 내는 성질이, 창조에서는 오히려 자연스러움과 다양성이 됩니다. 그런데 그 성질을 판정에 갖다 쓰면, 그게 바로 "같은 사진, 다른 대답"으로 나타나는 거예요. 자를 고무줄로 만든 셈이죠.
그래서 경계를 그었습니다.
판정에서 AI를 뺀다. 판정은 결정론적인 계산으로 한다.
AI는 창조에만 둔다.
'결정론적'이라는 말은 어렵게 들리지만 뜻은 단순합니다. 같은 걸 넣으면 언제나 같은 게 나온다. 좌표를 재는 부분을, 매번 답이 흔들리는 방식에서 고정된 수학 계산으로 바꿨더니, 같은 사진을 백 번을 넣어도 소수점 아래까지 똑같은 값이 나왔어요. 흔들림이 0이 됐습니다.
재밌는 건, 이렇게 하고 나니 AI가 할 일이 더 선명해졌다는 거예요. 쓸데없이 자 노릇까지 시키던 걸 내려놓으니, AI는 자기가 진짜 잘하는 것 — 피부를 자연스럽게 만들고, 배경을 그럴듯하게 채우는 창조 — 에만 집중하게 됐습니다.
정직한 고백
솔직히 말하면, 이 경계를 처음부터 알고 시작한 게 아닙니다. AI가 워낙 뭐든 잘하는 것처럼 보이니까, 재는 것도 만드는 것도 다 맡기면 되겠지 하고 뭉뚱그렸던 거예요. 그게 몇 주치 헛발질의 원인이었습니다.
그리고 하나 더. 저는 이 문제를 "AI를 어떻게 더 잘 튜닝할까"로 오래 붙잡고 있었어요. 프롬프트를 고치고, 조건을 더 주고. 정작 답은 "여기선 AI를 쓰지 마"였는데 말이죠. 도구가 좋을수록, 안 쓸 자리를 정하는 게 더 어렵습니다. 망치가 훌륭하면 모든 게 못으로 보이잖아요.
그래서 남은 질문
이건 사진 서비스만의 이야기가 아닌 것 같아요. AI를 붙이는 거의 모든 일에 같은 갈림길이 있습니다.
당신이 AI에게 시키는 그 일은, 재는 일인가요 만드는 일인가요?
정답이 하나로 딱 정해진 일(재는 일)이라면, AI의 "매번 조금 다른 답"은 버그가 됩니다. 정답이 여럿인 일(만드는 일)이라면, 그 성질이 오히려 강점이고요. 이 둘을 한 통에 넣으면, 만드는 일의 자유로움이 재는 일의 신뢰를 갉아먹습니다.
저는 이제 새 기능을 붙일 때마다 먼저 이 질문을 합니다. "이건 자로 재야 하는 일인가, 붓으로 그려야 하는 일인가." 자로 잴 일이면 코드에게, 붓으로 그릴 일이면 AI에게. 경계 하나 그었을 뿐인데, 서비스가 훨씬 덜 흔들리게 됐어요.
혹시 지금 AI가 자꾸 "그때그때 다른 답"을 줘서 골치라면, 성능을 의심하기 전에 자리부터 의심해 보시길. 재는 일을 시키고 있는 건 아닌지요.
혼자 AI로 사진 서비스를 만들며 배운 것들을 적습니다. MONKOS는 셀카로 규격 증명사진을 만드는 서비스예요.