미드저니 캐릭터 컨셉아트 케이스 스터디: 인디 게임 스튜디오가 200개 에셋의 일관성을 유지한 워크플로우

프로젝트 개요: 인디 스튜디오 '픽셀드래곤'의 도전

5인 규모의 인디 게임 스튜디오 '픽셀드래곤'은 판타지 RPG 타이틀 개발 과정에서 200개 이상의 캐릭터 컨셉아트 에셋을 제작해야 했습니다. 제한된 예산과 인력으로 전통적인 외주 방식 대신 Midjourney를 핵심 파이프라인에 도입하여, 스타일 일관성 유지대량 생산 효율성이라는 두 가지 목표를 동시에 달성한 실제 사례를 분석합니다.

1단계: 스타일 레퍼런스(Style Reference) 기반 구축

일관된 아트 스타일을 확보하기 위해 가장 먼저 수행한 작업은 '마스터 스타일 시트'를 Midjourney에 학습시키는 것이었습니다.

마스터 스타일 이미지 생성

/imagine prompt: fantasy RPG character concept art, cel-shaded style, warm color palette, thick outlines, soft ambient lighting, painterly texture, full body standing pose --ar 2:3 --style raw --v 6.1

생성된 결과물 중 가장 프로젝트 방향에 부합하는 이미지를 선정하여 스타일 레퍼런스로 사용합니다.

스타일 레퍼런스 적용 (--sref)

/imagine prompt: elven archer female character, leather armor, green cloak, quiver on back, confident pose --sref https://cdn.example.com/master-style-ref.png --sw 100 --ar 2:3 --v 6.1

--sref 파라미터는 참조 이미지의 스타일을 적용하며, --sw(style weight)를 0~1000 사이로 조절하여 스타일 영향도를 제어합니다. 픽셀드래곤 팀은 --sw 80~120 범위가 캐릭터 다양성과 스타일 일관성의 최적 균형점임을 발견했습니다.

2단계: 캐릭터 시트(Character Sheet) 워크플로우

개별 캐릭터의 다양한 앵글과 표정을 일관되게 유지하기 위해 캐릭터 시트 프롬프트 체계를 설계했습니다.

캐릭터 시트 기본 프롬프트

/imagine prompt: character design sheet, multiple views, front view, side view, back view, 3/4 view of a dwarf blacksmith, heavy leather apron, braided red beard, muscular build, holding hammer, white background, clean layout --sref https://cdn.example.com/master-style-ref.png --sw 100 --ar 16:9 --v 6.1

표정 시트 프롬프트

/imagine prompt: expression sheet, 6 facial expressions, happy, angry, surprised, sad, determined, laughing, dwarf blacksmith character with braided red beard, portrait close-up, white background --cref https://cdn.example.com/dwarf-blacksmith-front.png --cw 100 --sref https://cdn.example.com/master-style-ref.png --sw 90 --ar 16:9 --v 6.1

--cref(character reference)는 특정 캐릭터의 외형적 특징을 유지하는 핵심 파라미터입니다. --cw(character weight)를 100으로 설정하면 얼굴과 의상 모두를 보존하고, 0에 가까울수록 얼굴만 유지합니다.

3단계: 프롬프트 체이닝(Prompt Chaining) 시스템

200개 에셋을 효율적으로 생산하기 위해 픽셀드래곤 팀은 체계적인 프롬프트 체이닝 워크플로우를 수립했습니다.

체이닝 워크플로우 구조

  1. Phase 1 — 실루엣 탐색: 대략적인 포즈와 비율 결정
  2. Phase 2 — 디테일 생성: 선정된 실루엣 기반으로 디테일 추가 (--cref 활용)
  3. Phase 3 — 변형 확장: 무기/의상/색상 변형 생성
  4. Phase 4 — 시트 제작: 최종 캐릭터의 다각도 시트 완성

Phase 1: 실루엣 탐색

/imagine prompt: character silhouette concept, dark knight class, heavy armor, greatsword, dynamic action pose, dark fantasy, simple background --sref https://cdn.example.com/master-style-ref.png --sw 60 --ar 2:3 --v 6.1 --chaos 30

Phase 2: 디테일 확정

/imagine prompt: detailed character design, dark knight paladin, ornate black plate armor with gold trim, glowing blue runes on greatsword, tattered red cape, scarred face, stoic expression --sref https://cdn.example.com/master-style-ref.png --sw 100 --ar 2:3 --v 6.1 --chaos 5

Phase 3: 변형 생성 (배리에이션 활용)

/imagine prompt: dark knight character variant, same design but ice-themed armor, frost effects on sword, pale blue color scheme --cref https://cdn.example.com/dark-knight-final.png --cw 80 --sref https://cdn.example.com/master-style-ref.png --sw 100 --ar 2:3 --v 6.1

4단계: 자동화 파이프라인 구축

대량 생산을 위해 Midjourney API(알파)와 스크립트를 결합한 배치 처리 시스템을 구축했습니다.

배치 프롬프트 자동화 스크립트

import requests
import json
import time

API_BASE = “https://api.midjourney.com/v1” HEADERS = { “Authorization”: “Bearer YOUR_API_KEY”, “Content-Type”: “application/json” }

STYLE_REF = “https://cdn.example.com/master-style-ref.png

characters = [ {“name”: “fire_mage”, “desc”: “female fire mage, red robes, flame staff, fierce eyes”}, {“name”: “shadow_thief”, “desc”: “male shadow rogue, dark leather, twin daggers, hood”}, {“name”: “holy_priest”, “desc”: “elderly priest, white vestments, golden halo, gentle smile”}, ]

def generate_character_sheet(char): prompt = ( f”character design sheet, multiple views, front side back, ” f”{char[‘desc’]}, fantasy RPG style, white background ” f”—sref {STYLE_REF} —sw 100 —ar 16:9 —v 6.1” ) payload = {“prompt”: prompt, “aspect_ratio”: “16:9”} resp = requests.post(f”{API_BASE}/imagine”, headers=HEADERS, json=payload) task_id = resp.json()[“task_id”] print(f”[{char[‘name’]}] 생성 시작: {task_id}”) return task_id

for char in characters: generate_character_sheet(char) time.sleep(10) # Rate limit 준수

프로젝트 성과 요약

지표전통 외주 방식Midjourney 파이프라인
200개 에셋 소요 기간약 46개월약 3주
예상 비용$40,000+$600 (Pro Plan × 3개월)
스타일 일관성 점수 (내부 평가)85/10092/100
이터레이션 속도수정당 25일수정당 515분

Pro Tips: 파워 유저를 위한 고급 팁

  • 시드(Seed) 고정 활용: —seed 12345를 사용해 동일 캐릭터의 포즈/앵글 변형 시 일관성을 더욱 강화할 수 있습니다.
  • 멀티 레퍼런스 블렌딩: —sref url1 url2 —sw 60처럼 복수 스타일을 혼합하여 유니크한 스타일을 만들되, 한 장을 메인으로 고정하세요.
  • Permutation 프롬프트: {fire, ice, lightning} mage 구문으로 한 번에 3개 변형을 동시 생성할 수 있습니다.
  • 네거티브 프롬프트 표준화: —no realistic, photographic, 3d render, blurry를 모든 프롬프트에 일괄 적용하여 스타일 이탈을 방지하세요.
  • 리전(Region) 기능 활용: Vary(Region)을 사용해 캐릭터의 특정 부분(무기, 장신구)만 선택적으로 수정할 수 있습니다.

Troubleshooting: 자주 발생하는 문제 해결

문제원인해결 방법
캐릭터 시트에서 각 뷰의 디자인이 다름—cw 값이 너무 낮거나 프롬프트 모호—cw 100으로 설정, 의상/특징을 구체적으로 명시
—sref 적용 시 색감이 과도하게 변형됨—sw 값이 과도하게 높음—sw를 6080으로 낮추고, 프롬프트에 원하는 색상 명시
배치 생성 시 Rate Limit 오류API 호출 간격이 너무 짧음요청 간 1015초 대기, 지수 백오프(exponential backoff) 적용
캐릭터 얼굴이 매번 달라짐—cref 미사용 또는 참조 이미지 해상도 부족고해상도 정면 이미지를 —cref로 지정, —cw 90 이상 설정
동일 프롬프트인데 스타일 편차 발생—chaos 값이 높거나 —style raw 미적용—chaos 010, —style raw 추가로 안정화

자주 묻는 질문 (FAQ)

Q1. Midjourney로 생성한 캐릭터 컨셉아트를 상업용 게임에 사용해도 되나요?

네, Midjourney 유료 구독(Basic 이상) 사용자는 생성된 이미지에 대한 상업적 사용 권리를 갖습니다. 단, Pro Plan 이상에서만 스텔스 모드(—stealth)를 사용해 이미지를 비공개로 생성할 수 있으므로, 출시 전 에셋 유출이 우려된다면 Pro Plan 이상을 권장합니다. 연 매출 $1,000,000 이상 기업은 Mega Plan 이상이 필요합니다.

Q2. —sref와 —cref를 동시에 사용할 때 충돌이 발생하면 어떻게 하나요?

두 파라미터는 서로 다른 영역을 제어합니다. —sref는 전체 아트 스타일(색감, 렌더링 방식, 질감)을, —cref는 특정 캐릭터의 외형적 특징(얼굴, 의상, 체형)을 보존합니다. 충돌이 느껴질 때는 —sw를 6080으로 낮추고 —cw를 90100으로 높여서 캐릭터 일관성에 우선순위를 두세요. 또한 프롬프트에서 스타일 관련 키워드를 최소화하면 —sref가 더 안정적으로 작동합니다.

Q3. 200개 이상의 에셋을 관리할 때 프롬프트와 결과물을 어떻게 체계적으로 정리하나요?

스프레드시트 기반 프롬프트 관리 시스템을 추천합니다. 캐릭터명, 클래스, 프롬프트, 시드값, 사용된 —sref/—cref URL, 최종 선정 이미지 링크를 열로 구성합니다. Midjourney의 /describe 명령으로 기존 결과물의 프롬프트를 역추출하여 기록해두면 향후 재생산이나 변형에 유리합니다. 픽셀드래곤 팀은 Notion 데이터베이스와 Google Sheets를 병행 사용하여 전체 에셋을 추적했습니다.

다른 도구 둘러보기

Grok 실시간 뉴스 분석 및 팩트체킹 베스트 프랙티스 가이드 모범사례 Devin 멀티파일 리팩토링 위임 베스트 프랙티스: 명세서, 브랜치 격리, 코드 리뷰 체크포인트 완벽 가이드 모범사례 Bolt 케이스 스터디: 솔로 개발자가 주말 48시간 만에 풀스택 SaaS MVP를 출시한 방법 사례 Antigravity AI 설치 및 설정 가이드: Python SDK, API 키 관리, Blender 통합까지 가이드 Runway Gen-3 Alpha AI 영상 생성 완벽 가이드: 계정 설정부터 렌더링 내보내기까지 가이드 Replit Agent vs Cursor AI vs GitHub Copilot Workspace 비교: 솔로 개발자를 위한 풀스택 프로토타이핑 완벽 가이드 (2026) 비교 v0에서 재사용 컴포넌트 블록으로 멀티페이지 SaaS 랜딩 사이트 만들기 완벽 가이드 방법 Kling AI vs Runway Gen-3 vs Pika Labs 비교: AI 영상 생성 품질·가격·제어력 완벽 분석 (2026) 비교 Claude 3.5 Sonnet vs GPT-4o vs Gemini 1.5 Pro 장문 요약 비교: 컨텍스트 윈도우, 정확도, 토큰 비용 완벽 분석 (2025) 비교 Midjourney v6 vs DALL-E 3 vs Stable Diffusion XL 제품 사진 비교: 포토리얼리즘, 프롬프트 제어, 이미지당 비용 분석 비교 Runway Gen-3 Alpha vs Pika 1.0 vs Kling AI 비교: 숏폼 영상 광고 제작을 위한 모션 품질·프롬프트 정확도·초당 가격 완벽 분석 (2026) 비교 BMI 계산기 - 무료 온라인 체질량지수 측정 도구 계산기 은퇴 저축 계산기 - 무료 온라인 노후 자금 시뮬레이터 계산기 401(k) 클리프 베스팅 스케줄이란? 퇴사 시 회사 매칭금이 어떻게 달라지는지 쉽게 설명 설명 중소기업을 위한 13주 현금흐름 예측 모범 사례: 주간 업데이트, 수금 추적, 시나리오 플래닝 모범사례 다점포 레스토랑 그룹 매입채무 자동화 사례: OCR 캡처·승인 라우팅·주간 지급으로 인보이스 처리 시간 단축 사례 아마존 PPC 사례: 프라이빗 라벨 건강기능식품 브랜드가 네거티브 키워드 마이닝과 Exact Match로 ACOS를 낮춘 방법 사례 Antigravity vs Jasper vs Copy.ai 비교: AI 브랜드 보이스 일관성, 콘텐츠 품질 및 협업 기능 완벽 분석 (2026) 비교 아파트 승인 준비도 퀴즈: 첫 자취생을 위한 신용점수·소득·코사이너 셀프 진단 자가진단 아파트 퇴거 체크리스트: 청소, 손상 사진, 보증금 반환 절차 완벽 가이드 체크리스트