Community이미지github.com

실사 이미지 프롬프트

피사체, 장소, 동작, 렌즈, 마지막에 빛 순서로 사용자와 함께 프롬프트를 만든다. 영어 프롬프트와 한국어 대역을 주고, 고른 화각에서는 보이지 않을 디테일은 뺀다.

실사 이미지 프롬프트란 무엇인가요?

이미지 프롬프트를 촬영처럼 다룬다. 아름답다, 초고해상도, 걸작 같은 빈말은 쓰지 않는다. 선택할 때마다 영어 프롬프트를 보여주고, 중요한 디테일이 이미 고른 역광과 거리와 화각에 묻히지 않는지 확인한다.

지원 대상✓Claude Code~Codex CLI~Cursor✓Gemini CLI
npx skills add https://github.com/woochoi/image-prompt/tree/HEAD/.claude/skills/photoreal-image-prompt

Installed? Explore more 이미지 skills: steipete/songsee, affaan-m/frontend-design, mattpocock/improve-codebase-architecture · View all 6 →

즐겨 사용하는 AI에게 물어보기

이 에이전트 스킬이 미리 로드된 새 채팅을 엽니다.

문서

Photoreal Image Prompt

목표는 단 하나: 생성된 이미지가 실제 카메라로 찍은 사진처럼 보이게 하는 것.

이미지 모델이 "AI 같아 보이는" 결과를 내는 주된 이유는 프롬프트가 비어 있기 때문이다. 모델은 빈칸을 평균적이고 매끈하고 과하게 극적인 값으로 채운다. 그래서 이 스킬은 빈칸을 하나씩 사용자와 함께 구체적인 사진적 사실로 채운다. 칭찬 형용사(beautiful, stunning, ultra-detailed, 8k, masterpiece)는 정보가 없고 오히려 CG 느낌을 키우므로 쓰지 않는다.

전체 흐름

  1. 사용자의 요청을 읽고 이미 채워진 칸이 무엇인지 파악한다.
  2. 아래 5단계를 순서대로 진행한다. 각 단계마다 AskUserQuestion을 한 번 호출한다 (예외: 아래 "2·3단계 묶기").
  3. 각 단계가 끝날 때마다 지금까지 누적된 영문 프롬프트를 한 줄로 보여준다 (사용자가 프롬프트가 자라는 모습을 볼 수 있게).
  4. 5단계가 끝나면 충돌 점검(아래)을 한 뒤 최종 결과물을 출력 형식대로 낸다.

충돌 점검 (최종 출력 전)

단계마다 따로 고른 선택이 합쳐지면, 앞 단계의 선택이 뒤 단계의 디테일을 보이지 않게 만들 수 있다. 예: 1단계에서 고른 어두운 데님 + 5단계의 해 질 녘 빛 → 3단계의 "젖은 어깨"가 실제 사진에서도 거의 안 보인다. 모델이 그 디테일을 무시해도 프롬프트 탓인지 모델 탓인지 알 수 없게 된다.

그래서 최종 프롬프트를 내기 전에, 사용자가 고른 핵심 디테일(동작의 결과, 사실감 디테일, 간판 글자 등) 하나하나에 대해 묻는다: 이 디테일이 다른 선택들과 함께 있을 때 카메라에 실제로 보이는가?

  • 확인할 축: 색·밝기(어두운 옷 + 젖음, 흰 벽 + 흰 옷), 빛(역광·저조도 + 표정·질감), 거리·심도(와이드 샷·얕은 심도 + 작은 디테일), 방향(뒷모습 + 표정, 가려지는 손), 다른 요소에 가림(우산·소품 + 얼굴).
  • 충돌을 찾으면 임의로 고치지 말고 AskUserQuestion으로 묻는다. header는 충돌 점검. 선택지는 ① 앞 단계 선택을 바꾸기(예: 재킷을 밝은 회색으로) ② 그 디테일을 빼기 ③ 그대로 두기(디테일이 약하게 나올 수 있음을 감수) — 디테일을 살리는 쪽을 첫 번째에 (Recommended)로.
  • 충돌이 없으면 묻지 않고 넘어간다. 점검 결과는 "사실감 체크"에 한 줄로 남긴다.
  • 함께 확인: 인과관계로만 쓴 디테일("기울였고, 그래서 젖었다")은 눈에 보이는 모습으로 바꿔 쓰고(a dark wet patch with beaded raindrops on his left shoulder), 좌우가 애매한 표현("바깥쪽 어깨")은 카메라 기준 좌우나 "the one away from her"처럼 특정한다.

충돌 예시 목록은 references/realism-cheatsheet.md의 "12. 충돌 점검 예시"에 있다.

사용자의 첫 요청에서 이미 명확하게 정해진 칸은 다시 묻지 않는다. 그 단계는 "요청에서 확정: …"이라고 한 줄로 표시하고 넘어간다. 반대로 애매하면(예: "사람" — 누구인가? 나이·옷차림은?) 그 단계를 묻는다.

2·3단계 묶기. 다섯 번의 질문은 피로감을 준다. 첫 요청에 장소·시간·날씨가 이미 들어 있어 2단계에 남은 질문이 1~2개뿐이면, 2단계(환경 세부)와 3단계(동작·끝점·시선)를 AskUserQuestion 한 번으로 묶는다 — 질문 합계가 4개 이하일 때만. 묶어도 질문 순서는 환경 → 동작으로 유지하고, 끝난 뒤 누적 프롬프트는 2단계와 3단계를 각각 한 줄씩 보여준다. 1단계(피사체)와 4·5단계(카메라, 조명·스타일)는 묶지 않는다 — 앞 단계의 답이 다음 단계의 그럴듯한 선택지를 바꾸기 때문이다(예: 장소가 정해져야 현실적인 광원을 제안할 수 있다).

5단계 빌드업

차례채울 칸예시 (누적)
1피사체만a factory worker
2+ 환경a factory worker at an inspection line inside a manufacturing plant
3+ 동작과 끝점…leans over the line and stops with one hand resting on the rail
4+ 카메라Medium shot, static camera, 50mm lens. …
5+ 조명과 스타일… Soft morning light from tall windows on the left. Photorealistic documentary photography, muted industrial palette.

1단계 — 피사체

누가/무엇이 프레임의 주인공인가. 사실감은 구체적이고 평범한 디테일에서 나온다: 나이대, 체형, 옷의 소재와 마모 상태, 소품. "a woman"보다 "a woman in her 50s wearing a faded navy work jacket"이 훨씬 사진 같다.

  • 질문 예: 피사체 정체 / 나이·외형 / 옷차림·소품의 상태(새것 vs 낡은 것)
  • 사람이면 성별과 나이를 둘 다 확정한다. 한 선택지에 성별과 나이를 섞으면(예: "60대 여성 / 50대 남성 / 30대 상인") 어떤 선택지는 성별이 비고, 그 빈칸을 Claude가 추정해 채우게 된다(his/her). 방법은 둘 중 하나다: ① 나이대와 성별을 별도 질문으로 묻거나, ② 모든 선택지 label에 둘 다 적는다(30대 남성, 30대 여성). 성별이 장면과 무관하다고 사용자가 답하면 영문 프롬프트에서 대명사를 피하고 the vendor처럼 쓴다.

2단계 — 환경

어디서, 언제. 장소의 종류뿐 아니라 그 장소가 실제로 갖는 사물과 흔적(케이블, 얼룩, 표지판, 생활감)을 한두 개 넣는다. 배경이 텅 비어 있으면 스튜디오 합성처럼 보인다.

  • 질문 예: 장소 / 시간대·계절·날씨 / 배경의 밀도(한산 vs 붐빔)
  • 간판이 보일 만한 장소(골목, 시장, 상가, 공장 지대 등)라면 간판 질문을 하나 넣는다. 선택지는 이 장소·업종에 맞게 지어낸 상호 23개(예: 대성철공 (철구조물·용접), 문래정밀 (선반·밀링 가공))를 주고, 배경에 보일 세로 간판 상호 12개도 함께 정한다(사용자가 고르지 않으면 같은 업종 패턴으로 Claude가 지어 넣고 최종 출력에 밝힌다). 2·3단계를 묶을 때도 이 질문은 환경 질문 수에 포함해 4개 한도를 지킨다 — 넘치면 배경 소품 질문과 합친다.

3단계 — 동작과 끝점

정지 이미지라도 동작이 어디서 멈추는지(끝점) 를 적으면 자세가 자연스러워진다. "standing"은 마네킹 포즈를 부르고, "leans over the line and stops with one hand resting on the rail"은 순간을 포착한 사진을 부른다. 시선 방향도 정한다 — 카메라를 정면으로 보는 미소는 스톡사진/AI 느낌이 강하다.

  • 질문 예: 동작 / 동작이 멈추는 끝점 / 시선(카메라 응시 vs 작업에 집중 vs 화면 밖)

4단계 — 카메라

샷 크기, 카메라 움직임(정지 사진이면 static/handheld 느낌), 초점거리, 조리개(심도), 카메라 높이·각도. 초점거리와 조리개가 사실감에 가장 크게 기여한다. 선택지 설계 시 references/realism-cheatsheet.md의 카메라 표를 참고한다.

  • 질문 예: 샷 크기 / 렌즈(24·35·50·85mm…) / 심도 / 카메라 높이·앵글

5단계 — 조명과 스타일

조명은 광원 + 방향 + 질감으로 쓴다("soft morning light from tall windows on the left"). 스타일은 사진의 장르(documentary, editorial, street, candid snapshot)와 색감 팔레트로 정한다. 필요하면 필름/센서 질감과 사실감 디테일(피부 결, 먼지, 미세한 노이즈)을 한두 개 더한다 — 과하면 오히려 연출된 느낌이 난다.

  • 질문 예: 광원·방향 / 사진 장르 / 색감 팔레트 / 사실감 디테일 (이 마지막은 multiSelect 적합)

AskUserQuestion 호출 규칙

모호한 요구나 갈림길을 만나면 추측하거나 텍스트로 길게 질문하지 말고 AskUserQuestion을 호출한다.

  • 타이밍: 이미지 생성용 프롬프트(요청)가 들어오면 바로 1단계부터 호출한다. 이후 각 단계마다 한 번씩 (2·3단계는 조건에 맞으면 한 번으로 묶는다).
  • 질문 수: 한 번에 1~4개. 해당 단계의 칸을 채우는 데 꼭 필요한 것만.
  • header: 질문 성격을 나타내는 12자 이내 짧은 태그 (예: 피사체, 렌즈, 조명 방향).
  • options: 질문당 2~4개. 사용자의 장면에 맞춰 그때그때 만든다 — 일반론적 선택지가 아니라 이 장면에서 실제로 그럴듯한 선택지. 각 선택지의 description에는 결과가 어떻게 달라지는지 트레이드오프를 짧게 적는다 (예: "85mm — 배경이 압축되고 흐려져 인물이 도드라짐, 대신 환경 정보가 줄어듦"). 가장 사실적인 선택을 첫 번째에 두고 label 끝에 (Recommended)를 붙인다.
  • label: 한국어로 짧게 쓰되, 영문 프롬프트 용어가 있으면 괄호로 병기한다 (예: 50mm 표준 (50mm lens)).
  • multiSelect: 여러 개를 동시에 고르는 게 자연스러울 때만 true (예: 사실감 디테일, 배경 소품). 렌즈나 샷 크기처럼 하나만 가능한 것은 false.
  • "Other"는 자동으로 제공되므로 선택지에 넣지 않는다.

사실감 원칙 (프롬프트 작성 시)

  • 문장으로 쓴다. 키워드 나열보다 한두 개의 서술 문단이 모델에 더 많은 정보를 준다. 카메라 정보만 앞에 짧게 두는 형태(Medium shot, static camera, 50mm lens. …)는 괜찮다.
  • 물리적으로 가능한 조합만. 한 광원 방향, 한 시간대, 실제 존재하는 렌즈. 서로 충돌하는 조명(골든아워 + 정오의 강한 그림자)은 CG 느낌의 주범이다.
  • 불완전함 한두 개. 주름진 옷, 약간의 먼지, 자연스러운 피부 결, 살짝 어긋난 프레이밍. 완벽하게 대칭이고 깨끗한 장면은 가짜처럼 보인다.
  • 금지어: 8k, ultra-detailed, hyperrealistic, masterpiece, stunning, perfect, flawless, cinematic lighting(구체적 광원 없이 쓸 때). 이런 말 대신 구체적 사실을 쓴다.
  • 글자는 비워 두지 말고 지정한다. 간판이 보이는 장면에서 글자를 정하지 않으면 모델이 뜻 없는 가짜 한글("물알연돈사" 같은)을 채우고, 이것이 가장 빨리 AI임을 드러낸다. 반대로 장소 맥락에 맞는 진짜 같은 간판("대성철공 / 철구조물·용접·절단·가공")은 사진의 사실감과 장소감을 크게 올린다. 그래서 간판이 프레임에 들어오면:
    • 주 간판 하나의 글자를 큰따옴표로 정확히 지정한다 — 상호 + (필요하면) 업종 설명 한 줄. 상호는 그 장소·업종·시대에 실제로 흔한 작명 패턴으로 짓는다.
    • 간판의 물성도 적는다(빛바랜 흰 철판에 검은 페인트 글씨, 녹 자국 등) — 새것처럼 깨끗한 간판은 합성처럼 보인다.
    • 배경 간판도 이름을 붙인다. 한국 골목·상가처럼 간판이 원래 많은 장소에서는 "흐리게"도 "간판 없음"도 모델이 무시하고 가짜 한글을 그렸다(Gemini, 2회). 반면 큰따옴표로 지정한 글자는 정확히 그렸다. 그래서 프레임에 들어올 만한 배경 간판(특히 세로 돌출 간판) 1~2개에도 짧은 상호를 지정한다(예: a tall vertical sign further down the alley reads "문래정밀"). 부정문("no signs")은 오히려 간판을 떠올리게 할 수 있으니, 비워 둘 곳은 있는 것을 긍정형으로 서술한다(the upper floors are plain cement walls with windows and air-conditioner units).
    • 그래도 가짜 글자가 남으면 편집으로 고친다. 처음부터 완벽히 막으려 하기보다, 생성 후 편집 지시를 쓰는 편이 빠르다. 예: Change the text on the tall vertical sign on the right to "문래정밀" — only these four characters, filling the whole sign; no other characters. Keep everything else the same. 글자 수와 "다른 글자 없음"을 꼭 넣는다 — 빠뜨리면 원래 간판의 글자가 일부 남았다. 편집은 이미 있는 간판의 글자를 바꾸는 용도이고, 간판이 없는 자리에 새로 만들라는 지시는 무시될 수 있다. 최종 출력에 이 편집 문장을 함께 준다.
    • 관광 안내판·영문 표지판처럼 그 장면에 굳이 있을 이유가 없는 글자는 넣지 않고 네거티브에 적는다.
    • 상호는 실존 업체명을 그대로 쓰지 않는다 — 그럴듯하지만 지어낸 이름을 쓴다. 작명 패턴, 업종별 설명 문구, 간판 물성 어휘는 references/realism-cheatsheet.md의 "11. 간판·현지 글자"에 있다.

더 자세한 카메라·조명 어휘, 장르별 스타일 문구, 모델별 메모, "AI 티" 체크리스트는 references/realism-cheatsheet.md에 있다. 4·5단계 선택지를 만들 때와 최종 점검 때 읽는다.

출력 형식

5단계가 끝나면 아래 형식을 그대로 사용한다.

## 최종 프롬프트

### English
<카메라 문장>. <피사체+환경+동작/끝점 서술>. <조명 문장>. <스타일·팔레트·질감 문장>.

### 한국어
<위 영문 프롬프트의 자연스러운 한국어 번역 — 의미가 1:1로 대응하도록. 간판 글자는 영문 프롬프트와 똑같은 한글을 그대로 둔다>

## 단계별 누적
1. 피사체: …
2. + 환경: …
3. + 동작과 끝점: …
4. + 카메라: …
5. + 조명과 스타일: …

## 피해야 할 요소 (Negative / avoid)
<모델이 네거티브 프롬프트를 지원할 때 쓰는 짧은 목록, 예: plastic skin, oversaturated colors, extra fingers, studio backdrop, garbled or misspelled Korean text, English tourist signage>

## 사실감 체크
- <이 프롬프트에서 사실감을 지키기 위해 한 선택 2~3개와 그 이유>

## 생성 후 고칠 때 (편집 문장)
<간판이 있는 장면이면: 배경에 가짜 글자가 남았을 때 그대로 붙여넣을 편집 지시 1~2개>

영문 프롬프트는 어떤 이미지 모델(GPT Image, Gemini/Imagen, Midjourney, Flux 등)에 붙여넣어도 동작하도록 모델 중립적으로 쓴다. 작은 동작 결과(젖은 어깨, 기울어진 우산 등)처럼 모델에 따라 반영이 약한 요소가 핵심이면, 치트시트의 모델별 메모를 보고 "이 요소는 ○○ 모델에서 잘 안 나올 수 있다"고 한 줄 알려 준다. 사용자가 특정 모델을 언급했다면 치트시트의 모델별 메모를 반영해 변형본을 하나 더 붙인다.

마지막으로 다음 단계를 AskUserQuestion으로 묻는다: 이대로 확정 / 특정 단계 수정 / 변형 2~3개 생성(예: 다른 렌즈·다른 시간대).

리서치가 필요할 때

익숙하지 않은 장소·직업·장비·시대 고증이 필요하면(예: "1970년대 서울 시장", "반도체 클린룸") 프롬프트를 짓기 전에 리서치한다.

  • 리서치 전에 먼저 묻는다. 리서치를 더 유용하게 만드는 데 정보가 부족하면 AskUserQuestion으로 먼저 확인한다 — 예: 이 이미지의 용도(Jobs to be done)는 무엇인가, 고증의 엄격함은 어느 정도인가, 특정 국가/시대인가.
  • 리서치 결과는 장면 디테일로 환원한다. 실제 그 장소에 있는 사물, 복장, 조명 조건 등 프롬프트에 넣을 수 있는 구체적 사실 위주로 정리한다.
  • 리서치 응답 하단에 "불확실성 지도"를 붙인다:
    • 가장 덜 자신 있는 부분
    • 지나치게 단순화했을 수 있는 부분
    • 어떤 질문이나 추가 정보가 내 판단을 바꿀 수 있는지

관련 스킬