modelli

Recraft: Recraft V3

Markdown · JSON

Recraft: Recraft V3

Recraft V3 crea fotografie, illustrazioni e layout grafici con composizione attenta al testo e controlli stilistici. Le varianti raster e SVG distinte si adattano a poster, insiemi di immagini di marca, icone e design in cui testo e struttura visiva devono funzionare insieme.

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 V3 è un modello di generazione immagini costruito per il design grafico oltre a scene fotografiche e illustrate. Un brief scritto descrive soggetto, ambientazione e composizione; il risultato è un’immagine. V3 sviluppa la resa del testo e il fotorealismo di Recraft mantenendo la coerenza stilistica da immagini d’esempio senza riaddestramento.

Il testo come parte della composizione

V3 lavora con testo all’interno dell’immagine, inclusi testi più lunghi e scritte medie. Recraft descrive una fase di layout che stabilisce parole e loro posizioni prima della generazione dell’immagine. Il layout può essere prodotto automaticamente dal brief o disposto manualmente nell’ambiente di design Recraft. Questo aiuta a collegare titolo, illustrazione e testo di supporto in una composizione. Il produttore documenta anche coordinate esplicite di layout testuale, espresse relativamente all’immagine anziché come griglia fissa di pixel. Ogni elemento testuale contiene una sola parola e quattro punti angolari in coordinate normalizzate: (0, 0) è l’angolo superiore sinistro e (1, 1) quello inferiore destro. Le coordinate possono estendersi oltre quell’intervallo, nel qual caso la forma viene ritagliata. Le parole del layout testuale esplicito devono seguire le restrizioni documentate sui caratteri.

Per un poster o una copertina, fornisci il testo esatto e descrivine la gerarchia: quale riga guida, dove si colloca e come l’immagine la supporta. Controlla ortografia e spaziatura rese quando selezioni un risultato.

Stile, tavolozza e direzione artistica

V3 include stili curati fotografici, illustrativi e di emblemi, oltre a una libreria separata di stili vettoriali. Recraft V3 Raw è lo stile predefinito del modello raster; Vector art è quello della variante vettoriale. Photorealism mira a un aspetto fotografico, mentre Illustration accoglie texture stilizzate, ombreggiatura e transizioni cromatiche più complesse. Gli stili vettoriali preferiscono forme, tavolozze limitate e riempimenti piatti o gradienti semplici.

Gli stili personalizzati possono essere costruiti da immagini di riferimento, stili compatibili esistenti o una combinazione. Forniscono una direzione visiva riutilizzabile fra una serie di immagini. I controlli di miscelazione documentati permettono a riferimenti e stili sorgente di avere pesi separati; il numero dei pesi corrisponde alle sorgenti. PaletteMatch e MaxWeight sono le due politiche di miscelazione elencate. Il produttore consente fino a 10 immagini di riferimento stilistico e usa la modalità regolare di corrispondenza dello stile per V3. Uno stile personalizzato memorizzato e riferimenti stilistici diretti sono input alternativi e uno stile personalizzato deve corrispondere al modello usato per la generazione.

Colori preferiti e colore di sfondo guidano la tavolozza. Sono documentati fino a 10 colori RGB, con ogni componente da 0 a 255. I pesi relativi facoltativi vanno da 0 a 1; devono essere forniti per tutti i colori o per nessuno e il loro totale non può superare 1. Il livello artistico va da 0 per un trattamento statico e pulito a 5 per composizioni più dinamiche ed eccentriche. Un prompt negativo descrive elementi indesiderati; un controllo no-text separato disattiva i layout testuali incorporati. È disponibile un seed casuale per la riproducibilità. Questi controlli offrono leve diverse per scena, stile e layout visivo.

Immagini raster e una variante SVG separata

Recraft documenta due varianti V3. Il modello raster produce WebP senza perdita o PNG ed è adatto a dettaglio fotografico, ombreggiatura e illustrazioni materiche. Recraft V3 Vector produce SVG: tracciati e forme scalabili senza risoluzione fissa in pixel. È adatto a pittogrammi, concept di logo, distintivi ed elaborati vettoriali dettagliati. La conversione raster-vettore è un’operazione separata dalla generazione diretta di elaborati vettoriali.

Entrambe le varianti hanno una propria identità. Un’immagine dall’aspetto vettoriale e un output SVG effettivo sono scelte diverse. Seleziona l’output previsto quando prepari un flusso di design, anziché trattare il nome V3 condiviso come prova che ogni operazione restituisca lo stesso tipo di file.

Modifica e finitura di elaborati esistenti

La documentazione V3 di Recraft elenca generazione image-to-image, inpainting, outpainting e sostituzione o generazione dello sfondo. Il lavoro image-to-image combina un’immagine esistente con un nuovo brief. L’inpainting rigenera la zona selezionata usando un’immagine e una maschera corrispondente; l’outpainting aggiunge contenuto oltre l’inquadratura originale. Le operazioni di sfondo riguardano l’ambiente del soggetto.

Gli strumenti associati includono anche cancellazione, rimozione dello sfondo, vettorializzazione e due approcci di upscaling. L’upscaling creativo può introdurre nuovi dettagli; quello nitido mira a una rappresentazione più grande e definita del contenuto esistente. Sono operazioni distinte con input e risultati propri, anziché significati aggiuntivi del nome del modello raster o vettoriale.

Limiti di prompt, dimensioni e immagini sorgente

La specifica di generazione V3 del produttore accetta un prompt fino a 1000 caratteri e 1–6 immagini per richiesta. Supporta 14 rapporti d’aspetto: 1:1, 2:1, 1:2, 3:2, 2:3, 4:3, 3:4, 5:4, 4:5, 6:10, 14:10, 10:14, 16:9 e 9:16. Gli esempi raster documentati includono 1024x1024, 1820x1024 e 1024x1820. Le dimensioni raster esatte devono appartenere all’elenco supportato; SVG usa rapporti d’aspetto senza dimensioni fisse in pixel. Quando le dimensioni sono omesse, il sistema del produttore le seleziona dal prompt.

Per le operazioni con immagini in ingresso, il produttore elenca PNG, JPG e WebP, con SVG dove l’operazione specifica lo consente. I file devono essere sotto 20 MB, non oltre 16 MP, con lato più lungo al massimo di 4096 pixel. Il lato più corto è di almeno 256 pixel, con un’eccezione di 32 pixel per l’upscaling nitido. Le maschere corrispondono alle dimensioni dell’immagine e usano bianco e nero puri; i riferimenti stilistici hanno un limite complessivo di 64 MB.

Per un progetto Ailoot API, trasforma l’attività in un brief mirato per immagini: testo esatto, disposizione degli oggetti, stile visivo e composizione desiderata. Un poster, una scena di prodotto e una serie di icone richiedono brief diversi; conserva le distinzioni pertinenti fra varianti V3 e operazioni nel decidere come sarà usato ogni risultato.

Ailoot Ultra · Immagini POST /v1/images/generations recraft/recraft-v3

recraft/recraft-v3

Recraft /recraft/recraft-v3

Introduzione

Recraft V3 crea fotografie, illustrazioni e layout grafici con composizione attenta al testo e controlli stilistici. Le varianti raster e SVG distinte si adattano a poster, insiemi di immagini di marca, icone e design in cui testo e struttura visiva devono funzionare insieme.

Input accettati
Testo · Immagini
Risultati
Immagini

Disponibile in Ailoot · input e metodi

Ailoot Ultra · Immagini POST /v1/images/generations
Tipi di input
text, image
Tipi di output
image
Formato di output
File immagine
CampoTipoRequisitoValori e limitiPredefinito
CampomodelTipostringRequisitoObbligatorioValori e limiti
recraft/recraft-v3
Predefinito—
CampopromptTipostringRequisitoObbligatorioValori e limiti
Lunghezza minima: 1
Predefinito—
CamponTipointegerRequisitoFacoltativoValori e limiti
Minimo: 1
Massimo: 6
Predefinito—
Campoaspect_ratioTipostringRequisitoFacoltativoValori e limiti
1:1, 4:3, 3:4, 16:9, 9:16, auto
Predefinito—
Campoinput_referencesTipoarrayRequisitoFacoltativoValori e limiti
Numero minimo di elementi: 0
Numero massimo di elementi: 1
Predefinito—
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, image
Parametrooptional_controlsContrattoaspect_ratio, n, input_references
Parametroexact_supported_parametersContratto{"aspect_ratio":{"type":"enum","values":["1:1","4:3","3:4","16:9","9:16","auto"]},"n":{"type":"range","min":1,"max":6},"input_references":{"type":"range","min":0,"max":1}}
Parametroreference_material_ruleContrattoSolo riferimenti a immagini reali del cliente; si applicano le condizioni dell'endpoint del fornitore.

Alias del metodo: /v1/images

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}

Usa il modello esatto e i campi di input documentati.

Conserva la risposta completa, ogni risultato effettivo e gli ID originali restituiti.

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.08 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.08 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.08 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={'model': 'recraft/recraft-v3', 'prompt': 'a red panda astronaut floating in space, studio lighting'}

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-v3', 'prompt': 'a red panda astronaut floating in space, studio lighting'}
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-v3", "prompt": "a red panda astronaut floating in space, studio lighting"};
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.

Conserva ogni elemento di dati e tutti i dati di utilizzo; acquisisci e salva tutte le immagini effettivamente restituite come risorse di tua proprietà. Nessun URL o ID inventato.

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

Alias

Alias del modello

Ailoot Ultra recraft/recraft-v3

Alias dei percorsi dei metodi

/v1/images

ID di chiamata correlati

recraft/recraft-v3

FAQ · Recraft: Recraft V3
Quali input e risultati sono disponibili?

POST /v1/images/generations · recraft/recraft-v3: text, image → image

Quali campi usa la richiesta?

POST /v1/images/generations · recraft/recraft-v3: model, prompt, n, aspect_ratio, input_references

Quali limiti si applicano?

POST /v1/images/generations · recraft/recraft-v3: n.minimum: 1; n.maximum: 6

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