GPT-6 Sol e Claude Opus 5.5 disponíveisGPT-6 Sol pela metade do preço do 5.6 Sol

HappyHorse 1.1 imagem para vídeo: guia da API e 5 clipes reais

Um script envia uma foto, consulta a tarefa e salva o MP4. Os campos, as surpresas da marca d'água e da trilha sonora, e 5 clipes feitos em 2 de novembro de 2026.

Kiki, OmniaKey COO11 min de leitura
Nesta página

Para animar uma imagem estática com HappyHorse 1.1 imagem para vídeo, envie a foto como first_frame para https://api.omniakey.com/v1/media/tasks com o ID de modelo happyhorse-1.1-i2v, consulte a tarefa e baixe o MP4. Nossos cinco clipes de 5 segundos em 720P levaram de 92 a 158 segundos em 2 de novembro de 2026. Todos tinham música que não pedimos, e o padrão acrescenta uma marca d'água "Happy Horse".

Resposta curta

  • A requisição: modelo happyhorse-1.1-i2v, operação image_to_video e exatamente um first_frame em input.media.
  • Proporção: o clipe segue a sua foto, porque não existe campo ratio.
  • Duração e tamanho: de 3 a 15 segundos em 480P, 720P ou 1080P, e envie resolution sempre, porque o padrão da Alibaba é 1080P.
  • Marca d'água: ligada por padrão, desligada com watermark: false.
  • Som: os cinco clipes tinham música, a API da Alibaba não lista nenhum interruptor de áudio, e o ffmpeg remove a faixa.

O que você precisa antes da primeira chamada de HappyHorse 1.1 imagem para vídeo?

Três coisas: uma chave, Python 3 e uma foto que as regras da Alibaba aceitem.

  • A chave em OMNIAKEY_API_KEY. O script envia como token Bearer, então ela não fica no código.
  • Python 3 sem instalar nada. O script usa só a biblioteca padrão.
  • Uma foto que atenda à referência da API de imagem para vídeo da Alibaba: JPEG, JPG, PNG ou WEBP; largura e altura de pelo menos 300 pixels; até 20 MB; proporção de 1:2.5 a 2.5:1. A Alibaba não informa máximo de pixels.

O problema é o tamanho: a foto embutida viaja no corpo da requisição, que precisa caber em 1 MiB, Base64 incluído (visão geral da API de mídia da OmniaKey, verificado em 2 de novembro de 2026). O script para acima de 700 KB; acima disso, reduza a foto ou passe uma URL HTTPS pública. Nossa foto 2K tinha 2.254.819 bytes, e este comando do macOS a deixou com 92.212 bytes:

bash
sips -s format jpeg -s formatOptions 85 -Z 1280 still.jpg --out still-small.jpg

Quais campos a requisição leva?

Nove campos definem a tarefa: três no nível superior, dois dentro de input e quatro dentro de parameters.

CampoValorObservações
modelhappyhorse-1.1-i2vo ID do modelo 1.1 de imagem para vídeo
typevideoo tipo de arquivo que a tarefa gera
operationimage_to_videonome sem prefixo
input.prompttextoa OmniaKey exige, a API da Alibaba trata como opcional; até 5,000 caracteres não chineses ou 2,500 chineses, o texto mais longo é cortado
input.mediaexatamente um {"type": "first_frame", "url": ...}uma URL HTTPS pública ou um data URI
parameters.resolution480P, 720P ou 1080Penvie sempre: o padrão da Alibaba é 1080P
parameters.durationsegundos inteiros, de 3 a 15obrigatório na OmniaKey
parameters.watermarktrue (padrão) ou falsefalse remove o texto "Happy Horse"
parameters.seed0 a 2147483647a mesma seed também não garante o mesmo clipe

Quatro detalhes passam fácil.

  • Não existe campo ratio: o clipe mantém a proporção da sua foto (referência da API de imagem para vídeo da Alibaba, verificada em 2 de novembro de 2026).
  • As páginas da Alibaba não mostram campo de prompt negativo.
  • Toda chamada de criação precisa do cabeçalho Idempotency-Key. Repetir com o mesmo corpo devolve a tarefa original e nunca cobra duas vezes; com outro corpo vem 409 idempotency_key_reused (documentação da API de vídeo da OmniaKey, verificada em 2 de novembro de 2026).
  • O tamanho da saída varia: na documentação da OmniaKey, uma foto de 1200×630 em 720P volta como 1324×696.

O script Python

Este é o arquivo exato que executamos, só com a biblioteca padrão.

python
"""Animate one still with HappyHorse 1.1 image-to-video through the OmniaKey media API.

Usage:
    export OMNIAKEY_API_KEY="your-omniakey-api-key"
    python3 hh_i2v.py still.jpg "The camera slowly orbits the headphones." clip.mp4

The still can be a local JPEG or PNG (sent inline as a data URL) or a public https:// URL.
"""
import base64
import json
import mimetypes
import os
import sys
import time
import urllib.error
import urllib.request
import uuid

API = "https://api.omniakey.com/v1/media/tasks"
HEADERS = {
    "Authorization": "Bearer " + os.environ["OMNIAKEY_API_KEY"],
    "Content-Type": "application/json",
    "User-Agent": "happyhorse-i2v-example/1.0",
}
POLL_SECONDS = 10
GIVE_UP_AFTER = 15 * 60  # most clips finish in 1-5 minutes


def call(method, url, body=None, extra_headers=None):
    data = json.dumps(body).encode() if body is not None else None
    req = urllib.request.Request(url, data=data, method=method, headers={**HEADERS, **(extra_headers or {})})
    for attempt in range(3):
        try:
            with urllib.request.urlopen(req, timeout=60) as resp:
                return json.load(resp)
        except urllib.error.HTTPError as err:
            sys.exit(f"HTTP {err.code}: {err.read().decode(errors='replace')}")
        except (urllib.error.URLError, TimeoutError, ConnectionError) as err:
            if attempt == 2:
                raise
            print("network error, retrying:", err)  # a retried POST keeps its Idempotency-Key
            time.sleep(5)


def first_frame_url(image):
    if image.startswith("https://"):
        return image
    raw = open(image, "rb").read()
    if len(raw) > 700_000:  # Base64 adds a third, and the whole request must stay under 1 MiB
        sys.exit("The still is over 700 KB. Resize it or pass a public https:// URL instead.")
    mime = mimetypes.guess_type(image)[0] or "image/jpeg"
    return f"data:{mime};base64,{base64.b64encode(raw).decode()}"


def main(image, prompt, out_path):
    task = call("POST", API, {
        "model": "happyhorse-1.1-i2v",
        "type": "video",
        "operation": "image_to_video",
        "input": {"prompt": prompt, "media": [{"type": "first_frame", "url": first_frame_url(image)}]},
        "parameters": {"resolution": "720P", "duration": 5, "watermark": False},  # watermark is on by default
    }, {"Idempotency-Key": str(uuid.uuid4())})
    print("task", task["id"], task["status"])

    start = time.time()
    while task["status"] in ("queued", "processing"):
        if time.time() - start > GIVE_UP_AFTER:
            sys.exit(f"Still {task['status']} after 15 minutes. Do not submit it again; "
                     f"check it later with GET {API}/{task['id']}")
        time.sleep(POLL_SECONDS)
        task = call("GET", f"{API}/{task['id']}")
    print(task["status"], "after", round(time.time() - start), "s")
    if task["status"] != "succeeded":
        sys.exit(json.dumps(task.get("error") or task))

    # The signed download URL is short-lived, so save the file right away.
    req = urllib.request.Request(task["assets"][0]["url"], headers={"User-Agent": HEADERS["User-Agent"]})
    with urllib.request.urlopen(req, timeout=300) as resp, open(out_path, "wb") as f:
        f.write(resp.read())
    print("saved", out_path)


if __name__ == "__main__":
    main(*sys.argv[1:4])

Salve como hh_i2v.py e execute:

bash
export OMNIAKEY_API_KEY="your-omniakey-api-key"
python3 hh_i2v.py still.jpg "The camera slowly orbits the headphones." clip.mp4

Nossa execução com watermark: false imprimiu isto:

text
task task_QqK3ZdAd72vmK1DSOuOxXSytBSaJ244v queued
succeeded after 91 s
saved data/clips/c5-orbit-nowm.mp4

Cinco pontos do script importam.

  • Ele consulta a cada 10 segundos.
  • Ele desiste após 15 minutos com uma mensagem que pede para não enviar de novo.
  • Em erro de rede ele tenta outra vez, e a criação repetida mantém o Idempotency-Key, então você recebe a tarefa original em vez de uma segunda cobrança.
  • Ele salva o arquivo assim que a tarefa termina bem, porque a URL de download assinada dura pouco.
  • Ele envia um User-Agent em toda requisição: o padrão do Python recebeu HTTP 403 com error code: 1010 da Cloudflare no nosso teste de Kling 3.0 API em 29 de outubro de 2026.

Cinco clipes que fizemos

Geramos quatro fotos com Nano Banana 2.1 e rodamos a imagem do fone duas vezes para testar a marca d'água. Saíram cinco clipes, todos de 5 segundos e 720P, em 2 de novembro de 2026. Os clipes de retrato, lago e raposa saíram com o padrão, então a marca d'água aparece nesses quadros.

Órbita do fone

prompt
The camera slowly orbits about 90 degrees to the right around the headphones while a soft band of light sweeps across the ear cups. The headphones stay perfectly still on the pedestal. Smooth, steady product-commercial camera move.
Oito quadros de um fone preto sobre um pedestal de pedra. A câmera vai de um lado ao outro, e nos quadros do meio aparece atrás a borda curva de um fundo.
Oito quadros do clipe de órbita em ordem temporal, de 0.0 a 4.85 segundos, com a marca d'água em false. HappyHorse 1.1 pela API da OmniaKey, imagem para vídeo, 5 segundos, 720P, feito em 2 de novembro de 2026.

A câmera vai de um lado do fone ao outro, e ele fica no pedestal. Nos quadros do meio aparece atrás a borda curva de um fundo que não está na foto, e a faixa de luz pedida no prompt quase não se vê.

Rodamos o mesmo prompt na mesma foto duas vezes, uma com o padrão e outra com watermark: false, e o canto mostra a diferença.

O canto inferior direito de dois clipes. O de cima mostra o texto branco Happy Horse, e o de baixo, com a marca d'água em false, está limpo.
Canto inferior direito do último quadro de cada clipe de órbita, ampliado. Acima: padrão. Abaixo: marca d'água em false. HappyHorse 1.1 pela API da OmniaKey, imagem para vídeo, 5 segundos, 720P, feito em 2 de novembro de 2026.

Retrato na chuva

prompt
She slowly turns her head toward the camera and gives a small smile while light rain keeps falling. The neon signs behind her flicker softly and the camera pushes in a little.
Quatro quadros de uma mulher de capa de chuva amarela numa rua de neon molhada. Ela vira o rosto da esquerda para a câmera e sorri, enquanto o enquadramento passa da cintura para cima para um close.
Quatro quadros do clipe de retrato na chuva em ordem temporal, de 0.0 a 4.85 segundos, com a marca d'água padrão. HappyHorse 1.1 pela API da OmniaKey, imagem para vídeo, 5 segundos, 720P, feito em 2 de novembro de 2026.

Ela passa de olhar para a esquerda a encarar a câmera e sorrir, na ordem que o prompt deu, e a marca d'água está em todos os quadros. O prompt pedia um avanço leve, e o enquadramento vai da cintura para cima até um close do rosto.

Avanço no lago

prompt
Slow aerial push-in over the water toward the rowboat. Mist drifts across the lake, the boat rocks gently and small ripples spread from its hull, and the golden light grows a little brighter.
Oito quadros de um barco a remo num lago com neblina ao nascer do sol. A câmera avança até o barco ocupar quase todo o quadro, e ondas se espalham do casco.
Oito quadros do clipe do lago em ordem temporal, de 0.0 a 4.85 segundos, com a marca d'água padrão. HappyHorse 1.1 pela API da OmniaKey, imagem para vídeo, 5 segundos, 720P, feito em 2 de novembro de 2026.

A câmera avança na direção do barco, como pedido. No fim o barco ocupa quase todo o quadro, e ondas se espalham do casco.

Ilustração da raposa

prompt
The fox turns a page of the book with its paw and its ears twitch. A few orange leaves drift down from the tree and the branches sway gently. Keep the flat illustration style.
Quatro quadros de uma ilustração chapada de uma raposa lendo sob uma árvore de outono. Folhas laranja caem, e a vista dá zoom da árvore inteira até a raposa.
Quatro quadros do clipe da raposa em ordem temporal, de 0.0 a 4.85 segundos, com a marca d'água padrão. HappyHorse 1.1 pela API da OmniaKey, imagem para vídeo, 5 segundos, 720P, feito em 2 de novembro de 2026.

O estilo de ilustração chapada se mantém do primeiro ao último quadro enquanto folhas laranja caem. A câmera dá zoom da árvore inteira até uma vista próxima da raposa, o que o prompt nunca pediu; as páginas do livro levantam, mas os quadros não confirmam que a pata vire uma.

Esquerda: a foto da raposa que enviamos, com a árvore inteira. Direita: o último quadro do clipe, bem mais perto da raposa e do livro aberto, no mesmo estilo chapado, com marca d'água Happy Horse.
Esquerda: a foto enviada como primeiro quadro. Direita: o último quadro do clipe da raposa. HappyHorse 1.1 pela API da OmniaKey, imagem para vídeo, 5 segundos, 720P, feito em 2 de novembro de 2026.

Em 2 dos nossos 4 prompts a câmera se moveu mais do que pedimos, então confira o enquadramento num teste curto. Um clipe de 3 segundos em 480P é o mais curto e o mais baixo que os documentos listam (referência da API de imagem para vídeo da Alibaba, verificada em 2 de novembro de 2026).

O que os arquivos mediram

ClipeProporçãoPixelsQuadrosTempoBytes
Órbita, padrão16:91286×716123128 s1.486.548
Órbita, watermark: false16:91286×71612198 s1.320.527
Retrato na chuva9:16716×1286123158 s2.108.577
Lago16:91286×716123131 s2.691.558
Raposa1:1960×96012392 s2.405.557

Todo arquivo informa 5.16 segundos embora pedíssemos 5: isso é a faixa de áudio, enquanto a faixa de vídeo dura 5.13 segundos com 123 quadros e 5.04 segundos com 121. Os cinco são H.264 a 24 fps com uma faixa AAC de dois canais, e um script de detecção de corte não achou nenhum corte.

Nossos clipes levaram de 92 a 158 segundos do envio ao download, contra os 1 a 5 minutos que a documentação da Alibaba dá para tarefas de imagem para vídeo (referência da API de imagem para vídeo da Alibaba, verificada em 2 de novembro de 2026). Não testamos 480P, 1080P, outras durações, seed, URL pública de imagem, HappyHorse 1.0 nem o endpoint próprio da Alibaba. Para escolher entre modelos, veja HappyHorse 1.1 contra Seedance 2.0 e HappyHorse 1.1 contra Kling 3.0. Para refazer um clipe sem código, o HappyHorse 1.1 está no gerador de vídeo com IA.

Por que os clipes têm som?

O HappyHorse 1.1 colocou trilha sonora nos cinco clipes, embora nenhum dos nossos prompts pedisse. Ninguém ouviu: pedimos ao Gemini 3.8 Flash, pela API da OmniaKey, que descrevesse cada faixa.

ClipeO que o modelo descreveuVolume médio
Órbita, padrão"Uma batida de hip-hop com percussão sincopada, palmas e acordes de sintetizador suaves."−19.5 dB
Órbita, watermark: false"Música eletrônica calma e ritmada, com batida constante e tons de sintetizador melódicos"−20.5 dB
Retrato na chuva"Uma melodia de piano lenta, melancólica e suave, com ambiência atmosférica leve"−22.6 dB
Lago"Uma melodia de piano lenta, suave e sentimental"−20.2 dB
Raposa"Uma melodia ambiente calma e suave tocada com tons suaves de sino", mais "passos rangendo no cascalho"−27.4 dB

Ele não relatou voz em nenhum clipe. O mesmo prompt e a mesma foto, rodados duas vezes, deram duas faixas diferentes.

A referência de imagem para vídeo da Alibaba não lista campo de áudio nem opção de silêncio, embora a nota de versão 1.1 mencione a sincronização entre áudio e imagem (página de modelos recém-lançados da Alibaba, verificada em 2 de novembro de 2026). Para obter um arquivo silencioso, remova a faixa depois do download:

bash
ffmpeg -i clip.mp4 -an -c:v copy silent.mp4

Rodamos isso no clipe com watermark: false e o resultado tem faixa de vídeo e nenhuma faixa de áudio. A imagem fica exatamente igual, porque -c:v copy copia a faixa em vez de recodificar.

Por quanto tempo os resultados ficam disponíveis?

Na OmniaKey, o link assinado para o seu MP4 dura cerca de 1 hora, e o registro da tarefa fica guardado por 24 horas; consulte a tarefa de novo para pegar uma URL nova (visão geral da API de mídia da OmniaKey, verificada em 2 de novembro de 2026). Na API própria da Alibaba, a URL do vídeo e o ID da tarefa duram 24 horas, e depois uma consulta retorna UNKNOWN e o arquivo sumiu. Baixe assim que a tarefa der certo.

Quais erros você vai encontrar?

Nenhuma das nossas cinco execuções falhou, então esta lista vem da documentação da API de vídeo da OmniaKey, verificada em 2 de novembro de 2026.

StatusO que significaO que fazer
400 invalid_requestcorpo malformado, ou tarefa sem input.promptconfira o formato da requisição acima
400 model_price_errorduração fora da faixa do modelo, ou resolução sem preçouse uma duração e uma resolução aceitas
403 model_not_allowedsua chave ou seu grupo não inclui o modeloconfira o acesso da chave ao modelo
409 idempotency_key_reuseda mesma chave já foi enviada com outro corporeutilize uma chave só em repetições idênticas
503 no_available_channelnenhum canal atende o modelo ou a operação agoratente mais tarde, ou veja o painel

Uma tarefa que termina em failed é reembolsada automaticamente, então uma renderização recusada custa só o seu tempo (visão geral da API de mídia da OmniaKey, verificada em 2 de novembro de 2026).

O erro a evitar é ler um tempo esgotado do seu lado como tarefa falhada. Consulte o mesmo ID de tarefa; reenviar abre uma segunda tarefa e uma segunda cobrança. Se for reenviar mesmo, mantenha o mesmo Idempotency-Key e o mesmo corpo, e você recebe a tarefa original.

Quanto custa um clipe de HappyHorse 1.1?

Um clipe de 5 segundos em 720P custa $0.70 no preço de tabela da Alibaba em Singapura. Estes são os preços por segundo da Alibaba, da página de preços verificada em 2 de novembro de 2026:

ResoluçãoSingapuraPequim e Global
480P$0.07$0.0618845
720P$0.14$0.123769
1080P$0.18$0.165026

A conta é o preço por segundo vezes os segundos de saída. Requisições que falham não são cobradas. Singapura também inclui uma cota grátis de 10 segundos, válida por 90 dias. Na página de preços, os preços Global valem para Frankfurt, Virgínia e Tóquio.

A OmniaKey cobra por segundo de saída renderizada e faz uma cobrança antecipada ao criar a tarefa, com reembolso automático de tarefas que falham ou são canceladas; para as tarifas atuais, veja a página do HappyHorse 1.1.

Dá para chamar o Alibaba Cloud direto?

Sim. O HappyHorse é servido no Alibaba Cloud Model Studio, com endpoints regionais para Singapura, Estados Unidos (Virgínia), Pequim, Frankfurt e Tóquio (referência da API de imagem para vídeo da Alibaba, verificada em 2 de novembro de 2026). Nossas execuções passaram pela API da OmniaKey, então o que segue vem dos documentos da Alibaba.

  • Crie com POST https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/api/v1/services/aigc/video-generation/video-synthesis para Singapura.
  • Envie o cabeçalho X-DashScope-Async: enable, ou a requisição falha com "current user api does not support synchronous calls".
  • Consulte GET .../api/v1/tasks/{task_id} a cada 15 segundos mais ou menos; o status passa por PENDING, RUNNING, SUCCEEDED, FAILED, CANCELED, UNKNOWN.
  • Mantenha o modelo, o endpoint e a chave na mesma região, porque chamadas entre regiões falham.
  • Uma chave recebe 5 requisições por segundo e 5 tarefas simultâneas (página de limites de requisição da Alibaba, verificada em 2 de novembro de 2026).

A página de preços lista Tóquio, mas a de limites não lista imagem para vídeo 1.1 lá, então Tóquio segue sem confirmação.

Perguntas frequentes

Preciso de prompt no HappyHorse imagem para vídeo?

Na OmniaKey, sim: uma tarefa sem input.prompt recebe 400 invalid_request (documentação da API de vídeo da OmniaKey, verificada em 2 de novembro de 2026). A API própria da Alibaba trata o prompt como opcional e usa só o primeiro quadro. Nos dois casos, diga o movimento e o deslocamento de câmera, como fazem nossos prompts acima.

Como tiro a marca d'água Happy Horse?

Envie parameters.watermark: false. O padrão true desenha um texto branco pequeno "Happy Horse" no canto inferior direito; nosso segundo clipe de órbita, enviado com false, voltou limpo.

Como defino a proporção?

Recorte a foto. Imagem para vídeo não tem campo ratio e o clipe segue o formato do primeiro quadro, então nossa foto 16:9 deu um clipe 16:9 e o retrato deu um clipe 9:16. Mantenha o recorte entre 1:2.5 e 2.5:1.

Existe HappyHorse 1.5?

Nada depois da 1.1 aparece na lista de modelos, nas tabelas de preço nem na página de ciclo de vida da Alibaba em 2 de novembro de 2026, e a versão mais nova dessas páginas é happyhorse-1.1-i2v, lançada em 16 de junho de 2026. Alguns sites usam o nome "Happy Horse 1.5".

O HappyHorse 1.1 é melhor que o 1.0 para imagem para vídeo?

A Alibaba diz que a 1.1 melhora a qualidade visual, o desempenho de movimento e a consistência entre clipes, e a página de preços lista um nível 480P só para a 1.1. A 1.1 saiu em 16 de junho de 2026 e a 1.0 em 22 de abril de 2026. Na tarifa de Singapura da Alibaba, 1080P custa $0.18 por segundo na 1.1 contra $0.24 na 1.0.

Fontes verificadas

Documentação própria da OmniaKey, verificada em 2 de novembro de 2026: API de vídeo e visão geral da API de mídia.

Modelos deste artigo

HappyHorse 1.1imagem para vídeovídeo com IAAPI de vídeoPython

Artigos relacionados

Artigos recentes

Guias populares