Skip to main content
OpenAI bildredigeringstjänst kan ta emot valfritt antal bilder och instruktioner och returnera modifierade bilder. För närvarande stöder API:et både dall-e-2, gpt-image-1, den senaste gpt-image-2, samt modellerna nano-banana / nano-banana-2-lite / nano-banana-2 / nano-banana-pro som är anslutna via samma API. 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 hämta 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 där du blir inbjuden att registrera dig och logga in. När detta är klart kommer du automatiskt att återvända till den aktuella sidan. En API-token kan användas för att anropa alla tjänster på plattformen, utan att behöva ansöka separat för varje tjänst. Första gången du ansöker får du en gratis kvot för att prova; om kvoten tar slut 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 jämfört med gpt-image-1 i bildredigeringsscenarier:
  • 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.
  • Texten bevaras mer exakt: Bilder som informationsgrafik, affischer, menyer etc. 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 gör det onödigt att först ladda ner bilderna till den lokala enheten, 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 in en 1K-originalbild och begära 2K / 4K-utdata med size-parametern, modellen kommer att förstora bilden under redigeringsprocessen.

Officiell omdirigering / Omvänd variant (:official / :reverse)

gpt-image-2 använder som standard den omvända linjen. Genom att använda suffixet på modellnamnet kan du uttryckligen välja linje:
  • gpt-image-2:official: Officiell omdirigeringslinje. Stöder n > 1 (returnera flera bilder på en gång) och verklig 2K / 4K, debitering per bild, enhetspriset är 2 gånger det vanliga gpt-image-2. För närvarande tillhandahålls detta endast av openai-hk-kanalen, och om linjen inte är tillgänglig returneras ett fel direkt, utan att nedgraderas till den omvända linjen.
  • gpt-image-2:reverse: Helt ekvivalent med standard gpt-image-2 (omvänd linje), priset förblir oförändrat.
Nedan gäller begränsningarna för “n”-parametern endast för standard / omvänd linje; gpt-image-2:official stöder n > 1 och debiterar per bild.

Stödda size-värden

Begränsningarna för size i redigeringsgränssnittet är helt identiska med de i genereringsgränssnittet — gpt-image-2 kräver att size är auto, tomt, eller i formatet WIDTHxHEIGHT, alla andra former kommer att returnera 400. Alla storlekar (1K / 2K / 4K / anpassade) debiteras enhetligt per bild, oavsett originalbildens upplösning och begärd size. Övre gränser för anpassade storlekar gäller också: både bredd och höjd måste vara multiplar av 16, långsidan ≤ 3840, totalt antal pixlar ≤ 8,294,400.
Till exempel: om originalbilden är 1024x1024, och size anges som 2048x2048, kommer modellen att omrita och returnera en 2K-bild; om size anges som 3840x2160 kommer den att returnera en 4K liggande bild; om auto anges eller utelämnas kommer modellen att välja själv. Debiteringen för de tre är densamma.
Om n-parametern Redigeringsgränssnittet för gpt-image-2 stöder för närvarande inte n > 1: denna parameter kommer att tyst ignoreras, oavsett om n=1 eller n=10 anges, kommer en enda begäran alltid att returnera 1 bild och debiteras endast för 1 bild. Om du behöver få flera kandidatredigeringsresultat på en gång, vänligen initiera flera begärningar parallellt. Denna begränsning gäller också för gpt-image-1 / gpt-image-1.5, samt serierna nano-banana / nano-banana-2-lite / nano-banana-2 / nano-banana-pro. dall-e-2 är för närvarande den enda modellen som ursprungligen stöder n > 1 för redigering.
Nedan ges två olika verkliga exempel för att uppleva redigeringsförmågan hos gpt-image-2.

Anropmetod ett: JSON + Bild-URL (Rekommenderad)

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 hoppas kunna ändra den till en “nattläge”-färg. Vi kan anropa så här:
eller med Python:
Resultatet är som följer:
Den redigerade bilden är som följer:

Det kan ses att modulstrukturen, informationspartitionerna och typsnittet har bevarats strikt, endast färgschemat har inverterats till mörkt tema.
Tips: image-fältet stöder också att ta emot en array, till exempel "image": ["url1", "url2", "url3"], upp till 16 referensbilder kan skickas samtidigt för att modellen ska kunna referera till flera bilder vid redigering.
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 också, 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 för att generera det slutliga resultatet, till exempel att kombinera flera produktbilder till en presentkorg:

Exempel på scenarier: Byt stil + behåll struktur

Här är ett annat exempel, att byta ut en träbokhylla mot en modern flytande hylla, men strikt behålla antalet och arrangemanget av böckerna. Originalbild (genererad med gpt-image-2 träbokhylla):

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

Det kan ses att stil och miljö har bytts ut enligt prompten, men antalet böcker per hylla (1 / 3 / 7) har fortfarande strikt bevarats, och en krukväxt har lagts till enligt krav.

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

Om du redan använder den officiella OpenAI Python SDK, fungerar den tidigare multipart/form-data uppladdningsmetoden också, du behöver bara ändra model till gpt-image-2:
När du använder SDK måste du först importera två miljövariabler, OPENAI_BASE_URL sättas till https://api.acedata.cloud/openai, OPENAI_API_KEY sättas till den token du har ansökt om:

Nano Banana serie modeller

nano-banana serien har också integrerat /openai/images/edits i redigeringsscenarier, ändra bara model till något av alternativen i tabellen nedan.
Viktigt: Parameterstöd Nano Banana ansluter till OpenAI-protokollet via ett anpassningslager och stöder endast följande parametrar: model, prompt, image.
  • image kan antingen laddas upp som en fil via multipart/form-data (arbetaren konverterar internt till data:<mime>;base64,... för att skicka till upstream), eller så kan bildens URL-sträng skickas direkt som ett formulärfält.
  • Stöder inte parametrar som mask, n, size, response_format etc.; om de anges kommer de att ignoreras.
  • 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 nedan.

Grundläggande användning

Nu kan vi använda kod för att göra anrop, nedan är ett exempel på anrop med CURL:
Vid första användningen av detta API måste vi fylla i minst fyra fält, en är authorization, som kan väljas 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 behöver sökvägen till den bild som ska redigeras, bilden som ska redigeras visas nedan:

Ett motsvarande Python-exempel för anrop:
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 variabel för autentisering OPENAI_API_KEY, vars värde hämtas från authorization. På Mac OS kan miljövariablerna sättas 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 bildredigeringsoperationen, för närvarande stöder Edits API tre modeller: dall-e-2, gpt-image-1 och gpt-image-2, där gpt-image-2 är den rekommenderade modellen, se avsnittet GPT-Image-2-modell ovan.

Asynkron callback

Eftersom OpenAI Images Edits API kan ta längre tid att redigera bilder, om API:t inte svarar under en längre tid, kommer HTTP-förfrågan att hålla anslutningen öppen, vilket leder till extra systemresursförbrukning, så detta API erbjuder också stöd för asynkron callback. Det övergripande flödet är: när klienten initierar en begäran, specificerar den ett extra callback_url-fält, efter att klienten har initierat API-begäran kommer API:t omedelbart att returnera ett resultat som innehåller ett task_id-fält, 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 task_id-fältet, så att uppdragets resultat kan kopplas ihop med ID. Nedan kommer vi att förstå hur man gör detta genom ett exempel. Först är Webhook-callback en tjänst som kan ta emot HTTP-förfrågningar, utvecklare bör ersätta med URL:en till sin egen byggda 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. Nästa steg är att ställa in fältet callback_url till ovanstående Webhook URL, samtidigt som vi fyller 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, innehållet är som följer:
Vi kan se att resultatet innehåller ett task_id fält, data fältet innehåller samma bildredigeringsresultat som vid synkront anrop, och genom task_id fältet kan vi koppla uppgiften.

Felhantering

Vid anrop av API:et, om ett fel uppstår, kommer API:et att returnera motsvarande felkod och information. Till exempel:
  • 400 token_mismatched: Bad request, möjligtvis på grund av saknade eller ogiltiga parametrar.
  • 400 api_not_implemented: Bad request, möjligtvis på grund av saknade eller ogiltiga parametrar.
  • 401 invalid_token: Obehörig, 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 lärt dig 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.