
이전 글에서 comfyui_ctl.py로 GPU를 필요할 때만 쓰는 구조를 만들었다. 이제 실제로 이미지를 생성할 차례인데, z_image_turbo 모델에 프롬프트를 넣자마자 문제가 생겼다.
Stable Diffusion에서 하던 대로 네거티브 프롬프트에 "no watermark, no blurry" 같은 걸 넣었는데 전혀 반영이 안 된다. z_image_turbo는 6B 파라미터의 diffusion transformer(Lumina2 기반)인데, CFG(Classifier-Free Guidance)를 사용하지 않는다. CFG가 꺼져 있으니 네거티브 프롬프트 입력 자체가 무시되는 거다.
원하지 않는 요소를 빼려면 긍정 표현으로 바꿔야 했다.
X "no watermark" -> O "clean image without any text overlays"
X "no blurry" -> O "sharp focus, crisp details"매번 이 규칙을 기억하기 귀찮아서 Claude Code 스킬로 정리했다. 8가지 요소를 순서대로 채우는 구조 템플릿이다.
[Shot] + [Subject] + [Clothing] + [Environment]
+ [Lighting] + [Mood] + [Style] + [Quality]"카페에서 커피 마시는 사람" 같은 막연한 요청도 이 틀에 맞추면 80-250 단어의 구체적인 영어 프롬프트가 나온다. 조명은 어떤지, 분위기는 어떤지, 카메라 앵글은 어떤지 빠짐없이 채우니까 결과물 품질이 안정적이다.
이 스킬은 ComfyUI 프로젝트에서만 쓰이니까 {project}/.claude/skills/comfy-prompt/에 project-level로 설치했다. user-level(~/.claude/skills/)에 넣으면 다른 프로젝트에서도 불필요하게 로드되니까 프로젝트별로 격리하는 게 낫다.
스킬 구조는 SKILL.md 본체와 references/ 아래 3개 참조 문서(DIFFUSION_BASICS, MODEL_FAMILIES, Z_IMAGE_TURBO)로 나눴다. Claude Code가 필요한 깊이만큼만 참조 문서를 읽도록 계층을 분리한 셈이다.
모델마다 프롬프트 전략이 다르다는 걸 직접 부딪혀서 알았다. Stable Diffusion 습관을 그대로 가져오면 안 되고, 각 모델의 아키텍처 특성을 먼저 파악해야 한다. 그리고 그 지식을 스킬 파일로 코드화해두면 매번 같은 삽질을 반복하지 않아도 된다.