Recraft: Recraft V4 Styles
Recraft V4 Styles генерирует растровые изображения 1K в визуальном стиле референсов. Предназначена для повседневной брендовой работы и кампаний, где каждый новый объект сохраняет те же отображение, текстуру и общий вид.
О модели
Описание раскрывает возможности модели. Доступные в Ailoot входные данные, результаты и параметры выбранного метода перечислены ниже.
Recraft V4 Styles — стандартная растровая версия отдельного семейства Recraft для генерации с постоянным стилем. Она создаёт новое изображение по тексту, следуя стилю референсных материалов. Полезна для серий иллюстраций, баннеров или товарных сцен с узнаваемой общей обработкой. Референс несёт отображение, текстуру и цветовую логику, а промпт вводит объект и сцену каждого нового материала.
Разработчик указывает растровый результат 1K в WebP без потерь или PNG. Квадрат — 1024 × 1024 пикселя, документированный 16:9 — 1344 × 768; вертикальные и другие пропорции имеют свои размеры. Версия отличается от растрового 2K Styles Pro и моделей Vector с SVG. Выбирайте пропорции под конечный макет, не предполагая, что 1K означает одинаковые ширину и высоту всех изображений.
Стиль обязателен. Используйте от одного до десяти PNG, JPG или WebP либо совместимый стиль, сохранённый ранее. Документированный процесс не принимает сохранённый идентификатор и новые референсы вместе. Источниками могут быть существующие брендовые или рекламные материалы, а не только изображения Recraft. Каждый файл — меньше 20 МБ, суммарно не более 64 МБ. Отдельная задача обучения пользователем перед применением стиля не нужна. Короткая сторона каждого референса — не менее 256 пикселей, длинная — не более 4 096, общая площадь — не более 16 мегапикселей.
Начните с одного сильного референса или нескольких с уже общим визуальным языком. Согласованные источники помогают применять стиль шире одного предмета или позы; несвязанный мудборд вводит конкурирующие мотивы. Гибкое соответствие по умолчанию оставляет больше интерпретации, точное ближе следует отображению, палитре, композиции и свету. Точная передача цвета всё равно не гарантирована.
Для серии баннеров опишите курьера, ставящего посылку у порога, спокойную горизонтальную композицию и свободное место сбоку для будущего текста. Следующие задания меняют событие или ракурс при сохранении стиля. Разработчик допускает промпты до 10 000 символов, предпочтительные цвета, желаемый цвет фона, случайный seed и от одного до шести изображений. negative_prompt, готовые названия стилей и text_layout не поддерживаются, поэтому прямо описывайте объект и макет в задании.
Линейка Styles не предлагает image-to-image или перерисовку области. Стилевой референс направляет новое изображение, не гарантируя сохранение предметов или пикселей источника. Если набор повторяется, меняйте позу, действие, кадрирование или детали сцены, не добавляя противоречащий референс. Оценивайте каждый результат в макете на ясность объекта, полезное пространство и согласованное отображение, затем сохраняйте совместимый стиль для следующего материала. Так модель поддерживает повторяемый визуальный язык со сменой содержания.
Ailoot Ultra · Картинки POST /v1/images/generations recraft/recraft-v4-styles
recraft/recraft-v4-stylesНачало
Recraft V4 Styles генерирует растровые изображения 1K в визуальном стиле референсов. Предназначена для повседневной брендовой работы и кампаний, где каждый новый объект сохраняет те же отображение, текстуру и общий вид.
- Допустимые входные данные
- Текст · Картинки
- Результаты
- Картинки
Доступно в Ailoot · входные данные и методы
Ailoot Ultra · Картинки POST /v1/images/generations
- Входные данные
text,image- Результат
image
| Поле | Тип | Требование | Значения и ограничения | По умолчанию |
|---|---|---|---|---|
Полеmodel | Типstring | ТребованиеОбязательно | Значения и ограничения recraft/recraft-v4-styles | По умолчанию— |
Полеprompt | Типstring | ТребованиеОбязательно | Значения и ограничения Минимальная длина: 1 | По умолчанию— |
Полеaspect_ratio | Типstring | ТребованиеНеобязательно | Значения и ограничения 1:1, 2:1, 1:2, 3:2, 2:3, 4:3, 3:4, 5:4, 4:5, 16:9, 9:16, auto | По умолчанию— |
Полеn | Типinteger | ТребованиеНеобязательно | Значения и ограничения Минимум: 1 Максимум: 6 | По умолчанию— |
Полеinput_references | Типarray | ТребованиеНеобязательно | Значения и ограничения Минимум элементов: 1 Максимум элементов: 10 | По умолчанию— |
Полеprovider | Типobject | ТребованиеНеобязательно | Значения и ограничения | По умолчанию— |
Параметры и жизненный цикл метода
| Параметр | Контракт |
|---|---|
Параметрcontent_type | Контрактapplication/json |
Параметрrequired | Контрактmodel, prompt |
Параметрmaterial_types | Контрактtext, image |
Жизненный цикл: 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}
Тарифы
Как рассчитывается итоговая плата
Отображаемые тарифы позволяют оценить стоимость до генерации. Итоговое списание рассчитывается по стоимости, записанной для исходной генерации. Измеренная длительность результата и прогнозные объёмы не являются итоговым оплачиваемым объёмом.
Тарифная справка не добавляет режимы запроса. Поддерживаемые параметры указаны для выбранного метода.
- Быстрый режим
- Не указано При выборе быстрого режима
- Режим flex
- Не указано При выборе режима flex
- Максимальная интенсивность рассуждений
- Не указано При максимальной интенсивности рассуждений с корректировкой по умолчанию (default)
Оценочные ставки для сравнения
Цены по конфигурациям
Сопоставьте каждую плату с указанными условиями. Для каждого набора альтернативных конфигураций используйте одну ставку.
| Конфигурация | Шкала ставок | Прогноз количества | Расчётная единица | Условия расчёта | Плата |
|---|---|---|---|---|---|
| КонфигурацияБазовые тарифы на токены | Шкала ставокБазовая ставка | Прогноз количества— | Расчётная единица— | Условия расчёта— | Плата Вход · Входные токены · Оценка только для сравнения — / 1K токенов Выход · Выходные токены · Оценка только для сравнения — / 1K токенов Вход · Чтение кэша · Оценка только для сравнения — / 1K токенов Вход · Запись в кэш · Оценка только для сравнения — / 1K токенов Вход · Запись в кэш, 1 час · Оценка только для сравнения — / 1K токенов |
| КонфигурацияВходной референс | Шкала ставок— | Прогноз количества— | Расчётная единицаза запрос | Условия расчётаСоздание стиля при генерации с референсами стиля; один раз за запрос, дополнительно к цене выходного изображения. | Плата Вход · Входной референс · Оценка только для сравнения $0.01 за запрос |
| Конфигурациявыходное изображение | Шкала ставок— | Прогноз количества— | Расчётная единицаза выходное изображение | Условия расчёта— | Плата Выход · выходное изображение · Оценка только для сравнения $0.07 за выходное изображение |
| КонфигурацияОриентировочная стоимость генерации | Шкала ставок— | Прогноз количестваОценка для одной генерации | Расчётная единица— | Условия расчёта— | Плата Выход · Оценочная стоимость генерации · Оценка только для сравнения $0.07 оценка до генерации Эта оценка не является дополнительным списанием или фиксированным тарифом для завершённой генерации. |
Ailoot резервирует расчётную сумму перед запросом. После получения результата списывает итоговую плату по измеренному расходу. Для окончательного списания за потоковый ответ используется итоговая запись расхода. Как работают резервирование и расчёт →
Примеры запросов
Ailoot Ultra · Картинки
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-styles', '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
Получить и сохранить результаты
Ailoot Ultra · Картинки
Загрузите каждое полученное изображение или сохраните его содержимое Base64
GET /v1/media/tasks/{task_id}GET /v1/media/assets/{asset_id}/contentGET /v1/media/assetsGET /v1/media/assets/{asset_id}
Чтение другого содержимого
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
curl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/media/assets \
-H "Authorization: Bearer $AILOOT_API_KEY" -o owned-assets.json
# Preserve every returned asset and follow its exact signed content URL. Do not construct a signed token.
Сохраняйте все готовые результаты
Сохраните каждое готовое изображение; загрузите содержимое по каждому полученному URL или декодируйте его содержимое Base64.
Сохраняйте полный ответ и заголовки, все фактические результаты, исходные возвращённые идентификаторы и все поля использования. Восстанавливайте исходную операцию без повторной отправки запроса создания.
Если нужно проверить исходный ответ
Сохраните возвращённый X-Client-Request-ID для сверки. Читайте только фактически возвращённые значения task_id/asset_id или собственную медиатеку; никогда не составляйте URL задачи из ID операции и никогда не отправляйте запрос создания повторно.
Поля ответа
| Поле | Тип |
|---|---|
Полеcreated | Тип |
Полеdata[].url | Тип |
Полеdata[].b64_json | Тип |
Полеusage | Тип |
Псевдонимы
Псевдонимы моделей
Ailoot Ultra recraft/recraft-v4-styles
Псевдонимы путей метода
/v1/images
Связанные ID для вызова
FAQ · Recraft: Recraft V4 Styles
- Какие входные данные и результаты доступны?
POST /v1/images/generations·recraft/recraft-v4-styles:text,image→image- Какие поля использует запрос?
POST /v1/images/generations·recraft/recraft-v4-styles:model,prompt,aspect_ratio,n,input_references,provider- Какие ограничения действуют?
POST /v1/images/generations·recraft/recraft-v4-styles:n.minimum:1;n.maximum:6