ChatGPT 이미지 프롬프트 공식 지침, 썸네일 40장과 대조
썸네일을 수십 장 반복해 뽑다 보면 톤이 흔들립니다. ChatGPT 이미지 프롬프트 공식 지침이 한 장 뽑을 때와 40장 반복할 때 어디서 갈리는지가 문제입니다.
OpenAI 문서 두 곳과 ChatGPT Learn 문서를 대조하고, 이 블로그 썸네일 사양 13건을 직접 세어 봤습니다. 공식 권고와 그대로 맞은 항목, 따로 정해야 했던 항목을 갈라 적습니다.
OpenAI 문서 세 곳이 서로 다르게 적습니다
프롬프트를 얼마나 길게 쓸지를 두고 OpenAI 문서끼리 말이 갈립니다. openai.com 의 안내글과 ChatGPT Learn 문서는 1~3 문장이면 충분하다고 적습니다. OpenAI Academy 플랫폼에 올라온 자료는 자세할수록 의도에 가까워진다는 쪽입니다.
짧게 쓰라는 쪽이 둘입니다. Creating images with ChatGPT 는 A good image prompt does not need to be long 이라고 적습니다. 바로 뒤에 In most cases, 1-3 clear sentences are enough 가 붙습니다. ChatGPT Learn 의 이미지 생성 문서도 often only one to three clear sentences 로 같은 값을 말합니다.
자세히 쓰라는 쪽은 OpenAI Academy 의 Creating images 자료입니다. 문구는 The clearer and more detailed you are, the more closely the generated visuals will align with your intent 입니다. 2025년 9월 25일 게시에 2026년 5월 29일 갱신으로 표기돼 있습
니다.범위도 같지 않습니다. Academy 플랫폼 자료에는 이미지 안 글자와 여러 장 업로드를 다루는 항목이 아예 없습니다. 모델 이름을 적은 곳은 ChatGPT Learn 문서 한 곳뿐인데, 그마저 Codex 내장 생성이 gpt-image-2 를 쓴다는 문맥입니다. 안내글 쪽에는 모델도 해상도도 나오지 않습니다.
이미지 안 글자 규칙은 실측과 그대로 맞았습니다
이미지 안 글자에 대한 공식 권고는 이 블로그 실측과 어긋나지 않았습니다. 짧게 쓰고, 원하는 대소문자를 그대로 적고, 글꼴과 자리까지 지정하라는 내용입니다. 남은 썸네일 사양 13건에서 라벨 최대 길이는 16자였습니다.
ChatGPT Learn 의 이미지 생성 문서는 Keep in-image text short and specify it precisely 로 항목을 엽니다. 정확한 문구는 따옴표에 넣고, 원하는 대소문자를 유지하고, 글꼴과 크기와 색과 배치를 함께 적으라고 이어집니다. 드문 이름은 철자를 하나씩 풀어 쓰라는 문장도 있습니다.
실제로 어떤 라벨을 써 왔는지는 세어 보는 편이 빠릅니다. 40장 전체가 아니라 사양이 남아 있는 13건이 대상입니다. 사양은 output/.thumbs.json 에 있어서 라벨 길이와 단어 수를 한 줄로 뽑을 수 있습니다.
# macOS 15.4.1 · Node v25.8.1 · 2026-08-09 실행 · blog-cli 저장소 루트
$ node -e 'const l=Object.values(require("./output/.thumbs.json")).map(v=>v.label);
console.log(l.length, Math.max(...l.map(s=>s.length)),
l.filter(s=>s.trim().split(/\s+/).length<=2).length,
l.filter(s=>s===s.toUpperCase()).length)'
13 16 11 10
네 숫자는 차례로 사양 건수, 라벨 최대 길이, 1~2 단어인 라벨 수, 전부 대문자인 라벨 수입니다. 13건 중 11건이 두 단어 안쪽이고, 대문자로 굳힌 것은 10건입니다. false positive 와 rumor check 처럼 소문자로 둔 쪽이 더 읽힌 경우도 있었습니다.
260px 가 이 규칙을 강제합니다. 블로그 목록에서 대표 이미지는 그 정도 폭으로 줄어드는데, 라벨이 세 단어를 넘으면 획이 뭉개져 글자가 아니라 무늬로 보입니다. 짧게 쓰라는 공식 항목은 여기서 그대로 맞았습니다.
프롬프트 길이는 1~3 문장에서 갈립니다
프롬프트 길이는 공식 권고와 가장 크게 갈렸습니다. 이 블로그가 실제로 넘기는 프롬프트는 13건 평균 828자이고, 짧은 것이 763자, 긴 것이 884자입니다. 네 구획으로 나뉜 블록입니다. 1~3 문장과는 자릿수가 다릅니다.
차이는 취향이 아니라 반복 횟수에서 나옵니다. 한 장을 뽑아 마음에 들 때까지 고치는 상황이면 짧게 시작해 대화로 좁히는 편이 낫습니다. 같은 톤으로 40장을 뽑아야 하면 사정이 달라집니다. 매번 같은 제약을 다시 적어야 톤이 흔들리지 않습니다.
고정 골격이 얼마나 차지하는지도 재 봤습니다. 라벨과 소재를 비워 넣으면 남는 것이 프롬프트마다 똑같이 반복되는 제약 문구입니다. 프롬프트를 만드는 함수를 그대로 불러 길이만 세었습니다.
# macOS 15.4.1 · Node v25.8.1 · 2026-08-09 실행
$ node --input-type=module -e '
import {buildThumbPrompt as b} from "./dist/core/imageprompt.js";
import {imagePath} from "./dist/core/paths.js";
import {readFileSync as r} from "fs";
const t=JSON.parse(r("./output/.thumbs.json","utf8"));
const n=Object.entries(t).map(([k,s])=>b(s,imagePath(k)).length);
console.log("n", n.length, "min", Math.min(...n), "max", Math.max(...n),
"avg", Math.round(n.reduce((a,c)=>a+c,0)/n.length));
console.log("skeleton", b({label:"",subject:"",style:"render3d"},
imagePath("codex-usage-limit-reset")).length)'
n 13 min 763 max 884 avg 828
skeleton 579
579자가 글마다 그대로 반복됩니다. 크기와 저장 경로, 글자 규칙, 화풍, 금지 항목 네 구획이고, 글마다 바뀌는 것은 라벨 한 줄과 소재 두세 문장뿐입니다. 평균 828자에서 골격을 빼면 글마다 새로 쓰는 분량은 250자 안팎입니다.
ChatGPT 이미지 프롬프트 권고의 1~3 문장은 대화형으로 고쳐 나가는 상황을 전제한 것으로 읽는 편이 맞습니다. ChatGPT Learn 문서도 Repeat any requirement that must stay fixed 라고 따로 짚습니다. 고정할 조건은 되풀이하라는 뜻입니다. 골격이 길어지는 것과 어긋나지 않습니다.
주인공을 개념 도형에서 구체물로 바꿨습니다
썸네일이 읽히느냐 마느냐는 화풍이 아니라 주인공에서 갈렸습니다. 개념 도형을 주인공으로 두면 어느 글에나 붙는 그림이 되어, 260px 로 줄였을 때 무엇에 대한 글인지 알 수 없게 됩니다. 같은 글도 구체물로 다시 지정하면 한눈에 읽힙니다.
공식 문구는 Creating images with ChatGPT 의 Clarity is more effective than clever phrasing 입니다. 배치와 질감, 재질, 빛 같은 항목에서 특히 그렇다고 덧붙입니다. beautiful lighting 대신 soft natural light from a window on the left 처럼 적으라는 예가 붙어 있습니다.
경영진 인사 변경을 다룬 글이 그랬습니다. 처음에는 겹친 네모와 원, 꺾은선으로 뽑았는데 축소하니 아무 뜻도 남지 않았습니다. 바꾼 것은 화풍이 아니라 소재 한 항목이고, 사양 파일에 남은 값은 이렇습니다.
"label": "CEO TO CHAIR",
"subject": "유리벽 임원실 안에 등받이 높은 가죽 회의용 의자 하나가 책상 앞에 비어 있고,
책상 위 앞쪽에는 글자가 지워진 놋쇠 명패가 비스듬히 놓여 있다. 명패 옆에는
나사 두 개가 굴러 나와 있다. 의자에만 위에서 빛을 떨어뜨리고 배경 사무실은
어둡게 묻는다. 사람은 그리지 않는다.",
"style": "render3d"
빈 의자와 글자가 지워진 명패, 굴러 나온 나사 두 개. 큰 덩어리를 줄이고 조명을 의자 하나에 몰아 준 것이 전부입니다. 스타일 지시는 처음과 같았습니다. 라벨은 SOURCE TIERS 에서 CEO TO CHAIR 로 바꿨습니다. 개념을 가리키던 말을 사건을 가리키는 말로 옮긴 것입니다.
도구를 다루는 글은 그 도구의 정체성이 주인공이 됩니다. 사양 지시문에 예로 박아 둔 것이 가재코드(gjc) 설치와 네 가지 스킬 사용법입니다. 테마 색이 red-claw 와 blue-crab 이라 붉은 집게를 든 가재를 주인공으로 잡았습니다. 톱니바퀴나 물음표를 늘어놓았다면 어느 도구인지 알 수 없었을 것입니다.
회사 이름을 라벨로 박으면 오해를 부릅니다
회사 이름을 헤드라인 라벨로 박으면 그 회사가 낸 글처럼 읽힙니다. 공식 문서에는 없는 항목이라 규칙을 따로 만들었습니다. 회사나 서비스 이름 대신 사건이나 개념을 가리키는 영문 표현을 쓰게 했습니다.
허깅페이스 침해를 다룬 글이 그 경우였습니다. 라벨을 Hugging Face 로 두면 회사 공지처럼 보여서 agent breach 로 바꿨습니다. 사건 쪽을 가리키게 한 것입니다. 사양을 뽑는 지시문에 이 규칙을 그대로 박아 뒀습니다.
요소 개수 상한도 문서에 없습니다. 축소하면 사라질 잔 디테일은 아예 넣지 않는 편이 낫습니다. 소재는 두세 개까지, 형태는 크게. 워터마크와 서명, 그래프 눈금은 금지 항목으로 못 박아 뒀습니다.
나머지 하나는 프롬프트가 아니라 실행 쪽 문제였습니다. 같은 파일을 덮어쓸 때 생성이 실패했는데 옛 파일이 남아 있으면 성공으로 읽힙니다. 코드에서 순서를 바꿔 막았습니다.
// 먼저 지운다. 안 그러면 codex 가 새로 만들지 못했을 때
// 옛 파일이 남아 있는 것을 성공으로 착각한다.
fs.rmSync(outPath, { force: true });
await execa(
'codex',
['exec', '--sandbox', 'workspace-write', '--skip-git-repo-check', '--', prompt],
{ timeout: timeoutMs, stdio: 'ignore' },
);
if (!fs.existsSync(outPath)) {
throw new Error('이미지가 생성되지 않았습니다');
}
지우고, 만들고, 있는지 확인합니다. 세 줄이지만 이게 없으면 40장 중 몇 장이 옛 그림인지 알 수 없게 됩니다. 프롬프트를 아무리 다듬어도 이 구멍은 메워지지 않습니다.
한 장이냐 마흔 장이냐로 갈라 씁니다
한 장을 대화로 다듬는 작업이면 ChatGPT 이미지 프롬프트 지침의 1~3 문장을 그대로 따르면 됩니다. 같은 톤으로 여러 장을 반복해 뽑을 계획이면 고정 제약을 블록으로 굳혀 두는 쪽이 안전합니다.
openai.com 은 자동 수집 도구를 막아 둡니다. 그래서 원문 안내글은 브라우저로 직접 열어 확인했습니다. 게시 날짜는 April 10, 2026 이고, 상단 분류는 OpenAI Academy 입니다. 강의 영상이나 코스가 아니라 읽는 문서 한 편이며 로그인 없이 열립니다.
요금제별 생성 한도는 이 문서에 없습니다. 모델 이름을 적은 곳도 ChatGPT Learn 문서 한 곳뿐이고, Codex 내장 생성이 gpt-image-2 를 쓴다는 문맥입니다.
지금 쓰는 프롬프트에서 글마다 똑같이 반복되는 줄만 따로 세어 보세요. 그 줄들이 굳혀야 할 골격입니다.
출처: Creating images with ChatGPT · Image generation, ChatGPT Learn · Creating images, OpenAI Academy
