AI 초보자 QnA
질문
OpenAI API가 만든 이미지가 URL 대신 긴 문자열로 오면 어떻게 저장하나요?
답변
GPT Image 모델은 생성한 이미지를 Base64로 인코딩한 데이터로 돌려줍니다. 긴 문자열이 나왔다고 생성 실패는 아닙니다. Image API의
b64_json
값을 디코딩한 뒤 이미지 파일로 저장하세요.
이 글은 API가 반환한 이미지 데이터를 내 파일로 만드는 방법입니다. ChatGPT 앱의 다운로드 버튼이나 이미지 라이브러리와는 다릅니다. 먼저 사용한 API 종류와 실제 응답에서 이미지가 들어 있는 항목을 확인합니다.
짧게 답하면
API 종류 확인 → 이미지 데이터 추출 → Base64 디코딩 → 파일 저장 → 직접 열어 확인 순서로 진행하세요. 긴 문자열을 그대로 메모장에 붙이고 확장자만 png로 바꾸는 것으로는 이미지가 되지 않습니다.
b64_json
Image API 응답의 data 안에서 찾는 이미지 데이터입니다. 다운로드 주소가 아닙니다.
output_format
PNG·JPEG·WebP처럼 이미지 파일 형식을 고릅니다. Base64 인코딩과는 별개입니다.
디코딩과 저장
문자열을 이미지 바이트로 되돌린 다음 파일에 씁니다. 저장된 파일은 직접 열어 확인합니다.
처음 쓰는 사람 기준으로 설명하면
자동화에서 이미지 생성을 요청했는데 url이 비어 있고 긴 영문·숫자 문자열만 보일 수 있습니다. 공식 Create image 문서는 GPT Image 모델이 항상 Base64 이미지 데이터를 반환하며, url 반환을 지원하지 않는다고 설명합니다. URL이 없다는 이유로 같은 이미지를 계속 다시 만들지 마세요.
Python SDK의 Image API 예시는
result.data[0].b64_json
에서 첫 이미지 데이터를 읽습니다.
base64.b64decode(image_base64)
로 바이트를 얻고 파일을 바이너리 쓰기 모드인
"wb"
로 열어 저장합니다. 여기서 result는 실제 생성 응답 객체입니다.
Responses API의 이미지 생성 도구는 위치가 다릅니다. response.output에서 type이
image_generation_call
인 항목을 찾고 그 항목의 result를 디코딩합니다. 일반 글 답변이나 첫 번째 output 항목이 언제나 이미지라고 가정하면 안 됩니다.
한 줄 정리: Base64는 이미지 데이터를 전달하는 표현 방식이고, PNG·JPEG·WebP는 저장할 이미지의 파일 형식입니다.
바로 따라 해보기
1단계. 응답과 저장 형식을 확인합니다.
성공한 비스트리밍 생성 응답에서 이미지 항목이 있는지 봅니다. Image API라면 data의 첫 이미지에서 b64_json을 찾으세요. output_format의 기본값은 png이며 jpeg·webp를 요청했다면 저장 파일의 확장자도 맞춥니다.
2단계. 이미지 값만 디코딩해 저장합니다.
Python에서는 import base64로 모듈을 불러온 뒤 b64_json 문자열을 image_base64 변수에 담습니다. base64.b64decode로 바꾼 바이트를 새 파일에 쓰세요. 응답 JSON 전체나 오류 메시지를 디코딩하지 말고 기존 파일을 덮어쓰지 않는 이름을 고릅니다.
3단계. 파일을 열고 실제 결과를 봅니다.
저장 경로에서 이미지가 열리는지 확인하고 요청한 장면과 글자를 대조하세요. 열리지 않으면 데이터가 비었거나 복사 중 잘렸는지, 실제 형식과 확장자가 같은지 확인합니다. 저장 실패부터 점검하고 생성 API 재호출은 그 뒤에 판단하세요.
주의할 점
공식 API 문서는 response_format을 dall-e-2·dall-e-3의 반환 방식 설정으로 설명하며 GPT Image에는 지원하지 않는다고 명시합니다. GPT Image에서 URL을 받으려고
response_format="url"
을 붙이지 마세요. 이미지 형식 선택은 output_format에서 합니다.
긴 Base64 문자열을 온라인 변환 사이트나 공유 로그에 그대로 붙입니다. 이미지 내용을 외부에 넘기는 셈이므로 로컬 개발 환경에서 처리하세요.
파일 이름을 .jpg로 바꾸면 PNG 데이터도 JPEG로 변환된다고 생각합니다. 요청한 형식과 확장자를 맞추고 실제 변환이 필요하면 이미지 편집 도구를 쓰세요.
파일이 열린다는 이유로 결과를 바로 공개합니다. 이미지 속 문구·인물·로고를 확인하고 원본 자료의 사용 권한과 공개 목적을 따로 검토하세요.
웹사이트와 앱 중 무엇부터 쓰면 좋을까요?
반환 구조 확인은 공식 웹 문서
Image generation 가이드의 저장 예시와 Create image의 반환 항목을 나란히 읽으세요. Image API와 Responses API 예제를 섞지 않는 것이 먼저입니다. 처음에는 스트리밍이 아닌 완료된 응답부터 다룹니다.
실제 저장은 API 개발 환경
응답을 받은 프로그램에서 디코딩과 파일 저장을 처리합니다. API 키와 이미지 원문은 화면 공유나 일반 로그에서 제외하세요. ChatGPT 모바일 앱의 저장 메뉴를 바꾸는 것으로 API 응답 구조가 바뀌지는 않습니다.
같이 보면 좋은 질문
확인한 공식 자료
OpenAI 공식 가이드 — Image generation — Base64 디코딩·파일 저장 예시와 기본 PNG·JPEG·WebP 출력 형식을 확인했습니다.
OpenAI API 문서 — Create image — data의 b64_json, GPT Image의 URL 미지원과 output_format·response_format 차이를 확인했습니다.
OpenAI 공식 가이드 — Image generation tool — Responses API에서 image_generation_call의 result를 추출해 저장하는 방법을 확인했습니다.
