이 헬퍼는 실패한 HTTP 응답이나 잘못된 base64 데이터에 대해 오류를 발생시킵니다. data[0].b64_json을 기대합니다. 라우트가 다른 구조를 반환한다면, 저장 함수를 변경하기 전에 해당 응답을 점검하세요.
반환된 usage 레코드를 출력과 함께 보관하세요. 요청이 타임아웃되면, 재전송 전에 상태나 청구 기록을 확인하세요. 타임아웃이 발생했다고 해서 생성 실패가 확정되는 것은 아닙니다.
Generate a first image
공용 헬퍼 뒤에 이 호출을 실행하여 단일 제품 이미지를 생성하고 cup.png로 저장하세요.
이후 편집 예제를 위해 같은 작업 디렉터리에 있는 cup.png를 product.png로 복사하세요. 원본인 cup.png는 변경하지 않습니다. 또는 product.png로 저장한 자체 제품 사진을 사용할 수도 있습니다.
별도로 setting.png를 준비하세요. 제품을 배치할 배경 또는 환경의 PNG 사진을 사용하며, 제품이 들어갈 충분한 빈 공간을 확보하세요. 업로드 권한이 있는 이미지를 사용합니다. product.png와 나란히 저장하세요. 다중 참조 요청에서 이 이미지는 환경 용도로 사용되며, 두 번째 제품 참조가 아닙니다.
generate(
prompt=(
"Create a studio product photograph of an unbranded teal "
"ceramic travel cup on a warm cream background. "
"Show one cup, a clean silhouette, and a soft contact shadow. "
"No text or decorative objects."
),
destination="cup.png",
output_format="png",
)
짧은 승인 체크리스트로 결과를 확인하세요: 컵 1개, 올바른 색상, 깔끔한 실루엣, 추가 오브젝트 없음.
How Do You Generate SVG with GPT Image 2.6?
편집 가능한 벡터 에셋에는 SVG 출력을 사용하세요. 생성 엔드포인트에서 n=1로 요청한 뒤, 응답을 디코드하여 .svg 파일로 저장합니다. SVG 출력은 스트리밍을 지원하지 않습니다.
generate(
prompt=(
"Design an original minimalist icon of a teal travel cup "
"with a small leaf motif. Use simple closed vector shapes, "
"two flat colors, and generous negative space. "
"No text, gradients, photographs, or background scenery."
),
destination="cup-icon.svg",
output_format="svg",
)
유용한 SVG 승인 테스트는 파일을 열어보는 것 이상을 포함합니다:
아이콘을 작은 크기와 큰 크기에서 검사합니다.
도형과 색상이 편집하기 쉬운지 확인합니다.
결과가 의도한 비주얼 시스템에 적합한지 확인합니다.
외부에서 제공된 SVG를 애플리케이션에 임베드하기 전 XML을 점검합니다.
SVG를 래스터 편집 입력으로 다시 보내지 마세요. 벡터 수정과 이미지 편집 워크플로는 분리합니다.
How Do You Create Transparent PNG Assets with GPT Image 2.6?
컷아웃에는 PNG 출력과 투명 배경을 요청하세요. 공식 transparent-logo 예시는 깨끗한 알파 에지와 페인트된 체크보드가 없어야 함을 강조합니다.
generate(
prompt=(
"Create a single teal ceramic travel cup as an isolated "
"e-commerce asset. Center the entire cup with generous padding. "
"Keep clean edges and a fully transparent background. "
"No floor, backdrop, checkerboard pattern, or text."
),
destination="cup-transparent.png",
output_format="png",
background="transparent",
)
실제 투명성을 검증하세요:
from PIL import Image
with Image.open("cup-transparent.png") as image:
alpha = image.convert("RGBA").getchannel("A")
minimum, maximum = alpha.getextrema()
if minimum == 255:
raise RuntimeError("The output contains no transparent pixels.")
if maximum == 0:
raise RuntimeError("The output is entirely transparent.")
print("The output contains visible content and transparency.")
이는 컷아웃인 척하는 불투명 이미지를 잡아냅니다. 에지 품질은 평가하지 않으니, 밝은 배경과 어두운 배경 모두에서 에셋을 육안으로 검사하세요.
How Do You Edit Images with Multiple GPT Image 2.6 References?
각 참조에 구체적인 역할을 부여하세요. 아래 예제에서 첫 번째 이미지는 제품 정체성을 제공하고, 두 번째 이미지는 원하는 환경을 제공합니다.
with (
open("product.png", "rb") as product,
open("setting.png", "rb") as setting,
):
response = requests.post(
f"{BASE_URL}/images/edits",
headers=HEADERS,
data={
"model": "gpt-image-2.6-sunburst",
"prompt": (
"Use the cup in the first image as the exact product "
"reference. Use the second image only for the setting. "
"Place the cup naturally in that setting. Preserve its "
"silhouette, lid, color, and printed details. "
"Do not copy other products from the second image."
),
"quality": "high",
"complexity": "medium",
"output_format": "png",
},
files=[
("image[]", ("product.png", product, "image/png")),
("image[]", ("setting.png", setting, "image/png")),
],
timeout=(15, 300),
)
save_result(response, "product-in-setting.png")
이 multipart 예제는 image[]를 사용합니다. JSON 편집 요청은 images 배열을 사용하니, 두 인코딩을 혼용하지 마세요.
재현 가능한 테스트를 위해 참조 순서를 고정하세요. 원본 제품과 출력을 풀 해상도에서 비교하며 특히 손잡이, 라벨, 에지, 반사 등을 확인합니다.
How Does Transparent PNG Markup Work in GPT Image 2.6?
마크업은 주석 레이어입니다. 별도의 투명 PNG에 원이나 기타 시각 지시를 그린 뒤, 원본 이미지와 함께 해당 파일을 전송합니다.
마크업 워크플로는 첫 번째 입력 이미지에 주석을 적용합니다. 오버레이는 방향(오리엔테이션)이 반영된 동일한 치수를 가져야 하며, 투명 픽셀을 포함하고, 원본과 분리된 상태여야 합니다. markup을 mask 또는 prompt_rewriter와 함께 사용하지 마세요.
OpenAI의 데모는 주석이 표시된 꽃병을 보여줍니다:
결과 편집은 꽃병을 변경합니다:
이들은 아래 코드의 출력이 아닌 공식 데모 이미지입니다.
Prepare an annotation layer
아래 바운딩 박스는 주석 타원을 정의합니다. 편집하려는 객체를 둘러싸도록 좌표를 조정한 뒤, 제출 전에 오버레이를 확인하세요.
with (
open("product-oriented.png", "rb") as source,
open("markup.png", "rb") as markup,
):
response = requests.post(
f"{BASE_URL}/images/edits",
headers=HEADERS,
data={
"model": MODEL,
"prompt": (
"Change the body of the cup inside the red circle "
"to matte cobalt blue. Preserve the lid, shape, "
"lighting, and surrounding scene. "
"Remove the annotation from the finished image."
),
"quality": "medium",
"complexity": "low",
"output_format": "png",
},
files={
"image": ("product.png", source, "image/png"),
"markup": ("markup.png", markup, "image/png"),
},
timeout=(15, 300),
)
save_result(response, "cup-edited.png")
중요한 설계 선택은 요청된 변경 사항과 유지할 디테일을 모두 명시하는 것입니다. 주석은 대상을 식별하고, 텍스트는 작업을 정의합니다.
GPT Image 2.6 API Pricing: Token Rates and SVG Costs
예를 들어, 텍스트 입력 토큰 1,000, 이미지 입력 토큰 없음, 이미지 출력 토큰 2,000을 사용하는 래스터 요청의 비용은 $0.065입니다.
CometAPI의 GPT Image 2.6 API에서는 선택한 라우트의 표시 가격을 사용하고, 요청에 기록된 청구 내역을 검토하세요. 위 OpenAI 요율은 참조 계산이며 CometAPI 견적이 아닙니다.
유용한 비즈니스 지표는 다음과 같습니다:
Cost per accepted asset =
total workflow spending ÷ number of approved assets
거절된 생성과 수정 라운드를 분자에 포함하세요.
How Do You Migrate an Existing Image Workflow to GPT Image 2.6?
이미 GPT Image 2.5를 사용 중이라면, 먼저 모델 식별자를 업데이트하고 엔드포인트와 응답 처리를 명시적으로 유지하세요. 기본 요청이 성공한 뒤에만 선택적 출력 형식을 추가합니다.
기본값에 의존하지 말고 model="gpt-image-2.6-flare" 또는 model="gpt-image-2.6-sunburst"를 설정하세요. 기존 입력 파일과 프롬프트를 유지하면서 첫 응답을 점검합니다.
SVG의 경우 생성 엔드포인트를 사용하고, 디코드한 바이트를 .svg 확장자로 저장하며 스트리밍을 생략합니다. 래스터 편집에서는 소스 이미지를 편집 요청에 포함합니다. 별도의 투명 오버레이를 준비한 후에만 markup을 추가하세요.
파일 서빙 레이어도 업데이트하세요. SVG 에셋과 PNG 에셋은 서로 다른 미디어 타입이 필요합니다. 원본 소스와 승인된 수정본을 보관하고, 유지하려는 변경이 담긴 버전에서 새 편집을 시작하세요.
Conclusion
제품 이미지 예제로 시작한 뒤, 출력에 맞는 워크플로를 선택하세요. 편집 가능한 벡터 아트워크에는 SVG, 컷아웃에는 투명 PNG, 시각 입력 결합에는 참조 이미지, 대상 변경에는 마크업을 사용합니다. 동일한 프롬프트와 설정으로 Flare와 Sunburst를 비교하고, 승인된 에셋당 비용을 추적하세요.
FAQ
GPT Image 2.6 요청 타임아웃은 어떻게 처리해야 하나요?
타임아웃은 서버가 요청을 계속 처리하는 동안 발생할 수 있습니다. 요청 ID를 저장하고, 중복 작업과 청구를 피하기 위해 재시도 전에 제공자의 요청 로그를 확인하세요.
반환된 이미지를 애플리케이션이 저장하지 못하는 이유는 무엇인가요?
헬퍼는 data[0].b64_json을 포함하는 JSON 응답을 기대합니다. 먼저 HTTP 상태와 응답 구조를 확인하세요. 라우트가 이미지 URL을 반환한다면, 그 URL을 base64 디코더에 전달하지 말고 문서화된 URL 다운로드 플로우를 구현하세요. 저장한 확장자가 요청한 형식과 일치하도록 유지합니다.
편집 파일이 덮어쓰기되는 것을 어떻게 방지하나요?
소스, 오버레이, 각 출력을 서로 다른 이름으로 저장하세요. 예를 들어 product-source.png, product-markup.png, product-edit-01.png와 같이 사용합니다. 출력 옆에 프롬프트도 보관하세요. 이렇게 하면 원본을 잃지 않거나 주석이 포함된 미리보기를 실수로 소스로 업로드하지 않고 한 수정본을 다시 검토할 수 있습니다.
생성된 SVG를 임베드하기 전에 무엇을 확인해야 하나요?
대상 렌더러에서 에셋을 열어보고, 일반적인 SVG 검증 도구로 XML을 검사하세요. 퍼블리시 전에 치수, 클리핑, 경로, 텍스트를 확인합니다. 애플리케이션의 SVG 보안/정화 정책을 적용하고 올바른 미디어 타입으로 서빙하세요. 인터페이스에서 사용되는 가장 작은 크기에서도 가독성이 유지되는지 확인합니다.