본문으로 건너뛰기

ComfyUI 워크플로우 가이드 (v2.0 최신화)

The Hon: Joseon 에셋 생성을 위한 ComfyUI API 워크플로우 정의 Artist 에이전트가 Mac에서 Win PC ComfyUI API를 호출할 때 사용 엔진: Stable Diffusion 3.5 (Medium/Large) 및 FLUX.1 Dev (Q8_0)


필수 모델 목록

HuggingFace 브라우저에서 직접 다운로드 → ComfyUI 폴더에 넣기. SD 3.5 체크포인트는 Gated 모델 — HF 로그인 + Accept 필요.

파일명설치 경로크기용도다운로드
sd3.5_medium.safetensorsmodels/checkpoints/~5.1GB캐릭터/적/타일셋/이펙트링크
sd3.5_large.safetensorsmodels/checkpoints/~11.1GB보스링크
flux1-dev-Q8_0.ggufmodels/unet/~12.7GB컨셉아트링크
clip_l.safetensorsmodels/clip/~246MB전체링크
clip_g.safetensorsmodels/clip/~1.4GBSD 3.5 전체링크
t5xxl_fp8_e4m3fn.safetensorsmodels/clip/~4.89GB전체링크
ae.safetensorsmodels/vae/~335MBFLUX 컨셉아트링크

ControlNet (선택, 보정용):

파일명설치 경로크기다운로드
sd3.5_large_controlnet_canny.safetensorsmodels/controlnet/~8.65GB링크
sd3.5_large_controlnet_depth.safetensorsmodels/controlnet/~8.65GB링크

커스텀 노드 — ComfyUI Manager → Install Custom Nodes:

노드명용도
ComfyUI-GGUFgguf 모델 로드 (UnetLoaderGGUF 노드)
ComfyUI-PixelArt-Detector픽셀아트 팔레트 적용 + 다운스케일/업스케일 (워크플로우 내 오방색 리매핑)

워크플로우 파일 목록 및 픽셀화 해상도 공식

SD 3.5는 네이티브 해상도인 1024×1024에서 이미지를 생성해야 기괴한 해부학적 오류가 발생하지 않습니다. 1024 해상도에서 완벽한 피사체를 뽑아낸 뒤, nearest-exact 보간법으로 정확한 픽셀 매트릭스로 축소-확대합니다.

파일모델원본 해상도다운스케일업스케일최종 출력
pixel_character.jsonSD 3.5 Medium1024×1024× 0.03125 (32px)× 32.0캐릭터 32px
pixel_enemy.jsonSD 3.5 Medium1024×512× 0.03125 (32px)× 32.0적 32px
pixel_boss.jsonSD 3.5 Large1024×1024× 0.125 (128px)× 8.0보스 128px
pixel_tileset.jsonSD 3.5 Medium1024×1024× 0.015625 (16px)× 64.0타일셋 16px
pixel_effect.jsonSD 3.5 Medium1024×256× 0.0625 (64px)× 16.0이펙트 시트
concept_art.jsonFLUX.1 Dev Q8_01024×768(원본 유지)(원본 유지)컨셉아트 원본

프롬프트 템플릿 변수

각 워크플로우 JSON의 {{변수명}}을 실제 값으로 교체하여 사용:

워크플로우변수예시
pixel_character.json{{CHARACTER_NAME}}exorcist talisman master, mudang shaman, soldier with rod
pixel_enemy.json{{ENEMY_NAME}}jabgui wandering ghost, dokkaebi fire spirit, cheonyeo teleporting ghost
pixel_boss.json{{BOSS_NAME}}gwiwang demon king 360 degree fire, thousand year gumiho nine tails fox
pixel_tileset.json{{STAGE_NAME}}hanyang street night joseon city, bamboo forest moonlit path, abandoned temple
pixel_effect.json{{EFFECT_NAME}}, {{EFFECT_COLOR}}talisman explosion, yellow #F2B705
concept_art.json{{CONCEPT_DESCRIPTION}}joseon night street with red moon, yokai swarm

API 호출 방법

Mac에서 직접 HTTP 호출

curl -X POST http://$COMFYUI_URL/prompt \
-H "Content-Type: application/json" \
-d @pixel_character.json

SSH 경유 호출

scp pixel_character.json $WIN_PC_USER@$WIN_PC_IP:/tmp/
ssh $WIN_PC_USER@$WIN_PC_IP "curl -X POST http://localhost:8188/prompt -H 'Content-Type: application/json' -d @/tmp/pixel_character.json"

생성된 이미지 가져오기

scp $WIN_PC_USER@$WIN_PC_IP:D:/ComfyUI/output/pixel_character_00001_.png ./res/sprites/characters/

후처리 파이프라인

ComfyUI 출력 → 최종 에셋까지의 후처리:

# 1. 팔레트 리매핑 (Endesga 32 + 오방색)
convert input.png -dither FloydSteinberg -remap endesga32_obangsaek.png output.png

# 2. 배경 제거 (필요 시)
convert output.png -transparent "#1A1A2E" output_transparent.png

# 3. 스프라이트 시트 조립 (Aseprite CLI)
aseprite -b frame_*.png --sheet sprite_sheet.png --sheet-type horizontal

# 4. 최종 크기 확인
identify output.png # 32x32, 64x64, 128x128 등 확인

대안: ffmpeg paletteuse (대량 프레임 처리 시 더 빠름)

# 팔레트 생성 (1회)
ffmpeg -i endesga32_obangsaek.png -vf palettegen=max_colors=37 palette.png

# 단일 이미지 리매핑
ffmpeg -i input.png -i palette.png -filter_complex "paletteuse=dither=floyd_steinberg" output.png

# 스프라이트 시트 전체 일괄 처리
for f in *.png; do ffmpeg -i "$f" -i palette.png -filter_complex "paletteuse=dither=floyd_steinberg" "remapped_$f"; done

Endesga 32 + 오방색 팔레트 파일

res/sprites/endesga32_obangsaek.png 팔레트 이미지를 준비해야 합니다.

Endesga 32 색상 (32색):

#be4a2f #d77643 #ead4aa #e4a672 #b86f50 #733e39 #3e2731 #a22633
#e43b44 #f77622 #feae34 #fee761 #63c74d #3e8948 #265c42 #193c3e
#124e89 #0099db #2ce8f5 #ffffff #c0cbdc #8b9bb4 #5a6988 #3a4466
#262b44 #181425 #ff0044 #68386c #b55088 #f6757a #e8b796 #c28569

추가 오방색 (5색):

#F2B705 (황) #2E86AB (청) #F0E6D3 (백) #D72638 (적) #1A1A2E (흑)

VRAM 스케줄링 및 호환성 주의사항

작업모델VRAM동시 실행 가능
캐릭터/적/타일셋/이펙트SD 3.5 Medium~8GB✅ ACE-Step (~4GB) 병렬 가능 (여유 ~20GB)
보스 스프라이트SD 3.5 Large~16GB✅ ACE-Step 병렬 가능 (여유 ~12GB)
ControlNet 보정SD 3.5 Large + Canny/Depth/Blur~18GB✅ ACE-Step 병렬 가능 (여유 ~10GB)
컨셉아트FLUX.1 Dev Q8_0~16GB✅ ACE-Step (~4GB) 병렬 가능

★ 강력 금지 조합: FLUX.1 Dev 모델과 SD 3.5 모델 동시 로드 시 VRAM (32GB) 한도 초과로 크래시 발생. Tester+PM 에이전트가 VRAM 스케줄링을 관리하여 모델 전환 시 캐시 해제 시간을 확보해야 합니다.


KSampler 파라미터 참조

SD 3.5 (pixel_character, pixel_enemy, pixel_tileset, pixel_effect)

  • Steps: 28
  • CFG: 4.5
  • Sampler: dpmpp_2m
  • Scheduler: sgm_uniform
  • Resolution: 1024×1024 기반

SD 3.5 Large (pixel_boss)

  • Steps: 30
  • CFG: 4.5
  • Sampler: dpmpp_2m
  • Scheduler: sgm_uniform
  • Resolution: 1024×1024 기반

FLUX.1 Dev Q8_0 gguf (concept_art)

  • Steps: 20
  • CFG: 1.0 (FLUX는 반드시 1.0)
  • Sampler: euler
  • Scheduler: simple

gguf 모델은 UnetLoaderGGUF 노드로 로드. 기존 CheckpointLoaderSimple 대신 사용.