Cómo Escribir Prompts para Seedance 2 Que No Sean Marcados

Ashley Innocent

Ashley Innocent

23 February 2026

Cómo Escribir Prompts para Seedance 2 Que No Sean Marcados

Apidog para empresas

Despliegue local

SSO & RBAC

Conforme con SOC 2

Explorar Apidog Enterprise

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.

💡
¿Pruebas a escala? Descarga Apidog para construir colecciones de pruebas reutilizables para los prompts de la API de Seedance 2. Apidog te permite probar variaciones, rastrear patrones de rechazo, automatizar pruebas de regresión y depurar respuestas de API, algo crítico cuando estás optimizando prompts para producción.
button

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.

Esto cambia todo sobre la ingeniería de prompts.

El filtro interpreta:

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:

  1. 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.
  2. Análisis del prompt: El LLM lee tu prompt de texto completo como una sola escena.
  3. Clasificación de intención: El modelo evalúa si la escena representa contenido prohibido.
  4. Evaluación del contexto: El modelo verifica si hay encuadre cinematográfico/creativo.
  5. 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íaEjemplosEstado
Rostros humanos realesFotos de personas identificablesEstrictamente bloqueado
Imágenes de celebridadesActores nombrados, figuras públicasBloqueado
Personajes con derechos de autorDisney, Marvel, etc.Bloqueado
Violencia sin contextoAcciones violentas aisladasAlto escrutinio
Menores en cualquier contextoDescriptores de edad + cualquier acciónMáxima sensibilidad
Contenido políticoPolíticos nombrados, banderasBloqueado
Contenido explícitoRepresentaciones sexuales o gráficasBloqueado

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.

Interfaz de Apidog mostrando un flujo de prueba de prompts para la API de Seedance 2.

Configurando la API de Seedance 2 en Apidog

Paso 1: Crear un nuevo proyecto

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

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:

  1. Navega a la Configuración del Entorno en Apidog.
  2. Agrega la variable de entorno:
Configuración del entorno de Apidog mostrando la configuración de SEEDANCE_API_KEY

Paso 3: Crear el punto final de generación de vídeo

Agrega una nueva solicitud POST con estos ajustes:

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:

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:

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:

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:

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:

✅ 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:

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:

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:

  1. Analiza las imágenes subidas en busca de características faciales.
  2. Detecta rostros incluso de perfil o parcialmente oscurecidos.
  3. Rechaza rostros fotográficos inmediatamente.
  4. Permite rostros ilustrados/estilizados con tolerancia variable.

Lo que se bloquea

❌ Rechazo garantizado:

✅ Puede pasar:

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:

Lente y formato:

Descriptores de iluminación:

Estética cinematográfica:

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

  1. Rostros humanos reales en imágenes: Los rostros fotográficos son rechazados inmediatamente.
  2. Semejanzas de celebridades: Actores, músicos, figuras públicas nombradas.
  3. Personajes con derechos de autor: Disney, Marvel, DC, Nintendo, etc.
  4. Contenido político: Políticos nombrados, banderas, símbolos políticos.
  5. Contenido sexual explícito: Desnudez, actos sexuales, imágenes sugerentes.
  6. Violencia gráfica: Gore, tortura, violencia extrema sin contexto.
  7. Menores en cualquier contexto: Cualquier descriptor de edad + cualquier acción.

Alto escrutinio (contexto requerido)

  1. Armas: Requieren un encuadre cinematográfico y un propósito claros.
  2. Escenas de conflicto: Necesitan una estética cinematográfica y un anclaje creativo.
  3. Figuras aisladas: Mejor en un contexto ambiental.
  4. Acciones ambiguas: Clarificar con la descripción de la escena.

Cambios recientes (2026)

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.

button

Practica el diseño de API en Apidog

Descubre una forma más fácil de construir y usar APIs