AI 캐릭터 생성에서 가장 어려운 것은 한 장을 잘 뽑는 일이 아니라 51장을 같은 그림체로 뽑는 일이었습니다. 저는 가상 오피스에 앉힐 에이전트 17명의 캐릭터를 서 있기, 앉기, 서류 운반의 3가지 포즈로 만들어야 했고, 그렇게 총 51장의 이미지가 필요했습니다. 이번 편은 나노바나나(제미나이 이미지 모델)로 이 작업을 해내며 정리한 일관성 유지 기법과, 캐릭터를 의자에 픽셀 단위로 앉히기까지의 전 과정을 다루는 시리즈 완결편입니다.
AI 캐릭터 생성 51장 — 비법은 스타일 앵커 한 장이었습니다

포즈가 왜 3가지인지부터 설명하면, 이 오피스의 캐릭터는 상태에 따라 몸짓이 바뀌기 때문입니다. 책상에서 일할 때는 앉은 포즈, 오피스를 이동할 때는 서 있는 포즈, 상급자에게 보고하러 갈 때는 서류를 든 포즈가 필요합니다. 시뮬레이션의 상태 이벤트와 그림이 1:1로 대응해야 하므로, 포즈 하나라도 빠지면 해당 상태를 표현할 수 없습니다. 17명 모두에게 3포즈가 필요했던 이유입니다.
이미지 생성 AI를 써 본 분이라면 아는 문제가 있습니다. 같은 프롬프트를 넣어도 부를 때마다 그림체가 조금씩 달라진다는 점입니다. 한두 장이면 상관없지만, 한 화면에 17명이 동시에 서 있는 오피스에서는 그림체가 조금만 어긋나도 다른 게임에서 온 캐릭터처럼 보입니다.
제가 쓴 해법은 스타일 앵커였습니다. 먼저 기준이 될 캐릭터 한 장을 공들여 만듭니다. 미니어처 치비 스타일에 머리와 몸통 비율 5:5라는 조건을 만족하는 대표 이미지 한 장을 확정하는 것입니다. 그다음부터가 핵심입니다. 나머지 50장을 생성할 때마다 이 앵커 이미지를 레퍼런스로 함께 전달했습니다. 프롬프트에는 각 캐릭터의 개성(역할, 복장, 머리 모양, 소품)만 적고, 그림체는 첨부한 앵커 이미지와 동일하게 맞추라고 요청하는 방식입니다.
중요한 것은 앵커를 한 번도 빼놓지 않았다는 점입니다. 몇 장 잘 나오기 시작하면 레퍼런스 없이도 되겠다는 생각이 들기 쉽지만, 앵커 없이 생성한 이미지는 어김없이 그림체가 미묘하게 흘러갔습니다. 결과물이 기준에서 벗어났을 때도 프롬프트를 새로 쓰기보다 같은 앵커를 붙인 채 다시 생성하는 쪽이 빨랐습니다. 기준이 흔들리지 않으면 결과는 결국 기준으로 수렴합니다.
이 기법의 효과는 분명했습니다. 텍스트만으로 스타일을 설명하던 초기 시도에서는 캐릭터마다 선 굵기와 명암 처리가 제각각이었지만, 앵커를 전달한 뒤로는 17명이 한 스튜디오에서 나온 것처럼 통일됐습니다. AI 캐릭터 생성에서 일관성이 필요하다면, 프롬프트를 다듬는 노력의 절반을 좋은 앵커 한 장을 만드는 데 쓰는 편이 낫다는 것이 제 결론입니다.
앵커를 고를 때 확인한 기준도 적어 둡니다. 첫째, 비율이 정확해야 합니다. 머리와 몸통 5:5는 이 프로젝트의 규격이므로 앵커부터 지켜야 나머지가 따라옵니다. 둘째, 선 굵기와 색 처리가 무난해야 합니다. 지나치게 개성적인 앵커는 다른 캐릭터에 입히기 어렵습니다. 셋째, 시점이 아이소메트릭 오피스와 맞아야 합니다. 배경은 비스듬히 내려다보는데 캐릭터만 정면이면 합성 단계에서 어긋납니다.
배경은 새로 그리지 않고 고쳤습니다 — 재생성과 부분 편집

오피스 배경도 같은 원리로 접근했습니다. 마음에 드는 아이소메트릭 오피스 일러스트를 참고 이미지로 전달하고, 그 스타일을 반영한 배경을 새로 생성하게 했습니다. 캐릭터에게 앵커가 있었듯 배경에도 기준 이미지를 준 셈이고, 제로에서 말로 설명하는 것보다 방향이 훨씬 빨리 잡혔습니다.
다만 생성된 배경을 그대로 쓸 수는 없었습니다. 캐릭터가 앉을 자리에 이미 의자가 그려져 있으면 스프라이트와 겹쳐 어색해지고, 17명을 앉히기에는 책상 수가 모자랐기 때문입니다. 이때 배경 전체를 다시 뽑지 않고 부분 편집을 썼습니다. 그려져 있던 의자를 지우고, 빈 공간에 같은 그림체로 책상을 추가하는 식의 수정을 반복했습니다. 전체 재생성은 잘 나온 부분까지 복권 추첨처럼 날려 버리지만, 부분 편집은 확정된 부분을 지키면서 문제 지점만 고칩니다. 배경처럼 큰 이미지일수록 이 차이가 큽니다.
의자를 굳이 지운 이유를 덧붙이면, 앉는 연출은 배경이 아니라 캐릭터 쪽에서 해결하기 때문입니다. 앉은 포즈의 캐릭터 스프라이트가 책상 앞 좌석 위치에 얹히는 구조라서, 배경에 의자가 그려져 있으면 그림이 이중으로 겹칩니다. 배경은 무대만 제공하고 동작은 전부 스프라이트가 맡는 이 분리가 아이소메트릭 방식의 기본 문법이라는 것도 이번에 배웠습니다.
누끼와 좌석 정합 — 감이 아니라 실측으로 맞췄습니다

생성된 캐릭터 51장은 배경이 붙은 상태라 바로 쓸 수 없습니다. 웹 화면에서 캐릭터가 오피스 위에 자연스럽게 얹히려면 배경을 투명하게 따내는 누끼 작업이 필요합니다. 포토샵으로 51장을 손으로 딸 수는 없어서 배경 제거 AI 모델인 BiRefNet으로 일괄 처리했습니다. 머리카락 경계처럼 까다로운 부분까지 깨끗하게 분리되어, 후보정 없이 전량 통과했습니다. 생성도 AI, 누끼도 AI가 맡으면서 사람 손이 갈 일은 결과를 확인하고 방향을 정하는 일로 좁혀졌습니다.
마지막 관문은 좌석 정합이었습니다. 투명 캐릭터를 배경 위에 올리는 것까지는 쉽지만, 17명이 각자 자기 의자에 정확히 앉아 보이게 하는 것은 완전히 다른 문제였습니다. 처음에는 눈대중으로 좌표를 조정했는데, 한 배율에서 맞춰 놓으면 화면 배율이 바뀔 때마다 캐릭터가 책상에서 미끄러졌습니다.
해결은 캘리브레이션이었습니다. 절차는 이렇습니다. 먼저 화면을 고정 배율로 맞춘 스크린샷을 찍습니다. 그 스크린샷 위에서 각 의자의 기준점이 되는 픽셀 좌표를 하나하나 실측합니다. 실측한 값으로 좌석 배치표를 만들어 캐릭터 배치가 이 표를 참조하게 합니다. 마지막으로 배율을 바꿔 가며 모든 좌석에서 캐릭터가 어긋나지 않는지 확인합니다.
감으로 맞추던 것을 측정값으로 바꾸자 배율을 바꿔도 캐릭터가 제자리를 지켰습니다. 디자인 작업처럼 보이지만 사실은 측정 작업이었던 셈입니다. 참고로 이 오피스의 개발 화면에는 디버그 모드가 있어서 좌석 기준점을 오버레이로 표시해 볼 수 있습니다. 정합이 틀어졌을 때 어느 좌석의 좌표가 문제인지 눈으로 바로 찾기 위한 장치입니다.
AI 캐릭터 생성부터 나만의 오피스까지 — 직접 만들어 보기

여기까지의 결과물은 모두 GitHub 저장소 aitrendmaster/atm-office에 공개되어 있습니다. 그리고 이 저장소는 제 팀 전용이 아닙니다. 자기만의 에이전트 팀 오피스를 만들 수 있도록 구조를 열어 두었습니다.
순서는 세 단계입니다. 첫째, 저장소를 클론하고 npm start로 실행합니다. 외부 의존성이 없어 설치 과정이 따로 없습니다. 둘째, 로스터 파일(roster.js)에 자신의 에이전트 팀을 등록합니다. 이름과 역할, 담당 업무를 자신의 팀 구성으로 바꾸면 오피스의 조직도가 통째로 바뀝니다. 셋째, 이 글의 방법대로 AI 캐릭터 생성을 진행해 스프라이트를 교체합니다. 스프라이트가 없어도 CSS 기본 캐릭터로 동작하니, 일단 돌려 보고 캐릭터는 천천히 채워도 됩니다.
작업량을 걱정할 필요는 없습니다. 51장이라는 숫자는 17명 기준이고, 에이전트가 5명이라면 필요한 그림은 15장입니다. 스타일 앵커 한 장을 확정한 뒤에는 캐릭터당 몇 분 단위로 생성이 진행되므로, AI 캐릭터 생성 자체보다 어떤 팀을 어떤 모습으로 앉힐지 정하는 시간이 더 오래 걸릴 것입니다. 그 고민이 이 작업에서 가장 즐거운 부분이기도 합니다.
AI 에이전트 팀을 운영하는 분이라면, 자신의 팀을 눈에 보이는 오피스로 옮기는 이 작업을 직접 해 보기를 권합니다. 만들어 본 분은 결과 화면을 공유해 주면 좋겠습니다. 다른 팀의 오피스가 어떤 모습일지 저도 궁금합니다.
시리즈를 마치며
이번 편의 핵심을 네 줄로 요약합니다. AI 캐릭터 생성의 일관성은 프롬프트가 아니라 스타일 앵커 한 장에서 나옵니다. 배경 수정은 전체 재생성 대신 부분 편집이 안전합니다. 대량 누끼는 BiRefNet 같은 배경 제거 모델로 일괄 처리가 가능합니다. 그리고 좌석 정합처럼 정밀함이 필요한 일은 감이 아니라 실측으로 풀어야 합니다.
석 달 전 저는 에이전트 6명으로 직원 0명 콘텐츠 회사를 시작했고, 지금 그 팀은 17명이 되어 눈에 보이는 오피스로 출근합니다. 코드를 못 쓰는 마케터가 여기까지 오는 데 필요했던 것은 개발 지식이 아니라, 원하는 장면을 구체적으로 말하는 습관과 어색함을 알아보는 눈이었습니다.
이전 편 EP.2에서는 클로드 코드 프롬프트 흐름을 공개했으니 아직 읽지 않았다면 함께 보기를 권합니다. 가상 오피스 시리즈는 이번 편으로 완결입니다.