TECH NOTE · AI COLLAB
AI에게 픽셀 수정을 맡겼다가 세 번 통째로 되돌린 기록입니다. 검증을 사람이 독점할 때 생기는 일과 순서를 바꾼 이야기입니다.
열여섯 번 고치고 세 번 통째로 되돌렸다
스프라이트 시트에서 지워야 할 게 있었다. 캐릭터가 창틀에 앉아 있는 그림들인데, 창틀을 표현한 굵은 막대가 같이 그려져 있었다. 실제 창 위에 올려야 하니 그 막대는 없어야 했다.
AI에게 맡겼다. 하루 동안 커밋이 이렇게 쌓였다.
Perform precision bar transparency on window_top, climb, and side_peek sprite frames
Revert sprite sheet and checksums to original backup as requested by user
Keep single top contact line for window_top states while removing bottom and side box borders
Completely wipe left and right bar wings and box fill for window_top states
Trim horizontal bar wings to character body width for window_top states
Fix window_top_sleepy_sit (f2) anchor matching and trim 224 bar wing pixels
Restore window_top_sing_kicking_feet shoe soles and preserve all frames 100%
Fill raised shoe sole gap in window_top_sing_kicking_feet f1
Completely erase bench bar box, side borders, and specks around f1 and all states
Erase floating line under raised left foot in f1 while preserving 1px seat contact line
Revert sprite sheet and checksums to clean original backup as requested by user
Perform precision repair on f1 shoe sole and clean all bar boxes
Revert all sprite sheet modifications and restore clean original backup
되돌림이 세 번이다. 마지막은 그날 작업 전체를 버렸다.
왜 계속 실패했나
커밋 제목만 봐도 패턴이 보인다. 매번 조금씩 더 구체적으로 지시하고 있다.
"막대를 투명하게"
→ "아래·옆 테두리는 지우고 위쪽 접촉선 1픽셀은 남기고"
→ "좌우 날개를 캐릭터 몸 폭에 맞춰 자르고 접촉선은 유지"
→ "들린 왼발 아래 떠 있는 선만 지우고 허벅지 아래 앉음선은 유지"
지시가 정확해질수록 결과가 나아졌지만, 매번 다른 곳이 망가졌다.
막대를 지우면 신발 밑창이 같이 지워졌다. 밑창을 복원하면 접촉선이 사라졌다. 접촉선을 살리면 옆에 부스러기가 남았다.
성공 판정을 사람 눈이 했다
근본 문제는 이거였다. “제대로 지워졌는가”를 판정하는 사람이 나였다.
AI는 자기 결과를 확인할 수 없었다. 픽셀을 지운 뒤 그 그림이 괜찮은지 보려면 봐야 하는데, 볼 수가 없다. 그래서 “지웠습니다”라고 보고하고, 내가 열어 보고, 아니라고 하고, 다시 시도한다.
이 순환에서 AI는 매번 처음부터 시작한다. 직전에 무엇이 망가졌는지는 내 말로만 전달된다. “밑창이 없어졌어”라고 말하면 밑창을 고치고 다른 곳을 건드린다.
여기서 배운 게 이거다.
검증을 사람이 독점하고 있으면 반복 횟수가 사람의 인내심만큼 늘어난다.
되돌림이 세 번이나 가능했던 이유
이 이야기에서 그나마 다행인 부분이다. 원본 백업이 있었다.
스프라이트 시트는 하나의 큰 PNG다. 부분 수정을 반복하면 원래 상태로 되돌릴 방법이 없다. 텍스트라면 git diff로 한 줄씩 되돌리겠지만 이미지는 그게 안 된다.
그래서 작업 전에 깨끗한 원본을 따로 뒀고, 세 번 다 거기로 돌아갔다.
체크섬도 같이 되돌려야 했다.
Revert sprite sheet and checksums to clean original backup
팩에 체크섬 파일이 있어서 이미지만 되돌리면 검증이 깨진다. 되돌릴 때 짝이 되는 파일을 같이 되돌려야 한다는 걸 두 번째 되돌림에서 알았다.
그래서 순서를 바꿨다
세 번째 되돌림 후에 접근을 바꿨다. 고치기 전에 검사부터 만들었다.
- 특정 색조로 치우친 픽셀이 몇 개인지 세는 검사
- 셀 경계에 닿은 불투명 픽셀이 있는지 보는 검사
- 프레임별 실루엣을 겹쳐 복제를 잡는 검사
- 전체 프레임을 한 장에 이어 붙인 검수 이미지
이걸 만들고 나니 흐름이 달라졌다.
이전: AI가 수정 → 내가 열어 봄 → 아니라고 함 → 반복
이후: AI가 수정 → 검사를 돌림 → 숫자가 나옴 → 통과하면 내가 봄
내가 보는 횟수가 줄었다. 명백히 틀린 것은 검사가 먼저 걸러 낸다. 내가 보는 건 검사를 통과한 것들뿐이다.
숫자가 나온다는 것도 컸다. “부스러기가 좀 남았어”보다 “경계에 닿은 픽셀 224개”가 훨씬 명확한 지시가 된다. 실제로 그 뒤 커밋에는 픽셀 수가 적혀 있다.
Fix window_top_sleepy_sit (f2) anchor matching and trim 224 bar wing pixels
처음부터 알 수 있었나
돌아보면 신호가 있었다.
첫 지시가 “적당히”였다. “막대를 투명하게”에는 어디까지가 막대인지, 접촉선을 남길지가 안 들어 있었다. 그게 결정되지 않은 채로 시작했다.
지금이라면 먼저 물었을 것이다. 캐릭터가 창 위에 서 있는 것처럼 보이려면 접촉선 1픽셀이 필요한가? 그건 나도 첫날에는 몰랐다. 지워 보고 나서 이상해서 알았다.
그러니 반복 자체가 낭비는 아니었다. 무엇을 원하는지 알아 가는 과정이었다. 문제는 그 과정을 원본을 훼손해 가며 했다는 것이다.
원본을 두고, 검사를 먼저 만들고, 그다음에 반복했으면 같은 횟수라도 훨씬 쌌다.
정리
- 픽셀 단위 수정은 AI가 자기 결과를 검증할 수 없다. 판정을 사람이 독점한다
- 판정을 사람이 독점하면 반복 횟수가 사람의 인내심에 묶인다
- 이미지는 부분 되돌리기가 안 된다. 작업 전 원본 백업이 필수다
- 되돌릴 때 체크섬처럼 짝이 되는 파일을 같이 되돌린다
- 고치기 전에 검사를 먼저 만든다. 명백한 실패를 사람 앞에서 걸러 낸다
- 검사가 숫자를 주면 지시도 정확해진다. “부스러기”보다 “224픽셀”
- 첫 지시가 “적당히”였다면 반복은 예정된 것이다. 반복하며 요구를 알아 가는 건 정상이지만, 원본을 훼손하며 할 일은 아니다
되돌림 세 번이 실패의 기록처럼 보이지만, 되돌릴 수 있었다는 게 그날 유일하게 잘한 일이었다.