Tools
Camera Angle tool
Drag a 3D camera around the subject — change rotation, tilt and zoom while keeping the subject, environment and lighting identical.
Categoria: Imagem · camera-angle
Como usar & limites
- Ferramenta de pós-produção: edição de imagem guiada 100% pelo prompt (o widget visual de câmera do app apenas escreve esse prompt por você).
- Muda o ponto de vista da câmera (rotação, inclinação, zoom, enquadramento) mantendo sujeito, ambiente e iluminação idênticos.
- image_urls é obrigatório na prática: envie a imagem de referência do sujeito.
- No prompt você descreve o NOVO ponto de vista, não uma nova cena — ex.: 'ver o mesmo sujeito de um ângulo baixo três-quartos, câmera inclinada para cima, enquadramento um pouco mais aberto'.
- Não há parâmetros numéricos de rotação/inclinação — o ângulo é expresso no prompt.
- Saída: imagem. resolution 1K/2K/4K e size definem o resultado.
Parâmetros
Campos aceitos em params (ou de primeira classe, quando aplicável) para POST /generations.
| Nome | Rótulo | Tipo | Obrigatório | Padrão | Opções | Mín / Máx | Descrição |
|---|---|---|---|---|---|---|---|
resolution | Resolution | select | Opcional | 1K | 1K · 2K · 4K | — | Resolução de saída: 1K, 2K ou 4K (padrão 1K). |
size | Size | select | Opcional | 1:1 | 1:1 · 2:3 · 3:2 · 3:4 · 4:3 · 9:16 · 16:9 · 21:9 | — | Proporção de saída: 1:1, 2:3, 3:2, 3:4, 4:3, 9:16, 16:9 ou 21:9 (padrão 1:1). |
image_urls | Optional references | multi_select | Opcional | — | — | — – 14 | Imagem(ns) de referência do sujeito, até 14 — obrigatório para reposicionar a câmera. |
prompt | Prompt | textarea | Obrigatório | — | — | — | Descrição do novo ponto de vista da câmera (rotação/inclinação/zoom/enquadramento). |
Exemplo de requisição
curl -X POST https://caranguejo.art/api/v1/dev/generations \
-H "Authorization: Bearer $CK" \
-H "Content-Type: application/json" \
-d '{
"model": "camera-angle",
"prompt": "Ver o mesmo sujeito de um ângulo baixo três-quartos, câmera inclinada levemente para cima, enquadramento um pouco mais aberto, mantendo cenário e luz.",
"params": {
"resolution": "1K",
"size": "1:1",
"image_urls": [
"https://media.caranguejo.art/inputs/example.png"
]
}
}'
const res = await fetch("https://caranguejo.art/api/v1/dev/generations", {
method: "POST",
headers: {
"Authorization": "Bearer " + process.env.CK,
"Content-Type": "application/json",
},
body: JSON.stringify({
"model": "camera-angle",
"prompt": "Ver o mesmo sujeito de um ângulo baixo três-quartos, câmera inclinada levemente para cima, enquadramento um pouco mais aberto, mantendo cenário e luz.",
"params": {
"resolution": "1K",
"size": "1:1",
"image_urls": [
"https://media.caranguejo.art/inputs/example.png"
]
}
}),
});
const { data } = await res.json();
Exemplo de resposta
{
"id": "9f0c1a7e-…",
"object": "generation",
"model": "camera-angle",
"type": "tool",
"status": "completed",
"output": {
"assets": [
{
"url": "https://media.caranguejo.art/outputs/example.png",
"type": "image"
}
],
"images": [
{
"url": "https://media.caranguejo.art/outputs/example.png"
}
]
}
}
O custo real do job é retornado em credits_charged na resposta concluída — consulte GET /balance para o saldo da conta.
Erros comuns deste tipo de job:
insufficient_credits | Saldo insuficiente para cobrir o job. |
content_policy_violation | Prompt ou mídia recusados por política de conteúdo. |
generation_timeout | O job excedeu o tempo máximo de processamento. |
rate_limited | Limite de requisições por minuto excedido. |
invalid_input | Parâmetro obrigatório ausente ou fora do schema do modelo. |
generation_failed | Falha genérica no processamento do job. |