modeller

ByteDance Seed: Seedream 5.0 Flash

Markdown · JSON

ByteDance Seed: Seedream 5.0 Flash

Seedream 5.0 Flash skaber og redigerer billeder fra tekst og visuelle referencer med rumligt styrede ændringer, flersproget billedtekst og lagopdeling. ByteDance Seed positionerer Flash til hurtigere generering og holder den samtidig adskilt fra den kvalitetsorienterede Pro-udgave.

Om modellen

Denne beskrivelse dækker modellens funktioner. Tilgængelige input, output og indstillinger i Ailoot står nedenfor for den valgte metode.

En hurtigere udgave til billedskabelse

Seedream 5.0 Flash er ByteDance Seeds model til billedgenerering og redigering i arbejdsgange, der prioriterer genereringshastighed. Producentens Pro/Flash-vejledning beskriver både tekst-til-billede og billede-til-billede-skabelse med én eller flere referencer. Den skelner mellem Flashs hurtigere generering og Pros højere prioritering af billedkvalitet uden at fastlægge en bestemt svartid for enhver beskrivelse.

De centrale fælles funktioner er interaktiv redigering, lagopdeling og indbygget flersproget generering. Almindelig generering returnerer ét færdigt billede. Producentens Flash-arbejdsgang understøtter ikke sekventiel generering af relaterede billeder, websøgning eller streaming af billedoutput. Promptoptimeringen bruger standardtilstand; den separate kontrol til hurtig optimering tilhører Pro frem for Flash.

Skabelse fra en beskrivelse og referencer

Angiv det ønskede billede, hovedmotiv, komposition og visuel behandling, og identificér derefter, hvad hver reference styrer. Til et produktbillede skal du adskille referencen, der fastlægger genstanden, fra en, der leverer en palet eller et overflademateriale. ”Bevar genstandens silhuet og synsvinkel fra det første billede; brug kun det andet billede til baggrundens afdæmpede palet” giver referencerne særskilte roller.

Producenten anbefaler korte prompts, højst 300 kinesiske tegn eller 600 engelske ord. Det er forberedelsesvejledning frem for en angivet fast grænse for tekstinput. Angiv de afgørende krav først, herunder præcis ordlyd, der skal vises, det ønskede billedformat og detaljer, der skal forblive uændrede. Undersøg det færdige billede op mod denne liste frem for kun at stole på dets overordnede udseende.

Rumligt styret redigering

Flash kan bruge punkter, afgrænsningsbokse, pile og frie markeringer til at identificere, hvor en redigering skal ske. Medsend kildebilledet sammen med en placering og ændringen. Ved et interiørkoncept kan du markere stolen, bede om udskiftning af stoffet og angive gulv, væg, kameravinkel og nærliggende genstande, der skal bevares. Hvis markeringerne kun er vejledning, skal du udtrykkeligt bede om, at de fjernes fra det færdige billede.

Producentens vejledning til koordinatredigering bruger <point>- og <bbox>-tags med koordinater normaliseret til 0–999 i forhold til det angivne inputbillede. Et punkt indeholder x og y; en boks indeholder koordinaterne for øverste venstre og nederste højre hjørne. Identificér billednummer og målgenstand, især når en boks omfatter flere motiver. Ved en redigering på tværs af billeder skal du skelne mellem genstanden, der skal hentes fra én reference, og målområdet i en anden.

Brug det viste billedes egne dimensioner, når du finder den forholdsmæssige placering; zoom af lærredet, panorering eller browserkoordinater er ikke de normaliserede billedkoordinater. Beskriv beskyttede områder såvel som det redigerede område. Sammenlign resultatets perspektiv, belysning og omgivende detaljer med den oprindelige kilde.

Opdel en komposition i redigerbare lag

Lagopdeling er en særskilt tilstand, der tager præcis ét billede og returnerer et basisbillede plus op til 16 uafhængige lag. Hvert lag er en PNG med alfakanal. En prompt kan navngive de elementer, der skal adskilles, såsom titel, hovedmotiv og dekorationer; uden en opdelingsprompt identificerer modellen automatisk hovedelementerne.

Resultaterne omfatter lagnavne, beskrivelser, stablingsrækkefølge og placeringsbokse. Brug basisbilledet med stablingsindeks nul, og placér derefter de øvrige lag i stigende stablingsrækkefølge. Absolutte bokse beskriver placeringen i outputtets basisbillede; normaliserede bokse beskriver den forholdsmæssige placering på et andet lærred. Gem disse returnerede placeringsmetadata sammen med billedfilerne, så den oprindelige komposition kan genskabes, før den omarrangeres.

Ved en plakatrevision kan du adskille hovedillustrationen fra titel og dekorationer og derefter undersøge kanter og eventuelt genskabte baggrundsområder. Et gennemsigtigt lag kan redigeres som et enkelt input med alfakanal og gennemsigtigt PNG-output. Indstillingen for gennemsigtig baggrund er afgrænset til denne billedredigeringsarbejdsgang med ét input; almindelig tekst-til-billede-generering er en separat operation.

Flersproget komposition

Ud over kinesisk og engelsk dokumenterer producenten indbygget understøttelse af prompts og billedtekst på russisk, arabisk, filippinsk, thai, tyrkisk, koreansk, malajisk, spansk, portugisisk, indonesisk, fransk, tysk, vietnamesisk og japansk. Medsend den præcise godkendte ordlyd og læseretning, og angiv, hvilket område hver tekstblok hører til. Gennemgå accenter, sammenføjede tegn, linjeskift og små etiketter i det endelige billede.

Referencefiler og outputspecifikationer

Billedgenerering accepterer op til 10 referencer i JPEG, PNG, WebP, BMP, TIFF, GIF, HEIC eller HEIF. Hver kan være op til 30 MB med begge sider over 14 pixels, 196–36.000.000 pixels i alt og et billedformat fra 1:16 til 16:1. Lagopdeling kræver i stedet én JPEG eller PNG på 262.144–36.000.000 pixels, op til 30 MB, inden for samme formatinterval.

Generering tilbyder outputniveauerne 1K, 1.5K og 2K med 2K som standard eller udtrykkelige dimensioner med i alt 921.600–4.624.220 pixels og billedformater fra 1:16 til 16:1. Begge begrænsninger gælder for brugerdefinerede dimensioner. Lagoutput bruger 1K, 1.5K, 2K eller auto med auto som standard; basisbilledet og hvert lag bevarer deres respektive kildebilledformater.

Færdige billeder er JPEG eller PNG. Basisbilledets format kan vælges separat, mens opdelte lag fortsat er PNG med alfakanal. Levering kan bruge kodede billeddata eller downloadlinks, der bevares i 24 timer. Gem hvert returneret billede og dets metadata til den ønskede designarbejdsgang. Undersøg tekst, redigerede detaljer og lagenes justering i den størrelse, billedmaterialet skal bruges i.

Ailoot Ultra · Billeder POST /v1/images/generations bytedance-seed/seedream-5-0-flash

bytedance-seed/seedream-5-0-flash

ByteDance Seed /bytedance-seed/seedream-5-0-flash

Start

Skab ét færdigt billede ud fra en tekstbeskrivelse.

  • Skab et stillbillede af et produkt
  • Udforsk et visuelt koncept
  • Illustrér en scene
Accepterede input
Tekst
Resultater
Billeder

Tilgængelig i Ailoot · input og metoder

Ailoot Ultra · Billeder POST /v1/images/generations
Inputtyper
text
Outputtyper
image
Outputformat
Billedfil
Antal output
1 output
FeltTypeKravVærdier og grænserStandard
FeltmodelTypestringKravPåkrævetVærdier og grænser
bytedance-seed/seedream-5-0-flash
Standard—
FeltpromptTypestringKravPåkrævetVærdier og grænser
Minimumslængde: 1
Betingelser: Ikke-tom UTF8-prompt. Der opfindes ingen tegngrænse, der gælder på tværs af producentens modeller.
Standard—
FeltnTypeintegerKravValgfritVærdier og grænser
1
Standard1
Feltresponse_formatTypestringKravValgfritVærdier og grænser
url, b64_json
Standard—
FeltstreamTypebooleanKravValgfritVærdier og grænser
false
Standardfalse
Kombinationer af inputmaterialer

Tekst til billede · Påkrævet: prompt

Metodeparametre og livscyklus
ParameterKontrakt
Parametercontent_typeKontraktapplication/json
ParameterrequiredKontraktmodel, prompt
Parametermaterial_typesKontrakttext
ParameteroptionalKontraktn, response_format, stream
ParameternKontrakt1
ParameterstreamKontraktfalse
Parameterresponse_formatKontrakturl, b64_json
Parameterreference_imagesKontraktfalse
ParametereditKontraktfalse
Parameteroutput_format_optionalKontrakt
Parameterresolution_controlKontraktnull
Parameteraspect_ratio_controlKontraktnull
Parameterother_fieldsKontraktafvises bortset fra den præcise fastlagte interne udbyderrouting

Livscyklus: synchronous_result_then_owned_library

GET /v1/media/tasks/{task_id} · det faktisk returnerede task_id eller posten i mediebiblioteket

GET /v1/media/assets/{asset_id}/content

GET /v1/media/assets

GET /v1/media/assets/{asset_id}

Generér ét billede ud fra en prompt.

Gem hvert dataelement; url/b64_json er kodninger af resultater.

Priser

Sådan beregnes det endelige beløb

De viste satser bruges til at anslå omkostningen før genereringen. Det endelige beløb beregnes ud fra den registrerede omkostning for den oprindelige generering. Den målte varighed af outputtet og de anslåede mængder er ikke den endelige fakturerbare mængde.

Tarifoplysninger tilføjer ikke anmodningsmuligheder. Understøttede parametre står ved den valgte metode.

Hurtig tilstand
Ikke angivet Når hurtig tilstand er valgt
flex-tilstand
Ikke angivet Når flex-tilstanden er valgt
Maksimal ræsonneringsindsats
Ikke angivet Når default-justeringen anvendes ved maksimal ræsonneringsindsats

Estimerede takster til sammenligning

Priser efter konfiguration

Knyt hver omkostning til de viste betingelser. Brug én takst for hver gruppe af alternative konfigurationer.

KonfigurationTakstplanForventet mængdeAfregningsenhedBeløb
KonfigurationGrundpriser for tokensTakstplanGrundtakstForventet mængde—Afregningsenhed—Beløb
Input · Inputtokens · Estimat kun til sammenligning — / 1K tokens
Output · Outputtokens · Estimat kun til sammenligning — / 1K tokens
Input · Cachelæsning · Estimat kun til sammenligning — / 1K tokens
Input · Cacheskrivning · Estimat kun til sammenligning — / 1K tokens
Input · Cacheskrivning, 1 time · Estimat kun til sammenligning — / 1K tokens
KonfigurationinputbilledeTakstplan—Forventet mængde—Afregningsenhedpr. inputbilledeBeløb
Input · inputbillede · Estimat kun til sammenligning $0 pr. inputbillede
KonfigurationUltraTakstplan—Forventet mængde—Afregningsenhedpr. outputbilledeBeløb
Output · billedoutput · Estimat kun til sammenligning $0.036 pr. outputbillede
KonfigurationAnslået genereringsomkostningTakstplan—Forventet mængdeestimat for én genereringAfregningsenhed—Beløb
Output · Anslået genereringsomkostning · Estimat kun til sammenligning $0.036 estimat før generering

Dette estimat er hverken et ekstra gebyr eller en fast pris for den færdige generering.

Ailoot reserverer et estimeret beløb før en anmodning. Efter resultatet afregnes det endelige beløb ud fra det målte forbrug. Ved streaming bruges den endelige forbrugsregistrering til afregningen. Sådan fungerer reservation og afregning →

Detaljer om referencetariffen

Referenceplaner på modelniveau ændrer ikke metodevalg, prisoverslag eller opkrævninger. Ved den aktive afregning anvendes taksterne for den valgte Ailoot-metode.

Priskonfigurationer for billeder

Priser efter konfiguration

Knyt hver omkostning til de viste betingelser. Brug én takst for hver gruppe af alternative konfigurationer.

KonfigurationAfregningsbetingelserBeløb
KonfigurationOutputbilledeAfregningsbetingelserDer er ikke angivet nogen prisvariant.Beløb
Output · Outputbillede $0.036 pr. billede
KonfigurationInputbilledeAfregningsbetingelserDer er ikke angivet nogen prisvariant.Beløb
Input · Inputbillede $0 pr. billede

Tilsvarende prisangivelser beskriver samme opkrævning; de tilføjer ikke et ekstra gebyr.

Eksempelanmodninger

Ailoot Ultra · Billeder

curlPython SDKNode.js SDK
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
export AILOOT_API_KEY
python3 - <<'PY_REQUEST'
import json,os
from pathlib import Path
p=json.loads('{"model": "bytedance-seed/seedream-5-0-flash", "prompt": "A lighthouse on a cliff, watercolor", "n": 1, "response_format": "b64_json"}')

Path("request.json").write_text(json.dumps(p,ensure_ascii=False))
PY_REQUEST
curl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/images/generations \
  -H "Authorization: Bearer $AILOOT_API_KEY" -H 'Content-Type: application/json' \
  --data-binary @request.json -D response-headers.txt -o result.json
python3 - <<'PY_RESULT'
import base64, json, os, subprocess
from pathlib import Path
from urllib.parse import urlsplit, urljoin

def save_images(items):
    if not items: raise SystemExit("No completed images; retain the full response")
    for index, item in enumerate(items):
        encoded=item.get("b64_json")
        uri=item.get("url", "")
        if not encoded and uri.startswith("data:image/"):
            header, separator, encoded=uri.partition(",")
            if not separator or ";base64" not in header: raise SystemExit("Unsupported image data URI")
        if encoded:
            raw=base64.b64decode(encoded,validate=True)
        elif uri:
            uri=urljoin("https://api.ailoot.ai",uri)
            parsed=urlsplit(uri)
            if parsed.scheme!="https" or not parsed.netloc or parsed.username or parsed.password:
                raise SystemExit("Invalid returned image URL")
            owned=parsed.netloc=="api.ailoot.ai" and parsed.path.startswith("/v1/media/assets/") and parsed.path.endswith("/content")
            args=["curl","--fail-with-body","--silent","--show-error",uri]
            if owned: args += ["-H","Authorization: Bearer "+os.environ["AILOOT_API_KEY"]]
            temporary=Path(f"image-{index}.bin")
            subprocess.run(args+["-o",str(temporary)],check=True)
            raw=temporary.read_bytes()
            temporary.unlink()
        else: raise SystemExit("Image has neither bytes nor URL")
        if not raw: raise SystemExit("Empty image result")
        ext="png" if raw.startswith(b"\x89PNG") else "jpg" if raw.startswith(b"\xff\xd8") else "webp" if raw[:4]==b"RIFF" and raw[8:12]==b"WEBP" else "svg" if raw.lstrip().startswith((b"<svg",b"<?xml")) else "bin"
        Path(f"image-{index}.{ext}").write_bytes(raw)
    print("Every returned image saved; complete response metadata retained")
save_images(json.loads(Path("result.json").read_text())["data"])
PY_RESULT
from openai import OpenAI
import base64, json, os, subprocess
from pathlib import Path
from urllib.parse import urlsplit, urljoin

def save_images(items):
    if not items: raise SystemExit("No completed images; retain the full response")
    for index, item in enumerate(items):
        encoded=item.get("b64_json")
        uri=item.get("url", "")
        if not encoded and uri.startswith("data:image/"):
            header, separator, encoded=uri.partition(",")
            if not separator or ";base64" not in header: raise SystemExit("Unsupported image data URI")
        if encoded:
            raw=base64.b64decode(encoded,validate=True)
        elif uri:
            uri=urljoin("https://api.ailoot.ai",uri)
            parsed=urlsplit(uri)
            if parsed.scheme!="https" or not parsed.netloc or parsed.username or parsed.password:
                raise SystemExit("Invalid returned image URL")
            owned=parsed.netloc=="api.ailoot.ai" and parsed.path.startswith("/v1/media/assets/") and parsed.path.endswith("/content")
            args=["curl","--fail-with-body","--silent","--show-error",uri]
            if owned: args += ["-H","Authorization: Bearer "+os.environ["AILOOT_API_KEY"]]
            temporary=Path(f"image-{index}.bin")
            subprocess.run(args+["-o",str(temporary)],check=True)
            raw=temporary.read_bytes()
            temporary.unlink()
        else: raise SystemExit("Image has neither bytes nor URL")
        if not raw: raise SystemExit("Empty image result")
        ext="png" if raw.startswith(b"\x89PNG") else "jpg" if raw.startswith(b"\xff\xd8") else "webp" if raw[:4]==b"RIFF" and raw[8:12]==b"WEBP" else "svg" if raw.lstrip().startswith((b"<svg",b"<?xml")) else "bin"
        Path(f"image-{index}.{ext}").write_bytes(raw)
    print("Every returned image saved; complete response metadata retained")

request={'model': 'bytedance-seed/seedream-5-0-flash', 'prompt': 'A lighthouse on a cliff, watercolor', 'n': 1, 'response_format': 'b64_json'}
client=OpenAI(base_url="https://api.ailoot.ai/v1",api_key=os.environ["AILOOT_API_KEY"],max_retries=0)
result=client.images.generate(**request)
Path("sdk-result.txt").write_text(str(result),encoding="utf-8")
save_images([{"b64_json":getattr(item,"b64_json",None),"url":getattr(item,"url",None)} for item in result.data])
import OpenAI from "openai";
import { readFileSync, writeFileSync } from "node:fs";
const key=process.env.AILOOT_API_KEY;
if(!key) throw new Error("Set your actual Ailoot API key");
const client=new OpenAI({baseURL:"https://api.ailoot.ai/v1",apiKey:key,maxRetries:0});
const request={"model": "bytedance-seed/seedream-5-0-flash", "prompt": "A lighthouse on a cliff, watercolor", "n": 1, "response_format": "b64_json"};
const result=await client.images.generate(request);
writeFileSync("sdk-result.json",JSON.stringify(result,null,2));
if(!result.data?.length) throw new Error("No completed images");
for(let index=0;index<result.data.length;index++) {
  const item=result.data[index];let encoded=item.b64_json,uri=item.url||"",raw;
  if(!encoded && uri.startsWith("data:image/")) {
    const comma=uri.indexOf(",");if(comma<0 || !uri.slice(0,comma).includes(";base64")) throw new Error("Unsupported image data URI");
    encoded=uri.slice(comma+1);
  }
  if(encoded) {
    if(encoded.length%4!==0 || !/^[A-Za-z0-9+/]*={0,2}$/.test(encoded)) throw new Error("Invalid Base64");
    raw=Buffer.from(encoded,"base64");
  } else if(uri) {
    const u=new URL(uri,"https://api.ailoot.ai");
    if(u.protocol!=="https:" || u.username || u.password) throw new Error("Invalid returned URL");
    const owned=u.origin==="https://api.ailoot.ai" && u.pathname.startsWith("/v1/media/assets/") && u.pathname.endsWith("/content");
    const response=await fetch(u,{headers:owned?{Authorization:"Bearer "+key}:{},redirect:"manual"});
    if(!response.ok) throw new Error("Image content download failed: "+response.status);
    raw=Buffer.from(await response.arrayBuffer());
  } else throw new Error("Image has neither bytes nor URL");
  if(!raw.length) throw new Error("Empty image result");
  const ext=raw.subarray(0,4).equals(Buffer.from([137,80,78,71]))?"png":raw[0]===255&&raw[1]===216?"jpg":raw.toString("ascii",0,4)==="RIFF"&&raw.toString("ascii",8,12)==="WEBP"?"webp":raw.toString("utf8").trimStart().startsWith("<svg")||raw.toString("utf8").trimStart().startsWith("<?xml")?"svg":"bin";
  writeFileSync(`image-${index}.${ext}`,raw);
}
console.log("Every returned image saved; sdk-result.json retains complete metadata");

Hent og gem resultater

Ailoot Ultra · Billeder

Hent hvert returneret billede, eller gem dets Base64-indhold

  • GET /v1/media/tasks/{task_id}
  • GET /v1/media/assets/{asset_id}/content
  • GET /v1/media/assets
  • GET /v1/media/assets/{asset_id}
Behold alle færdige resultater

Gem hvert færdigt billede; hent hver returneret URL eller afkod dets Base64-indhold.

Gem hvert dataelement. Afkod hver b64_json, eller hent hver returneret signeret URL. Vælg filtypenavnet ud fra den faktiske MIME-type eller de faktiske bytes.

Hvis det oprindelige svar skal kontrolleres

Hvis resultatet af en billedgenerering eller -redigering skal kontrolleres, skal du gemme det oprindelige operation_id/X-Client-Request-ID og de returnerede resultatoplysninger. Hent eksisterende resultater, som du ejer, via mediebiblioteket med de faktiske task_id- eller asset_id-værdier. Send ikke anmodningen om generering/redigering igen, og opbyg ikke en polling-URL ud fra operation_id.

Svarfelter
FeltType
FeltcreatedTypeinteger
Feltdata[].urlTypestring
Feltdata[].b64_jsonTypebase64 string
FeltusageTypeobject
Fejl og næste trin
SvarBetingelseNæste trin
Svar400 · invalid_request_errorBetingelseUgyldige obligatoriske felter, materialerepræsentation eller parameterværdiNæste trinRet de angivne felter før en ny oprettelsesanmodning.
Svarserver_errorBetingelseDet returnerede svar angiver, at operationen eller resultatet skal kontrolleresNæste trinGem det oprindeligt returnerede operations-/opgave-ID, anmodningens headere og svaret; fortsæt med de understøttede læseanmodninger for den oprindelige operation. Send ikke oprettelsesanmodningen igen.

Aliaser

Modelaliaser

Ailoot Ultra bytedance-seed/seedream-5-0-flash

Aliaser for metodestier

Brug metodestierne vist ovenfor.

Relaterede kalder-ID’er

bytedance-seed/seedream-5-0-flash

FAQ · ByteDance Seed: Seedream 5.0 Flash
Hvilke input og resultater er tilgængelige?

POST /v1/images/generations · bytedance-seed/seedream-5-0-flash: text → image

Hvilke felter bruger anmodningen?

POST /v1/images/generations · bytedance-seed/seedream-5-0-flash: model, prompt, n, response_format, stream

Flere oplysninger

Tilslut Ailoot til Claude Code, OpenCode, Hermes eller din egen applikation.

Virksomheden og dens projektportefølje

Virksomheden og dens projektportefølje: millioner af kunder; månedligt salg for milliarder.

Køb tokens med rabat.

Abonnementsrabat til regelmæssigt arbejde. Rabatkoder giver op til 50% på tokenkøb.

Abonnement
Vælg et abonnement med rabat til dine regelmæssige anmodninger.
Rabatkode på op til 50%
Indtast koden ved købet. Prisen genberegnes efter den aktuelle kampagne.
Udgifter i historikken
Model, tokens og beløb gemmes for hver anmodning.

Vælg abonnement · Se modelpriser

Tilslut API’et til produktet, du sælger.

SaaS, apps og bots efter Ailoots tilbudsvilkår og licensaftale. Anmod om en forhandlerlicens til videresalg.

Kommerciel applikation
Byg generering af tekst, billeder, video og lyd ind i tjenestens betalte funktioner.
Licens til forhandlere
Send projektbeskrivelse og adgangsmodel. Bed om skriftlige vilkår for anvendelse og videresalg.
Dokumenter på websitet
Tilbudsvilkår, licensaftale og politik for behandling af data kan læses før tilslutning.

Anmod om forhandlerlicens · Tilbudsvilkår og licensaftale