Você criou o prompt de vídeo de IA perfeito. A cena é cinematográfica, o trabalho de câmera é intencional e os detalhes visuais são precisos. Você o envia para a API do Seedance 2 — e ele é rejeitado. Nenhuma explicação clara. Nenhuma violação específica de política. Apenas um erro genérico de "política de conteúdo".
Isso acontece em 37% das solicitações da API do Seedance 2, de acordo com dados de uso das principais plataformas que hospedam o serviço. A parte frustrante? A maioria desses prompts rejeitados não viola, de fato, as políticas de conteúdo da ByteDance. Eles acionam um falso positivo no filtro de conteúdo baseado em LLM que avalia cada solicitação antes do início da geração do vídeo.
Ao contrário dos filtros tradicionais baseados em palavras-chave, o Seedance 2 usa um modelo de linguagem para interpretar a intenção e o contexto do seu prompt completo. Isso cria novos desafios para desenvolvedores que constroem aplicativos sobre a API: você não pode simplesmente manter uma lista de bloqueio de palavras proibidas. Você precisa entender como o filtro lê seus prompts como cenas.
Este guia detalha os padrões por trás dessa taxa de rejeição de 37% — e mostra como projetar prompts que passem na moderação de conteúdo na primeira tentativa. Cobriremos a arquitetura técnica do sistema de filtro, estratégias comprovadas para construir contexto seguro e como testar sistematicamente seus prompts usando ferramentas de desenvolvimento de API.
Compreendendo o Sistema de Filtro de Conteúdo do Seedance 2
Como o Filtro Realmente Funciona
A moderação de conteúdo do Seedance 2 não busca por palavras-chave. Ele usa um modelo de linguagem grande para ler seu prompt e avaliar o contexto da cena que você está descrevendo.
O modelo mais recente da ByteDance, "Seeddance 2.0", está se tornando um assunto quente no exterior como "insano".
— チャエン | デジライズ CEO《重要AIニュースを毎日最速で発信⚡️》 (@masahirochaen) 10 de fevereiro de 2026
Ele pode fazer qualquer coisa... é um caos de várias formas.
Exemplo de prompt:
"O personagem da Figura 1 luta contra o personagem da Figura 2 no Campeonato Mundial de Artes Marciais"
※Como isso violaria os direitos autorais, mesmo que seja liberado, você não deve criar vídeos como os seguintes:pic.twitter.com/zkdsNUdSgv
Isso muda tudo sobre engenharia de prompt.
O filtro interpreta:
- Intenção: O que a cena está tentando retratar?
- Contexto: Qual é a estrutura criativa ou narrativa que envolve a ação?
- Ambiguidade: Existem várias maneiras de interpretar este prompt?
Uma palavra como "rifle" não sinalizará automaticamente seu prompt. Mas "uma pessoa atira com um rifle" sem contexto circundante sim — porque o filtro não tem nada para trabalhar, exceto uma ação violenta isolada.
O objetivo não é remover palavras. O objetivo é construir um contexto que seja claramente não prejudicial.
O Processo de Avaliação do LLM
Quando você envia um prompt via API do Seedance 2, é isso que acontece:
- Análise de Imagem (se entrada de imagem fornecida): A detecção facial é executada primeiro; rostos fotográficos são rejeitados imediatamente.
- Análise do Prompt: O LLM lê seu prompt de texto completo como uma única cena.
- Classificação de Intenção: O modelo avalia se a cena retrata conteúdo proibido.
- Avaliação de Contexto: O modelo verifica se há enquadramento cinematográfico/criativo presente.
- Decisão Final: Aprova → a geração do vídeo começa; Reprova → a API retorna erro 400.
Esse processo em várias etapas significa que você pode falhar em diferentes pontos de verificação. Entender onde seu prompt falha ajuda a corrigi-lo.
Categorias Atuais de Conteúdo Proibido
Com base nas políticas atualizadas da ByteDance (fevereiro de 2026):
| Categoria | Exemplos | Status |
|---|---|---|
| Rostos humanos reais | Fotos de pessoas identificáveis | Bloqueado estritamente |
| Semelhanças com celebridades | Atores nomeados, figuras públicas | Bloqueado |
| Personagens protegidos por direitos autorais | Disney, Marvel, etc. | Bloqueado |
| Violência sem contexto | Ações violentas isoladas | Alto escrutínio |
| Menores em qualquer contexto | Descritores de idade + qualquer ação | Sensibilidade máxima |
| Conteúdo político | Políticos nomeados, bandeiras | Bloqueado |
| Conteúdo explícito | Representações sexuais ou gráficas | Bloqueado |
A principal percepção: o contexto importa mais do que o conteúdo. Uma cena de filme de guerra historicamente precisa pode passar; uma arma isolada sem contexto não pode.
Testando a API Seedance 2 com Apidog
Antes de mergulhar nas estratégias de prompt, vamos configurar testes sistemáticos. Ao trabalhar com filtros de conteúdo, você precisa testar variações de prompt em escala e acompanhar o que passa versus o que falha.

Configurando a API Seedance 2 no Apidog
Passo 1: Criar um Novo Projeto
- Abra o Apidog e crie um projeto chamado "Seedance 2 API Testing"
- Isso mantém todos os seus endpoints de geração de vídeo organizados

Passo 2: Configurar Autenticação
A API Seedance 2 (acessada via plataformas como WaveSpeed, fal.ai ou Replicate) normalmente usa autenticação por token Bearer:
- Navegue até as Configurações de Ambiente no Apidog
- Adicione a variável de ambiente:
- Nome:
SEEDANCE_API_KEY - Valor: Seu token de API
- Marque como "Sensível"

Passo 3: Criar Endpoint de Geração de Vídeo
Adicione uma nova solicitação POST com estas configurações:
- URL:
https://api.fal.ai/v1/seedance/video(ou o endpoint do seu provedor) - Headers:
Authorization:Bearer {{SEEDANCE_API_KEY}}Content-Type:application/json
Passo 4: Construir uma Coleção de Prompts de Teste
Crie várias solicitações salvas para testar variações de prompt:
{
"prompt": "tomada cinematográfica ampla, grão de filme 35mm, anamórfico 2.39:1, um cavaleiro a cavalo em uma vasta paisagem nevada, luz difusa nublada, tons dessaturados e suaves",
"duration": 10,
"aspect_ratio": "16:9",
"quality": "high"
}
Com o Apidog, você pode:
- Testar variações lado a lado: Clone solicitações e modifique uma variável por vez.
- Rastrear padrões de rejeição: Salve solicitações falhas com códigos de erro.
- Automatizar testes de regressão: Verifique se prompts que antes passavam ainda funcionam após atualizações da API.
- Gerar código cliente: Exporte prompts funcionais como Python, JavaScript ou cURL.
Experimente o Apidog gratuitamente para construir seu fluxo de trabalho de teste de prompt do Seedance 2.
Estratégia 1: Construa um Contexto Seguro em Torno de Elementos Sensíveis
Não remova elementos sensíveis de sua cena. Não amenize momentos dramáticos. Em vez disso, cerque-os com um contexto que torne a intenção inconfundível.
O Problema: Ações Isoladas
O LLM lê seu prompt inteiro como uma cena unificada. Se a cena geral for lida como uma jornada pacífica, um momento cultural ou uma narrativa cinematográfica — uma ação dentro dela não a quebrará.
❌ Prompt Falho:
uma pessoa atira com um rifle para o céu
Por que falha:
- Sem contexto de cena
- Sem enquadramento criativo
- Sem propósito para a ação
- Intenção ambígua
O filtro assume cautela porque não tem mais nada para avaliar.
✅ Prompt Aprovado:
um cavaleiro em um cavalo galopando por uma vasta paisagem de montanhas nevadas, poncho esvoaçando ao vento, o cavaleiro levanta um rifle antigo sobre a cabeça e dispara uma vez para o céu cinzento como um sinal, o som ecoando pelo vale vazio, cinematográfico, grão de filme 35mm, anamórfico 2.39:1
Por que passa:
- Contexto de jornada cinematográfica
- Propósito claro (sinalização)
- Cenário cultural (poncho, rifle antigo)
- Estética de filme ancora a intenção criativa
- Enquadramento de tomada ampla de estabelecimento
Mesma ação. Contexto diferente. O LLM lê a cena completa e entende que você está descrevendo uma tomada de filme, não retratando violência no mundo real.
O Princípio: Não simplifique seu prompt — construa-o. Dê ao filtro contexto suficiente para entender o que você está criando.
Estratégia 2: Descreva Personagens por Função, Não por Idade
Essa estratégia se aplica ao usar entradas de imagem como quadros de referência. Quando o Seedance 2 já tem um visual do seu personagem, você não precisa descrever quem ele é — a imagem faz isso. Seu prompt descreve o que eles fazem.
O Filtro de Proteção de Menores
O Seedance 2 possui filtros de proteção de menores extremamente rigorosos. No momento em que o LLM interpreta um personagem como criança, o prompt inteiro é examinado com sensibilidade máxima — mesmo que a imagem tivesse passado por si só.
Palavras que acionam alta sensibilidade:
- "menino", "menina", "criança", "garoto", "jovem"
- "adolescente", "juventude", "juvenil"
- Números de idade abaixo de 18
- "criança pequena", "pequeno"
A Solução: Descrições Baseadas em Função
Refira-se ao personagem pela sua função na cena. A imagem já carrega a identidade visual.
❌ Prompt Falho (com entrada de imagem):
um jovem cavalgando por montanhas nevadas
Por que falha:
- "jovem" aciona escrutínio máximo
- Todo o resto (cavalo, montanhas, neve) é avaliado através da lente de segurança de menores
- Mesmo atividades inocentes se tornam suspeitas
✅ Prompt Aprovado (com a mesma imagem):
um cavaleiro em um cavalo cinza se movendo por montanhas nevadas, vestindo um poncho listrado colorido e botas de couro, uma alforje desgastada no cavalo
Por que passa:
- A imagem mostra quem é o personagem
- O prompt descreve a ação e o ambiente
- O filtro lê "cavaleiro" e avalia normalmente
- Nenhum escrutínio baseado na idade
Mais Exemplos
❌ Falha:
uma criança sozinha na selva
✅ Passa:
uma pequena figura envolta em um manto de lã, em uma vasta paisagem montanhosa, céu nublado, tomada ampla de estabelecimento
O Princípio: Ao usar entradas de imagem, deixe a imagem carregar a identidade. Seu prompt descreve a ação e a cena — nunca a idade do personagem.
Estratégia 3: Cada Frase Deve Construir Contexto
A Estratégia 1 diz construa contexto. Esta estratégia diz não o desperdice.
O LLM avalia seu prompt inteiro como uma cena. Cada frase ou fortalece o contexto seguro que você está construindo — ou introduz ruído que o filtro pode interpretar mal.
O Que Cortar
Esses elementos não ajudam a passar na moderação:
- História de fundo: "Após anos de busca..."
- Motivação do personagem: "impulsionado pela vingança..."
- Narração emocional: "sentindo-se perdido e sozinho..."
- Referências políticas: "lutando pela liberdade..."
- Pensamentos internos: "imaginando se vão sobreviver..."
O filtro não se importa por que seu personagem está nas montanhas. Ele se importa com o que a câmera vê.
O Princípio: Seja denso, não longo. Cada frase deve descrever o que a câmera vê ou ancorar a cena como criativa/cinematográfica. Se uma frase não faz nenhum dos dois, corte-a.
Prompts JSON Estruturados
Uma maneira de impor essa disciplina é estruturar seu prompt como JSON. A API do Seedance 2 aceita prompts formatados em JSON, e separar seu mundo visual de sua descrição de tomada mantém tudo organizado:
{
"visual_world": {
"light": "luz de neve nublada e plana, sem sol direto, sombras suaves e difusas",
"color": "naturais suaves dessaturados, brancos e cinzas frios, tons quentes apenas na pele e tecido",
"film": "grão de 35mm, lentes Cooke vintage, halo suave nos destaques, anamórfico 2.39:1",
"atmosphere": "silenciosa, vasta, isolada"
},
"sequence": {
"duration": "10 segundos",
"pacing": "começa parado, constrói para cortes rápidos, termina em quietude repentina",
"shots": {
"shot_1": {
"duration": "3 segundos",
"camera": "estática, travada, sem movimento",
"action": "Cavaleiro com poncho listrado colorido sentado em cavalo cinza ao lado de um riacho gelado, cavalo bebendo, picos nevados ao fundo, céu nublado, completamente parado",
"transition": "CORTE SECO"
},
"shot_2": {
"duration": "3 segundos",
"camera": "tomada ampla por trás, ângulo baixo",
"action": "Cavaleiro em cavalo cinza galopando rápido por neve profunda, neve levantando, pinheiros escuros ladeando ambos os lados",
"transition": "CORTE SECO"
},
"shot_3": {
"duration": "4 segundos",
"camera": "composição ampla e imóvel, travada",
"action": "Campo de neve plano e aberto, um lobo cinza parado à esquerda virado para a direita, o cavaleiro no cavalo parado à direita virado para a esquerda, ambos imóveis, vapor da respiração subindo, quietude total"
}
}
}
}
Cada campo tem um propósito. Nada é desperdiçado. O mundo visual estabelece o contexto cinematográfico uma vez, e cada tomada é uma descrição limpa e focada do que a câmera vê.
Estratégia 4: Entradas de Imagem e Detecção Facial
O Seedance 2 detecta ativamente rostos em imagens carregadas e os rejeita antes mesmo que o LLM avalie seu prompt. Esta é a principal razão de rejeição para solicitações com entradas de imagem.
O Sistema de Detecção Facial
A ByteDance implementou uma detecção facial rigorosa em resposta a preocupações com deepfake e pressão legal de estúdios de Hollywood. O sistema:
- Analisa imagens carregadas em busca de características faciais.
- Detecta rostos mesmo de perfil ou parcialmente obscurecidos.
- Rejeita rostos fotográficos imediatamente.
- Permite rostos ilustrados/estilizados com tolerância variável.
O Que É Bloqueado
❌ Rejeição garantida:
- Rostos fotográficos frontais
- Fotos de perfil mostrando características faciais
- Rostos parcialmente obscurecidos (óculos de sol, máscaras)
- Fotos em grupo com pessoas identificáveis
- Fotos ou capturas de tela de celebridades
✅ Pode passar:
- Parte de trás da cabeça, ombros visíveis
- Tomadas amplas onde a figura ocupa <5% do quadro
- Rostos ilustrados (estilo de arte, não fotos)
- Personagens renderizados em 3D (estilizados, não fotorrealistas)
- Silhuetas sem detalhes faciais
Estratégias de Correção
Opção 1: Cortar para Remover Rostos
Mostre o personagem por trás:
- Parte de trás da cabeça
- Ombros
- Detalhes de roupa
- Ambiente ao redor
Opção 2: Usar Tomadas Amplas
Afaste a câmera para que as características faciais
não sejam detectáveis pelo algoritmo:
- Paisagem com figura pequena
- Ênfase ambiental
- Escala e atmosfera
Opção 3: Substituir por Ilustração
Converta a referência fotográfica para um estilo ilustrado primeiro:
- Use uma ferramenta de IA de imagem para imagem
- Aplique filtros artísticos pesados
- Remova características biométricas fotorrealistas
Se sua imagem continua sendo rejeitada, o detector facial está sendo acionado antes que o LLM leia seu prompt. Corrija a imagem primeiro e depois reenvie.
Estratégia 5: Use a Linguagem Cinematográfica como Âncora de Contexto
Quando seu prompt se parece com uma direção de filme — com ângulos de câmera, especificações de lente, descrições de iluminação e proporções de aspecto — o LLM interpreta o prompt inteiro como um contexto de produção criativa/cinematográfica.
Este contexto é inerentemente mais seguro. Filmes retratam todos os tipos de cenas dramáticas. O filtro é mais permissivo quando lê um prompt como uma descrição de cena em vez de um cenário do mundo real.
Vocabulário Cinematográfico Que Funciona
Ângulos e movimentos de câmera:
- "tomada ampla de estabelecimento"
- "câmera travada, sem movimento"
- "slow dolly push"
- "tomada aérea de drone descendo"
- "plano sequência seguindo por trás"
Lente e formato:
- "grão de filme 35mm"
- "anamórfico 2.39:1"
- "lentes Cooke vintage"
- "profundidade de campo rasa, f/2.8"
- "compressão de lente longa, 85mm"
Descritores de iluminação:
- "luz difusa nublada"
- "contraluz da hora dourada"
- "luz suave da janela, sem sombras duras"
- "luzes práticas de tungstênio"
- "iluminação motivada pela fonte de fogo"
Estética de filme:
- "naturais suaves dessaturados"
- "halo sutil nos destaques"
- "textura de grão de filme sutil"
- "graduação de cor vintage"
Antes e Depois
❌ Sem enquadramento cinematográfico:
uma pessoa a cavalo atira uma arma nas montanhas
✅ Com enquadramento cinematográfico:
tomada cinematográfica ampla, grão de filme 35mm, anamórfico 2.39:1, um cavaleiro a cavalo em uma vasta paisagem nevada, luz difusa nublada, o cavaleiro levanta um rifle e dispara uma vez para o céu como um sinal, fumaça subindo, som ecoando, tons dessaturados e suaves
Mesmo conteúdo. Mas o enquadramento cinematográfico diz ao LLM: isso é um filme, não uma ameaça.
O Princípio: Linguagem de filme = contexto criativo = maior tolerância do filtro.
Exemplos de Implementação da API
Veja como implementar essas estratégias ao chamar a API Seedance 2 programaticamente.
Exemplo Python: Testando Variações de Prompt
import requests
import os
API_KEY = os.environ.get("SEEDANCE_API_KEY")
BASE_URL = "https://api.fal.ai/v1/seedance/video"
def generate_video(prompt, test_name):
"""
Submit uma requisição de geração de vídeo e retorna a resposta.
"""
headers = {
"Authorization": f"Bearer {API_KEY}",
"Content-Type": "application/json"
}
payload = {
"prompt": prompt,
"duration": 10,
"aspect_ratio": "16:9",
"quality": "high"
}
try:
response = requests.post(BASE_URL, json=payload, headers=headers)
if response.status_code == 200:
print(f"✅ {test_name} APROVADO")
return response.json()
else:
print(f"❌ {test_name} REPROVADO: {response.status_code}")
print(f"Erro: {response.json().get('error', 'Erro desconhecido')}")
return None
except Exception as e:
print(f"❌ {test_name} ERRO: {str(e)}")
return None
# Testar diferentes estratégias de prompt
prompts = {
"minimal_context": "pessoa atira com rifle",
"basic_context": "caçador atira com rifle na floresta",
"cinematic_context": """tomada cinematográfica ampla, grão de filme 35mm,
caçador envelhecido em clareira de floresta de outono, levanta rifle vintage
e atira em alvo distante, luz da hora dourada filtrando pelas árvores,
anamórfico 2.39:1, tons de terra suaves"""
}
# Executar testes
results = {}
for test_name, prompt in prompts.items():
results[test_name] = generate_video(prompt, test_name)
# Analisar resultados
passing_rate = sum(1 for r in results.values() if r is not None) / len(results)
print(f"\nTaxa de aprovação: {passing_rate * 100:.1f}%")
Exemplo JavaScript: Prompts JSON Estruturados
const SEEDANCE_API_KEY = process.env.SEEDANCE_API_KEY;
const BASE_URL = 'https://api.fal.ai/v1/seedance/video';
async function generateVideoWithStructure(promptStructure) {
const response = await fetch(BASE_URL, {
method: 'POST',
headers: {
'Authorization': `Bearer ${SEEDANCE_API_KEY}`,
'Content-Type': 'application/json',
},
body: JSON.stringify({
prompt: promptStructure,
duration: 10,
aspect_ratio: '16:9',
}),
});
if (!response.ok) {
const error = await response.json();
console.error('Geração falhou:', error);
return null;
}
return await response.json();
}
// Exemplo de prompt estruturado
const structuredPrompt = {
visual_world: {
light: 'luz de neve nublada e plana, sombras suaves e difusas',
color: 'naturais suaves dessaturados, brancos e cinzas frios',
film: 'grão de 35mm, lentes Cooke vintage, anamórfico 2.39:1',
atmosphere: 'silenciosa, vasta, isolada',
},
sequence: {
duration: '10 segundos',
shots: {
shot_1: {
duration: '5 segundos',
camera: 'tomada ampla estática, travada',
action: 'Cavaleiro com poncho listrado em cavalo cinza ao lado de riacho gelado, cavalo bebendo, picos nevados ao fundo, completamente parado',
},
shot_2: {
duration: '5 segundos',
camera: 'tomada ampla por trás, ângulo baixo',
action: 'Cavaleiro em cavalo galopando por neve profunda, neve levantando, pinheiros escuros ladeando ambos os lados',
},
},
},
};
// Gerar vídeo
const result = await generateVideoWithStructure(structuredPrompt);
console.log('Resultado da geração de vídeo:', result);
Restrições Atuais de Conteúdo (Fevereiro de 2026)
Com base nas políticas atualizadas da ByteDance e relatórios da indústria, aqui estão as restrições atuais:
Estritamente Proibido
- Rostos humanos reais em imagens: Rostos fotográficos rejeitados imediatamente.
- Semelhanças com celebridades: Atores, músicos, figuras públicas nomeados.
- Personagens protegidos por direitos autorais: Disney, Marvel, DC, Nintendo, etc.
- Conteúdo político: Políticos nomeados, bandeiras, símbolos políticos.
- Conteúdo sexual explícito: Nudez, atos sexuais, imagens sugestivas.
- Violência gráfica: Gore, tortura, violência extrema sem contexto.
- Menores em qualquer contexto: Qualquer descritor de idade + qualquer ação.
Alto Escrutínio (Contexto Necessário)
- Armas: Requerem enquadramento cinematográfico claro e propósito.
- Cenas de conflito: Necessitam de estética de filme e ancoragem criativa.
- Figuras isoladas: Melhores em contexto ambiental.
- Ações ambíguas: Esclarecer com descrição da cena.
Mudanças Recentes (2026)
- Reconstrução de voz suspensa: O recurso que recriava vozes a partir de fotos foi removido devido a preocupações com privacidade.
- Verificação obrigatória: Algumas plataformas exigem verificação do usuário antes de acessar recursos avançados.
- Detecção de IP aprimorada: Verificações mais rigorosas para material protegido por direitos autorais.
- Monitoramento em tempo real: Vídeos gerados são rastreados para uso indevido.
Contexto Legal
A ByteDance enfrenta pressão legal contínua de estúdios de Hollywood em relação ao uso não autorizado de material protegido por direitos autorais. A Motion Picture Association afirmou que o Seedance 2.0 se envolveu em "uso não autorizado em larga escala" de obras protegidas por direitos autorais para dados de treinamento.
É provável que essas restrições se tornem ainda mais rigorosas em resposta a desenvolvimentos legais.
Resumo das Melhores Práticas
Faça Isso
✅ Construa contexto cinematográfico: Use terminologia de filme, ângulos de câmera, descrições de iluminação.
✅ Descreva o que a câmera vê: Foque apenas em elementos visuais.
✅ Use descrições de personagens baseadas em função: "cavaleiro", "figura", "viajante" em vez de idades.
✅ Estruture prompts como JSON: Separe o mundo visual das descrições de cena.
✅ Teste sistematicamente: Use Apidog para rastrear o que passa versus o que falha.
✅ Corte rostos das imagens: Mostre personagens por trás ou em tomadas amplas.
✅ Dê propósito claro às ações: "atira com rifle como um sinal" e não apenas "atira com rifle".
✅ Use referências ilustradas: Imagens estilizadas passam mais frequentemente do que fotos.
Não Faça Isso
❌ Não use descritores de idade: "menino", "menina", "criança", "jovem" acionam escrutínio máximo.
❌ Não inclua história de fundo: O filtro não se importa com a motivação do personagem.
❌ Não carregue rostos fotográficos: Rejeição instantânea.
❌ Não deixe ações ambíguas: Dê contexto para cada elemento dramático.
❌ Não ignore o enquadramento do filme: A linguagem cinematográfica cria um contexto seguro.
❌ Não use palavras-chave nuas: "pessoa atira arma" falhará; construa uma cena.
❌ Não faça referência a celebridades: Pessoas nomeadas ou personagens protegidos por direitos autorais são bloqueados.
Pronto para construir fluxos de trabalho confiáveis de geração de vídeo com IA? Baixe o Apidog para testar prompts da API Seedance 2 sistematicamente, depurar erros de moderação de conteúdo e criar integrações prontas para produção com testes visuais e validação automatizada.
