ByteDance: Seedance 1.0 Lite Text-to-Video
Seedance 1.0 Lite Text-to-Video transforma uma cena escrita num vídeo sem som. Este seletor Lite específico usa texto em vez de uma imagem de referência, com duração de 2–12 segundos, 24 fps e enquadramento horizontal, vertical, quadrado ou cinematográfico.
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.
Seedance 1.0 Lite Text-to-Video gera um vídeo a partir de uma cena escrita. O seletor exato doubao-seedance-1-0-lite-t2v-250428 é o componente da edição Lite para gerar vídeo a partir de texto. Utilize-o quando o sujeito, o cenário e o movimento puderem ser descritos diretamente: um produto sobre uma mesa, um plano geral de um local ou uma breve ação de uma personagem. A saída é um excerto de vídeo; o perfil 1.0 não gera áudio sincronizado.
Escreva a cena pela ordem em que o espetador a deve ver. Identifique o sujeito e o seu aspeto, o local, a ação, a escala do plano e o movimento da câmara, depois descreva a composição final. Instruções úteis para um produto podem mostrar uma garrafa num pedestal de pedra clara, luz solar a atravessar o rótulo e uma aproximação lenta à tampa. Estas são instruções para uma cena nova, não uma afirmação de que o modelo reproduz uma fotografia fornecida do produto. Mantenha a ação visível adequada à duração selecionada do vídeo.
Este seletor de vídeo a partir de texto é distinto do seletor Lite de vídeo a partir de imagem, com uma designação separada. O conteúdo é fornecido como elemento de texto no array content. Uma frase pode descrever uma pessoa, um objeto ou um estilo, mas não anexa uma imagem de referência nem estabelece uma identidade visual exata a partir de um ficheiro não visto. Para uma cena cuja composição inicial deve vir de uma imagem existente, escolha um perfil que aceite imagens em vez de presumir que a identidade Lite t2v muda de modo quando se acrescenta um campo multimédia.
O intervalo de duração documentado para 1.0 é de dois a doze segundos, com cinco segundos por predefinição e uma frequência fixa de 24 fps. Lite oferece níveis de resolução de 480p, 720p e 1080p, com 720p como predefinição documentada. Os formatos fixos incluem proporções de 16:9, 4:3, 1:1, 3:4, 9:16 e 21:9. Escolha o enquadramento para o destino antes da geração: vertical para uma apresentação vertical, quadrado para um painel compacto de produto ou horizontal para uma cena ampla. Os níveis de resolução e as proporções descrevem a saída pedida; inspecione o vídeo descarregado para verificar as suas dimensões reais em píxeis e o enquadramento.
O pedido expõe controlos de seed, marca de água e câmara. O seed é um inteiro de -1 a 2^32-1, com -1 a selecionar aleatoriedade. Um pedido de câmara fixa acrescenta uma instrução de câmara fixa e a documentação indica explicitamente que o efeito não é garantido. Mantenha a direção da câmara coerente entre a cena escrita e o controlo separado. As instruções de parâmetros inseridas no texto têm precedência sobre os parâmetros opcionais separados, por isso evite instruções incompatíveis de duração, resolução ou enquadramento nos dois locais.
A utilização é medida em tokens de vídeo: largura da saída × altura da saída × frequência de fotogramas × duração da saída / 1024. A tarefa concluída comunica esta quantidade como usage.completion_tokens. Guarde a utilização comunicada com o vídeo concluído e as definições pedidas.
A geração é assíncrona. O envio devolve um identificador de tarefa e a consulta da tarefa fornece o estado de processamento e, após o sucesso, o URL do vídeo em content.video_url. Guarde o identificador enquanto a tarefa está em fila ou em execução e guarde o vídeo concluído para a revisão seguinte. O período documentado de retenção dos ficheiros gerados é de sete dias. O pedido também tem um intervalo de expiração, medido desde a criação da tarefa, após o qual uma tarefa por concluir passa ao estado expired; a predefinição documentada é de 172 800 segundos, com valores de 3 600 a 259 200 segundos.
Reveja todo o vídeo face às instruções: se aparece o sujeito pretendido, se a ação ocorre pela ordem correta, se a câmara segue a direção pedida e se o fotograma final é utilizável. Altere uma instrução específica para a versão seguinte, mantendo a estrutura da cena que resultou. Para uma série de planos, guarde cada prompt, as definições pedidas e o vídeo concluído, para que a cena seguinte possa ser planeada a partir do resultado real.
Ailoot Ultra · Vídeo POST /v1/videos doubao-seedance-1-0-lite-t2v-250428
doubao-seedance-1-0-lite-t2v-250428
doubao-seedance-1-0-lite-t2v-250428Introdução
Seedance 1.0 Lite Text-to-Video transforma uma cena escrita num vídeo sem som. Este seletor Lite específico usa texto em vez de uma imagem de referência, com duração de 2–12 segundos, 24 fps e enquadramento horizontal, vertical, quadrado ou cinematográfico.
- 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
| Campo | Tipo | Requisito | Valores e limites | Predefinição |
|---|---|---|---|---|
Campomodel | Tipostring | RequisitoObrigatório | Valores e limites doubao-seedance-1-0-lite-t2v-250428 | Predefinição— |
Campocontent | Tipoarray | RequisitoObrigatório | Valores e limites Condições: Objetos nativos de texto/conteúdo multimédia; a matriz exterior não pode estar vazia. Este construtor genérico da Ailoot não valida os tipos dos nós internos. | Predefinição— |
Campoduration | Tipointeger | RequisitoOpcional | Valores e limites Mínimo: 2 Máximo: 12 Condições: Esquema principal 1.x: 2–12; a descrição comum posterior indica 1.5 como 4–12 ou -1. O exemplo utiliza 5, documentado em ambas as fontes. | Predefinição5 |
Camporesolution | Tipostring | RequisitoOpcional | Valores e limites 480p, 720p, 1080p Condições: Enum comum; 1080p excluído com imagens de referência e 1.5. A descrição incorporada de pro enumera 480p/1080p, enquanto o enum de nível superior inclui 720p; não existe uma garantia esclarecida de pro em 720p. | Predefinição720p |
Camporatio | Tipostring | RequisitoOpcional | Valores e limites 16:9, 4:3, 1:1, 3:4, 9:16, 21:9, adaptive Condições: Valores predefinidos dependentes da cena/modelo; a documentação da entrada de imagem recomenda adaptive. | Predefinição— |
Camposervice_tier | Tipostring | RequisitoOpcional | Valores e limites default, flex Condições: default=online, flex=offline; escolha antes da criação. | Predefiniçãodefault |
Camposeed | Tipointeger | RequisitoObrigatório | Valores e limites Mínimo: -1 Máximo: 4 294 967 295 | Predefinição-1 |
Campocamerafixed | Tipoboolean | RequisitoObrigatório | Valores e limites Condições: Obrigatório pela Ailoot; o controlo da câmara com imagem de referência está documentado como não suportado e o efeito não é garantido. | Predefiniçãofalse |
Campowatermark | Tipoboolean | RequisitoObrigatório | Valores e limites | Predefiniçãofalse |
Campoexecution_expires_after | Tipointeger | RequisitoObrigatório | Valores e limites Mínimo: 3600 Máximo: 259 200 Unidade: segundos | Predefinição172 800 |
Combinações de materiais de entrada
Parâmetros e ciclo de vida do método
| Parâmetro | Contrato |
|---|---|
Parâmetrocontent_type | Contratoapplication/json |
Parâmetrorequired | Contratocamerafixed, content, execution_expires_after, model, seed, watermark |
Parâmetrooptional | Contratoduration, resolution, ratio, service_tier |
Parâmetromaterial_types | Contratotext |
Parâmetroadditional_properties | Contratotrue |
Parâmetrovalidation_scope | ContratoA Ailoot verifica os tipos dos campos obrigatórios e se model e a matriz content não estão vazios. Os outros campos do pedido são preservados para o modelo selecionado. |
Aliases do método: /v1/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 conserve o id/polling_url público devolvido.
Consulte periodicamente a tarefa original; transfira o content.video_url real pertencente ao utilizador após succeeded.
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 | Custo |
|---|---|---|---|---|
| ConfiguraçãoTarifas base por token | Tabela de tarifasTarifa base | Quantidade prevista— | Unidade 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çãoUltra | Tabela de tarifas— | Quantidade prevista— | Unidade de faturaçãopor 1K tokens de vídeo | Custo Saída · Estimativa apenas para comparação $0.003 por 1K tokens de vídeo |
| ConfiguraçãoCusto estimado de geração | Tabela de tarifas— | Quantidade previstaestimativa para uma geração | Unidade de faturação— | Custo Saída · Custo estimado de geração · Estimativa apenas para comparação $0.144 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 →
Exemplos de pedidos
Ailoot Ultra · Vídeo
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
cat > request.json <<'JSON_REQUEST'
{"model":"doubao-seedance-1-0-lite-t2v-250428","content":[{"type":"text","text":"女孩抱着狐狸,女孩睁开眼,温柔地看向镜头,狐狸友善地抱着,镜头缓缓拉出,女孩的头发被风吹动"}],"resolution":"480p","ratio":"1:1","duration":5,"service_tier":"default","seed":-1,"camerafixed":false,"watermark":false,"execution_expires_after":172800}
JSON_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
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
python3 - <<'PY_POLL'
import json
from pathlib import Path
from urllib.parse import quote,urljoin,urlsplit
r=json.loads(Path("result.json").read_text())
i=r.get("id")
if not isinstance(i,str) or not i.startswith("native302_"):raise SystemExit("Keep original response/headers/id; do not resubmit creation.")
u=urljoin("https://api.ailoot.ai",r.get("polling_url") or "/v1/videos/"+quote(i,safe=""))
p=urlsplit(u)
if p.scheme!="https" or p.netloc!="api.ailoot.ai" or not p.path.startswith("/v1/videos/"):raise SystemExit("Use actual Ailoot lookup path.")
Path("poll-url.txt").write_text(u)
PY_POLL
curl --fail-with-body --silent --show-error "$(cat poll-url.txt)" -H "Authorization: Bearer $AILOOT_API_KEY" -D status-headers.txt -o status.json
set -eu
python3 - <<'PY_ASSETS'
import json
from pathlib import Path
from urllib.parse import urlsplit
r=json.loads(Path("status.json").read_text())
if r.get("status")!="succeeded":raise SystemExit("Poll same original job until an owned result is returned.")
u=r.get("content",{}).get("video_url")
urls=[u] if isinstance(u,str) else u
if not isinstance(urls,list) or not urls:raise SystemExit("No completed video URL.")
for u in urls:
if not isinstance(u,str):raise SystemExit("Invalid returned URL.")
p=urlsplit(u)
if p.scheme!="https" or p.netloc!="api.ailoot.ai" or not p.path.startswith("/v1/media/assets/") or not p.path.endswith("/content") or not p.query:raise SystemExit("Wait for actual Ailoot-owned signed result.")
Path("asset-urls.txt").write_text("\n".join(urls)+"\n")
PY_ASSETS
index=0
while IFS= read -r asset_url; do
curl --fail-with-body --silent --show-error "$asset_url" -o "video-${index}.bin"
index=$((index + 1))
done < asset-urls.txt
Receber e guardar os resultados
Ailoot Ultra · Vídeo
JSON nativo com id/polling_url público. Após a publicação, content.video_url contém URL(s) assinados pertencentes à Ailoot; antes da publicação, os URLs das saídas selecionadas ficam vazios.
GET /v1/videos/{request_id}GET /v1/videos/generations/{request_id}GET /v1/videos/{request_id}/contentGET /v1/videos/generations/{request_id}/content
Guardar todos os resultados concluídos
Guarde cada vídeo concluído ou ficheiro devolvido; obtenha cada URL de recurso efetivamente devolvido.
Conserve todos os URL reais em content.video_url; index tem de identificar uma saída real devolvida.
Se for necessário verificar a resposta original
Conserve a resposta/cabeçalhos/id originais e consulte periodicamente essa operação; nunca volte a enviar uma criação de resultado desconhecido.
Campos da resposta
| Campo | Tipo |
|---|---|
Campoid | Tipostring |
Campoprovider_task_id | Tipostring |
Campopolling_url | Tipostring |
Campostatus | Tipostring when supplied |
Campocontent.video_url | Tipostring|string[] |
Campousage | Tipoobject when supplied |
Erros e passos seguintes
| Resposta | Condição | Passo seguinte |
|---|---|---|
Resposta400 · invalid_request_error | CondiçãoJSON/model/tipos de campos obrigatórios ou índice de conteúdo inválido. | Passo seguinte |
Resposta401 · authentication_error | CondiçãoChave API da Ailoot inválida. | Passo seguinte |
Resposta404 · not_found_error | CondiçãoA tarefa/saída não existe ou não pertence ao mesmo utilizador/chave API/grupo. | Passo seguinte |
Resposta502 · result_pending_check | CondiçãoEnvio/estado original incompleto; conserve o ID original, sem voltar a enviar. | Passo seguinte |
Resposta503 · result_pending_check | CondiçãoO conteúdo multimédia/a rota/a liquidação original está em verificação; continue a operação original. | Passo seguinte |
Aliases
Aliases do modelo
Ailoot Ultra doubao-seedance-1-0-lite-t2v-250428
Aliases dos caminhos dos métodos
/v1/videos/generations
IDs de chamada relacionados
FAQ · ByteDance: Seedance 1.0 Lite Text-to-Video
- Que entradas e resultados estão disponíveis?
POST /v1/videos·doubao-seedance-1-0-lite-t2v-250428:text→video- Que campos utiliza o pedido?
POST /v1/videos·doubao-seedance-1-0-lite-t2v-250428:model,content,duration,resolution,ratio,service_tier,seed,camerafixed,watermark,execution_expires_after- Que limites se aplicam?
POST /v1/videos·doubao-seedance-1-0-lite-t2v-250428:duration.minimum:2;duration.maximum:12;seed.minimum:-1;seed.maximum:4294967295;execution_expires_after.minimum:3600;execution_expires_after.maximum:259200