Grok Imagine 2.0 Ext
Camadas e edição de regiões do Grok Imagine 2.0 Ext
Use segment para obter camadas de objetos e máscaras precisas e edite polígonos, caixas ou objetos detectados com region_edit.
POST
segment e region_edit usam o endpoint assíncrono de imagens existente. Salve o task_id retornado e consulte Obter status da tarefa; a solicitação de criação não retorna diretamente as camadas ou imagens finais.Visão geral das operações
source_task_id e image_id não são intercambiáveis. segment recebe o ID da tarefa de origem; region_edit recebe o ID do ativo de imagem. Para segmentar uma imagem editada, use o ID da tarefa region_edit concluída como novo source_task_id.Cabeçalhos da solicitação
UseAuthorization: Bearer <APIMART_API_KEY>, Content-Type: application/json e Accept: application/json.
Idempotency-Key é opcional e fortemente recomendado para solicitações region_edit pagas. Aceita de 1 a 191 caracteres ASCII visíveis; recomenda-se UUID. Use uma nova chave por operação lógica. Uma repetição de rede da mesma solicitação deve reutilizar a chave e o body originais. Se o resultado for indeterminado, não repita automaticamente com outra chave.
Fluxo de tarefa assíncrona
Uma criação bem-sucedida retorna HTTP200 e data[0].task_id. Consulte GET /v1/tasks/{task_id}?language=pt a cada 2 segundos, aumentando até 5 segundos, com limite total de 10 minutos. Interrompa a consulta anterior quando a imagem de origem mudar.
segment
Parâmetros da solicitação
segment não precisa de prompt. Não envie image_id, image_index, billing_model_name, n, size ou response_format. cache_only=true e refresh=true são mutuamente exclusivos.
Exemplos de solicitação
- Obter camadas
- Consultar cache
cache_status ou from_cache; não deduza um hit por cached.
Resposta concluída
Emsegment, data.result contém diretamente o resultado da segmentação e não fica dentro de images.
Um objeto sem
mask_rle ou mask_url válido só permite edição aproximada por caixa.
Decodificar mask_rle
mask_rle.counts é uma string de contagens compactadas COCO, não Base64 nem zlib. Ela é expandida por colunas; o primeiro trecho é fundo e depois alterna primeiro plano e fundo.
O TypeScript abaixo converte para uma máscara binária por linhas adequada ao navegador:
mask_rle.counts para logs, análises, URLs ou relatórios de erro.
Converter máscaras em seleções precisas
0–1. Cada anel precisa de pelo menos 3 pontos distintos, área diferente de zero e não pode se cruzar. Mantenha no máximo 16 regiões maiores por camada e 400 pontos por anel.
A leitura de pixels da imagem ou de mask_url requer CORS. Defina crossOrigin = "anonymous" antes de src ou obtenha um Blob. Decodificar mask_rle diretamente evita essa dependência.
Editar uma região: region_edit
Parâmetros da solicitação
Pelo menos um entre
selection_regions, boxes ou object_indices deve conter dados. A API aceita combinações, mas o frontend deve usar um método por solicitação.
Métodos de seleção
- Polígono preciso
- Caixa normalizada
- Caixa em pixels
- Índice do objeto
points pode ser uma lista plana ou pares aninhados. Cada valor deve ser finito e estar em 0–1; cada anel exige pelo menos 3 pares.Resposta concluída
result.images[0].items[0]. Em respostas antigas, associe url[0] a image_ids[0] somente quando os arrays tiverem o mesmo tamanho. Continue apenas após obter uma URL HTTP(S) e um novo image_id.
Use expires_at como referência de expiração; não fixe um número de horas. Baixe ou armazene ativos necessários a longo prazo.
Edição contínua
Após concluir uma edição, atualize juntos a URL exibida, o ID do ativo atual e o ID da tarefa de origem, e limpe camadas e consultas antigas.- Segmentar novamente: usar o ID desta tarefa
region_editcomosource_task_id - Editar novamente: usar o novo
image_idretornado - Nunca envie
image_idparasegmentnem continue editando o ID da imagem anterior.
Tratamento de erros
Cobrança
segmenté gratuito e termina comcost=0ecredits_cost=0, mas exige autenticação e tarefa de origem válida.region_edité pago. Usecostecredits_costda tarefa concluída; não fixe preços no frontend.- Nunca envie o campo interno
billing_model_name.
Checklist do frontend
- Manter a API Key somente no backend ou BFF.
- Enviar apenas
source_task_idparasegment; não enviarimage_idouimage_index. - Usar o
image_idde segment emregion_edite fornecer ao menos um método de seleção. - Usar
selection_regionspara edição precisa;object_indicesé apenas aproximação por caixa. - Sempre interpretar
mask_sizecomo[height,width]e compensar escala e margens. - Reutilizar a chave idempotente original no mesmo retry e validar a URL e o novo
image_id.