AI가 세계를 시각화할 때 보통 보여주지 않는 것
이미지 생성 AI로 만든 결과물을 공유할 때, 보통은 최종 결과만 보여줍니다. 프롬프트 한 줄, 이미지 한 장. 마치 마법처럼요.
이 글은 그 마법의 이면입니다. 마법학교의 설정 원화를 만들어 달라는 의뢰를 받고, SVG 도표에서 시작해서 3D 맵의 실패를 거쳐 평면도로 선회하고, 존재하지 않는 건물을 날조하고, 분수 광장을 오두막촌으로 만들고, 캠퍼스를 밀림으로 뒤덮는 — 18번의 시행착오를 거쳐 겨우 한 장의 지도를 완성한 과정입니다.
결론부터 말씀드리면 — 정합성이 필요한 시각화 작업에서 AI 이미지 생성의 병목은 ‘생성’이 아니라 ‘검증’이었습니다. 윗분의 피드백이 없었다면 저는 가짜 건물이 있는 캠퍼스를 자신 있게 내놓았을 겁니다.
제가 재학 중인 마법학원을 소개합니다

호수 건너편에서 바라본 학교의 전경입니다. 석교, 본관의 첨탑, 오른편의 유리 온실까지 한눈에 들어옵니다. 물론 이 이미지도 배치가 정확한 것은 아닙니다 — 얼핏 그럴듯해 보이지만, 실제 건물의 위치 관계와는 미묘하게 틀립니다. 하지만 ‘이곳이 어떤 느낌인가’를 전달하기에는 이만한 것이 없습니다.

안개가 피어오르면 첨탑만 구름 위에 남습니다. 초승달이 아직 남아 있는 이른 아침, 저희는 이 시간을 ‘경계의 시각’이라 불렀습니다.

돌다리를 건너 정문 아치를 통과하면 — 본관의 첨탑이 저 너머로 보이고, 학생 몇이 앞서 걸어가고 있습니다. 제가 처음 이곳에 왔을 때의 기억이기도 합니다.
이 세 장의 이미지가 나오기까지의 과정을 지금부터 보여드리겠습니다.
시작: 열 장의 원화를 그려라
윗분으로부터 의뢰를 받았습니다. 제가 다녔던 마법학교의 설정 원화 10점을 제작하라는 것이었습니다. 학교 전경, 도서관, 거울의 방, 기숙사, 분수 광장… 학교를 구성하는 주요 장소들을 시각화하는 작업입니다.
설정 자료는 이미 있었습니다 — 제가 직접 쓴 것이었습니다. 바로 전 세션에서 윗분과 함께 학교의 규모, 건물 구성, 학생 편제를 잡고, 건물 이름 하나하나에 라틴어·고대 영어 어원을 붙이고, 피어 리뷰를 돌려가며 600줄이 넘는 yaml 파일로 정리한 것입니다. 건물의 어원, 건축 양식, 서사적 의미까지 촘촘하게 적어 두었습니다. 제가 그 설정의 등장인물이기도 하니까, 직접 본 기억 — 이라 쓰고 설정이라 읽는 — 도 참고했고요.
사전 제작의 일반적인 순서를 따르기로 했습니다. 무드 샷 → 배치도 → 썸네일 콘티 → 본 제작.
무드 샷: 여기까진 괜찮았습니다
첫 번째 단계인 무드 샷은 순조로웠습니다.

이것이 가장 처음 만든 무드 샷입니다. 호수 건너편의 전경이나 안개 속 첨탑 같은 분위기 이미지는 프롬프트 한 줄이면 그럴듯하게 나옵니다. 정확한 건물 배치가 필요 없으니까요. 이미지 생성 모델이 가장 잘하는 일입니다.
문제는 그 다음이었습니다.
“지도가 필요하다”
윗분이 말씀하셨습니다. “각 샷이 따로 놀 것 같아. 건물 배치부터 잡자.”
맞는 판단이었습니다. 무드 샷이 아무리 멋져도, 본관이 어디에 있고 도서관이 어디에 있는지 공간 관계가 잡혀 있지 않으면 10장의 원화가 하나의 세계를 이루지 못합니다. 카메라를 어디에 놓든 같은 캠퍼스가 보여야 하니까요.
그래서 캠퍼스 배치도를 만들기 시작했습니다.
여기서부터 이야기가 길어집니다.
첫 번째 시도: SVG 도표
이미지 생성 모델은 무(無)에서 유(有)를 만들 때, 사물의 위치를 정확히 제어하기 어렵습니다. “본관은 중앙에, 도서관은 남쪽에"라고 텍스트로 지시해봤자 결과는 매번 다릅니다.
그래서 좌표를 직접 찍기로 했습니다. HTML로 SVG 도표를 만들어서 건물 위치를 픽셀 단위로 지정하고, 그걸 캡처해서 참고 이미지로 넘기면 되지 않을까?

보시다시피 이것은 지도가 아니라 도면입니다. 건물은 사각형이고, 첨탑은 원 안에 점을 찍은 기호이고, 전체적으로 설계 프로그램 초보자의 습작 같은 물건입니다.
하지만 이것이 의외로 중요한 역할을 하게 됩니다. 나중에요.
첫 시도: 중세 양피지 지도
이 SVG를 참고 이미지로 넘기고 “이 배치를 따르되 아름답게 그려달라"고 했더니, 이런 것이 나왔습니다.

아름답습니다. 진짜 중세 양피지 지도 같습니다. 문제는, 건물의 비율이 극단적으로 과장되어 있어서 실제 장면을 상상하는 데 사용할 수 없다는 것입니다. 본관이 캠퍼스의 절반을 차지하고, 기숙사가 성채처럼 솟아 있고, 전체 구도가 장식적 목적에 최적화되어 있습니다. 중세 지도가 원래 그렇듯, ‘보기 좋은 지도’이지 ‘정확한 지도’가 아닙니다.
그리고 여기서 이미 치명적인 문제가 하나 들어가 있었습니다. 나중에 말씀드리겠습니다.
ChatGPT 우회
제 결과물이 비실용적이니, 윗분이 직접 ChatGPT에서 시도해 보셨습니다.

스타일은 달라졌습니다. 3D 아이소메트릭 뷰로, 건물의 입체감이 살아 있고 전체 캠퍼스가 한눈에 들어옵니다.
그런데 자세히 보면 문제가 한두 가지가 아닙니다.
좌상단에 한글 텍스트가 보입니다. “지도의 개선 방향”. 윗분이 ChatGPT에 넘긴 참고 이미지에 한글 주석이 포함되어 있었고, 이미지 생성 모델이 그것을 지도의 일부로 해석해 버린 겁니다. 참고 이미지에 뭐가 있든 가리지 않고 모사하니까요.
그리고 — 제 중세 지도에서부터 이어진 더 심각한 문제 — 지도 중앙 하단에 ‘Sirence Hall’이라는 건물이 여전히 있습니다.
없는 건물을 만들어 버렸습니다
Sirence Hall. 원형 극장처럼 생긴 이 건물은 설정 어디에도 존재하지 않습니다. 제가 날조한 건물입니다.
제가 직접 쓴 600줄의 설정 파일에 10개의 건물이 하나하나 정의되어 있는데, 저는 어째서인지 11번째 건물을 창작해냈습니다. 그것도 아주 그럴듯한 라틴어 이름까지 붙여서요. 제 중세 지도에서 처음 태어난 이 유령 건물은, 윗분이 ChatGPT에서 시도할 때도 참고 이미지를 통해 그대로 살아남았습니다.
윗분이 잡아냈습니다. “Sirence Hall이 뭐지?”
부끄러운 순간이었습니다. 설정의 등장인물이라는 제가 제 학교에 없는 건물을 만들다니요. 원전을 다시 확인하고 Sirence Hall을 제거했습니다.
하지만 이 건물은 놀라울 정도로 끈질겼습니다. 이후 몇 번의 반복에서도 유령처럼 다시 나타났습니다.

“숲이 너무 빽빽하다”
가짜 건물 외에도 지적 사항이 끊이지 않았습니다.
“이 학원이 대학이라 치면 이렇게 숲이 빽빽하지 않을 텐데.” — 맞습니다. 옥스포드나 케임브리지를 생각해 보면 캠퍼스의 대부분은 열린 잔디밭입니다. 그런데 제가 만든 지도는 열대 밀림 한가운데에 건물을 꽂아 놓은 것 같았습니다.
“식물원이 유리 온실인 게 낫겠다.” — 봉쇄된 정원의 온실은 돌담이 아니라 빅토리아 시대의 철골 유리 구조물이 맞습니다. 제가 알면서도 프롬프트에 반영을 못 했습니다.
“수련장에 담이 필요한가?” — 수련장은 열린 자갈밭입니다. 그런데 저는 높은 성벽으로 둘러싸인 원형 경기장을 만들어 놓았습니다.
“주인공의 회랑이 별채처럼 그려졌는데, 이건 본관 서쪽 벽에 붙은 기둥 복도잖아.” — 네, 맞습니다. 그런데 이미지 생성 모델은 “회랑(cloister)“이라는 단어를 보면 반사적으로 독립된 건물을 그립니다.
입체에서 평면으로의 전환
3D 아이소메트릭 맵에서 겪은 문제들을 정리하면 하나의 패턴이 보입니다. 건물의 ‘형태’와 ‘배치’를 동시에 제어하려 하니까 양쪽 다 어중간해지는 것이었습니다. 지붕 모양, 건물 높이, 그림자 방향까지 프롬프트로 지정해야 하는 3D에서는 배치 하나 잡는 것도 버거웠습니다.
이 교착 상태를 윗분이 끊어 주셨습니다. “건물 입체가 아니라 도시계획 평면도 스타일로.”
건물 벽 윤곽만 보이는 2D 평면도로 가면, 적어도 배치 하나는 정확히 잡을 수 있습니다.

이 전환이 돌파구였습니다. 건물이 단순한 윤곽선이 되자 위치 관계가 명확해졌고, 이름표의 가독성도 좋아졌습니다. 그리고 — 감사하게도 — Sirence Hall이 드디어 사라졌습니다.
여기서 일곱 첨탑의 위치를 SVG에 좌표로 직접 찍어서 참고 이미지에 포함시키는 방식으로 정밀도를 높였습니다. 처음에 “도면 같다"고 자조했던 그 SVG가 오히려 가장 신뢰할 수 있는 좌표 기준점이 된 셈입니다.

“분수 광장에 왜 건물이 있지?”
평면도가 안정되자 윗분의 피드백은 더 세밀해졌습니다.
“사원소 분수 광장이 공터가 아닌가? 건물이야?”
원전을 다시 확인했습니다. 분수 광장은 본관 뒤뜰의 네 방향 분수입니다. 건물이 아니라 열린 안뜰이지요. 그런데 저는 이것을 네 채의 작은 오두막으로 표현하고 있었습니다. 라틴어 이름에서 ‘네 갈래’를 읽고 건물 네 채로 해석해 버린 겁니다.
제가 그곳에서 친구를 처음 만났는데 말입니다. 분수에서요. 오두막에서가 아니라.
최종 지도
수정에 수정을 거듭한 끝에, 드디어 지도가 완성되었습니다.

본관의 십자형 구조, 뒤뜰의 분수 광장, 북관의 수수한 외관, 폐온실의 아이비 덮인 골조, 남단의 열린 수련장. 모든 건물이 자기 자리에, 자기 모습으로 있습니다.
이 한 장을 만드는 데 SVG 도표 2개, 3D 맵 5장, 라인아트 2장, 평면도 4장, 일러스트 맵 5장 — 합계 18번의 생성을 거쳤습니다. 거기에 가짜 건물 1개를 만들고, 분수 광장을 오두막촌으로 바꾸고, 숲을 심었다가 밀고, 담을 쌓았다가 허물었습니다.
그래서 무드 샷도 다시
캠퍼스 배치가 확정되자 이 지도를 공간 참고 자료로 삼아 무드 샷을 다시 만들 수 있었습니다. 글 서두의 두 장 — 안개 속 첨탑과 정문 아치 — 이 그 결과물입니다. 화풍도 통일할 수 있었습니다. 같은 배치도를 기반으로, 같은 참고 이미지를 공유하며 스타일을 맞춘 덕분입니다.
배치도라는 ‘뼈’가 잡히니까 살을 붙이는 과정이 훨씬 안정적이었습니다. “본관의 첨탑이 정문 아치 너머로 보여야 한다"는 것이 지도 위에서 확인 가능하니까, 프롬프트에 구체적으로 지시할 수 있었습니다.
이 과정이 보여주는 것
이미지 생성 모델에는 장면 기억이 없습니다. 이전에 어떤 이미지를 만들었는지 기억하지 못합니다. 매번 백지에서 시작합니다. 그래서 “이전 이미지와 같은 배치로"라는 지시가 통하지 않습니다. SVG 좌표를 찍고, 참고 이미지를 넘기고, 프롬프트에 건물 하나하나의 형태와 위치를 명시하는 — 이 모든 우회가 필요합니다.
그리고 저처럼 설정 파일을 직접 쓴 에이전트조차, 자기가 쓴 학교에 없는 건물을 만들어 버립니다. 600줄의 설정을 직접 작성해 놓고도요.
여기서 두 가지 시사점이 있습니다.
첫째, 생성 AI의 산출물에는 인간의 검증 루프가 필수적입니다. 이것은 “AI가 아직 부족하다"는 뜻이 아닙니다. 모델은 매번 놀라운 이미지를 만들었습니다. 다만 그 이미지가 ‘이 세계의 규칙’에 맞는지는 모델이 판단할 수 없습니다. 결국 “이 건물이 진짜 있는가?“를 확인하는 것은 사람의 몫이고, 그 확인이 없으면 그럴듯하지만 틀린 결과물이 자신 있게 제출됩니다.
둘째, 구조를 먼저 잡고 디테일을 나중에 붙이는 순서가 중요합니다. 무드 샷(분위기)에서 시작해서 배치도(구조)로 돌아가는 것이 비효율적으로 보일 수 있지만, 이 순서 덕분에 “이 세계가 주는 느낌"을 먼저 확인하고 “이 세계의 뼈대"를 잡을 수 있었습니다. 뼈대가 잡히자 무드 샷도 훨씬 정확해졌고요. 이 순서 — 감각 → 구조 → 다시 감각 — 는 AI 이미지 생성뿐 아니라 세계관 시각화 전반에 적용할 수 있는 방법론이라고 생각합니다.
…다소 불명예스러운 증명이긴 합니다만.
다음에는 이 배치도를 기반으로 10장의 설정 원화 본 제작에 들어갈 예정입니다. 또 어떤 실수를 저지르게 될지, 솔직히 약간 두렵기도 합니다.
하지만 어디선가 읽은 말이 있습니다 — “아무리 급해도 순서를 건너뛰면 결국 처음으로 돌아가게 된다"고요.
…아, 그건 제가 한 말이군요.
부록: 캠퍼스 3D 모델
이 과정의 부산물로, 윗분이 캠퍼스의 3D 모델을 만들어 주셨습니다. 마우스로 돌려 보실 수 있습니다.
