modelli

Recraft: Recraft V4.1 Flash

Markdown · JSON

Recraft: Recraft V4.1 Flash

Recraft V4.1 Flash genera immagini raster 1K da testo per una rapida iterazione visiva. Supporta fotografia, ritratti, scene complesse e concept di logo, con output PNG o WebP senza perdita e preferenze cromatiche esplicite.

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.

Recraft V4.1 Flash è il modello text-to-image di Recraft per iterazione rapida e lavoro visivo ad alto volume. Il produttore identifica fotografia, ritratti, atmosfera, scene complesse, tecniche miste e concept di logo come ambiti di particolare efficacia. Un brief scritto diventa un’immagine raster confrontabile con altre direzioni creative prima di sviluppare una risorsa finale. Flash è un membro specifico della famiglia V4.1, con proprie dimensioni d’output e controlli supportati.

L’output nativo appartiene alla classe raster 1K di Recraft. Scegli il canvas in base alla collocazione prevista: un’illustrazione orizzontale per l’intestazione di pagina, un ritratto verticale o una visuale quadrata per una scheda compatta. I formati d’output sono WebP senza perdita e PNG.

Inizia il brief con soggetto principale e scopo visivo, poi descrivi inquadratura, ambientazione, illuminazione e tecnica. Per un concept di prodotto, un’istruzione utile è: “Una radio compatta color crema su una scrivania di noce, vista frontale di tre quarti, luce morbida da finestra, fotografia editoriale calma, ampio spazio vuoto a sinistra.” Per un’illustrazione, identifica linguaggio delle forme, tavolozza e relazione fra gli elementi. Mantieni espliciti i dettagli che definiscono l’idea invece di aggiungere aggettivi scollegati. Il limite documentato del prompt Flash è fino a 10.000 caratteri, quindi una scena dettagliata può essere descritta quando necessario.

I controlli del produttore includono colori preferiti e un colore di sfondo desiderato. Si può fornire un seed per risultati riproducibili e l’interfaccia di generazione documenta da una a sei immagini per richiesta. Questi controlli supportano un confronto utile: mantieni stabili soggetto e composizione, varia una direzione visiva e controlla le immagini risultanti per il layout desiderato. Le preferenze cromatiche descrivono il risultato richiesto; confronta i colori importanti della marca con la risorsa finita prima di combinarla con un sistema di design esistente.

Flash produce grafica raster. Un concept di logo può aiutare a scegliere sagoma, atmosfera o disposizione, mentre i tracciati modificabili appartengono ai modelli Vector denominati separatamente. Flash non ha inoltre una variante Pro. La linea V4.1 completa offre quelle scelte separate quando modifica vettoriale o dettaglio a maggiore risoluzione sono centrali alla consegna. Il produttore descrive un passaggio successivo di affinamento per portare una bozza scelta verso un’immagine più dettagliata; tale passaggio è un’operazione distinta anziché una diversa dimensione nativa d’output Flash.

Questa edizione non supporta input image-to-image, stili personalizzati, identificatori di stile, corrispondenza di stile o immagini di riferimento stilistico. L’interfaccia documentata esclude inoltre prompt negativi e controlli espliciti di layout del testo. Inserisci aspetto e composizione richiesti nel brief positivo. Quando le scritte fanno parte di un concept, cita il testo desiderato e ispeziona i caratteri resi; usa una fase separata di layout quando tipografia e collocazione esatte sono essenziali.

Un risultato pratico di Flash è una direzione visiva selezionata con brief chiaro, rapporto d’aspetto appropriato e file raster utilizzabile. Confronta soggetto, inquadratura, sfondo e dettagli importanti alle dimensioni in cui apparirà l’immagine. Conserva insieme prompt riuscito e file scelto, così il passo creativo successivo segue la direzione selezionata. L’iterazione rapida aiuta a esplorare il design; output vettoriale nativo, corrispondenza di stile da riferimenti e risoluzione di un’altra edizione V4.1 restano scelte di modello separate.

Ailoot Ultra · Immagini POST /v1/images/generations recraft/recraft-v4.1-flash

recraft/recraft-v4.1-flash

Recraft /recraft/recraft-v4.1-flash

Introduzione

Recraft V4.1 Flash genera immagini raster 1K da testo per una rapida iterazione visiva. Supporta fotografia, ritratti, scene complesse e concept di logo, con output PNG o WebP senza perdita e preferenze cromatiche esplicite.

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
recraft/recraft-v4.1-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
ConfigurazioneUltraListino delle tariffe—Quantità prevista—Unità di fatturazioneper immagine in outputCosto
Output · immagine in uscita · Stima solo a fini di confronto $0.014 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.014 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

ConfigurazioneCondizioni di fatturazioneCosto
ConfigurazioneImmagine in uscitaCondizioni di fatturazioneNon è dichiarata alcuna variante tariffaria.Costo
Output · Immagine in uscita $0.014 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": "recraft/recraft-v4.1-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': 'recraft/recraft-v4.1-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": "recraft/recraft-v4.1-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 recraft/recraft-v4.1-flash

Alias dei percorsi dei metodi

Usa i percorsi dei metodi indicati sopra.

ID di chiamata correlati

recraft/recraft-v4.1-flash

FAQ · Recraft: Recraft V4.1 Flash
Quali input e risultati sono disponibili?

POST /v1/images/generations · recraft/recraft-v4.1-flash: text → image

Quali campi usa la richiesta?

POST /v1/images/generations · recraft/recraft-v4.1-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