Huny's Dev Blog
huny.dev

GPT Image 2.6 도입 전 점검: SVG·GIF 출력과 문서 사이의 제한 차이

11월 4일 공개된 GPT Image 2.6의 complexity, SVG·GIF 출력, 마크업 편집을 정리한다. 공식 문서의 GIF 제한 차이와 로컬 요청 검사 10개로 배포 전 확인 절차를 살펴본다.

Hun Jang
Hun Jang Nov 5, 2026

래스터 이미지, 편집 가능한 벡터, 반복 애니메이션과 수정 표시 레이어를 표현한 AI 생성 개념 일러스트. 특정 모델의 성능 비교 결과는 아니다.

이미지 생성 API가 PNG뿐 아니라 SVG와 GIF도 반환한다면, 서비스 코드는 어디부터 바꿔야 할까. 모델 이름을 바꾸는 것보다 먼저 요청 옵션, 파일 저장 방식, 결과 검수 기준을 출력 형식별로 나눠야 한다.

OpenAI는 2026년 11월 4일 GPT-Image-2.6 Sunburst와 Flare를 발표했다. 새 기능은 complexity 조절, SVG·애니메이션 GIF 출력, 마크업 기반 편집이다. 마크업 편집은 지원되는 2.5 모델에도 적용된다. 공식 변경 이력

이 글은 공식 문서와 로컬 요청 검사에 기반한다. 유료 Images API를 호출하거나 두 모델의 품질·속도를 벤치마크하지 않았다. 특히 GIF 프레임 수는 공식 가이드와 API 레퍼런스의 표기가 달라, 한쪽 숫자를 운영 상한으로 단정하지 않는다.

모델 선택과 complexity를 분리해서 기록하기

공식 모델 페이지는 Sunburst를 세밀한 시각 작업에, Flare를 빠른 반복 작업에 맞춘 모델로 소개한다. 이는 제품의 용도 설명이다. 우리 서비스에서 어느 쪽이 더 빠르고 수정 보존율이 높은지는 같은 입력으로 측정해야 한다. Sunburst, Flare

complexity는 렌더링 전에 계획하는 정도이고 quality는 렌더링 품질이다. 2.6의 complexity는 low, medium, high이며 생략 시 high다. 복잡도를 높이면 시간이 늘거나 원치 않는 수정이 생길 수 있다. 이미지 생성 가이드

실무 평가에서는 모델·프롬프트·입력 이미지를 고정하고 complexity만 바꿔 본다. 배경색 한 곳을 바꾸는 작업과 작은 글씨가 많은 화면을 만드는 작업을 같은 점수로 합치지 않는다. 요청부터 완료까지의 시간, 수정 대상 밖에서 달라진 부분, 실패율을 따로 남기면 기본값을 정하기 쉽다.

SVG는 파일 확장자만 바꾸는 기능이 아니다

SVG 출력은 POST /v1/images/generations에서 output_format: "svg"로 요청하며 n=1이 필요하다. 스트리밍·부분 이미지·압축 옵션·prompt_rewriter와 함께 쓰지 않는다. SVG 편집 출력은 지원하지 않는다. Create image 레퍼런스

생성 과정은 참조 이미지를 만든 뒤 SVG 문서를 작성하는 방식이다. 반환되는 base64를 디코딩하면 UTF-8 XML이며, 문서는 스크립트·외부 리소스·내장 래스터를 지원하지 않는 정적 벡터다. SVG 출력 안내

애플리케이션의 저장 계층도 함께 바꾸는 편이 좋다. 모든 결과를 result.png에 쓰는 코드를 남겨 두지 말고, 요청 형식과 응답 형식이 일치하는지 확인한 다음 MIME 타입과 확장자를 지정한다. 브라우저와 실제 벡터 편집기에서 각각 열어 축소 가독성, 경로 편집 가능성, 색상 재현을 확인한다. 생성 성공과 제품에 바로 사용할 수 있는 상태는 서로 다른 검수 단계다.

GIF 프레임 수: 공식 문서 두 곳의 숫자가 다르다

2026년 11월 5일 확인한 문서는 다음처럼 설명한다.

  • 이미지 생성 가이드: frame_count 2~64, frame_duration_ms 20~2000ms.
  • Create image 레퍼런스: frame_count 2~16, 기본값 9, 선택한 모델의 GIF 프리뷰 접근 필요. 프레임 지연에는 최소 20ms와 별도의 인코딩 상한을 설명한다.

가이드의 GIF 항목, API 레퍼런스

이 차이만으로 서버가 실제로 64프레임을 허용하는지, 16프레임으로 제한하는지 판정할 수는 없다. 계정별 접근 권한, 사용하는 SDK, 실제 응답까지 확인해야 한다. 아래 값은 두 문서에 공통으로 들어가는 초기 점검용 구성이다. 성공이 검증된 요청이라는 뜻은 아니다.

GIF는 생성 엔드포인트용이며 편집 출력으로는 지원하지 않는다. 프레임 수·크기·생성 개수는 전체 픽셀 예산에도 영향을 준다. 프레임 설정은 GIF 요청에만 넣는다. GIF 출력 안내

9개 프레임에 각각 200ms를 지정하면 명목상 한 주기는 1.8초다. 실제 파일에서는 디코더로 프레임 수와 지연 시간을 읽고, 첫 장과 마지막 장의 연결도 눈으로 확인한다. 요청값 계산만으로 매끄러운 반복이나 실제 재생 시간을 보장할 수 없다.

마크업 편집은 원본과 표시 레이어를 따로 보낸다

마크업 편집은 Images API의 /v1/images/edits를 사용한다. 원본과 같은 방향·크기의 투명 PNG에 원이나 화살표를 그리고 markup으로 전달한다. 첫 입력 이미지에 적용되며 mask, prompt_rewriter와 함께 사용하지 않는다. 마크업 편집 안내

편집 UI를 만든다면 원본 파일을 보존하고 사용자 표시를 별도 레이어로 저장하는 구조가 유용하다. “무엇을 바꿀지”와 “무엇을 유지할지”도 따로 기록한다. 결과 검수에서는 원 표시가 최종 이미지에 남았는지, 지정하지 않은 글자나 물체까지 바뀌었는지 확인한다.

외부 호출 전에 잡을 수 있는 요청 실수

다음은 이 글에서 만든 교육용 로컬 검사기다. 공식 API 검증기 전체를 구현한 것이 아니다. GIF의 16프레임·2000ms 상한은 문서 차이가 해소되기 전 보수적으로 선택한 로컬 정책이며, 서버의 실제 상한이라는 의미가 아니다.

Python 3.12.14에서 10개 검사를 실행해 모두 예상대로 통과했다. SVG 최소 구성·GIF 보수적 구성·PNG 기본 구성은 통과했고, SVG 다중 생성·스트리밍, GIF 압축·32프레임·불리언 프레임 수, PNG의 애니메이션 필드, 잘못된 complexity는 거부했다.

이 검사는 모델 접근 권한, SDK 직렬화, 이미지 크기와 픽셀 예산, 실제 생성 품질을 확인하지 않는다. 그 항목은 별도의 통합 테스트가 필요하다. 로컬 검사가 통과했다는 이유로 바로 대량 생성이나 자동 재시도를 켜지 않는 것이 좋다.

배포 전에 남길 기록

  • 설정: 모델명, 출력 형식, complexity·quality, 사용한 SDK 버전.
  • 계약: 요청과 응답의 형식, 파일 확장자·MIME, 디코딩 성공 여부.
  • 품질: 수정 보존율, SVG 편집 가능성, GIF 반복 연결과 실제 길이.
  • 운영: 요청 ID, 지연, 실패 유형, 사용량과 비용. 입력 이미지나 인증정보가 로그에 섞이지 않게 한다.

공식 모델 페이지의 이미지 출력 단가는 두 모델 모두 100만 토큰당 US$30이다. 이것을 이미지 한 장의 고정 가격으로 환산하면 안 된다. SVG에는 참조 이미지와 SVG 작성 모델의 사용량이 함께 관여하며, API 응답에는 별도 svg_usage 구조도 정의되어 있다. Sunburst 가격, Flare 가격, 출력 비용 안내, 응답 스키마

이번 업데이트를 적용할 때는 출력 형식별 작은 테스트부터 시작하는 것이 좋다. SVG는 편집 가능한 문서로, GIF는 시간 정보를 가진 파일로, 마크업은 원본과 분리된 입력으로 관리한다. 이 경계를 먼저 정해 두면 새 기능을 붙인 뒤에도 저장·검수·비용 기록을 일관되게 유지할 수 있다.

기준일: 2026년 11월 5일 KST. 공식 문서의 불일치는 확인 시점 기준이며 바뀔 수 있다. 본문 코드는 로컬 구조 검사만 수행했고 실제 Images API 호출 결과를 주장하지 않는다.

추천 글