TL;DR
GPT Image 2.6 API w CometAPI daje deweloperom praktyczną ścieżkę do generowania i edycji obrazów w dwóch wariantach: Sunburst i Flare.
Twórz zasoby graficzne w Pythonie z kluczem CometAPI: zacznij od żądania rastrowego, a następnie dodaj wyjście SVG, obrazy referencyjne lub przezroczystą warstwę adnotacji PNG, gdy Twoja trasa je obsługuje. Przykłady używają Pythona 3.10 lub nowszego i przechowują klucz API na Twoim serwerze.
Najważniejsze rozróżnienie: przezroczysty PNG jako wynik to gotowy zasób; przezroczysty plik PNG z markup to wejście, które wskazuje modelowi, gdzie edytować.
Kluczowe wnioski
- Używaj GPT Image 2.6 Flare do szybkich szkiców, a Sunburst do dopracowanych poprawek.
- Wysyłaj żądania generowania i żądania edycji do odpowiednich punktów końcowych Image API.
- Używaj SVG do zasobów wektorowych i przezroczystego PNG do wycięć rastrowych.
- Trzymaj markup osobno od obrazu źródłowego i dopasuj ich wymiary po uwzględnieniu orientacji.
- Zanim włączysz zaawansowane pola w aplikacji, potwierdź wsparcie trasy.
Czym jest GPT Image 2.6 API?
OpenAI wprowadziło GPT Image 2.6 dnia 4 listopada 2026. Rodzina modeli akceptuje wejścia tekstowe i obrazowe do tworzenia i poprawiania wizualiów.
Dwa warianty mają wspólną, zorientowaną na przepływ pracy rolę, ale inaczej rozkładają priorytety.
Jakie parametry obsługuje GPT Image 2.6 API?
Zacznij od niewielkiej, jednoznacznej konfiguracji.
W przypadku edycji żądanie dostarcza też obrazy źródłowe. image-edit schema obsługuje do 16 obrazów referencyjnych.
Pozostaw complexity na domyślnym poziomie przy pierwszym generowaniu. Dla ukierunkowanej edycji, jak przemalowanie jednego obiektu, zacznij od low i sprawdź, czy otoczenie pozostaje nienaruszone.
Jak używać GPT Image 2.6 API z CometAPI?
Postępuj zgodnie z przewodnikiem konfiguracji CometAPI, aby utworzyć klucz, a następnie zapisz go w poniższej zmiennej środowiskowej. Do przykładów edycji potrzebne będą też lokalne pliki PNG źródłowe.
Przykłady używają biblioteki requests w Pythonie, aby pokazać bezpośrednio treści JSON i multipart.
Te przykłady używają formatu żądań OpenAI Image API przez CometAPI. Zanim je uruchomisz, potwierdź, że wybrana trasa CometAPI obsługuje dany model i pola użyte w przykładzie.
Zainstaluj zależności
pip install requests pillow
Ustaw klucz w swojej powłoce:
export COMETAPI_KEY="YOUR_COMETAPI_KEY"
Użytkownicy PowerShell mogą użyć:
$env:COMETAPI_KEY = "YOUR_COMETAPI_KEY"
Utwórz współdzielone pomocnicze funkcje żądań
Zapisz wspólne helpery jako image_workflows.py. Każdy przykład przepływu umieść w osobnym skrypcie i zaimportuj potrzebne helpery. Uruchamiaj tylko ten przepływ, który chcesz testować.
import base64
import os
from pathlib import Path
import requests
BASE_URL = "https://api.cometapi.com/v1"
HEADERS = {"Authorization": f"Bearer {os.environ['COMETAPI_KEY']}"}
MODEL = "gpt-image-2.6-flare"
def save_result(response, destination):
response.raise_for_status()
payload = response.json()
Path(destination).write_bytes(
base64.b64decode(payload["data"][0]["b64_json"], validate=True)
)
print(f"Saved: {destination}; usage: {payload.get('usage', 'Not returned')}")
def generate(prompt, destination, **options):
response = requests.post(
f"{BASE_URL}/images/generations", headers=HEADERS,
json={"model": MODEL, "prompt": prompt, "n": 1, "size": "1024x1024",
"quality": "medium", "complexity": "low", **options},
timeout=(15, 300),
)
save_result(response, destination)
Ten helper zgłosi błąd w przypadku niepowodzenia odpowiedzi HTTP lub nieprawidłowych danych base64. Oczekuje data[0].b64_json; jeśli Twoja trasa zwraca inną strukturę, sprawdź tę odpowiedź zanim zmienisz funkcję zapisu.
Przechowuj zwrócony rekord użycia razem z wynikiem. Jeśli wystąpi limit czasu, sprawdź jego status lub zapis rozliczeń przed ponownym wysłaniem: przekroczenie czasu nie przesądza, że generowanie się nie powiodło.
Wygeneruj pierwszy obraz
Uruchom to wywołanie po helperach, aby wygenerować pojedynczy obraz produktu i zapisać go jako cup.png.
Do późniejszych przykładów edycji zrób kopię cup.png o nazwie product.png w tym samym katalogu roboczym. Pozostaw cup.png niezmieniony jako oryginał. Możesz też użyć własnej fotografii produktu, zapisanej jako product.png.
Przygotuj osobno setting.png: użyj zdjęcia PNG tła lub scenerii, w której ma pojawić się kubek, z wystarczającą ilością wolnej przestrzeni dla produktu. Użyj obrazu, do którego masz prawa do przesłania. Zapisz go obok product.png; żądanie z wieloma referencjami użyje go jako scenerii, a nie jako drugiej referencji produktu.
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",
)
Sprawdź wynik względem krótkiej listy akceptacji: jeden kubek, właściwy kolor, czysta sylwetka i brak dodatkowych obiektów.
Jak generować SVG w GPT Image 2.6?
Używaj wyjścia SVG do edytowalnych zasobów wektorowych. Żądaj go przez endpoint generowania z n=1, a następnie dekoduj odpowiedź do pliku .svg. Wyjście SVG nie obsługuje strumieniowania.
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",
)
Przydatny test akceptacji SVG wykracza poza samo otwarcie pliku:
- Obejrzyj ikonę w małych i dużych rozmiarach.
- Sprawdź, czy kształty i kolory łatwo edytować.
- Potwierdź, że wynik pasuje do zamierzonego systemu wizualnego.
- Sprawdź XML przed osadzeniem zewnętrznie dostarczonego SVG w aplikacji.
Nie wysyłaj SVG z powrotem jako wejścia do edycji rastrowej. Oddziel przepływy pracy związane z modyfikacją wektorów i edycją obrazów.
Jak tworzyć zasoby PNG z przezroczystością w GPT Image 2.6?
Do wycięcia poproś o wyjście PNG i przezroczyste tło. Oficjalny przykład transparent-logo podkreśla też czyste krawędzie alfa i brak narysowanej szachownicy.
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",
)
Zwaliduj rzeczywistą przezroczystość:
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.")
To wykrywa obraz nieprzezroczysty podszywający się pod wycięcie. Nie ocenia jakości krawędzi; obejrzyj zasób na jasnym i ciemnym tle.
Jak edytować obrazy z wieloma referencjami w GPT Image 2.6?
Nadaj każdej referencji konkretną rolę. W tym przykładzie pierwszy obraz dostarcza tożsamość produktu, a drugi — pożądaną scenerię.
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")
Przykład multipart używa image[]. Żądania edycji w JSON używają tablicy images; nie mieszaj tych dwóch kodowań.
Dla powtarzalnych testów utrzymuj stałą kolejność referencji. Porównaj oryginalny produkt z wynikiem w pełnej rozdzielczości, zwłaszcza uchwyty, etykiety, krawędzie i refleksy.
Jak działa przezroczysty PNG z markup w GPT Image 2.6?
Markup to warstwa adnotacji. Narysuj okrąg lub inną instrukcję wizualną na osobnym przezroczystym PNG, a następnie wyślij ten plik wraz z oryginalnym obrazem.
Przepływ pracy z markup stosuje adnotacje do pierwszego obrazu wejściowego. Nakładka musi mieć dopasowane po orientacji wymiary, zawierać przezroczyste piksele i pozostać oddzielona od oryginału. Nie łącz markup z mask ani prompt_rewriter.
Demonstracja OpenAI pokazuje zaznaczony wazon:

Wynik edycji zmienia wazon:

To oficjalne obrazy demonstracyjne, a nie wyniki poniższego kodu.
Przygotuj warstwę adnotacji
Poniższe pole ograniczające definiuje elipsę adnotacji. Dostosuj współrzędne tak, by otaczały obiekt do edycji, a następnie obejrzyj nakładkę przed wysłaniem.
from PIL import Image, ImageDraw, ImageOps
with Image.open("product.png") as source:
oriented = ImageOps.exif_transpose(source).convert("RGBA")
oriented.save("product-oriented.png")
overlay = Image.new("RGBA", oriented.size, (0, 0, 0, 0))
draw = ImageDraw.Draw(overlay)
width, height = oriented.size
region = (
int(width * 0.25),
int(height * 0.15),
int(width * 0.75),
int(height * 0.85),
)
draw.ellipse(region, outline=(255, 0, 0, 255), width=6)
overlay.save("markup.png")
Wyślij prowadzaną edycję
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")
Kluczowym wyborem projektowym jest określenie zarówno żądanej zmiany, jak i elementów do zachowania. Adnotacja wskazuje cel; tekst definiuje operację.
Cennik GPT Image 2.6 API: stawki tokenów i koszty SVG
Oba warianty mają poniższe opublikowane stawki tokenów OpenAI.
To są stawki OpenAI, a nie zweryfikowana wycena CometAPI.
Dla żądania bez buforowania, odpowiadające obliczenie to:
Cost =
(text input tokens × $5
+ image input tokens × $8
+ image output tokens × $30)
÷ 1,000,000
Na przykład żądanie rastrowe używające 1 000 tokenów wejścia tekstowego, bez tokenów wejścia obrazowego i 2 000 tokenów wyjścia obrazowego kosztowałoby $0.065.
W przypadku GPT Image 2.6 API w CometAPI użyj ceny pokazanej dla wybranej trasy i przejrzyj opłatę zarejestrowaną dla Twojego żądania. Powyższe stawki OpenAI służą jako kalkulacja referencyjna, a nie wycena CometAPI.
Przydatna metryka biznesowa to:
Koszt na zaakceptowany zasób =
łączny koszt przepływu pracy ÷ liczba zatwierdzonych zasobów
Uwzględnij w liczniku odrzucone generacje i rundy poprawek.
Jak przenieść istniejący przepływ pracy z obrazami do GPT Image 2.6?
Jeśli już używasz GPT Image 2.5, najpierw zaktualizuj identyfikator modelu i zachowaj jawny endpoint oraz obsługę odpowiedzi. Opcjonalne formaty wyjścia dodawaj dopiero po pomyślnym wykonaniu podstawowego żądania.
Ustaw model="gpt-image-2.6-flare" lub model="gpt-image-2.6-sunburst" zamiast polegać na modelu domyślnym. Zachowaj dotychczasowe pliki wejściowe i prompt podczas sprawdzania pierwszej odpowiedzi.
Dla SVG użyj endpointu generowania, zapisz zdekodowane bajty z rozszerzeniem .svg i pomiń strumieniowanie. Dla rastrowych edycji zachowaj obrazy źródłowe w żądaniu edycji. Dodaj markup dopiero po przygotowaniu oddzielnej przezroczystej nakładki.
Zaktualizuj też warstwę serwowania plików: zasób SVG i zasób PNG wymagają różnych typów mediów. Zachowaj oryginalne źródło i zatwierdzone poprawki. Każdą nową edycję rozpoczynaj od wersji, która zawiera zmiany, które chcesz zachować.
Podsumowanie
Zacznij od przykładu obrazu produktu, a następnie wybierz przepływ dopasowany do wyjścia: SVG dla edytowalnej grafiki wektorowej, przezroczysty PNG dla wycięć, obrazy referencyjne do łączenia wejść wizualnych lub markup do ukierunkowanych zmian. Porównuj Flare i Sunburst, używając tych samych promptów i ustawień, i śledź koszt na zaakceptowany zasób.
FAQ
Jak postępować w przypadku przekroczenia limitu czasu żądania GPT Image 2.6?
Limit czasu może wystąpić, gdy serwer nadal przetwarza żądanie. Zapisz identyfikator żądania i sprawdź dziennik żądań dostawcy przed ponowną próbą, aby uniknąć podwójnej pracy i kosztów.
Dlaczego moja aplikacja nie zapisuje zwróconego obrazu?
Helper oczekuje odpowiedzi JSON zawierającej data[0].b64_json. Najpierw sprawdź status HTTP i strukturę odpowiedzi. Jeśli Twoja trasa zwraca adres URL obrazu, zaimplementuj udokumentowany przepływ pobierania URL zamiast przekazywania tego URL do dekodera base64. Zachowaj zgodność rozszerzenia z żądanym formatem.
Jak uniknąć nadpisywania plików edycji?
Zapisuj źródło, nakładkę i każdy wynik pod oddzielnymi nazwami. Na przykład użyj product-source.png, product-markup.png i product-edit-01.png. Przechowuj prompt obok wyniku. Dzięki temu możesz wrócić do jednej poprawki bez utraty oryginału lub przypadkowego przesłania adnotowanego podglądu jako źródła.
Co sprawdzić przed osadzeniem wygenerowanego SVG?
Otwórz zasób w docelowym rendererze i sprawdź jego XML narzędziami walidacji SVG, których zwykle używasz. Sprawdź wymiary, przycinanie, ścieżki i wszelki tekst przed publikacją. Zastosuj politykę sanityzacji SVG Twojej aplikacji, serwuj z poprawnym typem mediów i zweryfikuj czy pozostaje czytelny w najmniejszym rozmiarze używanym w interfejsie.

