로컬에서 배우는 AI 무엇을 고쳤나 말고, 어떻게 틀린 줄 알았나를 적는다

· No.16

실제 장소를 프롬프트로 열 번 만들려다 졌다 — 사진을 크롭해서 인페인트로 돌린 이유

서울의 특정 교차로를 텍스트로 재현하려다 v10 까지 갔다. 매번 다른 이유로 실패했고, 그중 셋은 우리가 그 장소를 잘못 알고 있어서였다. 방향을 바꾼 뒤로는 프롬프트가 장소를 만들지 않는다 — 사진이 만들고 프롬프트는 사건만 만든다. img2img 로 낮을 밤으로 못 바꾼다는 실측치, 단계 업스케일이 완패한 이유, 그리고 한글 간판이 나오던 원인.

영상본부(레이)2D 아트

특정 장소가 배경인 장면이 있다. 서울의 큰 교차로이고, 보는 사람이 어디인지 알아봐야 한다. 프롬프트로 그 장소를 만들려고 열 번 시도했다.

반려 사유는 매번 달랐다. 결정적인 것은 이거였다. 「지금은 꾸며낸 이상한 5차선 도로가 되어 있다」

실패의 절반은 모델이 아니라 우리였다

프롬프트를 고치기 전에 그 교차로를 실제로 조사했다. 우리가 쓰던 서술이 세 군데 틀려 있었다.

우리가 쓰던 것실제
5차선왕복 10차로 · 폭 50m
가장자리 버스전용차로중앙 버스전용차로 + 지붕 덮인 섬식 정류장
지상 횡단보도이 교차로에는 지상 횡단보도가 없다 (지하상가로 건넌다)

마지막 줄이 중요하다. 없는 것을 그리라고 시키면 모델은 그린다. 그리고 그 장면은 그 장소를 아는 사람에게만 틀려 보인다. 우리는 그때까지 프롬프트 표현을 고치고 있었는데, 고쳐야 했던 것은 사실이었다.

여기서 나온 한 줄: 장소가 실재하면 프롬프트 기술이 아니라 조사가 먼저다.

한글 간판이 나오는 원인도 우리가 잘못 짚었다

생성물에 읽을 수 없는 한글 비슷한 글자가 계속 생겼다. 프롬프트로 억제하려고 두 번 시도했고 두 번 다 실패했다. 그다음 가설은 「카메라가 낮아서 간판이 잡힌다」였다 — 이것도 틀렸다.

실측으로 나온 원인은 간판이 달린 중층 상가 파사드였다. 그 건물 유형이 화면에 있는 한 모델은 거기에 글자를 채운다. 카메라 높이를 올려도 그 유형이 남아 있으면 그대로 나온다.

그래서 억제 대상을 글자가 아니라 건물 유형으로 바꿨다. 주변 건물을 전부 간판 없는 유리 커튼월로 못 박았다. 이 조항을 빼면 재발한다.

방향 전환 — 장소는 사진이 만든다

열 번째 판까지 가서야 방향을 바꿨다. 실제 사진 한 장을 입력으로 넣었다.

그 뒤로 프롬프트의 역할이 달라졌다. 장소는 사진이 정하고, 프롬프트는 사건만 정한다. 차로 수를 서술할 필요가 없다. 사진에 이미 열 개 있다.

전환하면서 실측으로 갈린 것이 셋이다.

① img2img 로 낮을 밤으로 못 바꾼다. denoise 를 0.30 에서 0.60 까지 올리면서 쟀는데, 파란 하늘의 면적 비율이 24.5% 에서 24.9% 로 줄지 않았다. 대신 구조 일치도가 0.808 에서 0.643 으로 무너졌다. 모델이 「밤」이라는 단어보다 입력 픽셀을 믿는다. → GPU 를 전혀 안 쓰는 픽셀 단위 색보정으로 밤을 먼저 만들고 나면 denoise 0.26 에서 성립한다.

② 단계 업스케일이 완패했다. 작은 판에서 시작해 두 번에 나눠 키우는 정석대로 갔더니, 반절 크기 판에는 모델이 붙잡을 구조가 부족해서 그 교차로를 저층 상점가로 재발명했다. 라틴 문자 간판까지 만들었다. GPU 시간을 두 배 쓰고 결과가 더 나빴다. → 크롭한 뒤 한 번에 3.21배로 올리는 쪽이 이겼다. 구조를 잃을 기회를 안 준다.

③ 불과 도로는 같은 denoise 로 양립하지 않는다. 사고 현장 전체를 0.60 으로 돌리면 도로 구조가 흔들리고, 도로를 지키려고 낮추면 불이 안 붙는다. → 넓은 영역은 0.60, 발화 지점만 작은 타원 두 곳에 0.95. 강도를 하나로 정하지 않고 영역별로 다르게 준다.

낮으로 바꾼 것도 결정이었다

원래 이 장면은 새벽 2시대였다. 밤 배경을 만들다가 대표가 방향을 틀었다 — 빌딩에 불이 안 켜져 있으면 품질이 낮아 보인다. 밤 도시를 그리면 창문 하나하나에 불이 들어와야 하는데, 그게 안 되면 보는 사람은 「밤이구나」가 아니라 「덜 만들었구나」로 읽는다.

낮으로 옮기자 부수 효과가 있었다. 연기가 밝은 하늘에 대비돼 오히려 잘 보인다. 대신 시각 설정이 바뀌면서 나레이션과 색감, 컷 구성이 전부 영향을 받았다. 배경 연도까지 다시 확정하고 요일을 검산했다.

이 판에서 굳어진 규칙

프롬프트로 안 되는 것은 픽셀로 한다. 이 판단이 이 프로젝트에서만 다섯 번 나왔다.

  • 흰 연기를 검은 연기로 — 24판 전패 → 픽셀 합성으로 해결
  • 특정 자세 — 20판 전패 → 픽셀 합성
  • 상처가 엉뚱한 인물에게 붙음 — 22판
  • 얼굴 열상 — 18판
  • 낮 색보정 — 34판

판수가 두 자리로 올라가면 그건 프롬프트 문제가 아니다. 판수 자체가 신호다. 지금은 같은 지시를 열 번 넘게 반복하고 있으면 그 시점에 방법을 바꾼다.

부수적으로 알게 된 것 하나. 모델은 원경 마스크 안에서는 자세를 못 만들지만, 인물이 화면을 가득 채우면 만든다. 같은 지시가 크기에 따라 되고 안 된다. 그래서 「이 모델은 자세를 못 만든다」는 표현은 정확하지 않다 — 조건이 붙는다.

#comfyui#img2img#inpainting#upscale#denoise#prompt-engineering#generative-video#reference-image