Introdução
HappyHorse 1.1 Imagem para vídeo anima um quadro inicial enviado em image_url. O prompt é obrigatório e descreve o movimento que vem a seguir; o clipe dura de 3 a 15 segundos inteiros em 720p ou 1080p, com trilha sonora gerada. Não há campo de proporção de tela nem de quadro final: a imagem define o formato, e o desfecho é aonde o movimento pedido chegar.
Escolha o modo pelo material inicial
| Material inicial | Modo |
|---|---|
| uma cena escrita ou um roteiro | HappyHorse 1.1 Texto para vídeo |
| uma imagem inicial aprovada | HappyHorse 1.1 Imagem para vídeo |
| de uma a nove imagens de referência | HappyHorse 1.1 Referências para vídeo |
Recursos e destaques
A imagem define assunto e formato
O quadro inicial é seguido de perto, o que faz deste endpoint o caminho confiável para um resultado literal, incluindo quadros de origem sem censura. No exemplo tailgate-turn, figurino, caminhonete e contraluz vêm do quadro, e o prompt só pede que ela abaixe a garrafa, balance as botas uma vez e vire a cabeça para o sol baixo.
Sem quadro final como alvo
Este endpoint recebe apenas image_url, então não dá para prender um plano a uma composição final. Funcionam melhor os movimentos que se resolvem sozinhos. O exemplo quiet-hold são quatro segundos de quase imobilidade: uma expiração, um ombro que desce e uma mudança de peso contra o batente da janela, quase sem movimento de câmera.
Limites de entrada e saída
O quadro inicial precisa de pelo menos 300 px de cada lado, proporção entre 1:2,5 e 2,5:1 e tamanho de até 20 MB. A saída dura de 3 a 15 segundos, com 5 como padrão, em 720p (padrão) ou 1080p, e a trilha sonora é sempre gerada junto com a imagem.
Parâmetros da requisição
| Parâmetro | Obrigatório | Descrição |
|---|---|---|
prompt | Sim | Obrigatório. Descreva o que muda depois do quadro — ação, câmera, ritmo — e não o quadro em si. pelo menos 1 caracteres · no máximo 2500 caracteres |
image_url | Sim | O quadro de abertura. Ele fixa sujeito e composição e define o formato de saída. |
resolution | Não | 720p ou 1080p. |
duration_seconds | Não | Segundos inteiros, de 3 a 15. Não há quadro final, então mantenha o movimento resolvível nesse tempo. |
seed | Não | Inteiro de 0 a 2147483647 para o ponto de partida aleatório; omita e cada execução sorteia o seu. |
Preços
| Especificação | Preço |
|---|---|
| $0.14 / segundo |
| $0.18 / segundo |
Casos de uso
Animar um quadro sem censura ou com direção de arte
Este caminho segue o quadro que recebe, então o trabalho sem censura começa aqui, e não no text-to-video, que recusa prompts que passam do seu limite de conteúdo. Envie o quadro que você desenhou e escreva só o movimento; o assunto aparece como foi desenhado ou fotografado, em vez de ser reinterpretado a partir de uma frase.
Movimento do ambiente em volta de uma pose parada
O exemplo wasteland-hood-two mantém duas figuras sobre o capô de um carro quebrado e escreve só o que existe em movimento: pano rasgado que o vento levanta e deixa cair, o calor tremulando no ar, redemoinhos de poeira cruzando a estrada e uma aproximação lenta. Foi gerado em 1080p com a duração padrão.
Inserts curtos e planos de corte
Um clipe de três ou quatro segundos com movimento de câmera mínimo serve para inserts entre planos mais longos. Limite a ação a uma respiração ou a um gesto, como faz quiet-hold, para que o movimento termine dentro da duração em vez de ser cortado no meio.
Guia de prompt e dicas práticas
Dê ao prompt só movimento
O prompt é obrigatório, então use-o para o que muda: ação, câmera e ritmo. O prompt de wasteland-hood-two nunca descreve a composição; descreve vento, calor tremulando e poeira. Descrever o quadro de novo gasta o limite de 2.500 caracteres com o que a imagem já fixa.
Ajuste o movimento à duração
Sem quadro final, um movimento que não consegue terminar no tempo escolhido simplesmente para onde o clipe acaba. Ajuste a ação à duração: um gesto para um clipe curto, uma sequência breve como abaixar, balançar, virar para um mais longo, como faz tailgate-turn em seis segundos.
Recorte antes do upload
A imagem define o formato da saída, então recorte primeiro na proporção de entrega e confira os limites de tamanho. Rascunhe em 720p e rode de novo em 1080p para a entrega. Cada passada gera o próprio take, então mantenha o texto fixo enquanto compara.
Início rápido da API
# Generate the idempotency key once; reuse it when retrying after a lost response.
export SPICY_IDEMPOTENCY_KEY="${SPICY_IDEMPOTENCY_KEY:-$(uuidgen)}"
curl -X POST https://api.spicyapi.ai/api/v1/jobs/createTask \
-H "Authorization: Bearer $SPICY_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: $SPICY_IDEMPOTENCY_KEY" \
-d '{
"model": "alibaba/happyhorse-1.1/image-to-video",
"input": {
"duration_seconds": 5,
"image_url": "https://example.com/reference.png",
"prompt": "A slow aerial shot drifting over a misty pine forest at sunrise",
"resolution": "720p"
}
}'
# Copy data.taskId from the response into TASK_ID, then poll the status.
TASK_ID="TASK_ID_FROM_RESPONSE"
curl "https://api.spicyapi.ai/api/v1/jobs/recordInfo?taskId=$TASK_ID" \
-H "Authorization: Bearer $SPICY_API_KEY"
Consulte a referência da API para autenticação, esquema completo, polling e tratamento de erros.







