Source: https://ailoot.ai/models/it/recraft-recraft-v4-pro/
Canonical: https://ailoot.ai/models/it/recraft-recraft-v4-pro/
Language: it

# Recraft: Recraft V4 Pro

[Markdown](https://ailoot.ai/models/it/recraft-recraft-v4-pro/index.md) · [JSON](https://ailoot.ai/models/it/recraft-recraft-v4-pro/facts.json)

## [Recraft: Recraft V4 Pro](https://ailoot.ai/models/it/recraft-recraft-v4-pro/)

Recraft V4 Pro genera immagini raster 2K per composizioni dettagliate, fotorealismo, illustrazione e lavoro creativo orientato alla stampa. È l’edizione V4 a maggiore risoluzione, con brief testuali, input stilistici facoltativi e un flusso image-to-image separato.

- [**Ailoot Ultra · Immagini** `POST /v1/images/generations` `recraft/recraft-v4-pro`](https://ailoot.ai/models/it/recraft-recraft-v4-pro/#method-0)

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 Pro è il modello raster a maggiore risoluzione della famiglia V4 di Recraft. V4 si concentra su giudizio visivo, composizione equilibrata, colori coerenti e interpretazione attenta della direzione creativa. Il produttore propone Pro per dettaglio più fine, scene complesse più realistiche e visuali di produzione importanti. Usalo per un’illustrazione dettagliata, un’immagine editoriale, un concept di poster o un’altra risorsa che beneficia di un risultato raster maggiore. Resta distinto dal successivo modello V4.1 e dall’output SVG di V4 Pro Vector.

Il codice esatto del produttore è recraftv4\_pro. L’output documentato è raster 2K in WebP senza perdita o PNG: 2048 × 2048 pixel per un quadrato, 2688 × 1536 per 16:9 e 1664 × 2560 per 2:3. Altri rapporti supportati hanno dimensioni proprie. Scegli un rapporto d’aspetto per il layout previsto o dimensioni esatte consentite; dimensioni arbitrarie in pixel non fanno parte del contratto documentato di generazione. V4 standard ha un output raster 1K più piccolo, mentre i modelli vettoriali non hanno risoluzione fissa in pixel.

V4 può interpretare un prompt breve per esplorare o uno strutturato per un risultato controllato. Per una direzione artistica specifica, la guida del produttore passa da soggetto e ambiente a inquadratura, attributi, relazioni spaziali, illuminazione, profondità e atmosfera. Per un’immagine editoriale di prodotto, richiedi una fotografia verticale drammatica di una sedia scultorea, superfici di metallo spazzolato, luce laterale, sfondo scuro discreto e spazio sopra l’oggetto per un titolo. Nominare tali relazioni chiarisce la composizione desiderata più di una richiesta generica di immagine premium.

La gamma creativa della famiglia include illustrazione narrativa, scene fotorealistiche e visuali dimensionali con indicazioni di materiali e luce. Un risultato dall’aspetto 3D resta un’immagine, non una scena 3D modificabile. Per un poster grafico, specifica i livelli visivi e la loro interazione: sfondo, illustrazione o fotografia, gerarchia del titolo e testo di supporto. V4 è proposto per frasi brevi e medie leggibili, ma ortografia e gerarchia finali devono essere ispezionate anziché dedotte dal nome del modello.

L’attuale riferimento di generazione consente prompt fino a 10.000 caratteri, da uno a sei output, un seed casuale e controlli dei colori preferiti e di sfondo. Stili personalizzati o immagini di riferimento compatibili facoltativi possono guidare l’aspetto con corrispondenza flessibile o precisa. Il modello non accetta i vecchi controlli V3 negative\_prompt, stili curati, text\_layout, artistic\_level o no\_text. Descrivi l’immagine finale desiderata nel prompt positivo e mantieni espliciti requisiti di soggetto, layout e colore. Per la generazione con stile di riferimento, usa da una a dieci immagini PNG, JPG o WebP, non oltre 64 MB in totale e meno di 20 MB ciascuna. Ogni riferimento deve avere lato più corto di almeno 256 pixel, lato più lungo non oltre 4.096 pixel e risoluzione non oltre 16 megapixel. Usa questi riferimenti oppure uno stile salvato compatibile, anziché entrambi.

Recraft documenta un’operazione image-to-image separata per V4. Combina un’immagine esistente e un prompt con intensità da 0 a 1 per controllare il grado di cambiamento e non accetta controlli di stile personalizzato V4 in tale operazione. Prepara la sorgente entro i limiti d’ingresso immagini del produttore e indica gli attributi che devono passare nel nuovo risultato. Per una risorsa finale maggiore, controlla dettagli fini, ritaglio e scritte alle dimensioni previste. Il dettaglio raster aggiuntivo Pro supporta quell’ispezione, mentre l’immagine resta un’interpretazione generata del brief creativo fornito. Per image-to-image, fornisci PNG, JPG, WebP o SVG sotto 20 MB, non oltre 16 megapixel, con entrambi i lati fra 256 e 4.096 pixel.

**Ailoot Ultra · Immagini** `POST /v1/images/generations` `recraft/recraft-v4-pro`

[`recraft/recraft-v4-pro`](https://ailoot.ai/models/it/#m=recraft%2Frecraft-v4-pro&route=Ultra&caller=recraft%2Frecraft-v4-pro&fmt=images)

Recraft /`recraft/recraft-v4-pro`

### Introduzione

Recraft V4 Pro genera immagini raster 2K per composizioni dettagliate, fotorealismo, illustrazione e lavoro creativo orientato alla stampa. È l’edizione V4 a maggiore risoluzione, con brief testuali, input stilistici facoltativi e un flusso image-to-image separato.

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

| Campo | Tipo | Requisito | Valori e limiti | Predefinito |
| --- | --- | --- | --- | --- |
| Campo`model` | Tipo`string` | RequisitoObbligatorio | Valori e limiti recraft/recraft-v4-pro | Predefinito— |
| Campo`prompt` | Tipo`string` | RequisitoObbligatorio | Valori e limiti Lunghezza minima: 1 | Predefinito— |
| Campo`n` | Tipo`integer` | RequisitoFacoltativo | Valori e limiti Minimo: 1 Massimo: 6 | Predefinito— |
| Campo`aspect_ratio` | Tipo`string` | RequisitoFacoltativo | Valori e limiti 1:1, 4:3, 3:4, 16:9, 9:16, auto | Predefinito— |
| Campo`input_references` | Tipo`array` | RequisitoFacoltativo | Valori 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

| Parametro | Contratto |
| --- | --- |
| Parametro`content_type` | Contrattoapplication/json |
| Parametro`required` | Contrattomodel, prompt |
| Parametro`material_types` | Contrattotext, image |
| Parametro`optional_controls` | Contrattoaspect\_ratio, n, input\_references |
| Parametro`exact_supported_parameters` | Contratto{"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}} |
| Parametro`reference_material_rule` | ContrattoSolo 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.

| Configurazione | Listino delle tariffe | Quantità prevista | Unità di fatturazione | Costo |
| --- | --- | --- | --- | --- |
| ConfigurazioneTariffe base dei token | Listino delle tariffeTariffa base | Quantità 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 |
| ConfigurazioneUltra | Listino delle tariffe— | Quantità prevista— | Unità di fatturazioneper immagine in output | Costo Output · immagine in uscita · Stima solo a fini di confronto **$0.5** per immagine in output |
| ConfigurazioneCosto stimato della generazione | Listino delle tariffe— | Quantità previstastima per una generazione | Unità di fatturazione— | Costo Output · Costo di generazione stimato · Stima solo a fini di confronto **$0.5** 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 →](https://ailoot.ai/docs/it/billing/reserve/)

#### 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

| Configurazione | Condizioni di fatturazione | Costo |
| --- | --- | --- |
| ConfigurazioneImmagine in uscita | Condizioni di fatturazioneNon è dichiarata alcuna variante tariffaria. | Costo Output · Immagine in uscita **$0.5** per immagine Le voci equivalenti descrivono lo stesso addebito; non aggiungono un secondo costo. |

### Esempi di richieste

#### Ailoot Ultra · Immagini

curlPython SDKNode.js SDK

```bash
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-v4-pro', '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
```

```python
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-pro', '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])
```

```js
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-pro", "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

| Campo | Tipo |
| --- | --- |
| Campo`created` | Tipointeger |
| Campo`data[].url` | Tipostring |
| Campo`data[].b64_json` | Tipobase64 string |
| Campo`usage` | Tipoobject |

### Alias

#### Alias del modello

**Ailoot Ultra** [`recraft/recraft-v4-pro`](https://ailoot.ai/models/it/#m=recraft%2Frecraft-v4-pro&route=Ultra&caller=recraft%2Frecraft-v4-pro&fmt=images)

#### Alias dei percorsi dei metodi

`/v1/images`

#### ID di chiamata correlati

[`recraft/recraft-v4-pro`](https://ailoot.ai/models/it/#m=recraft%2Frecraft-v4-pro&route=Ultra&caller=recraft%2Frecraft-v4-pro&fmt=images)

FAQ · Recraft: Recraft V4 Pro

Quali input e risultati sono disponibili?

`POST /v1/images/generations` · `recraft/recraft-v4-pro`: `text`, `image` → `image`

Quali campi usa la richiesta?

`POST /v1/images/generations` · `recraft/recraft-v4-pro`: `model`, `prompt`, `n`, `aspect_ratio`, `input_references`

Quali limiti si applicano?

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

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](https://ailoot.ai/docs/it/billing/subscriptions/) · [Consulta prezzi dei modelli](https://ailoot.ai/models/it/)

## 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](mailto:support@ailoot.ai) · [Offerta e accordo di licenza](https://ailoot.ai/legal/offer?lang=it)

## Ailoot · L’azienda e il suo portafoglio di progetti





Ailoot si basa su un’esperienza operativa consolidata, un’ampia base di clienti, un servizio stabile e un controllo costante dei KPI.





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





Ailoot mette questa esperienza operativa al servizio dell’accesso API alle funzioni AI nei prodotti dei clienti, negli agenti, nelle applicazioni e nelle automazioni.
