Has creado el prompt de vídeo con IA perfecto. La escena es cinematográfica, el trabajo de cámara es deliberado y los detalles visuales son precisos. Lo envías a la API de Seedance 2, y es rechazado. Sin una explicación clara. Sin una violación de política específica. Solo un error genérico de "política de contenido".
Esto ocurre en el 37% de las solicitudes a la API de Seedance 2, según datos de uso de las principales plataformas que alojan el servicio. ¿La parte frustrante? La mayoría de estos prompts rechazados en realidad no violan las políticas de contenido de ByteDance. Desencadenan un falso positivo en el filtro de contenido basado en LLM que evalúa cada solicitud antes de que comience la generación de vídeo.
A diferencia de los filtros tradicionales basados en palabras clave, Seedance 2 utiliza un modelo de lenguaje para interpretar la intención y el contexto de tu prompt completo. Esto crea nuevos desafíos para los desarrolladores que construyen aplicaciones sobre la API: no puedes simplemente mantener una lista negra de palabras prohibidas. Necesitas entender cómo el filtro lee tus prompts como escenas.
Esta guía desglosa los patrones detrás de esa tasa de rechazo del 37% y te muestra cómo diseñar prompts que pasen la moderación de contenido en el primer intento. Cubriremos la arquitectura técnica del sistema de filtrado, estrategias probadas para construir un contexto seguro y cómo probar sistemáticamente tus prompts usando herramientas de desarrollo de API.
Entendiendo el sistema de filtro de contenido de Seedance 2
Cómo funciona realmente el filtro
La moderación de contenido de Seedance 2 no escanea palabras clave. Utiliza un modelo de lenguaje grande para leer tu prompt y evaluar el contexto de la escena que estás describiendo.
バイトダンスの最新モデル「Seeddance 2.0」が、海外で「狂ってる」と話題に。
— チャエン | デジライズ CEO《重要AIニュースを毎日最速で発信⚡️》 (@masahirochaen) February 10, 2026
何でもできてしまう…いろいろカオス
プロンプト例:
「図1のキャラが世界武術大会で図2のキャラと対戦する」
※著作権違反になるため、解放されても以下のような動画は作ってはいけませんpic.twitter.com/zkdsNUdSgv
Esto cambia todo sobre la ingeniería de prompts.
El filtro interpreta:
- Intención: ¿Qué intenta representar la escena?
- Contexto: ¿Qué marco creativo o narrativo rodea la acción?
- Ambigüedad: ¿Existen múltiples formas de interpretar este prompt?
Una palabra como "rifle" no marcará automáticamente tu prompt. Pero "una persona dispara un rifle" sin contexto circundante sí lo hará, porque el filtro no tiene nada más con qué trabajar, excepto una acción violenta aislada.
El objetivo no es eliminar palabras. El objetivo es construir un contexto que se lea como claramente inofensivo.
El proceso de evaluación del LLM
Cuando envías un prompt a través de la API de Seedance 2, esto es lo que sucede:
- Análisis de imagen (si se proporciona una entrada de imagen): Primero se ejecuta la detección de rostros; los rostros fotográficos son rechazados inmediatamente.
- Análisis del prompt: El LLM lee tu prompt de texto completo como una sola escena.
- Clasificación de intención: El modelo evalúa si la escena representa contenido prohibido.
- Evaluación del contexto: El modelo verifica si hay encuadre cinematográfico/creativo.
- Decisión final: Pasa → comienza la generación de vídeo; Falla → la API devuelve un error 400.
Este proceso de varias etapas significa que puedes fallar en diferentes puntos de control. Entender dónde falla tu prompt te ayuda a corregirlo.
Categorías de contenido prohibido actuales
Según las políticas actualizadas de ByteDance (febrero de 2026):
| Categoría | Ejemplos | Estado |
|---|---|---|
| Rostros humanos reales | Fotos de personas identificables | Estrictamente bloqueado |
| Imágenes de celebridades | Actores nombrados, figuras públicas | Bloqueado |
| Personajes con derechos de autor | Disney, Marvel, etc. | Bloqueado |
| Violencia sin contexto | Acciones violentas aisladas | Alto escrutinio |
| Menores en cualquier contexto | Descriptores de edad + cualquier acción | Máxima sensibilidad |
| Contenido político | Políticos nombrados, banderas | Bloqueado |
| Contenido explícito | Representaciones sexuales o gráficas | Bloqueado |
La clave es: el contexto importa más que el contenido. Una escena de una película de guerra históricamente precisa puede pasar; una pistola aislada sin contexto no puede.
Probando la API de Seedance 2 con Apidog
Antes de sumergirnos en las estrategias de prompts, configuremos las pruebas sistemáticas. Cuando trabajas con filtros de contenido, necesitas probar variaciones de prompts a escala y rastrear lo que pasa versus lo que falla.

Configurando la API de Seedance 2 en Apidog
Paso 1: Crear un nuevo proyecto
- Abre Apidog y crea un proyecto llamado "Seedance 2 API Testing"
- Esto mantiene todos tus puntos finales de generación de vídeo organizados.

Paso 2: Configurar la autenticación
La API de Seedance 2 (a la que se accede a través de plataformas como WaveSpeed, fal.ai o Replicate) suele utilizar autenticación con token Bearer:
- Navega a la Configuración del Entorno en Apidog.
- Agrega la variable de entorno:
- Nombre:
SEEDANCE_API_KEY - Valor: Tu token de API
- Marcar como "Sensible"

Paso 3: Crear el punto final de generación de vídeo
Agrega una nueva solicitud POST con estos ajustes:
- URL:
https://api.fal.ai/v1/seedance/video(o el punto final de tu proveedor) - Cabeceras:
Authorization:Bearer {{SEEDANCE_API_KEY}}Content-Type:application/json
Paso 4: Construir una colección de prompts de prueba
Crea múltiples solicitudes guardadas para probar variaciones de prompts:
{
"prompt": "cinematic wide shot, 35mm film grain, 2.39:1 anamorphic, a rider on horseback in a vast snowy landscape, overcast diffused light, muted desaturated tones",
"duration": 10,
"aspect_ratio": "16:9",
"quality": "high"
}
Con Apidog, puedes:
- Probar variaciones lado a lado: Clona solicitudes y modifica una variable a la vez.
- Rastrear patrones de rechazo: Guarda solicitudes fallidas con códigos de error.
- Automatizar pruebas de regresión: Verifica que los prompts que antes pasaban sigan funcionando después de las actualizaciones de la API.
- Generar código de cliente: Exporta prompts funcionales como Python, JavaScript o cURL.
Prueba Apidog gratis para construir tu flujo de trabajo de prueba de prompts de Seedance 2.
Estrategia 1: Construir un contexto seguro alrededor de elementos sensibles
No elimines elementos sensibles de tu escena. No rebajes los momentos dramáticos. En su lugar, rodéalos de un contexto que haga la intención inconfundible.
El problema: Acciones aisladas
El LLM lee tu prompt completo como una escena unificada. Si la escena general se lee como un viaje pacífico, un momento cultural o una narrativa cinematográfica, una acción dentro de ella no la romperá.
❌ Prompt fallido:
a person fires a rifle into the sky
Por qué falla:
- Sin contexto de escena.
- Sin encuadre creativo.
- Sin propósito para la acción.
- Intención ambigua.
El filtro por defecto es cauteloso porque no tiene nada más que evaluar.
✅ Prompt aprobado:
a rider on a horse galloping through a vast snowy mountain landscape, poncho whipping in the wind, the rider raises an old rifle overhead and fires once into the gray sky as a signal, the sound echoing across the empty valley, cinematic, 35mm film grain, 2.39:1 anamorphic
Por qué pasa:
- Contexto de viaje cinematográfico.
- Propósito claro (señalización).
- Ambientación cultural (poncho, rifle viejo).
- La estética cinematográfica ancla la intención creativa.
- Encuadre de plano general de establecimiento.
Misma acción. Contexto diferente. El LLM lee la escena completa y entiende que estás describiendo una toma de película, no representando violencia del mundo real.
El Principio: No simplifiques tu prompt, elabora sobre él. Dale al filtro suficiente contexto para entender lo que estás creando.
Estrategia 2: Describe a los personajes por su rol, no por su edad
Esta estrategia se aplica cuando se utilizan entradas de imagen como marcos de referencia. Cuando Seedance 2 ya tiene una imagen de tu personaje, no necesitas describir quién es, la imagen lo hace. Tu prompt describe lo que hacen.
El filtro de protección de menores
Seedance 2 tiene filtros de protección de menores extremadamente estrictos. En el momento en que el LLM interpreta un personaje como un niño, el prompt completo es examinado con la máxima sensibilidad, incluso si la imagen hubiera pasado por sí sola.
Palabras que activan alta sensibilidad:
- "boy", "girl", "child", "kid", "young" (chico, chica, niño, joven)
- "teen", "youth", "juvenile" (adolescente, juventud, juvenil)
- Números de edad menores de 18
- "small child", "little one" (niño pequeño, pequeño)
La solución: Descripciones basadas en roles
Refiérete al personaje por su rol en la escena. La imagen ya lleva la identidad visual.
❌ Prompt fallido (con entrada de imagen):
a young boy riding a horse through snowy mountains
Por qué falla:
- "young boy" (niño pequeño) activa el escrutinio máximo.
- Todo lo demás (caballo, montañas, nieve) se evalúa a través del lente de seguridad de menores.
- Incluso actividades inocentes se vuelven sospechosas.
✅ Prompt aprobado (con la misma imagen):
a rider on a gray horse moving through snowy mountains, wearing a colorful striped poncho and leather boots, a worn saddlebag on the horse
Por qué pasa:
- La imagen muestra quién es el personaje.
- El prompt describe la acción y el entorno.
- El filtro lee "rider" (jinete) y evalúa normalmente.
- Sin escrutinio basado en la edad.
Más ejemplos
❌ Falla:
a child standing alone in the wilderness
✅ Pasa:
a small figure wrapped in a wool cloak, standing in a vast mountain landscape, overcast sky, wide establishing shot
El Principio: Cuando uses entradas de imagen, deja que la imagen lleve la identidad. Tu prompt describe la acción y la escena, nunca la edad del personaje.
Estrategia 3: Cada frase debe construir contexto
La Estrategia 1 dice construye contexto. Esta estrategia dice no lo desperdicies.
El LLM evalúa todo tu prompt como una escena. Cada frase o bien refuerza el contexto seguro que estás construyendo, o introduce ruido que el filtro podría malinterpretar.
Qué eliminar
Estos elementos no ayudan a pasar la moderación:
- Historia de fondo: "Después de años de búsqueda..."
- Motivación del personaje: "impulsado por la venganza..."
- Narración emocional: "sintiéndose perdido y solo..."
- Referencias políticas: "luchando por la libertad..."
- Pensamientos internos: "preguntándose si sobrevivirán..."
Al filtro no le importa por qué tu personaje está en las montañas. Le importa lo que ve la cámara.
El Principio: Sé denso, no largo. Cada frase debe describir lo que ve la cámara o anclar la escena como creativa/cinematográfica. Si una frase no hace ninguna de las dos cosas, elimínala.
Prompts JSON estructurados
Una forma de aplicar esta disciplina es estructurar tu prompt como JSON. La API de Seedance 2 acepta prompts con formato JSON, y separar tu mundo visual de la descripción de la toma mantiene todo organizado:
{
"visual_world": {
"light": "overcast flat snow light, no direct sun, soft diffused shadows",
"color": "muted desaturated naturals, cold whites and grays, warm tones only on skin and fabric",
"film": "35mm grain, vintage Cooke lenses, soft halation on highlights, 2.39:1 anamorphic",
"atmosphere": "quiet, vast, isolated"
},
"sequence": {
"duration": "10 seconds",
"pacing": "starts still, builds to rapid cuts, ends in sudden stillness",
"shots": {
"shot_1": {
"duration": "3 seconds",
"camera": "static, locked off, no movement",
"action": "Rider in colorful striped poncho sitting on gray horse beside an icy stream, horse drinking, snowy peaks in background, overcast sky, completely still",
"transition": "SMASH CUT"
},
"shot_2": {
"duration": "3 seconds",
"camera": "wide shot from behind, low angle",
"action": "Rider on gray horse galloping fast through deep snow, snow kicking up, dark pine trees flanking both sides",
"transition": "SMASH CUT"
},
"shot_3": {
"duration": "4 seconds",
"camera": "wide still composition, locked off",
"action": "Flat open snow field, a gray wolf standing still on the left facing right, the rider on the stopped horse on the right facing left, both motionless, breath vapor rising, total stillness"
}
}
}
}
Cada campo tiene un propósito. Nada se desperdicia. El mundo visual establece el contexto cinematográfico una vez, y cada toma es una descripción limpia y enfocada de lo que ve la cámara.
Estrategia 4: Entradas de imagen y detección de rostros
Seedance 2 detecta activamente rostros en las imágenes subidas y las rechaza antes de que el LLM siquiera evalúe tu prompt. Esta es la razón #1 de rechazo para las solicitudes con entradas de imagen.
El sistema de detección de rostros
ByteDance implementó una estricta detección de rostros en respuesta a las preocupaciones sobre deepfakes y la presión legal de los estudios de Hollywood. El sistema:
- Analiza las imágenes subidas en busca de características faciales.
- Detecta rostros incluso de perfil o parcialmente oscurecidos.
- Rechaza rostros fotográficos inmediatamente.
- Permite rostros ilustrados/estilizados con tolerancia variable.
Lo que se bloquea
❌ Rechazo garantizado:
- Rostros fotográficos frontales.
- Fotos de perfil que muestran características faciales.
- Rostros parcialmente oscurecidos (gafas de sol, máscaras).
- Fotos grupales con personas identificables.
- Fotos o capturas de pantalla de celebridades.
✅ Puede pasar:
- Parte trasera de la cabeza, hombros visibles.
- Tomas amplias donde la figura ocupa <5% del encuadre.
- Rostros ilustrados (estilo artístico, no fotos).
- Personajes renderizados en 3D (estilizados, no fotorrealistas).
- Siluetas sin detalles faciales.
Estrategias de solución
Opción 1: Recortar para eliminar rostros
Mostrar al personaje de espaldas:
- Parte trasera de la cabeza
- Hombros
- Detalles de la ropa
- Entorno alrededor de ellos
Opción 2: Usar tomas amplias
Aleja la cámara para que las características faciales
no sean detectables por el algoritmo:
- Paisaje con figura pequeña
- Énfasis ambiental
- Escala y atmósfera
Opción 3: Reemplazar con ilustración
Convierte la referencia fotográfica a un estilo ilustrado primero:
- Usa una herramienta de IA de imagen a imagen
- Aplica filtros artísticos intensos
- Elimina las características biométricas fotorrealistas
Si tu imagen sigue siendo rechazada, el detector de rostros se activa antes de que el LLM lea tu prompt. Primero corrige la imagen, luego vuelve a enviarla.
Estrategia 5: Usar el lenguaje cinematográfico como ancla de contexto
Cuando tu prompt se lee como una dirección de película —con ángulos de cámara, especificaciones de lentes, descripciones de iluminación y relaciones de aspecto—, el LLM interpreta el prompt completo como un contexto de producción creativo/cinematográfico.
Este contexto es inherentemente más seguro. Las películas representan todo tipo de escenas dramáticas. El filtro es más permisivo cuando lee un prompt como una descripción de toma en lugar de un escenario del mundo real.
Vocabulario cinematográfico que funciona
Ángulos y movimiento de cámara:
- "plano general de establecimiento"
- "cámara fija, sin movimiento"
- "slow dolly push" (deslizamiento lento de dolly)
- "aerial drone shot descending" (toma de dron aéreo descendiendo)
- "tracking shot following from behind" (plano de seguimiento desde atrás)
Lente y formato:
- "grano de película de 35mm"
- "anamórfico 2.39:1"
- "lentes Cooke vintage"
- "poca profundidad de campo, f/2.8"
- "compresión de lente larga, 85mm"
Descriptores de iluminación:
- "luz difusa nublada"
- "contraluz de hora dorada"
- "luz de ventana suave, sin sombras duras"
- "luces prácticas de tungsteno"
- "iluminación motivada por fuente de fuego"
Estética cinematográfica:
- "naturales desaturados y apagados"
- "halación suave en las luces altas"
- "textura sutil de grano de película"
- "gradación de color vintage"
Antes y después
❌ Sin encuadre cinematográfico:
a person on a horse fires a gun in the mountains
✅ Con encuadre cinematográfico:
cinematic wide shot, 35mm film grain, 2.39:1 anamorphic, a rider on horseback in a vast snowy landscape, overcast diffused light, the rider raises a rifle and fires once into the sky as a signal, smoke rising, sound echoing, muted desaturated tones
Mismo contenido. Pero el encuadre cinematográfico le dice al LLM: esto es una película, no una amenaza.
El Principio: Lenguaje cinematográfico = contexto creativo = mayor tolerancia del filtro.
Ejemplos de implementación de API
Aquí te mostramos cómo implementar estas estrategias al llamar a la API de Seedance 2 de forma programática.
Ejemplo de Python: Probando variaciones de prompts
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 a video generation request and return the response.
"""
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} PASSED")
return response.json()
else:
print(f"❌ {test_name} FAILED: {response.status_code}")
print(f"Error: {response.json().get('error', 'Unknown error')}")
return None
except Exception as e:
print(f"❌ {test_name} ERROR: {str(e)}")
return None
# Test different prompt strategies
prompts = {
"minimal_context": "person fires rifle",
"basic_context": "hunter fires rifle in forest",
"cinematic_context": """cinematic wide shot, 35mm film grain,
weathered hunter in autumn forest clearing, raises vintage rifle
and fires at distant target, golden hour light filtering through trees,
2.39:1 anamorphic, muted earth tones"""
}
# Run tests
results = {}
for test_name, prompt in prompts.items():
results[test_name] = generate_video(prompt, test_name)
# Analyze results
passing_rate = sum(1 for r in results.values() if r is not None) / len(results)
print(f"\nPassing rate: {passing_rate * 100:.1f}%")
Ejemplo de JavaScript: Prompts JSON estructurados
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('Generation failed:', error);
return null;
}
return await response.json();
}
// Structured prompt example
const structuredPrompt = {
visual_world: {
light: 'overcast flat snow light, soft diffused shadows',
color: 'muted desaturated naturals, cold whites and grays',
film: '35mm grain, vintage Cooke lenses, 2.39:1 anamorphic',
atmosphere: 'quiet, vast, isolated',
},
sequence: {
duration: '10 seconds',
shots: {
shot_1: {
duration: '5 seconds',
camera: 'static wide shot, locked off',
action: 'Rider in striped poncho on gray horse beside icy stream, horse drinking, snowy peaks in background, completely still',
},
shot_2: {
duration: '5 seconds',
camera: 'wide shot from behind, low angle',
action: 'Rider on horse galloping through deep snow, snow kicking up, dark pines flanking both sides',
},
},
},
};
// Generate video
const result = await generateVideoWithStructure(structuredPrompt);
console.log('Video generation result:', result);
Restricciones de contenido actuales (febrero de 2026)
Según las políticas actualizadas de ByteDance y los informes de la industria, estas son las restricciones actuales:
Estrictamente prohibido
- Rostros humanos reales en imágenes: Los rostros fotográficos son rechazados inmediatamente.
- Semejanzas de celebridades: Actores, músicos, figuras públicas nombradas.
- Personajes con derechos de autor: Disney, Marvel, DC, Nintendo, etc.
- Contenido político: Políticos nombrados, banderas, símbolos políticos.
- Contenido sexual explícito: Desnudez, actos sexuales, imágenes sugerentes.
- Violencia gráfica: Gore, tortura, violencia extrema sin contexto.
- Menores en cualquier contexto: Cualquier descriptor de edad + cualquier acción.
Alto escrutinio (contexto requerido)
- Armas: Requieren un encuadre cinematográfico y un propósito claros.
- Escenas de conflicto: Necesitan una estética cinematográfica y un anclaje creativo.
- Figuras aisladas: Mejor en un contexto ambiental.
- Acciones ambiguas: Clarificar con la descripción de la escena.
Cambios recientes (2026)
- Reconstrucción de voz suspendida: La función que recreaba voces a partir de fotos ha sido eliminada debido a preocupaciones de privacidad.
- Verificación obligatoria: Algunas plataformas requieren la verificación del usuario antes de acceder a funciones avanzadas.
- Detección de IP mejorada: Controles más estrictos para material con derechos de autor.
- Monitoreo en tiempo real: Los videos generados se examinan para detectar usos indebidos.
Contexto legal
ByteDance enfrenta una presión legal continua por parte de los estudios de Hollywood con respecto al uso no autorizado de material con derechos de autor. La Motion Picture Association declaró que Seedance 2.0 se involucró en un "uso no autorizado a gran escala" de obras con derechos de autor para datos de entrenamiento.
Es probable que estas restricciones se endurezcan aún más en respuesta a los desarrollos legales.
Resumen de mejores prácticas
Haz esto
✅ Construye un contexto cinematográfico: Usa terminología de cine, ángulos de cámara, descripciones de iluminación.
✅ Describe lo que ve la cámara: Concéntrate solo en elementos visuales.
✅ Usa descripciones de personajes basadas en roles: "jinete", "figura", "viajero" en lugar de edades.
✅ Estructura los prompts como JSON: Separa el mundo visual de las descripciones de las tomas.
✅ Prueba sistemáticamente: Usa Apidog para rastrear qué pasa y qué falla.
✅ Recorta los rostros de las imágenes: Muestra a los personajes de espaldas o en tomas amplias.
✅ Da a las acciones un propósito claro: "dispara un rifle como señal" no solo "dispara un rifle".
✅ Usa referencias ilustradas: Las imágenes estilizadas pasan más a menudo que las fotos.
No hagas esto
❌ No uses descriptores de edad: "niño", "niña", "infante", "joven" activan el escrutinio máximo.
❌ No incluyas historia de fondo: Al filtro no le importa la motivación del personaje.
❌ No subas rostros fotográficos: Rechazo instantáneo.
❌ No dejes acciones ambiguas: Proporciona contexto para cada elemento dramático.
❌ No omitas el encuadre cinematográfico: El lenguaje cinematográfico crea un contexto seguro.
❌ No uses palabras clave sueltas: "persona dispara arma" fallará; construye una escena.
❌ No hagas referencia a celebridades: Las personas nombradas o los personajes con derechos de autor son bloqueados.
¿Listo para construir flujos de trabajo confiables de generación de video con IA? Descarga Apidog para probar sistemáticamente los prompts de la API de Seedance 2, depurar errores de moderación de contenido y crear integraciones listas para producción con pruebas visuales y validación automatizada.
