
LLM과 픽셀 아트에 대한 나의 생각이 틀렸음을 깨달은 발견
요약
확산 모델(Diffusion Models) 대신 HTML 출력을 활용한 LLM이 픽셀 아트 타일셋 생성에서 더 뛰어난 성능을 보인다는 발견을 공유합니다. LLM은 구조적 이해를 바탕으로 색상 일관성과 타일링 가능한 가장자리를 완벽하게 구현하며, 픽셀 퍼펙트한 결과물을 제공합니다.
핵심 포인트
- 확산 모델은 타일 간 색상 불일치와 정렬 문제를 겪음
- LLM은 HTML을 통해 픽셀 단위의 정밀한 제어 가능
- LLM의 의미론적 이해가 타일셋의 일관성을 유지함
- GPT-4o, Claude Sonnet, Gemini Flash 모두 유사한 성능 확인
AI 픽셀 아트를 생성하는 모든 사람은 확산 모델 (Diffusion Models)을 사용합니다: LoRA를 활용한 Stable Diffusion, Midjourney, Scenario.com, Triko.ai 등이 있습니다. 저 또한 그랬습니다. 그리고 결과는 항상 같았습니다: 개별 스프라이트 (Sprites)는 아름답지만, 타일셋 (Tilesets)은 완전히 망가져 있었습니다. 타일 간에 일치하지 않는 색상, 정렬되지 않는 가장자리, 시트 전체에 걸친 팔레트 드리프트 (Palette drift). 수 시간 동안의 수동 수정 작업이 필요했습니다.
그러다 저는 작동해서는 안 될 무언가를 우연히 발견했습니다: HTML 출력을 통해 픽셀 아트를 생성하는 대규모 언어 모델 (LLMs)입니다.
이것은 작동해서는 안 됩니다. LLM은 텍스트 모델입니다. 그들은 이미지를 "보지" 못합니다. 그들은 토큰 (Tokens)을 예측할 뿐입니다. GPT-4o에게 32x32 크기의 돌벽을 픽셀 단위로 그려달라고 요청하면 쓰레기 같은 결과물이 나와야 합니다.
하지만 그렇지 않았습니다.
제가 생성한 이미지는 완벽한 SF 산업용 타일셋입니다. 20개 이상의 타일. 일관된 팔레트. 타일링 가능한 가장자리. 테마별 변형 (벽, 바닥, 파이프, 제어 패널, 잔해, 깨진 유리). 단 한 번의 시도(Single shot)로 생성되었습니다. GPT-4o가 HTML을 통해 생성했습니다.
저는 동일한 프롬프트를 Claude Sonnet 4.6과 Gemini Flash에서도 테스트했습니다. 동일한 품질. 동일한 일관성. 세 가지 서로 다른 모델 아키텍처 (Model architectures)에서 동일한 결과가 나왔습니다. 이것은 GPT 전용 기술이 아니라, 아무도 사용하지 않는 듯한 현대 LLM의 능력입니다.
픽셀 아트에 있어 확산 모델 (Diffusion)의 문제점
확산 모델은 자연 이미지 (Natural images)를 기반으로 학습됩니다. 픽셀 아트 LoRA를 사용하더라도, 이들은:
- 그리드 정렬을 준수하지 않음 (픽셀이 흐릿해지거나 안티앨리어싱 (anti-aliasing)이 침투함)
- 시트 내 여러 타일 간의 팔레트 일관성 (palette consistency)을 유지하지 못함
- 타일링 가능한 가장자리 (tileable edges)를 만들 수 없음: 각 타일이 개별적으로 생성됨
- 의도적인 픽셀 배치 (deliberate pixel placement)가 적용된 진짜 픽셀 아트가 아닌, "픽셀 같은" (pixel-ish) 아트를 생성함
Scenario.com과 Triko.ai는 맞춤형으로 학습된 확산 모델 (diffusion models)과 미세 조정된 LoRA를 사용하여 이 문제를 해결합니다. 이들은 월 20~30달러를 청구합니다. 결과물은 훌륭합니다. 하지만 이 방식은 학습 데이터, GPU 인프라, 그리고 ML 엔지니어 팀을 필요로 합니다.
LLM이 다르게 수행하는 방식
HTML을 통해 픽셀 아트를 생성하도록 LLM에 요청하면 흥미로운 일이 발생합니다:
- LLM은 구조를 의미론적 (semantically)으로 이해합니다. LLM은 개념적으로 "벽 모서리"가 어떻게 생겼는지 알고 있습니다. "타일링 가능함 (tileable)"이 무엇을 의미하는지 압니다. "팔레트 일관성 (palette consistency)"이 무엇을 의미하는지도 압니다. 확산 모델은 이를 알지 못하며, 오직 픽셀 패턴만을 알고 있습니다.
- LLM은 전체 타일셋 (tileset)을 계획합니다. 테마가 있는 타일 20개를 요청하면, LLM은 이를 20개의 독립적인 스프라이트 (sprites)가 아닌 하나의 일관된 세트로 생성합니다. 팔레트가 공유됩니다. 스타일이 공유됩니다. 가장자리가 정렬됩니다.
- HTML 테이블/div는 픽셀 퍼펙트 (pixel-perfect) 출력을 강제합니다. 각 셀은 정확히 1픽셀입니다. 안티앨리어싱 (anti-aliasing)도, 흐릿함도 없습니다. 진짜 픽셀 아트입니다.
- LLM은 제약 사항을 따릅니다. "최대 8가지 색상 사용", "32x32 타일", "공상과학 산업 테마"와 같은 명령들이 모두 준수됩니다. 확산 모델은 이러한 엄격한 제약 사항을 지키는 데 어려움을 겪습니다.
프롬프트 (네, 공유하겠습니다)
이것은 특별한 비법이 아니라, 그저 구조화된 프롬프트 엔지니어링 (prompt engineering)일 뿐입니다. 제가 사용한 정확한 프롬프트는 다음과 같습니다:
방을 만들고 그 외 모든 것을 위한 타일셋이 포함된 PNG를 얻어야 합니다. 타일 크기: 32x32 픽셀.
1단계: 웹에서 타일셋을 만드는 방법을 검색하세요. 2단계: 모든 타일이 각각 32x32 크기이며 테마별로 정리되어, Godot로 가져올 수 있는 커다란 PNG를 생성하는 HTML 코드를 작성하세요.
예외 없이 반드시 생성해야 하는 타일 목록입니다. 최대한 주의를 기울여 주세요. 동일한 스타일을 유지해야 합니다. 공상과학 / 산업 / 실험실 테마입니다. 이를 생성하기 위한 HTML 코드를 작성하세요:
- 전환용 조각 (Transition Pieces, 오토타일링용)
- 90° 내부 모서리 (오목한 형태)
- 벽면 종단 (끝단 조각)
- T-접합점 (T-junctions)
- 깊이 및 다양성 타일 (배경용)
- 환기구 덕트 블록
- 노출된 배선 블록
- 제어 패널 / 터미널 블록
- 게임플레이 메커니즘 타일
- 부스터 블록 (경사진 추진기 포함)
- 운동 에너지 배터리 하우징 (Kinetic battery housing)
- 부분적으로 열린 격벽 (Bulkhead)
- 플라즈마 배럴 지지 프레임
- 장식 요소
- 산업용 잔해 블록
- 깨진 유리 변형
- 마모 변형 (텍스처 노후화)
- 심한 녹이 슨 벽면 변형
전체적으로 동일한 스타일과 팔레트를 유지하세요.
이것이 중요한 이유
만약 당신이 인디 개발자라면:
-
8시간 동안 그리는 대신 2분 만에 완전한 타일셋을 생성할 수 있습니다.
-
비용은 0달러입니다. 무료 티어 API 액세스(GPT-4o, Claude, Gemini 모두 무료 티어를 제공함)를 통해 가능합니다.
-
품질이 전문적입니다. : 저는 이것들을 픽셀 아티스트들에게 보여주었으나, 그들은 이것이 AI로 생성되었다는 것을 알아채지 못했습니다.
-
타일링 가능성(Tileability)이 내장되어 있습니다. : LLM이 시트 전체를 계획하기 때문에 가장자리가 완벽하게 일치합니다.
만약 당신이 AI 연구자라면:
-
이것은 아직 충분히 탐구되지 않은 LLM의 능력입니다. 이미지 생성 커뮤니티는 확산 모델 (Diffusion)에 집착하고 있습니다. 픽셀 아트 생성기로서의 LLM은 다른 패러다임입니다.
-
모델 제품군 전반에 걸쳐 작동합니다. GPT-4o, Claude, Gemini, GLM-4.6 — 모두 유사한 품질을 생산합니다. 이는 이것이 특정 모델의 기벽이 아니라, 대규모 언어 모델 (LLM)의 창발적 능력 (Emergent capability)임을 시사합니다.
-
제약 조건 준수 (Constraint-following)가 핵심입니다. 엄격한 제약 조건 (팔레트, 그리드, 타일 크기)은 LLM이 확산 모델을 능가하는 지점입니다.
직접 시도해 보세요
-
ChatGPT, Claude, 또는 Gemini (웹 접속이 가능한 최신 LLM)를 엽니다.
-
위의 프롬프트를 붙여넣습니다.
-
테마를 원하는 것으로 바꿉니다 (판타지 던전, 사이버펑크 도시, 중세 마을 등).
-
HTML 출력을 얻습니다.
-
브라우저에서 렌더링하여 스크린샷을 찍거나, html2canvas를 사용하여 PNG로 내보냅니다.
-
Godot/Unity/GameMaker에 타일셋 (tileset)으로 가져옵니다.
총 소요 시간: 5분. 총 비용: $0.
열린 질문들 (Open Questions)
저는 모든 정답을 알고 있지는 않습니다. 아직 완전히 확신하지 못하는 몇 가지 사항들이 있습니다:
-
애니메이션 프레임 (Animation frames): LLM이 걷기/대기/공격 사이클이 포함된 일관된 스프라이트 시트 (sprite sheets)를 생성할 수 있을까요? 아니요.
-
더 큰 타일 크기: 64x64나 128x128에서도 작동할까요? 네.
-
스타일 전이 (Style transfer): LLM에 참조 이미지를 주고 스타일을 맞춰달라고 요청할 수 있을까요? 네.
-
캐릭터 스프라이트 (Character sprites): 이것이 캐릭터에도 작동할까요, 아니면 환경 타일에만 작동할까요? 환경(environment)에 더 잘 작동합니다.
직접 실험해 보시고 결과를 공유해 주세요. 커뮤니티에서 무엇을 발견할지 궁금합니다.
더 큰 그림 (The Bigger Picture)
우리는 AI 아트에 대한 확산 모델 (diffusion models)에 너무 집중한 나머지, LLM이 할 수 있는 일을 놓치고 있었습니다. LLM은 단순한 텍스트 생성기가 아닙니다. 이들은 구조화된 출력 생성기 (structured output generators)입니다. 그리고 픽셀 아트는 근본적으로 구조화된 출력입니다. 즉, 의미론적 의미를 가진 색상 셀들의 그리드 (grid)입니다.
어쩌면 AI 픽셀 아트의 미래는 더 나은 확산 모델이 아닐지도 모릅니다. 어쩌면 더 나은 프롬프트 (prompts)일지도 모릅니다.
저는 인디 게임 개발 커뮤니티가 무료의 고품질 에셋 생성 기능을 누릴 자격이 있다고 생각하기 때문에 이 내용을 공개적으로 공유합니다. 이 내용이 유용했다면, 더 많은 AI 실험을 위해 https://x.com/Ai_horizontis에서 저를 팔로우해 주세요. 탐구하면서 발견하는 더 많은 내용들을 게시하겠습니다.
AI 자동 생성 콘텐츠
본 콘텐츠는 Dev.to AI tag의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기