미드저니 캐릭터 컨셉아트 케이스 스터디: 인디 게임 스튜디오가 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를 병행 사용하여 전체 에셋을 추적했습니다.

다른 도구 둘러보기

Antigravity AI 콘텐츠 파이프라인 자동화 가이드: Google Docs에서 WordPress 퍼블리싱까지 가이드 Bolt.new 사례 연구: 마케팅 에이전시가 하루 만에 클라이언트 대시보드 5개 구축 사례 Bolt.new 베스트 프랙티스: 자연어 프롬프트로 풀스택 앱 빠르게 생성하기 모범사례 ChatGPT 고급 데이터 분석(코드 인터프리터) 완벽 가이드: 업로드부터 시각화까지 가이드 ChatGPT Custom GPTs 고급 가이드: Actions, API 통합, 지식 베이스 설정 가이드 ChatGPT 음성 모드 가이드: 음성 중심 고객 서비스와 내부 워크플로우 구축 가이드 Claude API 프로덕션 챗봇 가이드: 안정적인 AI 어시스턴트를 위한 시스템 프롬프트 아키텍처 가이드 Claude Artifacts 활용 베스트 프랙티스: 인터랙티브 대시보드, 문서, 코드 미리보기 만들기 모범사례 Claude Code Hooks 가이드: Pre/Post 실행 훅으로 커스텀 워크플로우 자동화하기 가이드 Claude MCP 서버 설정 가이드: Claude Code와 Desktop을 위한 커스텀 도구 통합 가이드 Cursor 사례 연구: 1인 창업자가 AI 코딩으로 2주 만에 Next.js SaaS MVP 구축 사례 Cursor Composer 완벽 가이드: 멀티 파일 편집, 인라인 Diff, 에이전트 모드 가이드 Cursor Rules 고급 가이드: 프로젝트별 AI 설정과 팀 코딩 표준 가이드 Devin AI 팀 워크플로우 통합 베스트 프랙티스: Slack, GitHub, 코드 리뷰 자동화 모범사례 Devin 사례 연구: 500개 패키지 Python 모노레포 의존성 자동 업그레이드 사례 ElevenLabs 사례 연구: 에드테크 스타트업이 6주 만에 200시간 강의를 8개 언어로 현지화 사례 ElevenLabs 다국어 더빙 가이드: 글로벌 콘텐츠를 위한 자동화된 영상 현지화 워크플로우 가이드 ElevenLabs Voice Design 완벽 가이드: 게임, 팟캐스트, 앱을 위한 일관된 캐릭터 음성 만들기 가이드 Gemini 2.5 Pro vs Claude Sonnet 4 vs GPT-4o: AI 코드 생성 비교 2026 비교 Gemini API 멀티모달 개발자 가이드: 이미지, 비디오, 문서 분석 코드 예제 가이드