초대하고 적립

초대 보상 안내

초대 링크를 공유하세요. 친구가 링크로 가입하고 충전하면 이후 충전마다 표시된 보상을 받을 수 있습니다.

이미지를 JSON 프롬프트로 바꾸고 결과를 검수하는 방법

보이는 증거만 구조화하고, 고정할 항목·바꿀 항목·알 수 없는 항목을 분리한 뒤 여러 후보를 생성해 동일한 점수표와 필수 통과 기준으로 검수하는 모델 독립형 워크플로입니다.

목차
이미지를 JSON 프롬프트로 바꾸고 결과를 검수하는 방법

이미지를 JSON 프롬프트로 변환하는 목적은 원래의 “비밀 프롬프트”를 복구하는 데 있지 않습니다. 참조 이미지를 필드별로 수정할 수 있고 결과와 대조할 수 있는 시각 사양으로 바꾸는 것이 핵심입니다. 실무에서는 보이는 사실만 기록하고, 유지할 요소와 바꿀 요소를 나눈 다음, 여러 후보를 생성해 같은 체크리스트로 비교합니다.

JSON은 피사체, 구도, 조명, 색, 재질, 문자를 분리하는 데 유용합니다. 하지만 완성된 픽셀만으로 정확한 카메라 모델, 화면 밖 조명의 기술 방식, 정확한 글꼴 이름, seed, 제작자가 처음 사용한 문장을 알아낼 수는 없습니다. 따라서 목표는 픽셀 단위 복제가 아니라, 통제 가능하고 검증 가능한 시각적 유사성입니다.

아래에는 바로 복사할 수 있는 분석 프롬프트, JSON 구조, 생성 전달 방식, 합격 기준을 제공합니다.

이 워크플로가 해결하는 문제

다음과 같은 작업에 적합합니다.

  • 참조 이미지의 시각적 논리를 유지하면서 일부 요소만 변경
  • 같은 사양을 여러 이미지 모델에서 비교
  • “분위기는 비슷한데 왜 닮지 않았는지” 원인 파악
  • 사진, 광고, 포스터, UI, 일러스트를 반복 가능한 기준으로 검수

JSON을 “복원된 원본 프롬프트”라고 부르면 안 됩니다. 최종 이미지에는 생성 이력, 숨겨진 참조 이미지, 무시된 지시, 편집 과정, 후처리 정보가 모두 남아 있지 않습니다.

좋은 사양은 세 가지 조건을 만족합니다.

  1. 관찰 가능: 모든 사실이 이미지에서 확인됩니다.
  2. 편집 가능: 중요한 시각 요소가 별도 필드로 나뉩니다.
  3. 검증 가능: 각 필드를 결과 이미지에서 확인할 수 있습니다.

시작 전에 준비할 것

필요한 항목:

  • 사용 권한이 있고 가능한 한 해상도가 높은 참조 이미지
  • 이미지를 분석할 수 있는 vision 모델
  • 이미지 생성기 또는 편집기
  • JSON, 모델 버전, 설정, 결과를 저장할 위치
  • 반드시 유지할 것과 바꿔도 되는 것을 한 문장으로 정리한 목표

브라우저 테두리, 댓글 영역, 디자인에 포함되지 않는 여백은 잘라냅니다. 비율 변경이 작업의 일부가 아니라면 처음에는 원본 종횡비를 유지합니다.

OpenAI의 공식 이미지·vision 문서와 Google의 공식 이미지 이해 문서는 이미지 입력 분석 방법을 안내합니다. 각사의 생성 도구도 참조 이미지와 반복 편집을 지원합니다. 요청 형식은 공급자마다 다르므로 아래 방법은 특정 모델에 종속되지 않습니다.

1단계: 참조 이미지에서 관찰 JSON 추출

이미지와 함께 아래 프롬프트를 보냅니다. 보이지 않는 세부를 사실로 만들지 않고, 판단할 수 없는 값은 null로 남기도록 설계했습니다.

당신은 시각적 증거 분석가입니다. 첨부한 참조 이미지를 분석하고
유효한 JSON 객체 하나만 반환하세요.

규칙:
1. 이미지에서 직접 확인할 수 있는 증거만 설명하세요.
2. 숨겨진 원인, 원본 프롬프트, 정확한 카메라 장비, 정확한 날짜,
   보이지 않는 조명 기술, 읽을 수 없는 문자를 추측하지 마세요.
3. 이미지로 판단할 수 없는 값은 null을 사용하세요.
4. 서로 다른 시각 요소는 별도 필드에 두세요.
5. 선명하게 읽히는 문자는 그대로 옮기고, 누락된 글자를 추측하지 마세요.
6. 좌/우, 위/아래, 전경/배경, 중앙/편향, 상대 크기와 겹침을 명시하세요.
7. 반환 전에 필드 사이의 모순을 검사하세요.
8. 모호한 형용사 목록 대신 구체적인 완전한 문장을 사용하세요.

다음 구조를 반환하세요:
{
  "image_type": null,
  "subject": null,
  "action": null,
  "location": null,
  "composition": {
    "orientation_and_aspect_ratio": null,
    "framing_and_crop": null,
    "subject_placement": null,
    "spatial_relationships": null,
    "negative_space": null
  },
  "lighting": {
    "visible_direction": null,
    "apparent_temperature": null,
    "softness_and_contrast": null,
    "highlights_reflections_shadows": null,
    "unknown_causes": null
  },
  "color_palette": null,
  "materials_and_textures": null,
  "camera_and_focus": {
    "viewpoint": null,
    "perspective": null,
    "depth_of_field": null,
    "sharp_and_blurred_regions": null
  },
  "text_and_typography": {
    "verbatim_text": [],
    "placement_and_alignment": null,
    "size_hierarchy": null,
    "visible_lettering_style": null,
    "unreadable_text": null
  },
  "style": null,
  "mood_and_vibe": null,
  "uncertainties": [],
  "exclusions": null
}

생성 전에 JSON 검증

다음 네 가지를 확인합니다.

  • 주석, 끝 쉼표, 추가 설명 없이 JSON으로 parse되는가
  • 필요한 필드가 모두 있는가
  • 불명확한 내용이 null 또는 uncertainties에 있는가
  • 필드끼리 모순되지 않는가

이 가이드에 영감을 준 사용자 사례에는 대표적인 두 오류가 있습니다. 냉장고 속 고양이 사진에서는 내부의 차가운 빛과 주방의 따뜻한 빛은 보이지만, 조명이 LED라는 사실은 사진만으로 알 수 없습니다. 웹사이트 화면 분석에서는 제목을 왼쪽 정렬로 올바르게 찾았지만 hero를 동시에 “가운데 정렬”과 “왼쪽 정렬”로 적었습니다. 첫 번째는 근거 없는 추론이고 두 번째는 내부 모순입니다. 둘 다 생성 전에 실패 처리해야 합니다.

2단계: 고정·변경·불명을 분리

관찰 JSON 전체를 곧바로 다시 쓰지 말고 세 상태로 분류합니다.

상태의미예
locked반드시 유지피사체 위치, 시각적 계층, 종횡비
editable의도적으로 변경제품 색, 배경, 제목
unknown이미지로 확인 불가렌즈, 조명 방식, 정확한 글꼴

관찰 JSON 옆에 제어 객체를 둡니다.

{
  "locked": [
    "주 피사체는 왼쪽 아래 3분할 지점",
    "오른쪽에 큰 여백",
    "부드러운 측면광과 낮은 전체 대비",
    "제목은 보조 문장 위"
  ],
  "editable": {
    "subject": "도자기 머그를 투명 유리병으로 교체",
    "accent_color": "탁한 빨강을 코발트 블루로 변경",
    "verbatim_text": ["NORTH", "STILL WATER"]
  },
  "unknown": [
    "카메라 모델",
    "정확한 초점 거리",
    "정확한 글꼴 패밀리",
    "화면 밖 광원의 물리적 방식"
  ],
  "hard_constraints": [
    "추가 문자를 넣지 않기",
    "시점을 바꾸지 않기",
    "참조 레이아웃 밖에 물체를 추가하지 않기"
  ]
}

이렇게 하면 생성기에 유지, 변경, 추측 금지라는 서로 다른 명령을 분명하게 전달할 수 있습니다.

모순 제거

사양을 일반 문장으로 다시 읽습니다.

  • 피사체가 동시에 중앙과 왼쪽에 있을 수 있는가
  • crop 설명과 종횡비가 일치하는가
  • 부드러운 확산광과 날카로운 그림자가 근거 없이 함께 있는가
  • “문자 없음”과 필수 제목이 동시에 적혀 있는가
  • 같은 물체가 양립할 수 없는 두 위치에 있는가

모델이 모순을 합리적으로 해결해 준다고 기대하면 안 됩니다. 하나를 임의로 선택하거나 두 조건을 섞거나 모두 무시할 수 있습니다.

3단계: 통제된 첫 후보 생성

관찰 JSON과 제어 객체를 생성기에 전달합니다. 참조 입력이 지원되면 원본 이미지도 첨부합니다. OpenAI 공식 이미지 생성 문서와 Google 공식 이미지 생성 문서는 이미지 입력과 반복 편집을 설명하지만, 정확한 지원 범위는 선택한 모델의 현재 문서를 확인해야 합니다.

전달 프롬프트 예시:

첨부한 참조 이미지와 JSON 사양으로 새 이미지를 생성하세요.

우선순위:
1. hard_constraints를 지키세요.
2. locked의 모든 항목을 유지하세요.
3. editable에 명시된 변경만 적용하세요.
4. unknown은 알 수 없는 상태로 두고 기술 세부를 만들지 마세요.
5. 세부 질감보다 구도와 공간 관계를 먼저 맞추세요.
6. 따옴표 안의 문자는 정확히 한 번만 표시하고 다른 문자를 추가하지 마세요.
7. 워터마크, 서명, 보호된 로고를 복제하지 마세요.

이미지 한 장만 반환하고 프롬프트를 설명하지 마세요.

생성기가 JSON을 무시하면 같은 정보를 라벨이 있는 문장으로 바꿉니다.

피사체:
구도:
조명:
색:
재질:
문자:
스타일:
유지:
변경:
추가 금지:

JSON은 편집 가능한 원본이지, 모든 이미지 모델의 공통 프로토콜은 아닙니다.

첫 batch에서는:

  1. 참조와 같은 종횡비 사용
  2. seed가 있으면 기록하되 모델 간 호환성을 가정하지 않기
  3. 한 장이 아니라 3~4개 후보 생성
  4. JSON, 모델과 버전, 설정, 참조, 출력을 저장
  5. v01-a, v01-b, v01-c 같은 run ID 부여

성공 신호는 “보기 좋다”가 아닙니다. 최소 한 후보가 모든 필수 통과 기준을 만족하고 우선순위가 높은 필드에서 큰 오류가 없는 것입니다.

4단계: 참조와 같은 표로 점수 매기기

두 이미지를 같은 크기로 놓고 항목마다 다음 점수를 줍니다.

  • 0: 틀리거나 없음
  • 1: 일부 맞음
  • 2: 용도에 맞게 수용 가능
항목비교 내용
피사체수, 특징, 실루엣, 상대 크기
구도위치, crop, 균형, 여백, 겹침
공간 관계좌우, 위아래, 앞뒤
조명방향, 색온도, 부드러움, 대비, 그림자
색주색·보조색·강조색과 위치
재질광택, 투명도, 직물, 결, 털, 금속, 종이
문자정확한 문구, 횟수, 철자, 정렬, 계층
스타일과 분위기매체, 마감, 처리, 정서

필수 통과 기준:

  • 보이지 않거나 근거 없는 사실이 없음
  • 사양 내부 모순이 없음
  • 필수 문자가 정확함
  • 핵심 공간 관계가 유지됨
  • 요청하지 않은 로고, 워터마크, 물체, 문자가 없음

총점은 후보 정렬에 도움이 되지만 필수 기준 실패를 상쇄하지 못합니다. 멋진 이미지라도 제목이 틀리거나 레이아웃이 반전되면 실패입니다.

큰 구조에서 세부로 검사

순서:

  1. canvas와 구도
  2. 피사체 수, 위치, 크기
  3. 조명과 큰 색 면
  4. 재질과 질감
  5. 타이포그래피와 작은 디테일

피사체가 잘못된 쪽에 있다면 털 질감부터 다듬을 이유가 없습니다.

5단계: 한 번에 한 필드 그룹만 수정

가장 좋은 후보를 새 baseline으로 정하고, 가장 큰 실패와 관련된 필드만 수정합니다.

문제변경명시적으로 유지
피사체가 너무 큼composition의 위치와 scale시점, 빛, palette
레이아웃 drift공간 관계와 여백피사체 외형, 재질
화면이 너무 따뜻함색온도와 palettegeometry, 문자
제품이 플라스틱처럼 보임재질, highlight, 반사형태, 위치, label
문자가 틀림정확한 문구, 횟수, 위치편집 가능하면 비문자 영역
스타일은 맞지만 동일성이 흐트러짐피사체 특징 또는 참조 강도구도와 배경

“제목 문자만 바꾸고 crop, 시점, 물체 형상, 조명, 색, 나머지 문자는 유지하세요”처럼 씁니다.

공식 prompting 가이드도 변경 지시와 보존 조건을 분리하고 한 번에 한 가지를 다듬도록 권합니다. 그래야 무엇이 결과를 바꿨는지 알 수 있습니다.

자주 생기는 실패와 복구

유효한 JSON이 아님

이미지를 다시 분석시키지 말고 기존 응답만 고치게 합니다.

다음 내용을 유효한 JSON으로 수정하세요.
이미지로 뒷받침되는 내용은 유지하고 새로운 시각 주장을 추가하지 마세요.
JSON만 반환하세요.

JSON Schema 또는 structured output은 구문 오류를 줄이지만 관찰 내용의 진실성을 보장하지는 않습니다.

생성기가 JSON을 무시함

라벨이 있는 자연어 섹션으로 변환합니다. 끝부분에 유지, 변경, 추가 금지를 배치하고 중요한 제약을 가리는 저우선순위 설명을 줄입니다.

구도가 계속 변함

구체적인 관계를 추가합니다.

  • “피사체 중심은 canvas 너비의 약 30% 지점”
  • “제목 왼쪽은 이미지 왼쪽 가이드와 정렬”
  • “제품은 아래쪽 3분의 1을 차지”
  • “오른쪽 절반은 대부분 비워 둠”

좌표는 지침일 뿐 보장이 아니므로 실제 출력을 확인합니다.

정확한 문자가 틀림

문구를 따옴표로 묶고 표시 횟수와 위치를 지정하며 추가 문자를 금지합니다. 공급자가 text-first를 권하면 문구를 먼저 확정한 뒤 이미지를 만듭니다. 법적·상품상 완전 일치가 필요하면 디자인 도구에서 마지막 조판을 하는 대안도 마련합니다. OpenAI의 현행 문서는 정확한 문자 배치와 선명도에 제약이 남는다고 밝히며, Google도 이미지 내 문자에는 먼저 text를 만드는 방식을 권합니다.

같은 인물이나 제품이 달라짐

매번 처음부터 생성하지 말고 가장 좋은 이전 결과를 다음 편집 입력으로 사용합니다. 동일성, 형태, label을 짧게 반복하고 여러 run을 비교합니다. 반복 캐릭터, 브랜드 요소, 정밀 레이아웃의 일관성은 아직 변동할 수 있습니다.

이미지가 오기 전에 요청 실패

오류와 request ID를 저장합니다. 인증, quota, 입력 형식, moderation 문제를 먼저 해결합니다. 일시적 rate-limit이나 server error만 backoff로 재시도하고, 사용자 수정 가능한 오류는 요청을 바꾼 뒤 다시 보냅니다.

합격 기록 저장

{
  "run_id": "v03-b",
  "reference_file": "reference.png",
  "analysis_json": "reference.v01.json",
  "generator_and_version": "실제 값을 기록",
  "settings": {
    "aspect_ratio": "실제 값을 기록",
    "quality": "실제 값을 기록",
    "seed": null
  },
  "scores": {
    "subject": 2,
    "composition": 2,
    "spatial_relations": 2,
    "lighting": 1,
    "color": 2,
    "materials": 1,
    "text": 2,
    "style_and_mood": 2
  },
  "hard_gates": {
    "unsupported_claims": false,
    "contradictions": false,
    "required_text_wrong": false,
    "critical_layout_wrong": false,
    "unrequested_elements": false
  },
  "decision": "accept",
  "next_change": null
}

이 기록은 “B가 더 마음에 든다”를 추적 가능한 결정으로 바꿉니다. 모델 변경이 품질 개선인지 단순한 스타일 변화인지도 확인할 수 있습니다.

자주 묻는 질문

정확한 원본 프롬프트를 복구할 수 있나요

아니요. 보이는 증거에 대한 유용한 설명은 만들 수 있지만, 원래 과정에는 숨겨진 참조, seed, 설정, 무시된 명령, 여러 번의 편집, 후처리가 포함됐을 수 있습니다.

카메라와 조명 필드에는 무엇을 쓰나요

보이는 효과를 씁니다. 시점, 원근, 심도, 그림자 부드러움, 겉보기 방향, 색온도입니다. 별도의 검증된 출처가 없다면 정확한 장비나 보이지 않는 기술을 단정하지 않습니다.

모든 생성기가 JSON을 받나요

아니요. JSON을 기준 사양으로 보관하고 대상 도구가 잘 따르는 형식으로 변환하세요.

몇 번 반복해야 하나요

처음 3~4개 후보를 만들고 가장 좋은 baseline을 선택한 뒤 한 라운드에 한 필드 그룹을 수정합니다. 모든 필수 기준이 통과하고 추가 변경이 실제 용도를 개선하지 않을 때 멈춥니다.

전체 유사도 점수만 높으면 되나요

아니요. 잘못된 문자, 반전된 레이아웃, 추가 물체, 만들어 낸 로고가 숨을 수 있습니다. 필드별 검사가 필요합니다.

출처와 증거 수준

핵심은 모델 이름이 아닙니다. 관찰 가능한 사실을 한 구조에 저장하고, 변경을 명확히 선언하며, 결과를 긴 프롬프트가 아니라 참조 이미지와 비교해 판단해야 합니다.

LLM 워크플로를 최적화할 준비가 되셨나요?

하나의 API로 모델을 연결하고 키와 AI 비용을 관리하세요.

무료로 시작하기