gpt-image-1, den senaste gpt-image-2, samt nano-banana / nano-banana-2-lite / nano-banana-2 / nano-banana-pro serien av modeller via samma gränssnitt.
Detta dokument beskriver huvudsakligen användningsflödet för OpenAI Images Edits API, vilket gör att vi enkelt kan använda den officiella OpenAI bildredigeringsfunktionen.
Ansökningsprocess
För att använda OpenAI Images Edits API, börja med att gå till Ace Data Cloud-konsolen för att få din API-token, som du kan spara för framtida bruk.
Om du inte har loggat in eller registrerat dig kommer du automatiskt att omdirigeras till inloggningssidan för att registrera dig och logga in, och efter att du har slutfört detta kommer du automatiskt att återvända till den aktuella sidan.
En API-token räcker för att anropa alla tjänster på plattformen, du behöver inte ansöka separat för varje tjänst. Första ansökan ger en gratis kvot för att prova; om kvoten är otillräcklig kan du ladda på allmän balans i konsolen.
📘 Fullständig dokumentation: OpenAI Images Edits API →
GPT-Image-2 Modell
gpt-image-2 har en mycket tydlig förbättring i bildredigeringsscenarier jämfört med gpt-image-1:
- Strukturen förblir mer stabil: Vid byte av hud, färgschema eller bakgrund förstörs nästan aldrig den ursprungliga bildens layout och komposition.
- Textbevarande är mer exakt: Informationsgrafik, affischer, menyer och andra bilder med text förblir tydliga och läsbara efter redigering.
- Stöd för direktöverföring av URL: Förutom traditionell
multipart/form-datafiluppladdning, stödergpt-image-2även att ta emot bild-URL:er i JSON-format, vilket eliminerar behovet av att först ladda ner bilder till lokalt, vilket är mycket lämpligt för serverpipeline-integration. - Stöd för direktöverföring av base64: I enlighet med officiella riktlinjer kan
image-fältet också direkt ta emot base64 (data:image/png;base64,...eller ren base64), vilket gör att lokala bilder inte behöver laddas upp till en bildvärd innan redigering. - Stöd för högupplöst omritning: Du kan skicka en 1K-originalbild och begära 2K / 4K-utdata via
size-parametern, modellen kommer att slutföra förstoring samtidigt som den redigerar.
Linjevarianter (:official / :reverse)
gpt-image-2 använder som standard den standardlinjen. Genom att använda modellnamnets suffix kan du uttryckligen välja linje:
gpt-image-2:official: Officiell kanal, stabil och regelrätt. Kostnaden bestäms av textinmatningstoken, bildinmatningstoken vid redigering och bildutgångstoken, och slutligen avräknas enligt den faktiska användningen i svaret; priserna för kvalitet/storlek som visas på sidan är endast för uppskattning; enligt det maximala användningspaketet är kundpriserna cirka 20% lägre än OpenAI:s officiella standardpriser. Tjänsten kommer automatiskt att hantera fel mellan tillgängliga kanaler, och kapacitet och kostnader baseras på de faktiska resultaten.gpt-image-2:reverse: Helt ekvivalent med standardgpt-image-2, med högre kostnadseffektivitet, priset förblir detsamma.
:officialAvgiftsformel Slutlig kostnad = textinmatningstoken + bildinmatningstoken (endast redigering) + bildutgångstoken. Priset som visas på sidan förquality × sizeär en uppskattning före begäran, den faktiska debiteringen baseras på den framgångsrika responsensusage. Till exempel,low,1024x1024kostar vanligtvis cirka 0.0505 Credits för bildutgång, plus en liten mängd inmatningstoken; närautoanvänds kan modellen välja högre kvalitet, och den förhandsauktoriserade kvoten kommer att kontrolleras mer konservativt.
Stödda size Värden
Redigeringsgränssnittets formatkontroll för size är densamma som för genereringsgränssnittet—gpt-image-2 kräver att size är auto, tomt, eller i formatet WIDTHxHEIGHT, alla andra former kommer att returnera 400. Standard gpt-image-2 och :reverse debiteras enhetligt per bild; :official kommer att beräkna textinmatning, referensbildinmatning och bildutgångstoken samtidigt, där originalbild, storlek och kvalitet kan påverka den slutliga kostnaden.
Storleksbegränsningar: Anpassade storlekar måste uppfylla att både bredd och höjd är multiplar av 16, långsidan ≤ 3840, totalt antal pixlar ≤ 8,294,400, överskridande kommer att returnera 4xx.
Till exempel: Om originalbilden ärNedan följer två olika verkliga exempel för att uppleva1024x1024, närsizeanges som2048x2048, kommer modellen att omrita och returnera en 2K-bild; närsizeanges som3840x2160kommer den att returnera en 4K liggande bild. Standardgpt-image-2och:reversehar samma debitering för de tre storlekarna;:officialbaseras på den faktiska tokenanvändningen. Att utelämnasize-fältet är helt ekvivalent med att uttryckligen angeauto:gpt-image-2kommer först att läsa av den tydliga storleksavsikten i prompten, inklusive pixlar, förhållande, liggande/stående riktning, upplösningsnivå (t.ex. 4K / högupplöst) eller namngiven duk. När storleksavsikten identifieras kommer den att använda den planerade specifika storleken; om prompten inte har storlekskrav eller automatisk bedömning är otillgänglig, kommer den att återgå till storleken på den första referensbilden. Den slutliga specifika storleken kommer att normaliseras till multiplar av 16, långsidan och totala pixelbegränsningar innan begäran skickas; för absolut kontroll, vänligen ange direktWIDTHxHEIGHT. När genereringen är klar kommer den inte att automatiskt försöka igen på grund av olika utgångspixlar, för att undvika att generera dubbla kostnader. Omnparameterngpt-image-2redigeringsgränssnittet stödern > 1: en begäran kan returnera motsvarande antal redigeringsresultat. Som standard debiterasgpt-image-2och:reversebaserat på antalet framgångsrika bilder;:officialdebiteras baserat på den faktiska tokenanvändningen för hela svaret (värdet pånär 1–10). Detta gäller även förgpt-image-1/gpt-image-1.5, samtnano-banana/nano-banana-2-lite/nano-banana-2/nano-banana-proserien. Observera attresponse_format=b64_jsonendast stödern=1, vidn>1använd den standard URL-returen. Om vissa bilder misslyckas med att genereras, returneras och debiteras endast de framgångsrika delarna.
gpt-image-2 redigeringsförmåga.
Anropmetod ett: JSON + bild-URL (rekommenderas)
Skicka en begäran direkt iapplication/json format, fyll i image fältet med en bild-URL, modellen kommer att hämta den bilden och redigera den enligt prompt.
Till exempel, nedan är den ursprungliga bilden som genererades med gpt-image-2 som en populärvetenskaplig bild:


Tips:imagefältet stöder också att skicka en array, till exempel"image": ["url1", "url2", "url3"], upp till 16 referensbilder kan skickas samtidigt för att modellen ska kunna redigera baserat på flera bilder.
base64 direktöverföring:image(och varje post i arrayen) kan förutom URL också vara base64 —data:image/png;base64,...eller ren base64 fungerar, lämpligt för lokala bilder som inte vill laddas upp till en bildvärd först. Till exempel:
Anropmetod två: JSON + flera referensbilder
gpt-image-2 stöder att referera till flera bilder samtidigt för att generera det slutliga resultatet, till exempel att kombinera flera produktbilder till en presentkorg:
Scenarieexempel: Byt stil + behåll struktur
Nedan är ett annat exempel, att byta en träbokhylla mot en modern flytande hylla, men strikt bevara antalet och arrangemanget av böckerna på varje hylla. Ursprungsbilden (genererad medgpt-image-2 som en träbokhylla):

task_id: e9544dba-727e-44a2-81e1-223d49869380):

Anropmetod tre: multipart/form-data (kompatibel med OpenAI SDK)
Om du redan använder den officiella OpenAI Python SDK, gäller den tidigaremultipart/form-data uppladdningsmetoden också, du behöver bara ändra model till gpt-image-2:
OPENAI_BASE_URL sätts till https://api.acedata.cloud/openai, OPENAI_API_KEY sätts till den token du har ansökt om:
Nano Banana-serien modeller
nano-banana serien har också integrerat /openai/images/edits för redigeringsscenarier, ändra model till valfri i tabellen nedan.
Viktigt: Parameterstöd Nano Banana ansluter till OpenAI-protokollet via en adapter, och stöder endast följande parametrar:model,prompt,image,n.
imagekan laddas upp som en fil viamultipart/form-data(lokala filer kommer automatiskt att konverteras till base64), eller så kan bildens URL-sträng skickas direkt som ett formulärfält.- Stöder inte parametrar som
mask,size,response_formatetc.; om de anges kommer de att ignoreras.n > 1stöds (1–10), och kommer att returnera och debitera motsvarande antal redigeringsresultat.- Returstrukturen följer OpenAI-formatet (
data[].url), mencreatedär alltid0, ochb64_jsonkommer inte att returneras,revised_promptär alltid lika med den ursprungligaprompt.
Anropa via formulär + bild-URL

Anropa via formulär + lokal fil
Asynkron callback
callback_url asynkron callback-mekanism fungerar också för nano-banana, anropsflödet är helt identiskt med andra modeller, se avsnittet Asynkron callback för mer information.
Grundläggande användning
Nu kan du använda koden för att göra anrop, nedan är ett exempel på anrop med CURL:authorization, som du kan välja direkt från rullgardinsmenyn. En annan parameter är model, model är den vi väljer att använda från OpenAI:s officiella modellkategorier, här har vi huvudsakligen 1 typ av modell, detaljer kan ses i de modeller vi tillhandahåller. En annan parameter är prompt, prompt är den text vi anger för att generera bilden. Den sista parametern är image, denna parameter är sökvägen till den bild som ska redigeras, bilden som ska redigeras visas nedan:
Tips:image[]kan upprepas flera gånger för att ladda upp flera referensbilder, till exempel-F "image[]=@a.png" -F "image[]=@b.png", GPT Image-serien modeller stöder upp till 16 bilder (varje bild får inte överstiga 50MB, formatet är png/webp/jpg). Överskridande antal kommer att returnera 400.

OPENAI_BASE_URL, som kan sättas till https://api.acedata.cloud/openai, och en annan användarautentisering variabel OPENAI_API_KEY, detta värde är hämtat från authorization, på Mac OS kan du ställa in miljövariablerna med följande kommando:
gift-basket.png genereras i den aktuella katalogen, det specifika resultatet ser ut som följer:

gpt-image-1 och gpt-image-2, där gpt-image-2 är den rekommenderade modellen att använda, se avsnittet ovan GPT-Image-2-modell.
Asynkron återkoppling
Eftersom OpenAI Images Edits API kan ta relativt lång tid att redigera bilder, om API:et inte svarar under en längre tid, kommer HTTP-förfrågan att hålla anslutningen öppen, vilket leder till extra systemresursförbrukning. Därför erbjuder detta API också stöd för asynkron återkoppling. Den övergripande processen är: när klienten initierar en begäran, specificerar den ett extra fältcallback_url. Efter att klienten har initierat API-förfrågan kommer API:et omedelbart att returnera ett resultat som innehåller ett fält med task_id, vilket representerar det aktuella uppdragets ID. När uppdraget är slutfört kommer resultatet av bildredigeringen att skickas till klientens angivna callback_url i POST JSON-format, vilket också inkluderar fältet task_id, så att uppdragets resultat kan kopplas ihop med ID.
Nedan går vi igenom ett exempel för att förstå hur man gör detta.
Först är Webhook-återkopplingen en tjänst som kan ta emot HTTP-förfrågningar, utvecklare bör ersätta med URL:en till sin egen HTTP-server. Här för att underlätta demonstration använder vi en offentlig Webhook-exempelsida https://webhook.site/, öppna denna webbplats för att få en Webhook-URL, som visas i bilden:
Kopiera denna URL, så kan den användas som Webhook, exemplet här är https://webhook.site/3d32690d-6780-4187-a65c-870061e8c8ab.
Därefter kan vi ställa in fältet callback_url till ovanstående Webhook-URL och fylla i motsvarande parametrar, som i följande kod:
task_id, fältet data innehåller samma bildredigeringsresultat som vid synkront anrop, och genom fältet task_id kan uppdraget kopplas ihop.
Felhantering
Vid anrop av API:et, om det uppstår fel, kommer API:et att returnera motsvarande felkod och information. Till exempel:400 token_mismatched: Felaktig begäran, möjligtvis på grund av saknade eller ogiltiga parametrar.400 api_not_implemented: Felaktig begäran, möjligtvis på grund av saknade eller ogiltiga parametrar.401 invalid_token: Obefogad, ogiltig eller saknad auktoriseringstoken.429 too_many_requests: För många förfrågningar, du har överskridit hastighetsgränsen.500 api_error: Internt serverfel, något gick fel på servern.

