
ComfyUI로 2D 게임 에셋 스타일 가이드를 고정하는 방법
ComfyUI에서 레퍼런스, 프롬프트, 색상 팔레트, 시드, 후처리 규칙을 분리해 관리하면 2D 게임 에셋의 스타일 흔들림을 줄일 수 있다. 캐릭터와 아이콘, 타일셋을 같은 규격으로 생산하기 위한 워크플로 구성과 검수 기준을 정리한다.
왜 스타일 고정이 필요한가
2D 게임 에셋은 이미지 한 장의 완성도보다 에셋끼리의 일관성이 더 중요하다. 캐릭터 초상화는 부드러운 수채화풍인데 아이템 아이콘은 강한 광택의 3D 렌더처럼 보이면 각각의 품질과 관계없이 게임 화면은 하나의 세계로 느껴지지 않는다.
생성형 이미지 모델은 같은 프롬프트에도 구도, 선 굵기, 명암 단계, 채색 질감, 비율을 바꿔 낸다. 따라서 스타일 가이드를 문서로만 적어 두기보다 ComfyUI 워크플로에 직접 반영하는 편이 재현성과 협업에 유리하다.
여기서 말하는 스타일 고정은 결과를 완전히 똑같게 만드는 일이 아니다. 에셋의 역할과 소재가 달라져도 핵심 시각 규칙이 유지되도록 변동 범위를 관리하는 일이다.
먼저 스타일 가이드를 측정 가능한 규칙으로 바꾼다
“따뜻한 판타지풍” 같은 표현은 출발점으로는 좋지만 검수 기준으로는 부족하다. 생성 전에 아래처럼 관찰 가능한 규칙으로 바꾼다.
| 항목 | 결정할 규칙 예시 |
|---|---|
| 캔버스 | 아이콘은 512×512, 캐릭터 전신은 768×1024 |
| 실루엣 | 작은 크기에서도 주 소재가 한눈에 구분되는 큰 덩어리 우선 |
| 선 | 외곽선만 짙은 갈색, 내부 선은 최소화 |
| 명암 | 기본색과 그림자색의 두 단계 명암 |
| 광원 | 화면 왼쪽 위에서 오는 부드러운 광원 |
| 팔레트 | 채도 높은 포인트 색은 화면 면적의 작은 비율로 제한 |
| 배경 | 투명 배경 또는 단색 임시 배경만 허용 |
| 금지 요소 | 텍스트, 워터마크, 복잡한 장식 테두리, 사진 같은 질감 |
이 표는 프롬프트를 길게 쓰기 위한 자료가 아니다. 어떤 값은 프롬프트에 넣고 어떤 값은 워크플로 파라미터로 고정하며 어떤 값은 후처리와 검수에서 처리할지 나누는 기준이다.

고정할 것과 바꿀 것을 분리한다
ComfyUI 워크플로는 재사용 가능한 스타일 레이어와 작업별 콘텐츠 레이어로 나누는 것이 좋다. 스타일 레이어를 매번 손으로 고치기 시작하면 에셋이 늘어날수록 기준이 흐려진다.
flowchart LR
A[에셋 요청서] --> B[콘텐츠 레이어\n소재·포즈·역할]
S[스타일 레이어\n체크포인트·LoRA·팔레트·네거티브 프롬프트] --> C[ComfyUI 생성]
B --> C
C --> D[구도·실루엣 검수]
D --> E[업스케일·배경 제거·리사이즈]
E --> F[게임 엔진 임포트 검수]
D -->|불합격| B
스타일 레이어에는 다음을 넣는다.
- 사용할 체크포인트와 VAE
- 스타일 LoRA와 가중치
- 공통 긍정 프롬프트와 네거티브 프롬프트
- 해상도와 샘플러, 스케줄러, CFG, 스텝 범위
- 색 보정과 업스케일 방식
- 파일 이름 규칙과 메타데이터 기록 방식
콘텐츠 레이어에는 에셋마다 달라져야 할 정보만 넣는다. 예를 들어 검 아이콘이라면 무기 종류, 재질, 희귀도, 방향, 필요한 여백을 적는다. 캐릭터라면 직업, 의상, 포즈, 표정을 적는다.
권장 워크플로 구성
가장 단순한 시작점은 Load Checkpoint → CLIP Text Encode → KSampler → VAE Decode → Save Image 흐름이다. 다만 실전에서는 이 구조만으로 구도와 형태를 계속 맞추기 어렵다. 다음 요소를 목적에 따라 더한다.
레퍼런스 이미지는 역할을 나눠 쓴다
하나의 레퍼런스에 모든 것을 맡기면 색감은 맞는데 형태가 무너지거나 형태는 맞는데 화풍이 달라지는 일이 생긴다. 가능한 한 입력의 역할을 분리한다.
- 스타일 레퍼런스: 선, 채색, 팔레트, 질감을 전달한다.
- 구조 레퍼런스: 포즈, 카메라 각도, 물체 배치를 전달한다.
- 색상 레퍼런스: 게임 UI와 충돌하지 않는 색 관계를 확인한다.
IP-Adapter 계열은 이미지의 시각적 특성을 참고시키는 데 쓸 수 있고 ControlNet은 포즈나 윤곽, 깊이처럼 구조를 제어하는 데 적합하다. 어떤 노드를 선택하든 중요한 것은 강도를 낮은 값부터 올리며 테스트하는 것이다. 참조 강도가 지나치면 새 에셋이 원본의 변형처럼 보이고 너무 낮으면 스타일 고정 효과가 약해진다.
시드는 실험용과 생산용을 구분한다
시드는 결과를 재현하는 데 유용하지만 모든 에셋에 같은 시드를 강제하는 장치는 아니다. 소재가 바뀌면 같은 시드라도 결과의 유사성이 보장되지 않는다.
권장 방식은 다음과 같다.
- 탐색 단계에서는 시드를 바꿔 여러 구도를 비교한다.
- 채택한 방향이 정해지면 해당 에셋의 시드를 기록한다.
- 수정 작업에서는 같은 시드와 같은 워크플로를 유지해 변경 원인을 좁힌다.
- 공통 스타일은 시드가 아니라 모델, LoRA, 프롬프트, 제어 입력으로 유지한다.
프롬프트는 공통 블록과 변수 블록으로 작성한다
공통 블록은 변경 권한을 제한한 스타일 규격으로 취급한다. 변수 블록만 에셋 요청에 따라 바꾼다.
[공통 스타일]
2d game asset, clean readable silhouette, flat color shading,
limited color palette, soft light from upper left,
dark brown outer contour, transparent background
[에셋 변수]
ornate bronze key, crescent-shaped bow, blue gem accent,
centered composition, three-quarter view, ample padding
[공통 네거티브]
text, letters, watermark, logo, photorealistic, 3d render,
busy background, cropped object, duplicate object, blurry
모델마다 프롬프트 해석 방식이 다르므로 위 문구를 그대로 정답처럼 사용할 수는 없다. 프로젝트에서 승인한 샘플을 기준으로 단어와 가중치를 조정하고 검수 통과한 프롬프트 블록을 버전 관리하는 편이 낫다.
LoRA와 스타일 참조를 검증하는 방법
스타일 LoRA는 반복되는 선과 채색 성향을 맞추는 데 도움이 될 수 있다. 그러나 LoRA 하나만으로 게임 전체의 아트 디렉션을 해결하려 하면 문제가 생긴다. 특히 특정 작가나 상업 작품의 스타일을 직접 모방하도록 학습·사용하는 일은 권리와 프로젝트 정책을 검토해야 한다.
검증할 때는 서로 성격이 다른 에셋을 작은 세트로 만든다.
- 유기물: 버섯, 물약, 나무 상자
- 금속: 검, 방패, 열쇠
- 인물: 얼굴 아이콘, 전신 캐릭터
- 환경: 바닥 타일, 벽 타일, 장식 오브젝트
각 항목에서 선, 명암, 팔레트, 광원, 배경 처리의 일치 여부를 본다. 물약에서만 예쁘게 보이는 설정은 스타일 가이드가 아니라 한 소재에 특화된 설정일 수 있다.

배치 생산 전에 고정해야 하는 파라미터
에셋을 여러 장 만들기 시작하면 작은 변경도 결과 차이를 크게 만든다. 아래 값은 워크플로에 명시하고 변경 이력을 남긴다.
{
"checkpoint": "project-approved-model.safetensors",
"vae": "project-approved-vae.safetensors",
"sampler": "dpmpp_2m",
"scheduler": "karras",
"steps": 28,
"cfg": 5.5,
"width": 512,
"height": 512,
"style_lora": {
"name": "project-style-v03.safetensors",
"strength_model": 0.7,
"strength_clip": 0.7
}
}
수치는 예시다. 모델과 작업 목적에 따라 적절한 범위가 달라진다. 중요한 점은 숫자를 숨은 기본값에 맡기지 않는 것이다. ComfyUI 워크플로 JSON 자체를 저장소에 두고 변경 시 스타일 버전도 함께 올리면 과거 에셋을 재생성하거나 원인을 추적하기 쉬워진다.
파일명에도 최소한 에셋 ID, 스타일 버전, 시드, 출력 크기를 넣어 두면 좋다.
item_key_rare_stv03_seed184726_512.png
게임 엔진에서 확인해야 할 최종 품질
생성 이미지가 뷰어에서 좋아 보여도 게임에서는 문제가 드러날 수 있다. Unity나 Unreal에 넣기 전 실제 표시 크기와 배경 위에서 검수한다.
작은 크기에서 실루엣을 확인한다
인벤토리 아이콘이 64px로 표시된다면 512px 원본만 보며 판단하면 안 된다. 축소 후에도 물체 종류와 희귀도 포인트 색이 식별되는지 확인한다. 내부 장식이 뭉개진다면 디테일을 더 생성하기보다 큰 형태와 명암 대비를 단순화하는 쪽이 효과적이다.
투명도와 가장자리를 확인한다
배경 제거 후에는 반투명 가장자리, 흰색 또는 검은색 프린지, 그림자 잔재를 점검한다. 엔진의 압축 설정과 필터 모드도 확인해야 한다. 픽셀 아트가 아닌 일반 2D 일러스트라도 UI 아이콘에서 과도한 밉맵이나 압축 아티팩트가 생기면 스타일이 흐려질 수 있다.
타일셋은 생성 결과를 그대로 믿지 않는다
생성 모델은 타일 경계의 연속성을 정확히 보장하지 않는다. 타일셋은 생성 결과를 재료로 사용하고 이미지 편집 도구에서 경계와 반복 패턴을 수작업으로 맞추는 공정을 전제하는 편이 안전하다. 오토타일 규칙, 콜라이더, 피벗 위치도 별도로 관리해야 한다.
실무용 검수 체크리스트
생성 결과를 승인하기 전에 다음 항목을 확인한다.
- 승인된 체크포인트, VAE, 스타일 버전을 사용했는가?
- 공통 스타일 프롬프트와 네거티브 프롬프트가 적용됐는가?
- 선 굵기와 외곽선 색이 기존 에셋과 어울리는가?
- 광원 방향과 명암 단계가 가이드와 일치하는가?
- 축소된 실제 UI 크기에서도 역할이 구분되는가?
- 텍스트, 워터마크, 불필요한 배경, 중복 물체가 없는가?
- 투명 배경과 가장자리 품질이 엔진에서 정상인가?
- 생성에 사용한 워크플로, 시드, 모델 버전을 추적할 수 있는가?
마무리
ComfyUI에서 스타일을 고정하는 핵심은 좋은 프롬프트 하나를 찾는 일이 아니다. 스타일을 모델과 LoRA, 공통 프롬프트, 레퍼런스 제어, 후처리, 엔진 검수로 나눠 관리하는 일이다.
먼저 작은 에셋 세트로 규칙을 검증한 뒤 승인된 워크플로를 템플릿으로 고정하자. 그러면 새 에셋을 만들 때마다 화풍을 다시 설명하는 대신 게임에 필요한 소재와 읽기 쉬운 형태에 집중할 수 있다.


