Source: https://ailoot.ai/models/pl/recraft-recraft-v4-1-flash/
Canonical: https://ailoot.ai/models/pl/recraft-recraft-v4-1-flash/
Language: pl

# Recraft: Recraft V4.1 Flash

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

## [Recraft: Recraft V4.1 Flash](https://ailoot.ai/models/pl/recraft-recraft-v4-1-flash/)

Recraft V4.1 Flash generuje rastrowe obrazy 1K z tekstu do szybkich iteracji wizualnych. Obsługuje fotografię, portrety, złożone sceny i koncepcje logo, z wynikiem PNG lub bezstratnym WebP oraz wyraźnymi preferencjami kolorów.

- [**Ailoot Ultra · Obrazy** `POST /v1/images/generations` `recraft/recraft-v4.1-flash`](https://ailoot.ai/models/pl/recraft-recraft-v4-1-flash/#method-0)

O modelu

Ten opis przedstawia możliwości modelu. Dane wejściowe, wyniki i opcje dostępne w Ailoot podano poniżej dla wybranej metody.

Recraft V4.1 Flash to model Recraft do generowania obrazów z tekstu, przeznaczony do szybkich iteracji i dużej skali prac wizualnych. Producent wskazuje fotografię, portrety, atmosferę, złożone sceny, techniki mieszane i koncepcje logo jako mocne zastosowania. Opis tekstowy staje się obrazem rastrowym, który można porównać z innymi kierunkami twórczymi przed rozwinięciem materiału docelowego. Flash jest konkretnym modelem rodziny V4.1, z własnym rozmiarem wyniku i obsługiwanymi ustawieniami.

Natywny wynik należy do klasy rastrowych obrazów 1K Recraft. Wybierz płótno według zamierzonego miejsca użycia: poziomą ilustrację do nagłówka strony, pionowy portret lub kwadratową grafikę do małej karty. Formaty wyjściowe to bezstratny WebP i PNG.

Zacznij opis od głównego tematu i celu wizualnego, a następnie opisz kadr, otoczenie, oświetlenie i technikę. W koncepcji produktu przydatna instrukcja to: „Kompaktowe kremowe radio na orzechowym biurku, widok trzy czwarte od przodu, miękkie światło z okna, spokojna fotografia redakcyjna, dużo pustej przestrzeni po lewej”. W ilustracji określ język kształtów, paletę i relacje między elementami. Jasno zachowaj szczegóły definiujące pomysł, zamiast dodawać niepowiązane przymiotniki. Udokumentowany limit promptu Flash wynosi do 10 000 znaków, dlatego można opisać szczegółową scenę, gdy zadanie tego wymaga.

Ustawienia producenta obejmują preferowane kolory i pożądany kolor tła. Można dostarczyć ziarno losowości dla powtarzalnych wyników, a interfejs generowania dokumentuje od jednego do sześciu obrazów w żądaniu. Te ustawienia wspierają przydatne zadanie porównawcze: utrzymuj stały temat i kompozycję, zmieniaj jeden kierunek wizualny i oceniaj wynikowe obrazy pod kątem zamierzonego układu. Preferencje kolorów opisują żądany wynik; porównaj ważne kolory marki z gotowym materiałem przed połączeniem go z istniejącym systemem projektowym.

Flash tworzy grafiki rastrowe. Koncepcja logo może pomóc wybrać sylwetkę, nastrój lub układ, a edytowalne ścieżki należą do osobno nazwanych modeli Vector. Flash nie ma również wariantu Pro. Pełna linia V4.1 zapewnia te odrębne wybory, gdy edycja wektorowa lub szczegóły wyższej rozdzielczości stanowią sedno rezultatu. Producent opisuje późniejszy etap dopracowania wybranego szkicu w kierunku bardziej szczegółowego obrazu; jest to odrębna operacja, a nie inny natywny rozmiar wyniku Flash.

Ta wersja nie obsługuje wejścia obraz–obraz, niestandardowych stylów, identyfikatorów stylów, dopasowania stylu ani obrazów referencyjnych stylu. Jej udokumentowany interfejs wyklucza także prompty negatywne i jawne ustawienia układu tekstu. Umieść żądany wygląd i kompozycję w opisie pozytywnym. Gdy napisy są częścią koncepcji, zacytuj zamierzone słowa i sprawdź wyrenderowane litery; użyj osobnego etapu układu, gdy dokładna typografia i położenie są niezbędne.

Praktycznym wynikiem Flash jest wybrany kierunek wizualny z jasnym opisem, odpowiednimi proporcjami i użytecznym plikiem rastrowym. Porównaj temat, kadr, tło i ważne szczegóły w rozmiarze, w którym obraz się pojawi. Zachowaj udany prompt z wybranym plikiem, aby następny krok twórczy podążał za wybranym kierunkiem. Szybkie iteracje pomagają eksplorować projekt; natywny wynik wektorowy, dopasowanie do referencji stylu i rozdzielczość innej wersji V4.1 pozostają odrębnymi wyborami modelu.

**Ailoot Ultra · Obrazy** `POST /v1/images/generations` `recraft/recraft-v4.1-flash`

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

Recraft /`recraft/recraft-v4.1-flash`

### Start

Recraft V4.1 Flash generuje rastrowe obrazy 1K z tekstu do szybkich iteracji wizualnych. Obsługuje fotografię, portrety, złożone sceny i koncepcje logo, z wynikiem PNG lub bezstratnym WebP oraz wyraźnymi preferencjami kolorów.

Akceptowane dane wejściowe

Tekst

Wyniki

Obrazy

### Dostępne w Ailoot · dane wejściowe i metody

**Ailoot Ultra · Obrazy** `POST /v1/images/generations`

Wejście

`text`

Wyjście

`image`

Format wyjściowy

Plik obrazu

Liczba wyników

1 wynik

| Pole | Typ | Wymaganie | Wartości i limity | Domyślnie |
| --- | --- | --- | --- | --- |
| Pole`model` | Typ`string` | WymaganieWymagane | Wartości i limity recraft/recraft-v4.1-flash | Domyślnie— |
| Pole`prompt` | Typ`string` | WymaganieWymagane | Wartości i limity Minimalna długość: 1 Warunki: Niepusty prompt UTF8. Nie wprowadza się nieudokumentowanego, ogólnego dla producenta limitu znaków. | Domyślnie— |
| Pole`n` | Typ`integer` | WymaganieOpcjonalne | Wartości i limity 1 | Domyślnie1 |
| Pole`response_format` | Typ`string` | WymaganieOpcjonalne | Wartości i limity url, b64\_json | Domyślnie— |
| Pole`stream` | Typ`boolean` | WymaganieOpcjonalne | Wartości i limity false | Domyślniefalse |

Kombinacje materiałów wejściowych

**Tekst na obraz** · Wymagane: prompt

Parametry i cykl życia metody

| Parametr | Kontrakt |
| --- | --- |
| Parametr`content_type` | Kontraktapplication/json |
| Parametr`required` | Kontraktmodel, prompt |
| Parametr`material_types` | Kontrakttext |
| Parametr`optional` | Kontraktn, response\_format, stream |
| Parametr`n` | Kontrakt1 |
| Parametr`stream` | Kontraktfalse |
| Parametr`response_format` | Kontrakturl, b64\_json |
| Parametr`reference_images` | Kontraktfalse |
| Parametr`edit` | Kontraktfalse |
| Parametr`output_format_optional` | Kontrakt |
| Parametr`resolution_control` | Kontraktnull |
| Parametr`aspect_ratio_control` | Kontraktnull |
| Parametr`other_fields` | Kontraktodrzucane poza dokładnie przypiętym wewnętrznym routingiem dostawcy |

Cykl życia: `synchronous_result_then_owned_library`

`GET /v1/media/tasks/{task_id}` · Rzeczywiście zwrócony task\_id lub wpis w bibliotece multimediów

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

`GET /v1/media/assets`

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

Wygeneruj jeden obraz na podstawie promptu.

Zapisz każdy element data; url/b64\_json to sposoby kodowania wyniku.

### Cennik

##### Jak obliczana jest ostateczna opłata

Wyświetlane stawki służą do oszacowania kosztu przed generowaniem. Ostateczna opłata jest obliczana na podstawie kosztu zarejestrowanego dla pierwotnego generowania. Zmierzony czas trwania wyniku i prognozowane ilości nie stanowią ostatecznej ilości podlegającej rozliczeniu.

Informacje taryfowe nie dodają opcji żądania. Obsługiwane parametry podano przy wybranej metodzie.

Tryb szybki

Nie określono Gdy wybrany jest tryb szybki

Tryb flex

Nie określono Gdy wybrany jest tryb flex

Maksymalna intensywność rozumowania

Nie określono Gdy dla maksymalnej intensywności rozumowania stosowana jest domyślna korekta (default)

#### Szacunkowe stawki do porównania

#### Ceny według konfiguracji

Dopasuj każdą opłatę do pokazanych warunków. Użyj jednej stawki dla każdego zestawu alternatywnych konfiguracji.

| Konfiguracja | Tabela stawek | Przewidywana ilość | Jednostka rozliczeniowa | Opłata |
| --- | --- | --- | --- | --- |
| KonfiguracjaBazowe stawki za tokeny | Tabela stawekStawka podstawowa | Przewidywana ilość— | Jednostka rozliczeniowa— | Opłata Wejście · Tokeny wejściowe · Szacunek tylko do porównania **—** / 1K tokenów Wyjście · Tokeny wyjściowe · Szacunek tylko do porównania **—** / 1K tokenów Wejście · Odczyt cache · Szacunek tylko do porównania **—** / 1K tokenów Wejście · Zapis do cache · Szacunek tylko do porównania **—** / 1K tokenów Wejście · Zapis do cache, 1 godz. · Szacunek tylko do porównania **—** / 1K tokenów |
| KonfiguracjaUltra | Tabela stawek— | Przewidywana ilość— | Jednostka rozliczeniowaza obraz wyjściowy | Opłata Wyjście · obraz na wyjściu · Szacunek tylko do porównania **$0.014** za obraz wyjściowy |
| KonfiguracjaSzacowany koszt generowania | Tabela stawek— | Przewidywana ilośćszacunek dla jednego generowania | Jednostka rozliczeniowa— | Opłata Wyjście · Szacowany koszt generowania · Szacunek tylko do porównania **$0.014** szacunek przed generowaniem Ten szacunek nie jest dodatkową opłatą ani stałą stawką za ukończone generowanie. |

Ailoot rezerwuje szacowaną kwotę przed żądaniem. Po otrzymaniu wyniku rozlicza ostateczną opłatę według zmierzonego użycia. Rozliczenie strumieniowania korzysta z końcowego rekordu użycia. [Jak działają rezerwacja i rozliczenie →](https://ailoot.ai/docs/pl/billing/reserve/)

#### Szczegóły taryfy referencyjnej

Referencyjne tabele modelu nie zmieniają wyboru metody, wyceny ani opłat. Naliczane opłaty korzystają ze stawek wybranej metody Ailoot.

Konfiguracje cen obrazów

#### Ceny według konfiguracji

| Konfiguracja | Warunki rozliczania | Opłata |
| --- | --- | --- |
| KonfiguracjaObraz wyjściowy | Warunki rozliczaniaNie zadeklarowano wariantu cenowego. | Opłata Wyjście · Obraz wyjściowy **$0.014** za obraz Równoważne pozycje opisują tę samą opłatę; nie doliczają drugiej opłaty. |

### Przykładowe żądania

#### Ailoot Ultra · Obrazy

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=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
```

```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.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])
```

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

### Odbieranie i zapisywanie wyników

#### Ailoot Ultra · Obrazy

Pobierz każdy zwrócony obraz lub zapisz jego zawartość Base64

- `GET /v1/media/tasks/{task_id}`
- `GET /v1/media/assets/{asset_id}/content`
- `GET /v1/media/assets`
- `GET /v1/media/assets/{asset_id}`

##### Zachowaj wszystkie ukończone wyniki

Zapisz każdy ukończony obraz; pobierz każdy zwrócony URL lub zdekoduj zawartość Base64.

Zachowaj każdy element danych. Zdekoduj każdą wartość b64\_json lub pobierz dane z każdego zwróconego podpisanego adresu URL. Dobierz rozszerzenie nazwy pliku na podstawie rzeczywistego typu MIME lub bajtów.

##### Jeśli trzeba sprawdzić pierwotną odpowiedź

Jeśli wynik generowania lub edycji obrazu wymaga sprawdzenia, zachowaj pierwotny operation\_id/X-Client-Request-ID oraz zwrócone informacje o wyniku. Odzyskaj istniejące własne wyniki z biblioteki multimediów, używając rzeczywistych wartości task\_id lub asset\_id. Nie wysyłaj ponownie żądania generowania lub edycji ani nie twórz adresu URL do sprawdzania stanu na podstawie operation\_id.

Pola odpowiedzi

| Pole | Typ |
| --- | --- |
| Pole`created` | Typinteger |
| Pole`data[].url` | Typstring |
| Pole`data[].b64_json` | Typbase64 string |
| Pole`usage` | Typobject |

Błędy i dalsze kroki

| Odpowiedź | Warunek | Następny krok |
| --- | --- | --- |
| Odpowiedź400 · `invalid_request_error` | WarunekNieprawidłowe wymagane pola, sposób reprezentacji materiału lub wartość parametru | Następny krokPopraw wskazane pola przed nowym żądaniem utworzenia. |
| Odpowiedź`server_error` | WarunekZwrócona odpowiedź wskazuje, że operacja lub wynik wymaga sprawdzenia | Następny krokZachowaj pierwotnie zwrócony identyfikator operacji lub zadania, nagłówki żądania i odpowiedź; kontynuuj obsługiwane odczyty tej pierwotnej operacji. Nie wysyłaj ponownie żądania utworzenia. |

### Aliasy

#### Aliasy modelu

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

#### Aliasy ścieżek metod

Użyj ścieżek metod podanych powyżej.

#### Powiązane ID modeli

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

FAQ · Recraft: Recraft V4.1 Flash

Jakie dane wejściowe i wyniki są dostępne?

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

Jakich pól używa żądanie?

`POST /v1/images/generations` · `recraft/recraft-v4.1-flash`: `model`, `prompt`, `n`, `response_format`, `stream`

Połącz Ailoot z Claude Code, OpenCode, Hermes albo własną aplikacją.

## Firma i jej portfel projektów

Firma i jej portfel projektów: miliony klientów; miesięczna sprzedaż liczona w miliardach.

## Kupuj tokeny z rabatem.

Rabat subskrypcji do regularnej pracy. Kody promocyjne — do 50% na tokeny.

Subskrypcja

Wybierz plan z rabatem do regularnych żądań.

Kod promocyjny do 50%

Wpisz kod przy zakupie. Cena zostanie przeliczona według aktualnej promocji.

Koszty w historii

Model, tokeny i kwota są zapisywane dla każdego żądania.

[Wybierz subskrypcję](https://ailoot.ai/docs/pl/billing/subscriptions/) · [Sprawdź ceny modeli](https://ailoot.ai/models/pl/)

## Połącz API z produktem, który sprzedajesz.

SaaS, aplikacje i boty na warunkach oferty i umowy licencyjnej Ailoot. Do odsprzedaży poproś o licencję resellerską.

Aplikacja komercyjna

Wbuduj generowanie tekstu, obrazów, wideo i dźwięku w płatne funkcje usługi.

Licencja resellerska

Prześlij opis projektu i schemat dostępu. Poproś o pisemne warunki używania i odsprzedaży.

Dokumenty na stronie

Oferta, umowa licencyjna i polityka przetwarzania danych są dostępne przed połączeniem.

[Poproś o licencję resellerską](mailto:support@ailoot.ai) · [Oferta i umowa licencyjna](https://ailoot.ai/legal/offer?lang=pl)

## Ailoot · Firma i jej portfel projektów





Ailoot opiera się na zgromadzonym doświadczeniu operacyjnym, szerokiej bazie klientów, stabilnej usłudze i stałej kontroli KPI.





Firma i jej portfel projektów: miliony klientów; miesięczna sprzedaż liczona w miliardach.





Ailoot wykorzystuje to doświadczenie operacyjne, zapewniając dostęp przez API do funkcji AI w produktach klientów, agentach, aplikacjach i automatyzacjach.
