Grok Imagine 2.0 Ext
Calques et édition de zones Grok Imagine 2.0 Ext
Utilisez segment pour récupérer les calques d’objets et les masques précis, puis modifiez des polygones, cadres ou objets détectés avec region_edit.
POST
segment et region_edit utilisent le point d’entrée d’images asynchrone existant. Enregistrez le task_id, puis interrogez Obtenir le statut de la tâche ; la requête de création ne renvoie pas directement les calques ou images finaux.Vue d’ensemble des opérations
source_task_id et image_id ne sont pas interchangeables. segment reçoit l’ID de tâche source, region_edit l’ID de l’asset image. Pour segmenter une image modifiée, utilisez l’ID de la tâche region_edit terminée comme nouveau source_task_id.En-têtes de requête
UtilisezAuthorization: Bearer <APIMART_API_KEY>, Content-Type: application/json et Accept: application/json.
Idempotency-Key est facultatif et fortement recommandé pour les requêtes region_edit payantes. Il accepte 1 à 191 caractères ASCII visibles ; un UUID est recommandé. Utilisez une nouvelle clé par opération logique. Une nouvelle tentative réseau de la même requête doit réutiliser la clé et le corps d’origine. Si le résultat est indéterminé, ne relancez pas automatiquement avec une nouvelle clé.
Flux de tâche asynchrone
Une création réussie renvoie HTTP200 et data[0].task_id. Interrogez GET /v1/tasks/{task_id}?language=fr toutes les 2 secondes, puis jusqu’à 5 secondes maximum, avec une limite globale de 10 minutes. Arrêtez l’ancien polling lorsque l’image source change.
segment
Paramètres de requête
segment ne nécessite pas de prompt. N’envoyez pas image_id, image_index, billing_model_name, n, size ou response_format. cache_only=true et refresh=true sont incompatibles.
Exemples de requête
- Récupérer les calques
- Tester le cache
cache_status (hit ou miss) ou from_cache ; ne déduisez pas un hit de cached.
Réponse terminée
Poursegment, data.result contient directement le résultat de segmentation ; il n’est pas enveloppé dans images.
Sans
mask_rle ou mask_url valide, un objet ne peut être modifié que par approximation rectangulaire.
Décoder mask_rle
mask_rle.counts est une chaîne de comptages compressés COCO, ni Base64 ni zlib. Elle se déploie par colonnes ; le premier run est l’arrière-plan, puis avant-plan et arrière-plan alternent.
Le TypeScript suivant la convertit en masque binaire par lignes adapté au navigateur :
mask_rle.counts dans les logs, analyses, URL ou rapports d’erreur.
Convertir les masques en sélections précises
0–1. Chaque anneau doit avoir au moins 3 points distincts, une aire non nulle et aucune auto-intersection. Conservez au plus les 16 plus grandes régions par calque et 400 points par anneau.
La lecture des pixels de l’image source ou de mask_url exige CORS. Définissez crossOrigin = "anonymous" avant src ou récupérez un Blob. Le décodage direct de mask_rle évite cette dépendance.
Modifier une zone : region_edit
Paramètres de requête
Au moins l’un de
selection_regions, boxes ou object_indices doit être non vide. L’API accepte les combinaisons, mais le frontend devrait utiliser une seule méthode par requête.
Méthodes de sélection
- Polygone précis
- Cadre normalisé
- Cadre en pixels
- Indice d'objet
points peut être une liste plate ou des paires imbriquées. Chaque valeur doit être finie et dans 0–1 ; chaque anneau exige au moins 3 paires.Réponse terminée
result.images[0].items[0]. Pour une ancienne réponse, n’associez url[0] et image_ids[0] que si les tableaux ont la même longueur. Continuez uniquement après obtention d’une URL HTTP(S) et d’un nouveau image_id.
Utilisez expires_at comme référence d’expiration ; ne figez pas un nombre d’heures. Téléchargez ou conservez les assets nécessaires à long terme.
Édition continue
À la fin d’une édition, mettez à jour ensemble l’URL affichée, l’ID d’asset actuel et l’ID de tâche source, puis effacez les anciens calques et états de polling.- Segmenter à nouveau : utiliser l’ID de cette tâche
region_editcommesource_task_id - Modifier à nouveau : utiliser le nouveau
image_idrenvoyé - Ne transmettez jamais
image_idàsegmentet ne continuez jamais avec l’ancien ID d’image.
Gestion des erreurs
Facturation
segmentest gratuit et se termine aveccost=0etcredits_cost=0, mais exige une authentification et une tâche source valide.region_editest payant. Utilisezcostetcredits_costde la tâche terminée ; ne figez pas les prix dans le frontend.- N’envoyez jamais le champ interne
billing_model_name.
Liste de contrôle frontend
- Conserver la clé API uniquement dans le backend ou BFF.
- Envoyer uniquement
source_task_idàsegment, jamaisimage_idouimage_index. - Utiliser le
image_idde segment pourregion_editavec au moins une méthode de sélection. - Utiliser
selection_regionspour l’édition précise ;object_indicesn’est qu’une approximation rectangulaire. - Toujours lire
mask_sizecomme[height,width]et gérer mise à l’échelle et marges. - Réutiliser la clé idempotente d’origine pour le même retry et valider l’URL ainsi que le nouveau
image_id.