JSON 이미지 프롬프트는 subject·background·lighting을 별도 필드로 분리해 지시하는 구조화 프롬프트 기법입니다. 자연어 한 덩어리로 넣으면 모델이 어떤 요소를 우선할지 흔들리는데, 필드를 나누면 반복 생성과 부분 교체가 쉬워집니다. 다만 어떤 모델에도 “JSON을 반드시 이렇게 넣어라”는 공식 강제 규격은 없다는 점부터 짚고 갑니다.
왜 JSON인가
왜 자연어 프롬프트만으로는 부족한가요?
자연어 프롬프트는 요소 간 우선순위가 뒤섞이기 쉽습니다. “붉은 노을 아래 흰 도자기 컵”이라고 쓰면 모델은 “붉은 컵”을 그릴지 “붉은 노을”을 그릴지 확률적으로 판단합니다.
Google의 Gemini 이미지 생성 프롬프트 가이드는 “키워드 나열보다 서술형 단락 프롬프트”를 권장합니다. 반대로 OpenAI 이미지 생성 가이드는 상세 지시를 강조하지만 JSON 강제 규격은 없습니다.
즉 JSON 구조화는 모델이 요구한 형식이 아니라, 사용자가 요소를 관리하기 위한 도구입니다. 프롬프트를 JSON으로 두고, 렌더링 단계에서 자연어 문장으로 조립해 넣는 방식이 현재 안전한 접근입니다.
분리 지정법
subject·background·lighting을 어떻게 분리하나요?
세 필드는 각각 “무엇을·어디서·어떤 빛으로”를 담당합니다. 아래는 실무에서 자주 쓰는 최소 스키마 예시입니다.

| 필드 | 담당 요소 | 예시 값 |
|---|---|---|
subject |
중심 피사체·재질·자세 | “white ceramic mug, matte finish, half-full” |
background |
배경 장소·소품·심도 | “wooden desk, blurred window behind” |
lighting |
광원·시간대·톤 | “soft morning light from left, warm” |
camera |
렌즈·앵글·구도 | “50mm, eye-level, centered” |
style |
사진/일러스트 톤 | “editorial photography” |
이 JSON을 그대로 모델에 넣기보다, 렌더링 함수로 “subject: … | background: … | lighting: …” 형태 단락으로 조립해 넣는 편이 Gemini·GPT-image·Midjourney 모두에서 안정적입니다.
Midjourney 공식 문서는 프롬프트 구조를 “subject, environment, lighting, composition, style” 순으로 정리할 것을 권장하는데, JSON 필드와 자연스럽게 매칭됩니다.
효과와 한계
어떤 작업에서 효과적이고, 어떤 작업에서 부적합한가요?
반복 자산 생성과 A/B 테스트에는 효과적이지만, 1회성 아트워크에는 부적합합니다. 필드를 나누면 “배경만 낮에서 밤으로”, “조명만 자연광에서 스튜디오 조명으로” 같은 부분 교체가 가능합니다.

반면 감성적 아트워크나 예술적 랜덤성이 목표라면 JSON 분리는 오히려 발상을 좁힙니다. 필드 개수가 많아질수록 프롬프트 토큰이 길어져, Gemini·GPT-image 응답에서 일부 필드가 무시되는 경우도 관찰됩니다.
또 하나의 한계는 “JSON을 넣으면 JSON 그대로 해석한다”는 오해입니다. 현재 공개된 이미지 모델은 내부적으로 자연어 임베딩으로 재해석하므로, JSON 키 이름 자체가 결과에 강하게 반영되지는 않습니다. 필드는 사용자 관리용, 실제 입력은 조립된 문장이라는 원칙을 지키세요.
실무 권장 흐름
실무에서는 어떻게 적용하면 좋을까요?
템플릿을 JSON·YAML로 저장하고, 렌더링 단계에서 자연어 단락으로 변환해 모델에 넣는 흐름을 권장합니다. 무료 대안으로 로컬 파일 한 개면 충분하며, 별도 유료 도구가 필요하지 않습니다.
권장 순서는 아래와 같습니다.
- subject·background·lighting·camera·style 5개 필드로 최소 스키마를 만든다
- 프로필별·시리즈별로 필드 값을 프리셋으로 저장한다
- 렌더링 함수에서 필드를 자연어 단락 하나로 조립한다
- 결과 이미지와 프롬프트를 함께 로그로 남긴다
이 흐름은 OpenAI 이미지 API 문서의 “명확한 서술적 프롬프트” 권장과도 충돌하지 않습니다. JSON은 관리 계층이고, 모델에는 여전히 잘 쓰인 문장이 들어갑니다.
자주 묻는 질문
Q. 모델에 JSON을 그대로 붙여넣어도 되나요?
A. 가능하지만 권장되지 않습니다. 자연어 단락으로 조립해 넣는 편이 안정적입니다.
Q. 필드는 몇 개까지가 적정한가요?
A. subject·background·lighting·camera·style 5개가 실무 균형점입니다.
Q. 어떤 모델이 구조화 프롬프트에 가장 잘 반응하나요?
A. 공식 벤치마크는 없으며 모델별 편차가 큽니다. A/B 테스트가 필요합니다.
Q. 무료로 시작할 방법이 있나요?
A. 로컬 JSON 템플릿과 렌더링 스크립트만으로 충분하며 별도 도구가 필요 없습니다.
Q. 이미지 안에 글자를 넣을 때도 JSON이 유용한가요?
A. 텍스트 렌더링은 모델 자체 한계가 커서 JSON 구조와 무관하게 별도 지시가 필요합니다.
JSON 이미지 프롬프트는 모델이 요구한 규격이 아니라, 사용자가 요소를 관리하고 반복 생성하기 위한 도구입니다. 공식 문서 기준으로 Gemini·OpenAI·Midjourney 어느 곳도 JSON 스키마를 강제하지 않으며, 내부적으로는 자연어로 재해석됩니다. 반복 자산·A/B 테스트에는 효과적이지만 1회성 아트워크에는 과설계일 수 있으니 목적에 맞춰 판단하세요. 공식 근거로 확인한 핵심과 한계만 정리합니다.
답글 남기기