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

# Recraft: Recraft V4 Pro

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

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

Recraft V4 Pro генерирует растровые изображения 2K для детальных композиций, фотореализма, иллюстрации и творческих работ для печати. Это версия V4 повышенного разрешения с текстовыми заданиями, необязательными стилевыми входами и отдельным процессом image-to-image.

- [**Ailoot Ultra · Картинки** `POST /v1/images/generations` `recraft/recraft-v4-pro`](https://ailoot.ai/models/ru/recraft-recraft-v4-pro/#method-0)

О модели

Описание раскрывает возможности модели. Доступные в Ailoot входные данные, результаты и параметры выбранного метода перечислены ниже.

Recraft V4 Pro — растровая модель повышенного разрешения семейства Recraft V4. V4 уделяет внимание визуальным решениям, сбалансированной композиции, согласованному цвету и тщательной интерпретации творческого направления. Разработчик позиционирует Pro для более тонких деталей, реалистичных сложных сцен и крупных визуальных материалов для готовых проектов. Используйте её для подробной иллюстрации, редакционного изображения, концепции постера или материала, которому полезен крупный растр. Она отделена от более поздней V4.1 и SVG-результата V4 Pro Vector.

Точный код разработчика — recraftv4\_pro. Документированный результат — растр 2K в WebP без потерь или PNG: 2048 × 2048 пикселей для квадрата, 2688 × 1536 для 16:9 и 1664 × 2560 для 2:3. Другие поддерживаемые пропорции имеют свои размеры. Выберите соотношение под макет или точный допустимый размер; произвольный пиксельный размер не входит в документированные условия генерации. Стандартная V4 имеет меньший результат 1K, векторные модели — без фиксированного разрешения в пикселях.

V4 интерпретирует короткий исследовательский промпт или структурированный для контролируемого результата. Для конкретного художественного направления руководство идёт от объекта и окружения к кадрированию, атрибутам, пространственным отношениям, свету, глубине и настроению. Для редакционного товарного изображения запросите драматическую вертикальную фотографию скульптурного кресла, шлифованные металлические поверхности, боковой свет, спокойный тёмный фон и место над объектом под заголовок. Названные связи делают композицию яснее, чем общая просьба о премиальной картинке.

Творческий диапазон семейства включает сюжетную иллюстрацию, фотореалистичные сцены и объёмные визуалы с указаниями материалов и света. 3D-вид остаётся изображением, а не редактируемой трёхмерной сценой. Для графического постера задайте визуальные слои и взаимодействие: фон, иллюстрацию или фото, иерархию заголовков и вспомогательный текст. V4 позиционируется для читаемых коротких и средних фраз, но написание текста и его иерархию в готовом изображении нужно проверять, а не выводить из имени модели.

Текущий справочник генерации допускает промпты до 10 000 символов, от одного до шести результатов, случайный seed, настройки предпочтительных цветов и цвета фона. Необязательные пользовательские стили или совместимые референсы направляют вид с гибким либо точным соответствием. Модель не принимает старые настройки V3 negative\_prompt, готовые стили, text\_layout, artistic\_level и no\_text. Опишите итоговое изображение позитивным промптом, явно сохраняя требования к объекту, макету и цвету. Для генерации по стилевым референсам используйте от одного до десяти PNG, JPG или WebP, суммарно не более 64 МБ и меньше 20 МБ каждый. Короткая сторона каждого — не менее 256 пикселей, длинная — не более 4 096, разрешение — не более 16 мегапикселей. Используйте либо эти референсы, либо совместимый сохранённый стиль, а не вместе.

Recraft документирует отдельную операцию image-to-image для V4. Она объединяет существующее изображение и промпт с силой от 0 до 1, определяющей степень изменения, и не принимает пользовательские стили V4 в этой операции. Подготовьте источник в пределах разработчика и укажите атрибуты для переноса в результат. Для крупного итогового материала проверяйте мелкие детали, кадрирование и надписи в целевом размере. Дополнительная растровая детализация Pro помогает проверке, но картинка остаётся сгенерированной интерпретацией задания. Для image-to-image предоставьте PNG, JPG, WebP или SVG меньше 20 МБ, не более 16 мегапикселей, с обеими сторонами от 256 до 4 096 пикселей.

**Ailoot Ultra · Картинки** `POST /v1/images/generations` `recraft/recraft-v4-pro`

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

Recraft /`recraft/recraft-v4-pro`

### Начало

Recraft V4 Pro генерирует растровые изображения 2K для детальных композиций, фотореализма, иллюстрации и творческих работ для печати. Это версия V4 повышенного разрешения с текстовыми заданиями, необязательными стилевыми входами и отдельным процессом image-to-image.

Допустимые входные данные

Текст · Картинки

Результаты

Картинки

### Доступно в Ailoot · входные данные и методы

**Ailoot Ultra · Картинки** `POST /v1/images/generations`

Входные данные

`text`, `image`

Результат

`image`

Выходной формат

Файл изображения

| Поле | Тип | Требование | Значения и ограничения | По умолчанию |
| --- | --- | --- | --- | --- |
| Поле`model` | Тип`string` | ТребованиеОбязательно | Значения и ограничения recraft/recraft-v4-pro | По умолчанию— |
| Поле`prompt` | Тип`string` | ТребованиеОбязательно | Значения и ограничения Минимальная длина: 1 | По умолчанию— |
| Поле`n` | Тип`integer` | ТребованиеНеобязательно | Значения и ограничения Минимум: 1 Максимум: 6 | По умолчанию— |
| Поле`aspect_ratio` | Тип`string` | ТребованиеНеобязательно | Значения и ограничения 1:1, 4:3, 3:4, 16:9, 9:16, auto | По умолчанию— |
| Поле`input_references` | Тип`array` | ТребованиеНеобязательно | Значения и ограничения Минимум элементов: 0 Максимум элементов: 1 | По умолчанию— |

Сочетания входных материалов

**Из текста в изображение** · Обязательно: prompt

Параметры и жизненный цикл метода

| Параметр | Контракт |
| --- | --- |
| Параметр`content_type` | Контрактapplication/json |
| Параметр`required` | Контрактmodel, prompt |
| Параметр`material_types` | Контрактtext, image |
| Параметр`optional_controls` | Контрактaspect\_ratio, n, input\_references |
| Параметр`exact_supported_parameters` | Контракт{"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}} |
| Параметр`reference_material_rule` | КонтрактТолько фактические референсные изображения клиента; к ним применяются условия конечной точки поставщика. |

Псевдонимы метода: `/v1/images`

Жизненный цикл: `synchronous_result_then_owned_library`

`GET /v1/media/tasks/{task_id}` · Фактически возвращённый task\_id или запись в медиатеке

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

`GET /v1/media/assets`

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

Используйте точную модель и документированные поля ввода.

Сохраните полный ответ, каждый фактический результат и исходные возвращённые ID.

### Тарифы

##### Как рассчитывается итоговая плата

Отображаемые тарифы позволяют оценить стоимость до генерации. Итоговое списание рассчитывается по стоимости, записанной для исходной генерации. Измеренная длительность результата и прогнозные объёмы не являются итоговым оплачиваемым объёмом.

Тарифная справка не добавляет режимы запроса. Поддерживаемые параметры указаны для выбранного метода.

Быстрый режим

Не указано При выборе быстрого режима

Режим flex

Не указано При выборе режима flex

Максимальная интенсивность рассуждений

Не указано При максимальной интенсивности рассуждений с корректировкой по умолчанию (default)

#### Оценочные ставки для сравнения

#### Цены по конфигурациям

Сопоставьте каждую плату с указанными условиями. Для каждого набора альтернативных конфигураций используйте одну ставку.

| Конфигурация | Шкала ставок | Прогноз количества | Расчётная единица | Плата |
| --- | --- | --- | --- | --- |
| КонфигурацияБазовые тарифы на токены | Шкала ставокБазовая ставка | Прогноз количества— | Расчётная единица— | Плата Вход · Входные токены · Оценка только для сравнения **—** / 1K токенов Выход · Выходные токены · Оценка только для сравнения **—** / 1K токенов Вход · Чтение кэша · Оценка только для сравнения **—** / 1K токенов Вход · Запись в кэш · Оценка только для сравнения **—** / 1K токенов Вход · Запись в кэш, 1 час · Оценка только для сравнения **—** / 1K токенов |
| КонфигурацияUltra | Шкала ставок— | Прогноз количества— | Расчётная единицаза выходное изображение | Плата Выход · вывод изображения · Оценка только для сравнения **$0.5** за выходное изображение |
| КонфигурацияОриентировочная стоимость генерации | Шкала ставок— | Прогноз количестваОценка для одной генерации | Расчётная единица— | Плата Выход · Оценочная стоимость генерации · Оценка только для сравнения **$0.5** оценка до генерации Эта оценка не является дополнительным списанием или фиксированным тарифом для завершённой генерации. |

Ailoot резервирует расчётную сумму перед запросом. После получения результата списывает итоговую плату по измеренному расходу. Для окончательного списания за потоковый ответ используется итоговая запись расхода. [Как работают резервирование и расчёт →](https://ailoot.ai/docs/ru/billing/reserve/)

#### Сведения о справочном тарифе

Справочные шкалы модели не меняют выбор метода, расчёт стоимости или списания. Действующая плата определяется ставками выбранного метода Ailoot.

Тарифные конфигурации изображений

#### Цены по конфигурациям

| Конфигурация | Условия расчёта | Плата |
| --- | --- | --- |
| КонфигурацияВыходное изображение | Условия расчётаВариант тарификации не заявлен. | Плата Выход · Выходное изображение **$0.5** за изображение Эквивалентные записи описывают одно начисление; они не добавляют вторую плату. |

### Примеры запросов

#### Ailoot Ultra · Картинки

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

### Получить и сохранить результаты

#### Ailoot Ultra · Картинки

Загрузите каждое полученное изображение или сохраните его содержимое Base64

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

##### Сохраняйте все готовые результаты

Сохраните каждое готовое изображение; загрузите содержимое по каждому полученному URL или декодируйте его содержимое Base64.

Сохраните каждый элемент data и полные данные об использовании; обеспечьте принадлежность Ailoot и сохранение всех фактически возвращённых изображений. Не выдумывайте URL или ID.

##### Если нужно проверить исходный ответ

Если результат генерации или редактирования изображения требует проверки, сохраните исходный operation\_id/X-Client-Request-ID и возвращённые сведения о результате. Восстановите существующие собственные результаты через медиатеку, используя фактические значения task\_id или asset\_id. Не отправляйте запрос генерации или редактирования повторно и не составляйте URL опроса из operation\_id.

Поля ответа

| Поле | Тип |
| --- | --- |
| Поле`created` | Типinteger |
| Поле`data[].url` | Типstring |
| Поле`data[].b64_json` | Типbase64 string |
| Поле`usage` | Типobject |

### Псевдонимы

#### Псевдонимы моделей

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

#### Псевдонимы путей метода

`/v1/images`

#### Связанные ID для вызова

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

FAQ · Recraft: Recraft V4 Pro

Какие входные данные и результаты доступны?

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

Какие поля использует запрос?

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

Какие ограничения действуют?

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

Подключите Ailoot к Claude Code, OpenCode, Hermes или своему приложению.

## Компания и портфель её проектов

Компания и портфель её проектов: миллионы клиентов; продажи на миллиарды ежемесячно.

## Покупайте токены со скидкой.

Скидка по подписке для регулярной работы. Промокоды — до 50% на покупку токенов.

Подписка

Выберите тариф со скидкой для своих регулярных запросов.

Промокод до 50%

Введите код при покупке. Цена пересчитается с учётом действующей акции.

Расходы в истории

Модель, токены и сумма сохраняются для каждого запроса.

[Выбрать подписку](https://ailoot.ai/docs/ru/billing/subscriptions/) · [Посмотреть цены моделей](https://ailoot.ai/models/ru/)

## Подключайте API к продукту, который вы продаёте.

SaaS, приложения и боты — по оферте и лицензионному договору Ailoot. Для перепродажи запросите реселлерскую лицензию.

Коммерческое приложение

Встраивайте генерацию текста, картинок, видео и звука в платные функции своего сервиса.

Лицензия для реселлера

Пришлите описание проекта и схему доступа. Запросите письменные условия использования и перепродажи.

Документы на сайте

Оферта, лицензионный договор и политика обработки данных доступны до подключения.

[Запросить реселлерскую лицензию](mailto:support@ailoot.ai) · [Оферта и лицензионный договор](https://ailoot.ai/legal/offer?lang=ru)

## Ailoot · Компания и портфель её проектов





Ailoot опирается на накопленный опыт работы, большую клиентскую базу, стабильный сервис и постоянный контроль KPI.





Компания и портфель её проектов: миллионы клиентов; продажи на миллиарды ежемесячно.





Этот опыт Ailoot использует для API-доступа к нейросетям в продуктах клиентов, агентах, приложениях и автоматизациях.
