Alibaba: HappyHorse 1.1
Alibaba HappyHorse 1.1 gera vídeos curtos com som a partir de instruções em texto, de uma imagem do primeiro fotograma ou de até nove imagens de referência. Os seus perfis do fabricante destacam melhorias no movimento, no pormenor da pele e na consistência das personagens entre clipes. A saída é MP4 de 3–15 segundos a 24 fps, com opções a 480p, 720p ou 1080p.
Sobre o modelo
Esta descrição apresenta as capacidades do modelo. As entradas, saídas e opções disponíveis no Ailoot para o método selecionado estão indicadas abaixo.
Alibaba HappyHorse 1.1 é uma edição de geração de vídeo com perfis de nomes separados para texto para vídeo, imagem do primeiro fotograma para vídeo e referências para vídeo. O fabricante destaca melhorias no pormenor visual, no movimento, na identidade de personagens entre clipes, na estabilidade do texto e na sincronização audiovisual. O resultado é um vídeo curto com som, útil para um plano de produto, uma animação de retrato ou uma pequena cena de personagem. Selecione o modo de entrada a partir do que deve definir a cena: um conceito escrito, uma imagem inicial exata ou várias referências visuais.
Para texto para vídeo, descreva o sujeito, o local, a ação, o enquadramento, o movimento da câmara e a intenção sonora. Numa cena curta de ação, mostre um ciclista a parar junto a um café à beira-rio enquanto a câmara se aproxima suavemente da bicicleta estacionada. Mantenha a ação adequada a um clipe curto e descreva o momento final. O guia atual de texto do fabricante permite até 5 000 caracteres não chineses ou 2 500 caracteres chineses e trunca o texto excedente. Organize as instruções para que o sujeito e a ação essenciais sejam explícitos, em vez de ficarem enterrados em adjetivos repetidos.
Imagem para vídeo a partir do primeiro fotograma utiliza exatamente uma imagem como abertura. Prepare o sujeito, a composição e o recorte pretendido nessa imagem fixa e descreva depois o que deve mover-se ou como a câmara deve mudar. Os formatos de imagem documentados são JPEG/JPG, PNG e WEBP, até 20 MB, com ambas as dimensões de pelo menos 300 píxeis e uma proporção entre 1:2.5 e 2.5:1. A saída aproxima-se do escalão de resolução selecionado, mantendo as proporções da imagem de origem. Um resultado vertical começa, por isso, com uma composição vertical adequada, em vez de uma instrução de proporção sem relação com a imagem.
Referências para vídeo aceita entre uma e nove imagens. A instrução utiliza [Image 1], [Image 2] e as posições seguintes para as identificar pela ordem de entrada. Indique o papel de cada referência e nomeie o objeto ou a pessoa relevantes, para que uma imagem de cenário não seja confundida com uma fonte de personagem. O guia de referências aceita JPEG/JPG, PNG ou WEBP até 20 MB, exige que o lado menor tenha pelo menos 400 píxeis e recomenda referências nítidas a 720p ou superior. Evite uma referência muito comprimida cujo pormenor identificador já esteja ausente.
Numa cena com várias referências, coloque a pessoa de uma imagem na sala de outra, conservando um casaco ou produto fornecido por uma terceira. Descreva a interação e a câmara nas mesmas instruções. O perfil de referências da versão 1.1 destaca a estabilidade dos sujeitos, do estilo da cena e do movimento cinematográfico; inspecione o resultado efetivo quanto à identidade pretendida, às marcas do produto e à posição espacial. Várias imagens dão mais informação às instruções, mas a revisão continua a ter de verificar que características passaram para o vídeo.
O fabricante apresenta saída a 480p, 720p e 1080p para os modos de geração da versão 1.1, com duração em segundos inteiros entre três e quinze e MP4 a 24 fps. A resposta da API descreve codificação H.264. A geração por texto e por referências oferece formatos que incluem 16:9, 9:16, 1:1, 4:3, 3:4, 4:5, 5:4, 9:21 e 21:9; a geração a partir do primeiro fotograma segue a imagem de entrada. Escolha o formato para o destino e deixe espaço para legendas ou elementos de disposição posteriores. Inspecione o enquadramento real do vídeo devolvido no tamanho de apresentação pretendido.
A saída da família do modelo inclui som. Dê à interpretação ou à atmosfera um papel claro nas instruções e reveja qualquer diálogo, efeitos ou faixa de fundo juntamente com a imagem. Mantenha o material falado suficientemente curto para a ação e as pausas, em vez de comprimir um guião longo num único plano curto. Verifique o movimento labial, a atribuição das falas e a redação efetiva quando existe fala. A aceitação de um idioma nas instruções não define, por si só, uma pronúncia garantida ou uma entrada separada de referência de voz.
O fluxo documentado do fabricante é assíncrono: um identificador de tarefa acompanha o processamento e um resultado bem-sucedido fornece a localização do vídeo. A ligação do resultado e as consultas de tarefas estão documentadas com uma validade de vinte e quatro horas. Conserve o clipe concluído, as referências e a instrução como registo de revisão. Os guias documentam também controlos de semente e marca de água. Uma semente fixa pode ajudar na comparação, mas o fabricante indica explicitamente que não garante resultados idênticos, pelo que deve avaliar o recurso devolvido em vez de presumir que uma definição fixa todos os fotogramas.
HappyHorse 1.0 e 1.1 são edições separadas. A tabela de saída da versão 1.1 acrescenta 480p às opções a 720p e 1080p da versão 1.0, e as páginas do modelo 1.1 descrevem melhorias no pormenor, no movimento e na consistência. O perfil de edição de vídeo HappyHorse 1.0, com nome próprio, tem entradas e limites próprios e não é um modo de edição a atribuir silenciosamente à versão 1.1. Reveja todo o clipe 1.1 quanto à identidade, ao movimento, ao enquadramento, ao texto e ao som e faça depois uma correção específica, conservando as partes bem-sucedidas das instruções.
Ailoot Ultra · Vídeo POST /v1/videos alibaba/happyhorse-1.1
alibaba/happyhorse-1.1Introdução
Alibaba HappyHorse 1.1 gera vídeos curtos com som a partir de instruções em texto, de uma imagem do primeiro fotograma ou de até nove imagens de referência. Os seus perfis do fabricante destacam melhorias no movimento, no pormenor da pele e na consistência das personagens entre clipes. A saída é MP4 de 3–15 segundos a 24 fps, com opções a 480p, 720p ou 1080p.
- Entradas aceites
- Texto
- Resultados
- Vídeo
Disponível no Ailoot · entradas e métodos
Ailoot Ultra · Vídeo POST /v1/videos
- Entrada
text- Saída
video- Formato de saída
- mp4
- Número de saídas
- Até 4 saídas
| Campo | Tipo | Requisito | Valores e limites | Predefinição |
|---|---|---|---|---|
Campomodel | Tipostring | RequisitoObrigatório | Valores e limites alibaba/happyhorse-1.1 | Predefinição— |
Campoprompt | Tipostring | RequisitoObrigatório | Valores e limites Comprimento mínimo: 1 Número máximo de bytes: 10 000 Unidade: bytes UTF8 | Predefinição— |
Campoduration | Tipointeger | RequisitoObrigatório | Valores e limites Mínimo: 3 Máximo: 15 Unidade: segundos | Predefinição— |
Camporesolution | Tipostring | RequisitoObrigatório | Valores e limites 720p | Predefinição— |
Campoaspect_ratio | Tipostring | RequisitoObrigatório | Valores e limites 16:9 | Predefinição— |
Combinações de materiais de entrada
Texto para vídeo · Obrigatório: prompt
Parâmetros e ciclo de vida do método
| Parâmetro | Contrato |
|---|---|
Parâmetrocontent_type | Contratoapplication/json |
Parâmetrorequired | Contratomodel, prompt, duration, resolution, aspect_ratio |
Parâmetroother_options | Contratofalse |
Parâmetroresolution | Contrato720p |
Parâmetroprompt_max_bytes | Contrato10000 |
Parâmetroduration_integer_range | Contrato3, 15 |
Parâmetroaspect_ratio | Contrato16:9 |
Parâmetrogenerate_audio | Contratotem de ser omitido (não false); AAC incluído |
Parâmetromaterial_types | Contratotext |
Parâmetroadditional_properties | Contratofalse |
Aliases do método: /v1/videos/generations, /videos, /videos/generations
Ciclo de vida: submit_once_poll_original
GET /v1/videos/{request_id}
GET /v1/videos/generations/{request_id}
GET /v1/videos/{request_id}/content
GET /v1/videos/generations/{request_id}/content
Crie uma única vez e guarde o ID devolvido.
Consulte periodicamente o estado original; conserve todos os recursos concluídos e a respetiva duração.
Tarifários
Cálculo do custo final
As tarifas apresentadas permitem estimar o custo antes da geração. O montante final cobrado é calculado a partir do custo registado para a geração original. A duração medida do resultado e as quantidades previstas não correspondem à quantidade final faturável.
As referências tarifárias não acrescentam opções ao pedido. Os parâmetros suportados constam do método selecionado.
- Modo rápido
- Não especificado Quando o modo rápido está selecionado
- Modo flex
- Não especificado Quando o modo flex está selecionado
- Esforço máximo de raciocínio
- Não especificado Quando o esforço máximo de raciocínio usa o ajuste predefinido (default)
Tarifas estimadas para comparação
Preços por configuração
Associe cada custo às condições apresentadas. Use uma única tarifa para cada conjunto de configurações alternativas.
| Configuração | Tabela de tarifas | Quantidade prevista | Unidade de faturação | Condições de faturação | Custo |
|---|---|---|---|---|---|
| ConfiguraçãoTarifas base por token | Tabela de tarifasTarifa base | Quantidade prevista— | Unidade de faturação— | Condições de faturação— | Custo Entrada · Tokens de entrada · Estimativa apenas para comparação — / 1K tokens Saída · Tokens de saída · Estimativa apenas para comparação — / 1K tokens Entrada · Leitura da cache · Estimativa apenas para comparação — / 1K tokens Entrada · Escrita na cache · Estimativa apenas para comparação — / 1K tokens Entrada · Escrita na cache, 1 hora · Estimativa apenas para comparação — / 1K tokens |
| ConfiguraçãoPreço do vídeo | Tabela de tarifas— | Quantidade prevista— | Unidade de faturaçãopor segundo de vídeo | Condições de faturaçãoresolution: 1080p | Custo Saída · Preço do vídeo · Estimativa apenas para comparação $0.2556 por segundo de vídeo |
| ConfiguraçãoPreço do vídeo | Tabela de tarifas— | Quantidade prevista— | Unidade de faturaçãopor segundo de vídeo | Condições de faturaçãoresolution: 720p | Custo Saída · Preço do vídeo · Estimativa apenas para comparação $0.1976 por segundo de vídeo |
| ConfiguraçãoCusto estimado de geração | Tabela de tarifas— | Quantidade previstaestimativa para uma geração | Unidade de faturação— | Condições de faturação— | Custo Saída · Custo estimado de geração · Estimativa apenas para comparação $0.5928 estimativa antes da geração Esta estimativa não é um encargo adicional nem uma tarifa fixa para a geração concluída. |
O Ailoot reserva um montante estimado antes de um pedido. Após o resultado, liquida o custo final com base na utilização medida. No streaming, a liquidação usa o registo final de utilização. Como funcionam a reserva e a liquidação →
Detalhes da tarifa de referência
As tabelas de referência do modelo não alteram a seleção do método, as cotações ou os custos. Os custos ativos usam as tarifas do método Ailoot selecionado.
Referências de preços das configurações de vídeo
Preços por configuração
Associe cada custo às condições apresentadas. Use uma única tarifa para cada conjunto de configurações alternativas.
| Configuração | Condições de faturação | Custo |
|---|---|---|
| ConfiguraçãoPreço do vídeo | Condições de faturaçãoresolution: 720p | Custo Saída · Preço do vídeo $0.1976 por segundo de vídeo Referência de preço publicada para a configuração apresentada. Os montantes finais cobrados seguem a configuração efetivamente faturada. |
| ConfiguraçãoPreço do vídeo | Condições de faturaçãoresolution: 1080p | Custo Saída · Preço do vídeo $0.2556 por segundo de vídeo Referência de preço publicada para a configuração apresentada. Os montantes finais cobrados seguem a configuração efetivamente faturada. |
Exemplos de pedidos
Ailoot Ultra · Vídeo
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
python3 - <<'PY_REQUEST'
import json,os
from pathlib import Path
p=json.loads('{"model": "alibaba/happyhorse-1.1", "prompt": "A cat in a spacesuit walking on the Moon", "duration": 3, "resolution": "720p", "aspect_ratio": "16:9"}')
Path("request.json").write_text(json.dumps(p,ensure_ascii=False))
PY_REQUEST
curl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/videos \
-H "Authorization: Bearer $AILOOT_API_KEY" -H 'Content-Type: application/json' \
--data-binary @request.json -D response-headers.txt -o result.json
Receber e guardar os resultados
Ailoot Ultra · Vídeo
mp4
GET /v1/videos/{request_id}GET /v1/videos/generations/{request_id}GET /v1/videos/{request_id}/contentGET /v1/videos/generations/{request_id}/content
Verificar o estado da tarefa
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
python3 - <<'PY_STATUS_URL'
import json
from pathlib import Path
from urllib.parse import quote
r=json.loads(Path('result.json').read_text())
if not isinstance(r.get('id'),str) or not r['id']:raise SystemExit('Keep the original response and headers for reconciliation; no returned ID')
Path('status-url.txt').write_text('https://api.ailoot.ai/v1/videos/'+quote(r['id'],safe=''))
PY_STATUS_URL
curl --fail-with-body --silent --show-error "$(cat status-url.txt)" \
-H "Authorization: Bearer $AILOOT_API_KEY" -D status-headers.txt -o status.json
python3 - <<'PY_RESULT'
import json
from pathlib import Path
r=json.loads(Path('status.json').read_text())
print(json.dumps(r,ensure_ascii=False,indent=2))
print('Keep the complete JSON and response headers; do not resubmit an unknown creation.')
PY_RESULT
Outras leituras de conteúdo
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
export AILOOT_API_KEY
python3 - <<'PY_ASSETS'
import json,os,subprocess
from pathlib import Path
from urllib.parse import urljoin,urlsplit
r=json.loads(Path('status.json').read_text())
if r.get('status')!='completed':raise SystemExit('Keep the original ID and read its status; never recreate an unknown job')
if not isinstance(r.get('data'),list) or not r['data']:raise SystemExit('Keep the complete original status; no completed outputs supplied')
urls=[]
for i,u in enumerate(r.get('data',[])):
if not isinstance(u,str):raise SystemExit('Keep the original response; unexpected asset shape')
urls.append((str(i),u))
for label,path in urls:
u=urljoin('https://api.ailoot.ai',path);z=urlsplit(u)
if z.scheme!='https' or z.netloc!='api.ailoot.ai' or z.username or z.password:raise SystemExit('Use the actual returned Ailoot owned content URL')
target=Path('owned-'+label+'.bin')
subprocess.run(['curl','--fail-with-body','--silent','--show-error',u,'-H','Authorization: Bearer '+os.environ['AILOOT_API_KEY'],'-D',str(target)+'.headers','-o',str(target)],check=True)
print('All returned owned URLs saved; complete metadata, timing and usage remain in the JSON.')
PY_ASSETS
Guardar todos os resultados concluídos
Guarde cada vídeo concluído ou ficheiro devolvido; obtenha cada URL de recurso efetivamente devolvido.
data[] concluído contém todos os URLs assinados para conteúdos pertencentes ao utilizador. Obtenha cada URL devolvido ou utilize o endpoint de conteúdo com index definido como um índice real de saída. Uma tarefa original falhada pode devolver charge_pending_check; consulte essa tarefa original em vez de a criar novamente.
Se for necessário verificar a resposta original
Consulte a tarefa original existente; nunca volte a enviar um pedido cujo envio tenha resultado desconhecido.
Número máximo de saídas: 4.
Campos da resposta
| Campo | Tipo | Significado |
|---|---|---|
Campoid | Tipostring | Significado— |
Campoobject | Tipostring | Significado— |
Campomodel | Tipostring | Significado— |
Campostatus | Tipostring | Significado— |
Campodata[] | Tiposigned content URL | Significado— |
Campocharge_pending_check | Tipoboolean | Significado— |
Campoerror.code | Tipostring | Significado— |
Campoerror.message | Tipostring | Significado— |
Campooperation_id | Tipostring | SignificadoResposta HTTP503 result_pending_check do estado/conteúdo original: o mesmo ID público da operação de vídeo original como id. |
Campoerror.type | Tipostring | Significadoserver_error na resposta HTTP503 result_pending_check. |
Erros e passos seguintes
| Resposta | Condição | Passo seguinte |
|---|---|---|
Resposta400 · invalid_request_error | CondiçãoA leitura do corpo bruto do pedido falha antes da análise do perfil de vídeo | Passo seguinteConserve a resposta devolvida e corrija o corpo ilegível do pedido. |
Resposta422 · price_unavailable | CondiçãoA análise do perfil exato de vídeo falha ou o perfil completo analisado não tem uma ficha exata de preços pronta | Passo seguinteConserve a resposta; utilize o perfil completo e exato autorizado e a respetiva ficha publicada. Este ramo é executado antes de qualquer envio ao fornecedor. |
Resposta409 · video_not_ready | CondiçãoO conteúdo do resultado original ainda não está disponível | Passo seguinteConsulte periodicamente o ID original devolvido e respeite Retry-After. |
Respostaserver_error | CondiçãoA resposta devolvida indica que a operação ou o resultado requer verificação | Passo seguinteGuarde o ID original da operação/tarefa devolvido, os cabeçalhos do pedido e a resposta; continue a consultar essa operação original através das consultas suportadas. Não volte a enviar o pedido de criação. |
Resposta503 · result_pending_check | CondiçãoGET do estado/conteúdo original: a tarefa não está publicada, a tarefa original não está failed/cancelled/expired e o estado local é unknown ou o estado da tarefa original é completed. | Passo seguinteConserve id e operation_id originais (o mesmo ID público de vídeo), a resposta e os cabeçalhos; consulte apenas o estado/conteúdo original. Nunca envie um novo pedido de geração. |
Aliases
Aliases do modelo
Ailoot Ultra alibaba/happyhorse-1.1
Aliases dos caminhos dos métodos
/v1/videos/generations, /videos, /videos/generations
IDs de chamada relacionados
FAQ · Alibaba: HappyHorse 1.1
- Que entradas e resultados estão disponíveis?
POST /v1/videos·alibaba/happyhorse-1.1:text→video- Que campos utiliza o pedido?
POST /v1/videos·alibaba/happyhorse-1.1:model,prompt,duration,resolution,aspect_ratio- Que limites se aplicam?
POST /v1/videos·alibaba/happyhorse-1.1:duration.minimum:3;duration.maximum:15