curl --request POST \
--url https://api.apimart.ai/v1/images/generations \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '{
"model": "hy-image-v3.5-preview",
"prompt": "A golden retriever running on a beach in warm evening light",
"size": "16:9",
"resolution": "2K"
}'
import requests
response = requests.post(
"https://api.apimart.ai/v1/images/generations",
headers={"Authorization": "Bearer <token>"},
json={
"model": "hy-image-v3.5-preview",
"prompt": "A golden retriever running on a beach in warm evening light",
"size": "16:9",
"resolution": "2K"
}
)
response.raise_for_status()
print(response.json())
const response = await fetch("https://api.apimart.ai/v1/images/generations", {
method: "POST",
headers: {
Authorization: "Bearer <token>",
"Content-Type": "application/json"
},
body: JSON.stringify({
model: "hy-image-v3.5-preview",
prompt: "A golden retriever running on a beach in warm evening light",
size: "16:9",
resolution: "2K"
})
});
if (!response.ok) throw new Error(await response.text());
console.log(await response.json());
{
"code": 200,
"data": [
{
"status": "submitted",
"task_id": "task_01K..."
}
]
}
Hy-Image-3.5 Preview
Hy-Image-3.5 Preview Генерация изображений
Генерация по тексту, до 5 референсов, вывод 1K / 2K / 4K или точные размеры в пикселях. Одно изображение на запрос.
POST
/
v1
/
images
/
generations
curl --request POST \
--url https://api.apimart.ai/v1/images/generations \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '{
"model": "hy-image-v3.5-preview",
"prompt": "A golden retriever running on a beach in warm evening light",
"size": "16:9",
"resolution": "2K"
}'
import requests
response = requests.post(
"https://api.apimart.ai/v1/images/generations",
headers={"Authorization": "Bearer <token>"},
json={
"model": "hy-image-v3.5-preview",
"prompt": "A golden retriever running on a beach in warm evening light",
"size": "16:9",
"resolution": "2K"
}
)
response.raise_for_status()
print(response.json())
const response = await fetch("https://api.apimart.ai/v1/images/generations", {
method: "POST",
headers: {
Authorization: "Bearer <token>",
"Content-Type": "application/json"
},
body: JSON.stringify({
model: "hy-image-v3.5-preview",
prompt: "A golden retriever running on a beach in warm evening light",
size: "16:9",
resolution: "2K"
})
});
if (!response.ok) throw new Error(await response.text());
console.log(await response.json());
{
"code": 200,
"data": [
{
"status": "submitted",
"task_id": "task_01K..."
}
]
}
Эндпоинт работает асинхронно. После отправки получите ID из
data[0].task_id и проверяйте состояние и изображение через запрос задачи. Опрашивайте каждые 3–5 секунд; рекомендуемый общий тайм-аут клиента — 5 минут. Остановитесь при completed или failed.curl --request POST \
--url https://api.apimart.ai/v1/images/generations \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '{
"model": "hy-image-v3.5-preview",
"prompt": "A golden retriever running on a beach in warm evening light",
"size": "16:9",
"resolution": "2K"
}'
import requests
response = requests.post(
"https://api.apimart.ai/v1/images/generations",
headers={"Authorization": "Bearer <token>"},
json={
"model": "hy-image-v3.5-preview",
"prompt": "A golden retriever running on a beach in warm evening light",
"size": "16:9",
"resolution": "2K"
}
)
response.raise_for_status()
print(response.json())
const response = await fetch("https://api.apimart.ai/v1/images/generations", {
method: "POST",
headers: {
Authorization: "Bearer <token>",
"Content-Type": "application/json"
},
body: JSON.stringify({
model: "hy-image-v3.5-preview",
prompt: "A golden retriever running on a beach in warm evening light",
size: "16:9",
resolution: "2K"
})
});
if (!response.ok) throw new Error(await response.text());
console.log(await response.json());
{
"code": 200,
"data": [
{
"status": "submitted",
"task_id": "task_01K..."
}
]
}
Заголовки запроса
string
обязательно
Авторизация Bearer:
Bearer <token>, где <token> — ваш APIMart API Key.Параметры запроса
string
обязательно
Фиксированное значение:
hy-image-v3.5-preview.string
обязательно
Описание для генерации или редактирования. Поддерживаются китайский и английский; не должно быть пустым.
string
по умолчанию:"auto"
Соотношение сторон или точные размеры в пикселях.
- Соотношение:
1:1,2:3,3:2,3:4,4:3,4:5,5:4,9:16,16:9,21:9. - Точные пиксели: например
2000x1104, с учётом ограничений ниже. autoили не задано: модель выбирает соотношение по промпту.
resolution не определяет размеры результата.string
по умолчанию:"1K"
Разрешение:
1K, 2K или 4K; по умолчанию 1K.При точных пикселях поле не определяет размеры. Всегда используйте поддерживаемое значение; другие значения возвращают HTTP 400.integer
Точная ширина в пикселях. Обязательно передавать с
height; приоритет выше, чем у size и resolution.Ширина 256–8192; ширина × высота не более 8 294 400. Рекомендуются значения, кратные 16.integer
Точная высота в пикселях. Обязательно передавать с
width.Высота 256–8192; ширина × высота не более 8 294 400. Рекомендуются значения, кратные 16.string[]
Общедоступные URL референсов, до 5 изображений. Без них — генерация по тексту; с ними — по референсам через тот же эндпоинт.Поддерживаются JPEG, PNG и WEBP. Рекомендуется менее 7MB на изображение. URL должны быть общедоступными.
string
Содержимое, которое не должно появляться на изображении.
integer
Случайное зерно; неотрицательное целое число.
0 или отсутствие означает случайное значение.integer
по умолчанию:"1"
Одно изображение на запрос. Допускается только
1; другие значения возвращают HTTP 400.Выбор размеров
Приоритет: параwidth / height → точные пиксели в size → соотношение или auto в size совместно с resolution.
При точных пикселях ширина и высота — каждая 256–8192, всего не более 8 294 400 пикселей. Для обеих рекомендуются значения, кратные 16.
Пример точных размеров
{
"model": "hy-image-v3.5-preview",
"prompt": "A minimalist seaside travel poster with a warm sunset",
"width": 2000,
"height": 1104
}
width и height, а указать "size": "2000x1104".
Пример с референсом
{
"model": "hy-image-v3.5-preview",
"prompt": "Make the car in the reference image red, preserving the original background and lighting",
"image_urls": ["https://example.com/car.png"],
"size": "16:9",
"resolution": "2K",
"negative_prompt": "blur, text watermarks",
"seed": 42,
"n": 1
}
image_urls, суммарно не более 5 изображений.
Ответ на отправку
integer
Код ответа;
200 означает успех.array
Получение результата
curl --request GET \
--url https://api.apimart.ai/v1/tasks/task_01K... \
--header 'Authorization: Bearer <token>'
{
"code": 200,
"data": {
"id": "task_01K...",
"status": "completed",
"result": {
"images": [
{
"url": ["https://example.com/generated-image.png"]
}
]
}
}
}
pending/processing: продолжать опрос.completed: получить URL изdata.result.images[0].url[0];url— массив строк.failed: прекратить опрос и прочитать причину изdata.error.message. Полный возврат средств. Нарушения в промпте и отклонение модерацией также считаются ошибкой задачи.
expires_at, указанного в результате запроса.
Оплата
Оплата за изображение. Актуальные цены — в тарифах моделей.- При соотношении сторон оплата идёт по уровню
resolution. - При точных пикселях уровень определяется короткой стороной:
| Уровень | Короткая сторона |
|---|---|
| 1K | До 1024 пикселей включительно |
| 2K | 1025–2048 пикселей |
| 4K | Более 2048 пикселей |
Типичные ошибки параметров
Следующие случаи синхронно возвращают HTTP 400 без создания задачи и списания средств:| Проблема | Действие |
|---|---|
Пустой prompt | Передайте непустой промпт |
n не равно 1 | Запрашивайте одно изображение за раз |
Отрицательный seed | Используйте неотрицательное целое; 0 означает случайное значение |
Неподдерживаемое resolution | Используйте 1K, 2K или 4K |
Неподдерживаемое соотношение в size | Используйте одно из 10 соотношений выше или auto |
| Размеры вне диапазона | Ширина и высота — каждая 256–8192, суммарно не более 8 294 400 пикселей |
| Более 5 референсов | Сократите image_urls до 5 изображений |