Gå til dokumentasjon
På denne siden

Seedream 5.0 Flash API

Generer bilder, rediger referanser eller del opp et bilde i lag med din Seevio API-nøkkel. Oppgavene kjøres asynkront; lagre taskId og poll endepunktet eller motta en callback.

POST https://api.seevio.ai/v1/images/generations

Funksjoner

FunksjonStøttede verdier
Genereringsmodusertext-to-image, image-to-image, layer-decomposition
Utgangsoppløsningauto, 1K, 1.5K, 2K
Skjermformat1:1, 4:3, 3:4, 16:9, 9:16, 2:3, 3:2, 21:9
ReferansebilderOffentlige HTTPS PNG- / JPEG- / WebP-URL-er, hver opptil 30 MB. Ikke bruk bilder for tekst-til-bilde, 1–10 for bilde-til-bilde, og nøyaktig ett for lagoppdeling.
PromptBruk 4–5000 tegn etter at blanktegn i starten og slutten er fjernet. Bare i modusen layer-decomposition kan feltet prompt utelates eller være tomt.
Utdataformatpng, jpg

Priser og kreditter

Prisene nedenfor gjelder per returnert bilde. Vanlig generering reserverer kreditter for ett bilde, mens lagoppdeling reserverer kreditter for 17 bilder. Den endelige kostnaden beregnes ut fra antallet returnerte bilder, inkludert basisbildet, og ubrukte kreditter tilbakeføres til den opprinnelige saldoen. Mislykkede oppgaver refunderes i sin helhet.

UtgangsoppløsningPriser og kreditter
auto2 kreditter
1K2 kreditter
1.5K2 kreditter
2K2 kreditter

Med standard 2K-oppløsning reserverer lagoppdeling 34 kreditter. Hvis fire bilder returneres, blir den endelige kostnaden 8 kreditter, og 26 kreditter tilbakeføres.

Idempotens støttes ikke for forespørsler. Hver gyldige POST-forespørsel oppretter en ny oppgave som belastes. Hvis du er usikker på resultatet av en innsending, kan du sjekke status med den returnerte taskId. Å sende POST på nytt kan opprette en ekstra oppgave.

Autentisering

Opprett en API-nøkkel i dashbordet. Den fullstendige nøkkelen vises bare én gang. Oppbevar den trygt på serveren din, og send den med som et Bearer-token i alle forespørsler.

Base-URL

https://api.seevio.ai
Authorization: Bearer sk_live_your_api_key
Content-Type: application/json

Definer miljøvariabelen SEEVIO_API_KEY før du kjører disse eksemplene. Eksemplene i JavaScript kjøres på serveren din med Node.js, mens Python-eksemplene bruker requests-pakken.

Forespørselstekst (body)

FeltTypePåkrevdBeskrivelse og begrensninger
model
stringJa

Modell-ID. For å bruke Seedream 5.0 Flash, setter du dette feltet til seedream-5-0-flash.

callback_url
stringNei

Offentlig HTTPS-endepunkt for POST-tilbakemeldinger ved fullført eller feilet oppgave. Interne nettverk og localhost er ikke tillatt.

Eksempel: https://example.com/webhooks/seevio
input
objectJa

Genereringsinnstillinger. En prompt er påkrevd for tekst-til-bilde og bilde-til-bilde; den er valgfri for lagoppdeling (layer-decomposition).

Inndataparametere

FeltTypePåkrevdStandardverdiBeskrivelse og begrensninger
input.prompt
stringBetinget—

Bruk 4–5000 tegn etter at blanktegn i starten og slutten er fjernet. Bare i modusen layer-decomposition kan feltet prompt utelates eller være tomt.

Eksempel: A minimalist ceramic teapot on a stone pedestal, soft studio lighting
input.generation_type
stringNeitext-to-image

Bruk text-to-image for å lage et nytt bilde, image-to-image for å redigere referansebilder eller layer-decomposition for å dele ett bilde opp i gjenbrukbare elementer.

Støttede verdier
text-to-image | image-to-image | layer-decomposition
input.image_urls
string[]Betinget[]

Offentlige HTTPS PNG- / JPEG- / WebP-URL-er, hver opptil 30 MB. Ikke bruk bilder for tekst-til-bilde, 1–10 for bilde-til-bilde, og nøyaktig ett for lagoppdeling.

Eksempel: ["https://example.com/teapot.png"]
input.aspect_ratio
stringNei1:1

Skjermformat

Støttede verdier
1:1 | 4:3 | 3:4 | 16:9 | 9:16 | 2:3 | 3:2 | 21:9
Eksempel: 1:1
input.resolution
stringNei2K

Tekst-til-bilde og bilde-til-bilde støtter 1K, 1.5K og 2K. Lagoppdeling godtar også auto. Standard: 2K.

Støttede verdier
auto | 1K | 1.5K | 2K
Eksempel: 2K
input.output_format
stringNeipng

Forespurt format for utdata. For lagdeling returnerer png et hovedbilde i PNG-format, og jpg returnerer et hovedbilde i JPEG-format. Alle separerte lag returneres som PNG med bevart gjennomsiktighet.

Støttede verdier
png | jpg
Eksempel: png

Hver forespørsel oppretter én oppgave. Tekst-til-bilde og bilde-til-bilde returnerer ett bilde. Lagdeling (layer-decomposition) returnerer 1–17 bilder, inkludert basisbildet. Ikke send med aspect_ratio for layer-decomposition.

Hurtigstart

Send inn denne minimale forespørselen, ta vare på returnert taskId, og bruk deretter eksempelet for statusspørring nedenfor. Verdien for kreditter i opprettelsesresponsen er det reserverte beløpet.

curl --fail-with-body https://api.seevio.ai/v1/images/generations \
  -H "Authorization: Bearer $SEEVIO_API_KEY" \
  -H "Content-Type: application/json" \
  --data '{
  "model": "seedream-5-0-flash",
  "input": {
    "prompt": "A minimalist ceramic teapot on a stone pedestal, soft studio lighting",
    "aspect_ratio": "1:1",
    "resolution": "2K",
    "output_format": "png",
    "generation_type": "text-to-image"
  }
}'

Eksempel på svar ved opprettelse av oppgave

{
  "taskId": "3f2aK9mR7xQp4TnZ8bLc6YwH",
  "credits": 2
}

Tekst til bilde

Generer bilder, rediger referanser eller del opp et bilde i lag med din Seevio API-nøkkel. Oppgavene kjøres asynkront; lagre taskId og poll endepunktet eller motta en callback.

curl --fail-with-body https://api.seevio.ai/v1/images/generations \
  -H "Authorization: Bearer $SEEVIO_API_KEY" \
  -H "Content-Type: application/json" \
  --data '{
  "model": "seedream-5-0-flash",
  "input": {
    "prompt": "A minimalist ceramic teapot on a stone pedestal, soft studio lighting",
    "aspect_ratio": "1:1",
    "resolution": "2K",
    "output_format": "png",
    "generation_type": "text-to-image"
  }
}'

Bilde til bilde

For bilderedigering setter du generation_type til image-to-image og oppgir image_urls. Alle andre parametere bruker samme spesifikasjon.

Erstatt medie-URL-ene fra example.com med dine egne offentlig tilgjengelige HTTPS-filer. Eksempel-URL-ene illustrerer kun forespørselens struktur og er ikke nedlastbare filer.

curl --fail-with-body https://api.seevio.ai/v1/images/generations \
  -H "Authorization: Bearer $SEEVIO_API_KEY" \
  -H "Content-Type: application/json" \
  --data '{
  "model": "seedream-5-0-flash",
  "input": {
    "prompt": "Change the teapot to matte sage green. Preserve its shape and the studio lighting.",
    "aspect_ratio": "1:1",
    "resolution": "2K",
    "output_format": "png",
    "generation_type": "image-to-image",
    "image_urls": [
      "https://example.com/teapot.png"
    ]
  }
}'

Lagoppdeling

Sett generation_type til layer-decomposition og oppgi nøyaktig én bilde-URL. Utelat aspect_ratio. output_format kontrollerer kun formatet på hovedbildet. De separerte lagene returneres alltid som PNG med bevart gjennomsiktighet. Lagre hver URL som returneres i data.results.

curl --fail-with-body https://api.seevio.ai/v1/images/generations \
  -H "Authorization: Bearer $SEEVIO_API_KEY" \
  -H "Content-Type: application/json" \
  --data '{
  "model": "seedream-5-0-flash",
  "input": {
    "generation_type": "layer-decomposition",
    "image_urls": [
      "https://example.com/teapot.png"
    ],
    "resolution": "2K",
    "output_format": "png"
  }
}'

Lagoppdeling kan returnere flere bilde-URL-er i data.results: basisbildet samt de frittstående lagene. Hver URL peker til et eget bilde. Antallet resultater varierer per oppgave (totalt 1–17 bilder); behandle hele arrayen i stedet for bare data.results[0]. Både det fullførte statussvaret og webhooken ved fullføring inneholder denne arrayen. Det første svaret ved opprettelse inneholder bare taskId og reserverte kreditter, ikke bilde-URL-er.

Eksempel på svar ved opprettelse av oppgave

{
  "taskId": "3f2aK9mR7xQp4TnZ8bLc6YwH",
  "credits": 34
}

Fullført lagoppdeling: flere bilde-URL-er

Dette eksempelet viser fire utdatabilder: ett basisbilde og tre lag. Din oppgave kan returnere et annet antall. Ved forespurt 2K-oppløsning er credits den endelige kostnaden for alle fire bildene; den ubrukte delen av den opprinnelige reservasjonen på 17 bilder har blitt tilbakeført.

{
  "id": "3f2aK9mR7xQp4TnZ8bLc6YwH",
  "created_at": 1789171200,
  "model": "seedream-5-0-flash",
  "credits": 8,
  "failed_code": null,
  "status": "completed",
  "billing_status": "charged",
  "failed_reason": null,
  "data": {
    "results": [
      "https://cdn.seevio.ai/api/images/example/base.png",
      "https://cdn.seevio.ai/api/images/example/layer-1.png",
      "https://cdn.seevio.ai/api/images/example/layer-2.png",
      "https://cdn.seevio.ai/api/images/example/layer-3.png"
    ],
    "image_expires_at": "2026-10-12T00:00:00.000Z",
    "processing_time": 12
  }
}

Behandle alle returnerte bilder

const response = await fetch(
  "https://api.seevio.ai/v1/tasks/TASK_ID",
  { headers: { Authorization: `Bearer ${process.env.SEEVIO_API_KEY}` } }
);
if (!response.ok) throw new Error(await response.text());
const task = await response.json();

if (task.status === "completed") {
  // Process every returned image, including the base image.
  // The number of URLs varies; do not read only results[0].
  for (const [index, imageUrl] of task.data.results.entries()) {
    console.log({ taskId: task.id, index, imageUrl });
    // Download or store this image in your application.
  }
} else if (task.status === "failed") {
  throw new Error(task.failed_reason || "Image generation failed.");
}
// If queued or generating, poll again after at least 5 seconds.

Spør om en oppgave

GET https://api.seevio.ai/v1/tasks/{taskId}

Erstatt eksempel-ID-en med den taskId du fikk ved opprettelse. Statusspørringer returnerer kun oppgaver som tilhører brukeren av den gitte API-nøkkelen; utilgjengelige eller ukjente ID-er returnerer HTTP 404.

Start med å gjøre en spørring (poll) hvert 10.–20. sekund. Ved HTTP 429 bør du øke intervallet, og stoppe når statusen er completed eller failed. Vi anbefaler webhooks i produksjon. Hvert kodeeksempel nedenfor utfører én enkelt spørring.

curl --fail-with-body https://api.seevio.ai/v1/tasks/3f2aK9mR7xQp4TnZ8bLc6YwH \
  -H "Authorization: Bearer $SEEVIO_API_KEY"
StatusTillatte verdier og krav
queuedMottatt og venter på å bli sendt til behandling.
generatingGenerering pågår.
completedFullført med suksess. Last ned data.results før filene utløper.
failedFeilet. Undersøk failed_reason og billing_status.
FeltTypeTillatte verdier og krav
idstringOppgave-ID. Dette tilsvarer taskId fra opprettelsesresponsen.
created_atnumberTidspunkt for opprettelse av oppgaven, oppgitt i Unix-sekunder.
modelstringDen offentlige modell-ID-en som ble brukt for denne oppgaven.
billing_statusstringreserved, charged, refunded eller refund_failed.
creditsnumberSvaret på opprettelsen og pågående oppgaver viser reserverte kreditter. Ved fullføring viser credits det faktiske trekket; ubrukte reserverte kreditter har allerede blitt tilbakeført. Mislykkede oppgaver beholder det opprinnelige reserverte beløpet i loggen.
failed_reasonstring | nullÅrsak til feilen på oppgaver som har feilet; ellers null. Svar på statusspørringer som har feilet, utelater data.
failed_codestring | nullFeilkode. Se failed_reason for detaljer om feilen.
dataobjectInkludert på vellykkede statusspørringer. Inneholder detaljer om resultat og behandling.
data.resultsstring[]Alle nettadresser (URL-er) til de genererte bildene, inkludert basisbildet for lagdeling. Tom før fullføring og etter utløp.
data.image_expires_atstring | nullBildenes utløpstid i ISO 8601-format, eller null hvis utilgjengelig.
data.processing_timenumber | nullTid brukt på å behandle oppgaven i sekunder hvis tilgjengelig, ellers null.

I kø

{
  "id": "3f2aK9mR7xQp4TnZ8bLc6YwH",
  "created_at": 1789171200,
  "model": "seedream-5-0-flash",
  "credits": 2,
  "failed_code": null,
  "status": "queued",
  "billing_status": "reserved",
  "failed_reason": null,
  "data": {
    "results": [],
    "image_expires_at": null,
    "processing_time": null
  }
}

Fullført

{
  "id": "3f2aK9mR7xQp4TnZ8bLc6YwH",
  "created_at": 1789171200,
  "model": "seedream-5-0-flash",
  "credits": 2,
  "failed_code": null,
  "status": "completed",
  "billing_status": "charged",
  "failed_reason": null,
  "data": {
    "results": [
      "https://cdn.seevio.ai/api/images/example.png"
    ],
    "image_expires_at": "2026-10-12T00:00:00.000Z",
    "processing_time": 12
  }
}

Mislyktes

Når statusforespørselen returnerer status=failed, ble ikke genereringen fullført. Se failed_reason for årsaken, og billing_status for refusjonsstatusen. I dette eksempelet betyr refunded at kredittene har blitt refundert. credits viser det opprinnelige reserverte beløpet, og svaret inneholder ikke data.

{
  "id": "3f2aK9mR7xQp4TnZ8bLc6YwH",
  "created_at": 1789171200,
  "model": "seedream-5-0-flash",
  "credits": 2,
  "failed_code": "400",
  "status": "failed",
  "billing_status": "refunded",
  "failed_reason": "The input or output was flagged as sensitive. Please try again with different inputs."
}

Resultatlenker er tilgjengelige i 30 dager etter lagring. Etter utløp vil results være tom.

Webhooks

Angi callback_url i opprettelsesforespørselen for å motta en JSON POST når oppgaven er fullført eller feiler. Returner en 2xx-respons innen 15 sekunder. Meldinger som ikke blir levert, prøves på nytt; håndter gjentatte leveringer idempotent basert på oppgave-ID.

Ditt endepunkt for tilbakesending må godta POST-forespørsler med en JSON-meldingskropp (Content-Type: application/json).

Opprett en oppgave med callback

curl --fail-with-body https://api.seevio.ai/v1/images/generations \
  -H "Authorization: Bearer $SEEVIO_API_KEY" \
  -H "Content-Type: application/json" \
  --data '{
  "model": "seedream-5-0-flash",
  "input": {
    "prompt": "A minimalist ceramic teapot on a stone pedestal, soft studio lighting",
    "aspect_ratio": "1:1",
    "resolution": "2K",
    "output_format": "png",
    "generation_type": "text-to-image"
  },
  "callback_url": "https://example.com/webhooks/seevio"
}'

Callbacks bruker samme struktur som svar på oppgavespørringer. Varsler om feil som har ført til refusjon, inkluderer også credits_refunded på toppnivå. Bruk id for å identifisere oppgaven, og status for å skille fullførte oppgaver fra mislykkede. Varsler kan bli sendt flere ganger: Behandle dem idempotent basert på id og status. Callbacks er usignerte; bekreft oppgaven mot det autentiserte spørringsendepunktet. Mislykket levering av varsel fører ikke til refusjon for en fullført oppgave.

Oppgave fullført: payload for vellykket tilbakesending

created_at er hendelsens opprettelsestid; task_created_at er oppgavens opprettelsestid, i Unix-sekunder. Eksemplene viser anbefalte felt; svar kan inneholde flere felt.

{
  "id": "3f2aK9mR7xQp4TnZ8bLc6YwH",
  "created_at": 1789171212,
  "model": "seedream-5-0-flash",
  "credits": 2,
  "failed_code": null,
  "status": "completed",
  "billing_status": "charged",
  "failed_reason": null,
  "data": {
    "results": [
      "https://cdn.seevio.ai/api/images/example.png"
    ],
    "image_expires_at": "2026-10-12T00:00:00.000Z",
    "processing_time": 12
  },
  "task_created_at": 1789171200
}

Oppgave mislyktes: payload for mislykket tilbakesending

{
  "id": "3f2aK9mR7xQp4TnZ8bLc6YwH",
  "created_at": 1789171212,
  "model": "seedream-5-0-flash",
  "credits": 2,
  "failed_code": "400",
  "status": "failed",
  "billing_status": "refunded",
  "failed_reason": "The input or output was flagged as sensitive. Please try again with different inputs.",
  "task_created_at": 1789171200,
  "credits_refunded": 2
}

Eksempel på mottaker (receiver)

export async function POST(request: Request) {
  const callbackData = await request.json();

  if (callbackData.status === "completed") {
    const imageUrls = callbackData.data.results;
    // Save the image URLs and mark this task as completed in your application.
    console.log(callbackData.id, imageUrls);
  }

  if (callbackData.status === "failed") {
    const { failed_reason, credits_refunded } = callbackData;
    // Record the failure reason and refunded credits for this task.
    console.error(callbackData.id, failed_reason, credits_refunded);
  }

  return new Response(null, { status: 200 });
}

Dette Next.js-eksempelet leser JSON-tilbakesendingskroppen og håndterer fullførte og mislykkede oppgaver direkte. Legg til datalagring og deduplisering av oppgave-ID-er i applikasjonen din, og legg tidkrevende oppgaver i kø før tilbakesendingen bekreftes.

Feilmeldinger

HTTP-feil returnerer et error-objekt med code og message. En oppgave som ble mottatt uten feil, kan fortsatt mislykkes senere; sjekk status på oppgaven eller håndter feil via callback.

{
  "error": {
    "code": "invalid_request",
    "message": "input.prompt is required."
  }
}
HTTPFeltLøsning
400invalid_request
Rett opp feil i JSON-strukturen, manglende prompt, feil parameterverdier eller ugyldige medie-URL-er før du prøver igjen.
401invalid_api_key
Kontroller Bearer-tokenet og sjekk om API-nøkkelen er aktiv.
402insufficient_credits
Fyll på kreditter eller reduser kostnaden for oppgaven. Svaret kan inneholde opplysninger om nødvendig og tilgjengelig saldo.
403forbidden
Sjekk kontobegrensningen som er beskrevet i feilmeldingen.
404not_found
Kontroller oppgave-ID-en og at nøkkelen tilhører eieren av oppgaven.
429rate_limited
Vent i tidsrommet angitt i Retry-After før du prøver igjen.
500internal_error
Undersøk feilmeldingen og API-loggene. Prøv igjen med forsiktighet; en ny innsending av forespørselen kan opprette en ny, betalbar oppgave.

Feilmeldinger bruker error.code og error.message: 400 invalid_request, 401 invalid_api_key, 402 insufficient_credits, 403 forbidden, 404 not_found, 429 rate_limited, 500 internal_error. Feilmeldingen 402 insufficient_credits betyr at du ikke har nok tilgjengelige kreditter for denne forespørselen.

Grenser for forespørsler (rate limits)

Opprett oppgaver: Hver API-nøkkel tillater som standard opptil 100 forespørsler i minuttet. Skreddersydde ratebegrensninger er foreløpig ikke tilgjengelig.

Hent oppgaver: Hver API-nøkkel tillater som standard opptil 120 forespørsler i minuttet. Forespørsler om opphenting og oppretting av oppgaver telles hver for seg.

Forespørsler om opprettelse av bilder og videoer deler samme hastighetsbegrensning (rate limit) for API-nøkkelen.

HTTP 429 inkluderer Retry-After: 60 for opprettelse og Retry-After: 5 for statusspørringer. Bruk gradvis økende ventetid (backoff) og unngå unødvendig hyppig polling.

HTTP/1.1 429 Too Many Requests
Content-Type: application/json
Retry-After: 60
{
  "error": {
    "code": "rate_limited",
    "message": "Rate limit exceeded."
  }
}