modelli

ByteDance Seed: Seedream 5.0 Flash

Markdown · JSON

ByteDance Seed: Seedream 5.0 Flash

Seedream 5.0 Flash crea e modifica immagini da testo e riferimenti visivi, con cambiamenti guidati spazialmente, testo multilingue nelle immagini e scomposizione in livelli. ByteDance Seed propone Flash per una generazione più veloce, mantenendolo distinto dall’edizione Pro orientata alla qualità.

Informazioni sul modello

Questa descrizione illustra le funzionalità del modello. Gli input, gli output e le opzioni disponibili in Ailoot per il metodo selezionato sono elencati di seguito.

Un’edizione più veloce per creare immagini

Seedream 5.0 Flash è il modello di generazione e modifica immagini di ByteDance Seed per flussi di lavoro che privilegiano la velocità di generazione. La guida Pro/Flash del produttore descrive sia text-to-image sia image-to-image con uno o più riferimenti. Distingue la generazione più veloce di Flash dalla priorità alla maggiore qualità d’immagine di Pro, senza stabilire un tempo di risposta fisso per ogni brief.

Le caratteristiche condivise distintive sono modifica interattiva, scomposizione in livelli e generazione multilingue nativa. La generazione ordinaria restituisce un’immagine finita. Il flusso Flash del produttore non supporta generazione sequenziale di immagini correlate, ricerca web o output di immagini in streaming. L’ottimizzazione del prompt usa la modalità standard; il controllo separato di ottimizzazione veloce appartiene a Pro anziché Flash.

Creare da un brief e riferimenti

Indica immagine desiderata, soggetto principale, composizione e trattamento visivo, poi identifica cosa controlla ogni riferimento. Per una visuale di prodotto, separa il riferimento che stabilisce l’oggetto da quello che fornisce una tavolozza o un materiale di superficie. “Conserva sagoma e angolo di vista dell’oggetto della prima immagine; usa la seconda solo per la tavolozza attenuata dello sfondo” assegna ruoli distinti ai riferimenti.

Il produttore consiglia prompt concisi, non oltre 300 caratteri cinesi o 600 parole inglesi. È una guida di preparazione anziché un limite rigido dichiarato dell’input testuale. Elenca prima i requisiti decisivi, inclusi testo esatto che deve apparire, rapporto d’aspetto desiderato e dettagli che devono restare invariati. Ispeziona l’immagine finita rispetto a tale elenco anziché affidarti solo al suo aspetto generale.

Modifica guidata spazialmente

Flash può usare punti, riquadri delimitatori, frecce e segni liberi per identificare dove deve avvenire una modifica. Fornisci l’immagine sorgente insieme a posizione e cambiamento. Per un concept d’interni, contrassegna la sedia, richiedi una sostituzione del tessuto e identifica pavimento, parete, angolo di camera e oggetti vicini da preservare. Se i segni servono solo da guida, chiedi esplicitamente di rimuoverli dall’immagine finita.

La guida di modifica tramite coordinate del produttore usa tag <point> e <bbox> con coordinate normalizzate a 0–999 rispetto all’immagine in ingresso specificata. Un punto contiene x e y; un riquadro contiene coordinate superiore sinistra e inferiore destra. Identifica numero dell’immagine e oggetto destinatario, soprattutto quando un riquadro include più soggetti. Per una modifica fra immagini, distingui l’oggetto da prendere da un riferimento e la zona di destinazione in un altro.

Usa le dimensioni proprie dell’immagine visualizzata nell’ottenere la posizione proporzionale; zoom del canvas, panoramica o coordinate del browser non sono coordinate normalizzate dell’immagine. Descrivi le zone protette oltre a quella modificata. Confronta prospettiva, illuminazione e dettagli circostanti del risultato con la sorgente originale.

Separa una composizione in livelli modificabili

La scomposizione in livelli è una modalità distinta che accetta esattamente un’immagine e restituisce un’immagine base e fino a 16 livelli indipendenti. Ogni livello è un PNG con alfa. Un prompt può nominare gli elementi da separare, come titolo, soggetto principale e decorazioni; senza un prompt di scomposizione, il modello identifica automaticamente gli elementi principali.

I risultati includono nomi dei livelli, descrizioni, ordine di sovrapposizione e riquadri di collocazione. Usa l’immagine base con indice di sovrapposizione zero, poi colloca gli altri livelli in ordine crescente. I riquadri assoluti descrivono la collocazione nell’immagine base d’output; quelli normalizzati descrivono la collocazione proporzionale su un canvas diverso. Conserva questi metadati di collocazione restituiti con i file immagine affinché la composizione originale possa essere ricostruita prima di riordinarla.

Per una revisione di poster, separa la grafica principale da titolo e decorazioni, poi ispeziona bordi e ogni area di sfondo ripristinata. Un livello trasparente può essere modificato come unico input con canale alfa e output PNG trasparente. L’opzione di sfondo trasparente riguarda quel flusso di modifica immagine a input singolo; la generazione text-to-image ordinaria è un’operazione separata.

Composizione multilingue

Oltre a cinese e inglese, il produttore documenta supporto nativo per prompt e testo nelle immagini in russo, arabo, filippino, thailandese, turco, coreano, malese, spagnolo, portoghese, indonesiano, francese, tedesco, vietnamita e giapponese. Fornisci il testo approvato esatto e la direzione di lettura e identifica quale zona contiene ogni blocco testuale. Controlla accenti, caratteri uniti, interruzioni di riga e piccole etichette nell’immagine finale.

File di riferimento e specifiche d’output

La generazione immagini accetta fino a 10 riferimenti in JPEG, PNG, WebP, BMP, TIFF, GIF, HEIC o HEIF. Ciascuno può arrivare a 30 MB, con entrambi i lati superiori a 14 pixel, 196–36.000.000 pixel totali e rapporto d’aspetto da 1:16 a 16:1. La scomposizione in livelli richiede invece un JPEG o PNG di 262.144–36.000.000 pixel, fino a 30 MB, entro lo stesso intervallo di rapporti.

La generazione offre fasce d’output 1K, 1.5K e 2K, con 2K predefinita, oppure dimensioni esplicite con 921.600–4.624.220 pixel totali e rapporti da 1:16 a 16:1. Entrambi i vincoli si applicano alle dimensioni personalizzate. L’output dei livelli usa 1K, 1.5K, 2K o auto, con auto predefinito; base e ciascun livello mantengono i rispettivi rapporti d’aspetto sorgente.

Le immagini finite sono JPEG o PNG. Il formato dell’immagine base può essere scelto separatamente, mentre i livelli scomposti restano PNG con alfa. La consegna può usare dati immagine codificati o link di download conservati per 24 ore. Salva ogni immagine restituita e i suoi metadati per il flusso di design previsto. Ispeziona testo, dettagli modificati e allineamento dei livelli alle dimensioni d’uso dell’elaborato.

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

bytedance-seed/seedream-5-0-flash

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

Introduzione

Crea un’immagine finita a partire da un brief testuale.

  • Crea un’immagine statica di un prodotto
  • Esplora un concetto visivo
  • Illustra una scena
Input accettati
Testo
Risultati
Immagini

Disponibile in Ailoot · input e metodi

Ailoot Ultra · Immagini POST /v1/images/generations
Tipi di input
text
Tipi di output
image
Formato di output
File immagine
Numero di output
1 output
CampoTipoRequisitoValori e limitiPredefinito
CampomodelTipostringRequisitoObbligatorioValori e limiti
bytedance-seed/seedream-5-0-flash
Predefinito—
CampopromptTipostringRequisitoObbligatorioValori e limiti
Lunghezza minima: 1
Condizioni: Prompt UTF8 non vuoto. Non viene inventato alcun limite di caratteri valido per tutti i modelli del produttore.
Predefinito—
CamponTipointegerRequisitoFacoltativoValori e limiti
1
Predefinito1
Camporesponse_formatTipostringRequisitoFacoltativoValori e limiti
url, b64_json
Predefinito—
CampostreamTipobooleanRequisitoFacoltativoValori e limiti
false
Predefinitofalse
Combinazioni di materiali in input

Da testo a immagine · Obbligatorio: prompt

Parametri e ciclo di vita del metodo
ParametroContratto
Parametrocontent_typeContrattoapplication/json
ParametrorequiredContrattomodel, prompt
Parametromaterial_typesContrattotext
ParametrooptionalContratton, response_format, stream
ParametronContratto1
ParametrostreamContrattofalse
Parametroresponse_formatContrattourl, b64_json
Parametroreference_imagesContrattofalse
ParametroeditContrattofalse
Parametrooutput_format_optionalContratto
Parametroresolution_controlContrattonull
Parametroaspect_ratio_controlContrattonull
Parametroother_fieldsContrattorifiutato salvo l'instradamento interno esatto del fornitore fissato

Ciclo di vita: synchronous_result_then_owned_library

GET /v1/media/tasks/{task_id} · task_id effettivamente restituito o record della libreria multimediale

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

GET /v1/media/assets

GET /v1/media/assets/{asset_id}

Genera un'immagine dal prompt.

Salva ogni elemento di dati; url/b64_json sono codifiche del risultato.

Tariffe

Calcolo del costo finale

Le tariffe visualizzate stimano il costo prima della generazione. L'addebito finale viene calcolato in base al costo registrato per la generazione originale. La durata misurata dell'output e le quantità previste non costituiscono la quantità finale fatturabile.

Le tariffe non aggiungono opzioni alla richiesta. I parametri supportati sono elencati nel metodo selezionato.

Modalità rapida
Non specificato Quando è selezionata la modalità rapida
Modalità flex
Non specificato Quando è selezionata la modalità flex
Sforzo massimo di ragionamento
Non specificato Quando lo sforzo massimo di ragionamento usa l'adeguamento predefinito (default)

Tariffe stimate per il confronto

Prezzi per configurazione

Associa ogni costo alle condizioni indicate. Usa una sola tariffa per ogni insieme di configurazioni alternative.

ConfigurazioneListino delle tariffeQuantità previstaUnità di fatturazioneCosto
ConfigurazioneTariffe base dei tokenListino delle tariffeTariffa baseQuantità prevista—Unità di fatturazione—Costo
Input · Token in input · Stima solo a fini di confronto — / 1K token
Output · Token in output · Stima solo a fini di confronto — / 1K token
Input · Lettura dalla cache · Stima solo a fini di confronto — / 1K token
Input · Scrittura nella cache · Stima solo a fini di confronto — / 1K token
Input · Scrittura nella cache, 1 ora · Stima solo a fini di confronto — / 1K token
Configurazioneimmagine in ingressoListino delle tariffe—Quantità prevista—Unità di fatturazioneper immagine in inputCosto
Input · immagine in ingresso · Stima solo a fini di confronto $0 per immagine in input
ConfigurazioneUltraListino delle tariffe—Quantità prevista—Unità di fatturazioneper immagine in outputCosto
Output · immagine in uscita · Stima solo a fini di confronto $0.036 per immagine in output
ConfigurazioneCosto stimato della generazioneListino delle tariffe—Quantità previstastima per una generazioneUnità di fatturazione—Costo
Output · Costo di generazione stimato · Stima solo a fini di confronto $0.036 stima prima della generazione

Questa stima non è un addebito aggiuntivo né una tariffa fissa per la generazione completata.

Ailoot prenota un importo stimato prima di una richiesta. Dopo il risultato, addebita il costo finale in base all’utilizzo misurato. Per lo streaming, l’addebito usa il record finale di utilizzo. Come funzionano la prenotazione e l’addebito finale →

Dettagli della tariffa di riferimento

I listini di riferimento del modello non modificano la selezione del metodo, i preventivi o gli addebiti. Gli addebiti attivi usano le tariffe del metodo Ailoot selezionato.

Configurazioni tariffarie per le immagini

Prezzi per configurazione

Associa ogni costo alle condizioni indicate. Usa una sola tariffa per ogni insieme di configurazioni alternative.

ConfigurazioneCondizioni di fatturazioneCosto
ConfigurazioneImmagine in uscitaCondizioni di fatturazioneNon è dichiarata alcuna variante tariffaria.Costo
Output · Immagine in uscita $0.036 per immagine
ConfigurazioneImmagine in ingressoCondizioni di fatturazioneNon è dichiarata alcuna variante tariffaria.Costo
Input · Immagine in ingresso $0 per immagine

Le voci equivalenti descrivono lo stesso addebito; non aggiungono un secondo costo.

Esempi di richieste

Ailoot Ultra · Immagini

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");

Ricevi e salva i risultati

Ailoot Ultra · Immagini

Scarica ogni immagine restituita o salvane il contenuto Base64

  • GET /v1/media/tasks/{task_id}
  • GET /v1/media/assets/{asset_id}/content
  • GET /v1/media/assets
  • GET /v1/media/assets/{asset_id}
Conserva tutti i risultati completati

Salva ogni immagine completata; recupera ogni URL restituito oppure decodificane il contenuto Base64.

Salva ogni elemento data. Decodifica ogni b64_json o recupera ogni URL firmato restituito. Scegli l'estensione del nome del file in base al MIME e ai byte effettivi.

Se occorre verificare la risposta originale

Se il risultato di una generazione o modifica di immagini richiede una verifica, conserva operation_id/X-Client-Request-ID originale e le informazioni sul risultato restituito. Recupera i risultati esistenti che ti appartengono tramite la libreria multimediale usando i valori effettivi di task_id o asset_id. Non reinviare la richiesta di generazione/modifica e non costruire un URL di polling a partire da operation_id.

Campi della risposta
CampoTipo
CampocreatedTipointeger
Campodata[].urlTipostring
Campodata[].b64_jsonTipobase64 string
CampousageTipoobject
Errori e passaggi successivi
RispostaCondizionePassaggio successivo
Risposta400 · invalid_request_errorCondizioneCampi obbligatori, rappresentazione del materiale o valore del parametro non validiPassaggio successivoCorreggi i campi indicati prima di una nuova richiesta di creazione.
Rispostaserver_errorCondizioneLa risposta restituita indica che l'operazione o il risultato richiede una verificaPassaggio successivoConserva l'ID originale di operazione/task restituito, gli header della richiesta e la risposta; continua a leggere l'operazione originale tramite le modalità supportate. Non reinviare la richiesta di creazione.

Alias

Alias del modello

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

Alias dei percorsi dei metodi

Usa i percorsi dei metodi indicati sopra.

ID di chiamata correlati

bytedance-seed/seedream-5-0-flash

FAQ · ByteDance Seed: Seedream 5.0 Flash
Quali input e risultati sono disponibili?

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

Quali campi usa la richiesta?

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

Maggiori dettagli

Collega Ailoot a Claude Code, OpenCode, Hermes o alla tua applicazione.

L’azienda e il suo portafoglio di progetti

L’azienda e il suo portafoglio di progetti: milioni di clienti; vendite nell’ordine dei miliardi ogni mese.

Acquista token con uno sconto.

Sconto con abbonamento per lavoro regolare. Codici fino al 50% sull’acquisto di token.

Abbonamento
Scegli un piano scontato per richieste regolari.
Codice fino al 50%
Inserisci il codice all’acquisto. Il prezzo si aggiorna secondo la promozione.
Spese nella cronologia
Modello, token e importo sono salvati per ogni richiesta.

Scegli abbonamento · Consulta prezzi dei modelli

Collega l’API al prodotto che vendi.

SaaS, app e bot secondo offerta e accordo di licenza Ailoot. Per rivendere, richiedi una licenza reseller.

Applicazione commerciale
Integra generazione di testo, immagini, video e suono nelle funzioni a pagamento.
Licenza reseller
Invia descrizione del progetto e schema di accesso. Richiedi condizioni scritte per uso e rivendita.
Documenti sul sito
Offerta, accordo di licenza e politica sui dati sono disponibili prima della connessione.

Richiedi licenza reseller · Offerta e accordo di licenza