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 Génération d’images
Génération texte-image, jusqu’à 5 images de référence, sorties 1K / 2K / 4K ou dimensions exactes. Une image par requête.
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..."
}
]
}
Cet endpoint est asynchrone. Après soumission, récupérez l’ID dans
data[0].task_id et consultez le suivi des tâches pour l’état et l’image. Interrogez toutes les 3–5 secondes, avec un délai global côté client recommandé de 5 minutes. Arrêtez à completed ou 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..."
}
]
}
En-têtes de requête
string
requis
Authentification Bearer :
Bearer <token>, où <token> est votre APIMart API Key.Paramètres de requête
string
requis
Valeur fixe :
hy-image-v3.5-preview.string
requis
Description de génération ou de retouche. Chinois et anglais acceptés ; ne doit pas être vide.
string
défaut:"auto"
Rapport d’aspect ou dimensions exactes en pixels.
- Rapport :
1:1,2:3,3:2,3:4,4:3,4:5,5:4,9:16,16:9,21:9. - Pixels exacts : par exemple
2000x1104, sous réserve des limites ci-dessous. autoou omis : le modèle choisit le rapport selon le prompt.
resolution ne détermine pas les dimensions de sortie.string
défaut:"1K"
Niveau de résolution :
1K, 2K ou 4K ; par défaut 1K.Avec des dimensions exactes, ce champ ne détermine pas la taille. Utilisez toujours une valeur prise en charge ; sinon HTTP 400.integer
Largeur exacte en pixels. À fournir avec
height ; prioritaire sur size et resolution.Largeur de 256 à 8192 ; largeur × hauteur ne doit pas dépasser 8 294 400. Multiples de 16 recommandés.integer
Hauteur exacte en pixels. À fournir avec
width.Hauteur de 256 à 8192 ; largeur × hauteur ne doit pas dépasser 8 294 400. Multiples de 16 recommandés.string[]
URL publiques des images de référence, maximum 5. Sans images : texte-image ; avec images : génération à partir de références via le même endpoint.JPEG, PNG et WEBP acceptés. Moins de 7MB par image recommandé. Les URL doivent être publiques.
string
Contenu à exclure de l’image.
integer
Graine aléatoire ; entier positif ou nul.
0 ou omission utilise une valeur aléatoire.integer
défaut:"1"
Une seule image par requête. Seul
1 est accepté ; les autres valeurs renvoient HTTP 400.Choix des dimensions
Priorité : pairewidth / height → pixels exacts dans size → rapport ou auto dans size associé à resolution.
En pixels exacts, largeur et hauteur entre 256 et 8192 chacune, avec au maximum 8 294 400 pixels au total. Multiples de 16 recommandés pour les deux.
Exemple en pixels exacts
{
"model": "hy-image-v3.5-preview",
"prompt": "A minimalist seaside travel poster with a warm sunset",
"width": 2000,
"height": 1104
}
width et height et transmettre "size": "2000x1104".
Exemple avec image de référence
{
"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, jusqu’à 5 images au total.
Réponse de soumission
integer
Code de réponse ;
200 indique un succès.array
Consulter les résultats
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: continuer les interrogations.completed: lire l’URL dansdata.result.images[0].url[0];urlest un tableau de chaînes.failed: arrêter les interrogations et lire la cause dansdata.error.message. Remboursement intégral. Les prompts non conformes et les refus de modération sont aussi traités comme des échecs.
expires_at indiquée dans le résultat.
Facturation
Facturation par image. Consultez les tarifs des modèles.- Avec un rapport d’aspect, la facturation suit le niveau
resolution. - Avec des pixels exacts, le côté le plus court détermine le niveau :
| Niveau | Côté le plus court |
|---|---|
| 1K | Jusqu’à 1024 pixels |
| 2K | 1025–2048 pixels |
| 4K | Plus de 2048 pixels |
Erreurs de paramètres fréquentes
Les cas suivants renvoient HTTP 400 de manière synchrone, sans création de tâche ni facturation :| Problème | Action |
|---|---|
prompt vide | Fournir un prompt non vide |
n différent de 1 | Demander une seule image par requête |
seed négatif | Utiliser un entier positif ou nul ; 0 signifie aléatoire |
resolution non prise en charge | Utiliser 1K, 2K ou 4K |
Rapport size non pris en charge | Utiliser l’un des 10 rapports ci-dessus ou auto |
| Dimensions hors limites | Largeur et hauteur de 256 à 8192 chacune, total maximal de 8 294 400 pixels |
| Plus de 5 images de référence | Réduire image_urls à 5 images maximum |