Skip to main content
OpenAI bildredigeringstjänst kan ta emot bilder och instruktioner och returnera modifierade bilder. GPT Image-serien kan ta emot upp till 16 referensbilder samtidigt. För närvarande stöder API:et både 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-data filuppladdning, stöder gpt-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 standard gpt-image-2, med högre kostnadseffektivitet, priset förblir detsamma.
:official Avgiftsformel Slutlig kostnad = textinmatningstoken + bildinmatningstoken (endast redigering) + bildutgångstoken. Priset som visas på sidan för quality × size är en uppskattning före begäran, den faktiska debiteringen baseras på den framgångsrika responsens usage. Till exempel, low, 1024x1024 kostar vanligtvis cirka 0.0505 Credits för bildutgång, plus en liten mängd inmatningstoken; när auto anvä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 är 1024x1024, när size anges som 2048x2048, kommer modellen att omrita och returnera en 2K-bild; när size anges som 3840x2160 kommer den att returnera en 4K liggande bild. Standard gpt-image-2 och :reverse har samma debitering för de tre storlekarna; :official baseras på den faktiska tokenanvändningen. Att utelämna size-fältet är helt ekvivalent med att uttryckligen ange auto: gpt-image-2 kommer 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 direkt WIDTHxHEIGHT. 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. Om n parametern gpt-image-2 redigeringsgränssnittet stöder n > 1: en begäran kan returnera motsvarande antal redigeringsresultat. Som standard debiteras gpt-image-2 och :reverse baserat på antalet framgångsrika bilder; :official debiteras baserat på den faktiska tokenanvändningen för hela svaret (värdet på n är 1–10). Detta gäller även för gpt-image-1 / gpt-image-1.5, samt nano-banana / nano-banana-2-lite / nano-banana-2 / nano-banana-pro serien. Observera att response_format=b64_json endast stöder n=1, vid n>1 använd den standard URL-returen. Om vissa bilder misslyckas med att genereras, returneras och debiteras endast de framgångsrika delarna.
Nedan följer två olika verkliga exempel för att uppleva gpt-image-2 redigeringsförmåga.

Anropmetod ett: JSON + bild-URL (rekommenderas)

Skicka en begäran direkt i application/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:

Vi vill ändra den till en “nattläge” färgschema. Vi kan anropa så här:
Eller med Python:
Resultatet ser ut så här:
Den redigerade bilden ser ut så här:

Man kan se att modulstrukturen, informationspartitionerna och typsnittet har bevarats strikt, endast färgschemat har inverterats till ett mörkt tema.
Tips: image fä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 med gpt-image-2 som en träbokhylla):

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

Man kan se att stil och miljö har bytts ut enligt instruktionerna, men antalet böcker på varje hylla (1 / 3 / 7) har fortfarande strikt bevarats, och en liten krukväxt har lagts till enligt önskemål.

Anropmetod tre: multipart/form-data (kompatibel med OpenAI SDK)

Om du redan använder den officiella OpenAI Python SDK, gäller den tidigare multipart/form-data uppladdningsmetoden också, du behöver bara ändra model till gpt-image-2:
När du använder SDK:n behöver du först importera två miljövariabler, 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.
  • image kan laddas upp som en fil via multipart/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_format etc.; om de anges kommer de att ignoreras. n > 1 stöds (1–10), och kommer att returnera och debitera motsvarande antal redigeringsresultat.
  • Returstrukturen följer OpenAI-formatet (data[].url), men created är alltid 0, och b64_json kommer inte att returneras, revised_prompt är alltid lika med den ursprungliga prompt.

Anropa via formulär + bild-URL

Returresultatet ser ut som följer:
Den redigerade bilden:

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:
Vid första användningen av detta gränssnitt behöver vi fylla i minst fyra fält, en är 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.

Exempel på Python-anrop med samma effekt:
För att använda Python-anropet behöver vi först importera två miljövariabler, en 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:
Efter anropet kommer vi att se att en bild gift-basket.png genereras i den aktuella katalogen, det specifika resultatet ser ut som följer:

Så här har vi slutfört redigeringsoperationerna för bilder. För närvarande stöder Edits-gränssnittet två modeller: 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ält callback_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:
Efter anropet kan vi se att vi omedelbart får ett resultat, som följer:
Vänta en stund, så kan vi observera resultatet av bildredigeringen på Webhook-URL:en, innehållet är som följer:
Vi kan se att resultatet innehåller ett fält 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.

Exempel på felrespons

Slutsats

Genom detta dokument har du fått en förståelse för hur man använder OpenAI Images Edits API för att enkelt använda den officiella OpenAI:s bildredigeringsfunktion. Vi hoppas att detta dokument kan hjälpa dig att bättre integrera och använda detta API. Om du har några frågor, tveka inte att kontakta vårt tekniska supportteam.