ES
BIBLIOTECA SEEDANCE / 04 · LIBRERÍA
Español API de recursos

Biblioteca privada de retratos virtuales

ModelArk · Seedance 2.0 y 2.5 · Gestión de recursos para mantener la coherencia de los personajes en la generación de vídeo
docs.byteplus.com/en/docs/ModelArk/2333565 ↗

Traducción íntegra de la guía de CloudCLI. Se conservan todas las explicaciones, notas, ejemplos, respuestas y referencias del original. Las imágenes mantienen su aspecto original y los textos que contienen se traducen junto a ellas.

Descripción general

Advertencia
  • La API de carga de recursos (CreateAsset) es asíncrona. El procesamiento del sistema puede generar colas y aumentar el tiempo necesario para el almacenamiento; al subir vídeos, se prevé una latencia mayor.
  • No se garantiza un acuerdo de nivel de servicio (SLA) para el tiempo de carga.
  • Debes asegurarte de que el retrato virtual subido cumpla las siguientes condiciones:
    • Eres el propietario legítimo del recurso y tienes todos los derechos para utilizarlo y disponer de él. El recurso no contiene marcas comerciales ni logotipos de terceros sin autorización.
    • El recurso no debe parecerse al retrato de ninguna persona real, no debe ser objeto de plagio ni de apropiación indebida y no debe vulnerar los derechos de imagen de terceros.
    • El recurso no contiene material que infrinja la normativa, contravenga el orden público y las buenas costumbres o vulnere los derechos legítimos de terceros.

Los modelos Dreamina Seedance 2.0 (Seedance 2.0) y Dreamina Seedance 2.5 (Seedance 2.5) tienen capacidades multimodales completas. Para que los creadores puedan aprovechar plenamente las potentes capacidades de generación de vídeo de Seedance 2.0 y 2.5, puedes subir retratos virtuales a una biblioteca privada de recursos y obtener resultados de generación de vídeo más estables.

El flujo de trabajo para utilizar la biblioteca privada de recursos es el siguiente:

Flujo de activación de los derechos de creación avanzada y uso de la biblioteca de recursos.

Flujo de trabajo: activar los derechos de creación avanzada → crear un grupo de recursos → subir un recurso → obtener su identificador → utilizarlo para generar vídeo

Traducción completa del diagrama

Activación del modelo → Derechos de creación avanzada

  1. Completar la verificación de la identidad legal de la organización.
  2. Suscribirse al paquete de ventajas de creación avanzada.

API / Entorno de pruebas de modelos

  1. Crear un grupo de recursos: API CreateAssetGroup.
  2. Subir un recurso: API CreateAsset.
  3. Buscar recursos o grupos de recursos y obtener el identificador del recurso: GetAsset, ListAssets / ListAssetGroups.
  4. Proporcionar el identificador del recurso para generar vídeo: API de generación de vídeo.

Requisitos previos

Para acceder a todas las funciones de la biblioteca de recursos, debes activar los derechos de creación avanzada. Consulta la Guía de compra de los derechos de creación avanzada de Dreamina Seedance.

Estructura de la biblioteca de recursos

Consejo
  • Solo es necesario añadir a la biblioteca los recursos que se necesiten para la inferencia; no añadas recursos que no se vayan a utilizar en ella.
  • Para generar vídeo solo pueden utilizarse los identificadores de recursos que ya se hayan añadido a la biblioteca; los recursos para la generación habitual de imágenes o vídeos no necesitan añadirse a ella.
  • Cada recurso subido debe someterse a un procesamiento previo. Puedes consultar periódicamente la API GetAsset para comprobar su estado (el recurso solo se puede utilizar para generar vídeo cuando su estado es Active).

Tomemos como ejemplo la carga de una imagen de un personaje:

Requisitos de formato para un archivo de imagen:

Para que el rostro del personaje, los detalles de su ropa y otros rasgos del vídeo generado sean coherentes con la imagen de referencia, recomendamos proporcionar los siguientes tipos de imágenes de referencia del retrato virtual:

Prácticas recomendadas para el contenido de los retratos:

Requisitos de la imagen de referencia de cuerpo entero

Imagen de referencia de cuerpo entero, vertical y frontal.

Ejemplo: imagen de referencia de cuerpo entero, vertical y frontal

Requisitos de la imagen de primer plano del rostro

Imagen de referencia del rostro en primer plano, frontal y por encima de los hombros.

Ejemplo: imagen de referencia del rostro en primer plano, vertical, frontal y por encima de los hombros

Lista de operaciones de la API de recursos

Nota
Para llamar a la interfaz de la API de recursos, debes utilizar autenticación mediante clave de acceso. Para más información, consulta Obtención de claves de acceso.

Creación de recursos y grupos

APIDescripción
POSTCreateAssetGroupCrea un grupo de recursos. Al crear un grupo por primera vez, debes especificar GroupType. Una vez establecido, este campo no se puede cambiar.
POSTCreateAssetCrea un recurso. Esta interfaz permite subir recursos personales. Después de crear uno, llama a GetAsset para comprobar si se ha procesado correctamente.

Gestión de recursos y grupos

Límites de solicitudes

Consejo
  • QPS: número máximo total de solicitudes por segundo; la solicitud devolverá un error si se supera este límite.
  • QPM: número máximo total de solicitudes por minuto; las solicitudes devolverán un error si se supera este límite.
APILímites de solicitudes por cuenta
CreateAssetGroup10 QPS
CreateAssetLos límites de solicitudes de la API varían según el tipo de derechos. Para consultar los límites detallados, véase la Guía de compra de los derechos de creación avanzada de Dreamina Seedance.
ListAssetGroups10 QPS
ListAssets10 QPS
GetAsset100 QPS
GetAssetGroup10 QPS
UpdateAsset10 QPS
UpdateAssetGroup10 QPS
DeleteAsset10 QPS
DeleteAssetGroup5 QPS

Tutorial

Subir recursos a la biblioteca de retratos virtuales: API y consola

Puedes subir tus propios retratos virtuales a la biblioteca privada de recursos.

Consejo
Debes asegurarte de que el retrato virtual subido cumpla las siguientes condiciones:
  • Eres el propietario legítimo del recurso y tienes todos los derechos para utilizarlo y disponer de él. El recurso no contiene marcas comerciales ni logotipos de terceros sin autorización.
  • El recurso no debe parecerse al retrato o a la imagen de ninguna persona real ni implicar plagio o apropiación indebida del retrato o la imagen de una persona real.
  • El recurso no contiene material que infrinja las leyes y normativas, el orden público y las buenas costumbres o los derechos legítimos de terceros.

ModelArk realizará una revisión de seguridad de los recursos que subas. Una vez aprobados, podrás utilizarlos para generar vídeo.

Puedes utilizar las interfaces de OpenAPI o subir recursos desde el entorno de pruebas de modelos.

Utilizar la consola

Abre Entorno de pruebas de modelos > Mis recursos > Retrato virtual > Gestionar recursos.

  1. Crea un grupo de recursos.
  2. Sube los recursos al grupo.
Consola de ModelArk: Mis recursos → Retrato virtual → Gestionar recursos.

Consola de ModelArk — Mis recursos → Retrato virtual → Gestionar recursos

Traducción completa de la interfaz de la captura
  • Plantillas · Elementos · Personajes digitales · Mis recursos.
  • Campo de búsqueda: «Introduce el identificador del grupo para buscar».
  • Gestionar recursos.
  • Persona real · Retrato virtual.
  • Nombre de la primera tarjeta: «Prueba». La segunda conserva el identificador «1231».
  • Mensaje inferior: «Ya estás al día».

Utilizar la API

CreateAssetGroup — Crear un grupo de recursos

Consejo

Utiliza la API POST CreateAssetGroup para crear un grupo de recursos. Incluye los siguientes campos en el cuerpo de la solicitud:

Consejo
Si ProjectName no se especifica en la solicitud, el grupo de recursos se creará en el proyecto default de forma predeterminada. Debes utilizar este campo para asegurarte de que el grupo se crea en el proyecto correcto.
Nota
Se requiere autenticación AK/SK. Para más información, consulta Gestión de claves de acceso a la API.
GO Solicitud CreateAssetGroup
package main

import (
    "fmt"

    "github.com/bytedance/sonic"
    "github.com/byteplus-sdk/byteplus-go-sdk-v2/byteplus"
    "github.com/byteplus-sdk/byteplus-go-sdk-v2/byteplus/credentials"
    "github.com/byteplus-sdk/byteplus-go-sdk-v2/byteplus/session"
    "github.com/byteplus-sdk/byteplus-go-sdk-v2/byteplus/universal"
)

func main () {
    config := byteplus.NewConfig().WithCredentials(credentials.NewStaticCredentials( "<TU_AK>" , "<TU_SK>" , "" )).WithRegion( "ap-southeast-1" )
    sess, _ := session.NewSession(config)
    resp, err := universal.New(sess).DoCall(
        universal.RequestUniversal{
            ServiceName: "ark" ,
            Action: "CreateAssetGroup" ,
            Version: "2024-01-01" ,
            HttpMethod: universal.POST,
            ContentType: universal.ApplicationJSON,
        },
        & map [ string ]any{
            "Name" : "<NOMBRE_DEL_GRUPO>" ,
            "Description" : "<DESCRIPCION_DEL_GRUPO>" ,
            "ProjectName" : "default" ,
        },
    )
    if err != nil {
        fmt.Printf( "error: %v\n" , err)
        return
    }
    if resp == nil {
        return
    }
    respData, err := sonic.Marshal(resp)
    fmt.Println( string (respData))
}
JSON Respuesta
{
  "Id": "group-20260318033332-*****"
}

CreateAsset — Subir un recurso

Utiliza la API POST CreateAsset para subir un recurso.

Consejo
La API CreateAsset es asíncrona. El procesamiento puede quedar en cola, lo que puede aumentar el tiempo de incorporación. No se garantizan acuerdos de nivel de servicio (SLA) para el tiempo de carga.

Proporciona los siguientes datos en la solicitud:

Consejo
Si ProjectName no se especifica en la solicitud, el recurso se subirá al proyecto default de forma predeterminada.

Notas:

GO Solicitud CreateAsset
package main

import (
    "fmt"

    "github.com/bytedance/sonic"
    "github.com/byteplus-sdk/byteplus-go-sdk-v2/byteplus"
    "github.com/byteplus-sdk/byteplus-go-sdk-v2/byteplus/credentials"
    "github.com/byteplus-sdk/byteplus-go-sdk-v2/byteplus/session"
    "github.com/byteplus-sdk/byteplus-go-sdk-v2/byteplus/universal"
)

func main () {
    config := byteplus.NewConfig().WithCredentials(credentials.NewStaticCredentials( "<TU_AK>" , "<TU_SK>" , "" )).WithRegion( "ap-southeast-1" )
    sess, _ := session.NewSession(config)
    resp, err := universal.New(sess).DoCall(
        universal.RequestUniversal{
            ServiceName: "ark" ,
            Action: "CreateAsset" ,
            Version: "2024-01-01" ,
            HttpMethod: universal.POST,
            ContentType: universal.ApplicationJSON,
        },
        & map [ string ]any{
            "GroupId" : "group-20260324142802-f7wmx" ,
            "URL" : "<URL_DE_LA_IMAGEN>" ,
            "AssetType" : "Image" ,
            "Moderation" : map [ string ]any{ // Omitir la revisión del filtro previo de contenido; primero hay que desactivar ese filtro en la consola
                "Strategy" : "Skip" ,
            },
            "ProjectName" : "default" ,
        },
    )
    if err != nil {
        fmt.Printf( "error: %v\n" , err)
        return
    }
    if resp == nil {
        return
    }
    respData, err := sonic.Marshal(resp)
    fmt.Println( string (respData))
}
JSON Respuesta
{
  "Id": "asset-20260318071009-*****"
}

Consultar retratos virtuales: API y consola

Puedes consultar los recursos de retratos virtuales mediante los siguientes métodos.

Consultar la información de un único recurso

Puedes utilizar POST GetAsset para consultar la información de un único recurso especificando su identificador.

Consejo
Para consultar todos los parámetros de la API, los límites de solicitudes y otra información, véase la Referencia de la API de la biblioteca de retratos virtuales.
GO Solicitud GetAsset
package main

import (
    "fmt"

    "github.com/bytedance/sonic"
    "github.com/byteplus-sdk/byteplus-go-sdk-v2/byteplus"
    "github.com/byteplus-sdk/byteplus-go-sdk-v2/byteplus/credentials"
    "github.com/byteplus-sdk/byteplus-go-sdk-v2/byteplus/session"
    "github.com/byteplus-sdk/byteplus-go-sdk-v2/byteplus/universal"
)

func main () {
    config := byteplus.NewConfig().WithCredentials(credentials.NewStaticCredentials( "<TU_AK>" , "<TU_SK>" , "" )).WithRegion( "ap-southeast-1" )
    sess, _ := session.NewSession(config)
    resp, err := universal.New(sess).DoCall(
        universal.RequestUniversal{
            ServiceName: "ark" ,
            Action: "GetAsset" ,
            Version: "2024-01-01" ,
            HttpMethod: universal.POST,
            ContentType: universal.ApplicationJSON,
        },
        & map [ string ]any{
            "Id" : "asset-20260324143042-*****" ,
            "ProjectName" : "default" , // Asegúrate de indicar el nombre correcto del proyecto donde está almacenado el recurso
        },
    )
    if err != nil {
        fmt.Printf( "error: %v\n" , err)
        return
    }
    if resp == nil {
        return
    }
    respData, err := sonic.Marshal(resp)
    fmt.Println( string (respData))
}
JSON Respuesta
{
  "GroupId": "group-20260318033332-7vw4m",
  "Status": "Active",
  "Moderation": {
    "Strategy": "Default"
  },
  "CreateTime": "2026-03-18T03:57:10Z",
  "AssetType": "Image",
  "UpdateTime": "2026-03-18T03:57:14Z",
  "LastInferenceTime": "2026-07-24T10:08:49+08:00",
  "ProjectName": "default",
  "Id": "asset-20260318035710-*****",
  "Name": "",
  "URL": "https://ark-media-asset-ap-southeast-1.tos-ap-southeast-1.volces.com/300060****/03301616086559****.jpg?X-Tos-Algorithm=***********"
}
Consejo
LastInferenceTime indica la última vez que se utilizó un recurso para enviar una tarea de generación de vídeo. Puedes consultar periódicamente LastInferenceTime y eliminar de forma proactiva los recursos que lleven mucho tiempo sin utilizarse para ahorrar costes de almacenamiento.

Consultar la información de los recursos

Puedes utilizar POST ListAssets para consultar recursos. Admite:

Consejo
ListAssets admite paginación mediante NextToken y paginación por número de página. Para consultar los métodos de paginación, los parámetros y los ejemplos, véase la Referencia de la API de la biblioteca de retratos virtuales.
GO Solicitud ListAssets
package main

import (
    "fmt"

    "github.com/bytedance/sonic"
    "github.com/byteplus-sdk/byteplus-go-sdk-v2/byteplus"
    "github.com/byteplus-sdk/byteplus-go-sdk-v2/byteplus/credentials"
    "github.com/byteplus-sdk/byteplus-go-sdk-v2/byteplus/session"
    "github.com/byteplus-sdk/byteplus-go-sdk-v2/byteplus/universal"
)

func main () {
    config := byteplus.NewConfig().WithCredentials(credentials.NewStaticCredentials( "<TU_AK>" , "<TU_SK>" , "" )).WithRegion( "ap-southeast-1" )
    sess, _ := session.NewSession(config)
    resp, err := universal.New(sess).DoCall(
        universal.RequestUniversal{
            ServiceName: "ark" ,
            Action: "ListAssets" ,
            Version: "2024-01-01" ,
            HttpMethod: universal.POST,
            ContentType: universal.ApplicationJSON,
        },
        & map [ string ]any{
            "Filter" : map [ string ]any{
                "GroupIds" : [] string { "group-20260324142802-*****" },
                "GroupType" : "AIGC" ,
                "Statuses" : [] string { "Active" , "Processing" }, // Estados admitidos: Active (carga completada; identificador del recurso disponible para su uso), Processing (en proceso), Failed (error)
            },
            "MaxResults" : 2 ,
            "SortBy" : "CreateTime" ,
            "SortOrder" : "Desc" ,
        },
    )
    if err != nil {
        fmt.Printf( "error al consultar los recursos: %v\n" , err)
        return
    }
    if resp == nil {
        return
    }
    respData, err := sonic.Marshal(resp)
    fmt.Println( string (respData))
}
JSON Respuesta
{
  "Items": [
    {
      "Id": "asset-20260318035710-kctzf",
      "Name": "",
      "AssetType": "Image",
      "CreateTime": "2026-03-18T03:57:10Z",
      "UpdateTime": "2026-03-18T03:57:14Z",
      "LastInferenceTime": "2026-07-24T10:08:49+08:00",
      "ProjectName": "default",
      "URL": "https://ark-media-asset-ap-southeast-1.tos-ap-southeast-1.volces.com/300060****/03301616086559****.jpg?X-Tos-Algorithm=***********",
      "GroupId": "group-20260318033332-*****",
      "Status": "Active",
      "Moderation": {
        "Strategy": "Default"
      }
    },
    {
      "GroupId": "group-20260318033332-*****",
      "Status": "Active",
      "Id": "asset-20260318034804-wtnjr",
      "Name": "",
      "URL": "image_url",
      "AssetType": "Image",
      "CreateTime": "2026-03-18T03:48:04Z",
      "UpdateTime": "2026-03-18T03:48:08Z",
      "LastInferenceTime": "2026-07-24T02:08:49Z",
      "ProjectName": "default",
      "Moderation": {
        "Strategy": "Default"
      }
    }
  ],
  "NextToken": "****bmNyeXB0ZWRfY3Vyc29yIjoiLi4****"
}

Consultar grupos de recursos

Utiliza POST ListAssetGroups para consultar la información de los grupos de recursos.

Consejo
ListAssetGroups admite paginación mediante NextToken y paginación por número de página. Para consultar los métodos de paginación, los parámetros y los ejemplos, véase la Referencia de la API de la biblioteca de retratos virtuales.
GO Solicitud ListAssetGroups
package main

import (
    "fmt"

    "github.com/bytedance/sonic"
    "github.com/byteplus-sdk/byteplus-go-sdk-v2/byteplus"
    "github.com/byteplus-sdk/byteplus-go-sdk-v2/byteplus/credentials"
    "github.com/byteplus-sdk/byteplus-go-sdk-v2/byteplus/session"
    "github.com/byteplus-sdk/byteplus-go-sdk-v2/byteplus/universal"
)

func main () {
    config := byteplus.NewConfig().WithCredentials(credentials.NewStaticCredentials( "<TU_AK>" , "<TU_SK>" , "" )).WithRegion( "ap-southeast-1" )
    sess, _ := session.NewSession(config)
    resp, err := universal.New(sess).DoCall(
        universal.RequestUniversal{
            ServiceName: "ark" ,
            Action: "ListAssetGroups" ,
            Version: "2024-01-01" ,
            HttpMethod: universal.POST,
            ContentType: universal.ApplicationJSON,
        },
        & map [ string ]any{
            "Filter" : map [ string ]any{
                "Name" : "<GRUPO_DEL_PERSONAJE>" , // Admite búsqueda aproximada
                "GroupIds" : [] string { "group-20260324142802-*****" , "group-20260324142910-*****" },
                "GroupType" : "AIGC" ,
            },
            "MaxResults" : 1 ,
            "SortBy" : "CreateTime" ,
            "SortOrder" : "Desc" ,
        },
    )
    if err != nil {
        fmt.Printf( "error: %v\n" , err)
        return
    }
    if resp == nil {
        return
    }
    respData, err := sonic.Marshal(resp)
    fmt.Println( string (respData))
}
JSON Respuesta
{
  "Items": [
    {
      "UpdateTime": "2026-03-18T03:33:32Z",
      "Id": "group-20260318033332-*****",
      "Name": "grupo_personaje_1",
      "Description": "Grupo del personaje 1",
      "GroupType": "AIGC",
      "ProjectName": "default",
      "CreateTime": "2026-03-18T03:33:32Z"
    }
  ],
  "NextToken": "****bmNyeXB0ZWRfY3Vyc29yIjoiLi4****"
}

Actualizar o eliminar recursos o grupos de recursos

Puedes llamar a UpdateAsset, UpdateAssetGroup, DeleteAssety DeleteAssetGroup para actualizar o eliminar recursos y grupos de recursos.

Recomendamos consultar periódicamente LastInferenceTime mediante GetAsset o ListAssetsy eliminar de forma proactiva los recursos que lleven mucho tiempo sin utilizarse para ahorrar costes de almacenamiento.

Ejemplo: subir recursos y utilizar GetAsset para consultar su información

El siguiente ejemplo crea un recurso, consulta su estado y determina si debe seguir realizando consultas periódicas en función de ese estado. El código ejecuta la siguiente lógica:

BP_Upload_Asset_Get_Info.go — El resultado de la consulta se muestra a continuación:

TEXTO Salida de BP_Upload_Asset_Get_Info.go
estado del recurso: Active
el recurso está disponible, URL =

Ejemplos de código en otros lenguajes de programación

Descarga: bp-demo.zip

Consejo
Atención: sustituye las claves AK y SK del ejemplo. Para llamar a otras interfaces, como ListAssets, sustituye ACTION y BODY en el código del ejemplo.

Generar vídeo con recursos de retratos

Una vez obtenido el identificador del recurso, se pueden utilizar los retratos privados para generar vídeo.

Para más información, consulta Utilizar personajes digitales predefinidos.

Utiliza la URI del recurso en el campo content._url.url de la API de generación de vídeo para generar un vídeo.

Consejo
Formato de la URI del recurso: asset://<Asset_Id>
Consejo
En el prompt que envíes al modelo, haz referencia a los recursos mediante tipo + índice, por ejemplo, Imagen 1 y Vídeo 1.
No utilices directamente un identificador de recurso en el prompt.
Ejemplo: «La chica de la Imagen 1 lleva la ropa de la Imagen 2 y está colocando artículos sobre el mostrador…»

Ejemplo de código:

PYTHON Python — Generar vídeo con un recurso de retrato
import os
import time
# Instalar el SDK: pip install arkruntime
from arkruntime import Ark

client = Ark(
    # URL base para invocar el modelo
    base_url="https://ark.ap-southeast.bytepluses.com/api/v3",
    # Obtener una clave API: https://ai.byteplus.com/ark/region:ap-southeast-1/apikey
    api_key=os.environ.get("ARK_API_KEY"),
)

if __name__ == "__main__":
    print("----- crear solicitud -----")
    create_result = client.content_generation.tasks.create(
        model="dreamina-seedance-2-0-260128",  # Sustituir por el identificador del modelo
        content=[
            {
                "type": "text",
                "text": "Vídeo vertical en alta definición y primer plano de una bloguera de belleza (Imagen 1). Lleva un maquillaje intenso y glamuroso, sin brillos ni reflejos en el rostro, y una sonrisa dulce. Sostiene un tarro de crema facial (Imagen 2) y lo presenta directamente a la cámara. El fondo es fresco y minimalista. Estilo enérgico y dulce. Voz en off en inglés: «¡He encontrado mi crema facial ideal! Tiene una textura cremosa como una nube que se absorbe al instante. Es perfecta para recuperarse después de una noche sin dormir, hidratar en profundidad y mantener la piel hidratada: ¡mi piel resplandece de forma natural incluso sin maquillaje!»"
            },
            {
                "type": "image_url",
                "image_url": {
                    "url": "asset://asset-20260225023032-gnzwk"
                },
                "role": "reference_image"
            },
            {
                "type": "image_url",
                "image_url": {
                    "url": "https://ark-doc.tos-ap-southeast-1.bytepluses.com/doc_image/r2v_ref_image.png"
                },
                "role": "reference_image"
            },
        ],
        generate_audio=True,
        ratio="16:9",
        duration=11,
        watermark=True,
    )
    print(create_result)
    print("----- consultar periódicamente el estado de la tarea -----")
    task_id = create_result.id
    while True:
        get_result = client.content_generation.tasks.get(task_id=task_id)
        status = get_result.status
        if status == "succeeded":
            print("----- tarea completada correctamente -----")
            print(get_result)
            break
        elif status == "failed":
            print("----- la tarea ha fallado -----")
            print(f"Error: {get_result.error}")
            break
        else:
            print(f"Estado actual: {status}. Nuevo intento en 30 segundos…")
            time.sleep(30)
Captura de la creación de una política IAM.
Captura de la creación de una política IAM.
Traducción completa de la interfaz de la captura
  • Crear política.
  • Nombre de la política: letras mayúsculas y minúsculas, números y los caracteres + = , . @ _ -; hasta 64 caracteres.
  • Descripción: admite letras, números y caracteres especiales; hasta 128 caracteres.
  • Editor JSON · Importar una política existente.
  • Total de caracteres: 76/6144.
  • Enviar.

El bloque JSON conserva sus claves y valores técnicos; su contenido aparece también como texto copiable en el apartado de permisos IAM.

Imagen 1 · Director ejecutivo.
Imagen 1 · Director ejecutivo.
Imagen 2 · Vestuario de la protagonista.
Imagen 2 · Vestuario de la protagonista.
Imagen 3 · Protagonista.
Imagen 3 · Protagonista.
Imagen 4 · Entorno de lluvia.
Imagen 4 · Entorno de lluvia.
Imagen 5 · Rótulo: «Amor Seedance».
Imagen 5 · Rótulo: «Amor Seedance».
Traducción del rótulo: «Amor Seedance».

Preguntas frecuentes

1. ¿Por qué no es posible generar vídeo o consultar la información de los recursos después de haberlos subido correctamente?

La biblioteca de recursos está aislada por proyecto (ProjectName).

Para obtener más información sobre los proyectos, consulta la documentación de IAM.

Consejo
Si ProjectName no se especifica en la solicitud, el grupo de recursos se creará en el proyecto default de forma predeterminada.

2. ¿Cómo se gestionan los permisos de los usuarios para la biblioteca de recursos?

Puedes utilizar Control de acceso (IAM) para gestionar de forma detallada las acciones de los usuarios en la biblioteca de recursos. La configuración puede personalizarse siguiendo estos pasos:

Crear una política personalizada

  1. Abre Control de acceso > Crear política.
  2. Introduce el nombre de la política.
  3. Cambia al editor JSON, pega en él la política personalizada que aparece a continuación y pulsa Enviar para guardarla.
JSON JSON de la política IAM
{
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "ark:*Asset*"
      ],
      "Resource": [
        "*"
      ]
    }
  ]
}

Conceder permisos a usuarios o grupos de usuarios

  1. Pulsa Gestión de usuarios > Usuario / Grupo de usuariosy selecciona el usuario o grupo al que quieras conceder permisos.
  2. En Política, selecciona la política creada en el paso 1.
  3. (Opcional) En Limitar a los recursos del proyecto, selecciona el proyecto al que se aplica la política.
  4. Pulsa Enviar.

Después de completar estas acciones, el usuario o grupo podrá gestionar los recursos del proyecto correspondiente.

Para obtener más información sobre IAM, consulta la documentación de IAM.

3. ¿Cómo debo hacer referencia a los recursos subidos en el prompt (content.text)?

En el prompt, haz referencia a los recursos con el formato «tipo de recurso + índice», por ejemplo: Imagen 1, Vídeo 1, Audio 1.

Nota
No hagas referencia a los recursos mediante su identificador en el prompt.

Por ejemplo, el siguiente ejemplo incluye cinco imágenes de referencia y un archivo de audio de referencia. Utiliza este formato de prompt:

TEXTO SIN FORMATO Prompt (content.text)
Crea un drama corto fresco, con una estética de pintura cremosa y una pista de guitarra ligera y animada que marque cortes rápidos al ritmo de la música. Utiliza una base blanco crema con toques rosa melocotón, iluminación suave y sin efectos visuales: la emoción se transmite mediante las expresiones. 0–2 s: dos cortes rápidos. El director ejecutivo de Imagen 1 choca accidentalmente con la protagonista, que lleva la ropa de Imagen 2 y es el personaje de Imagen 3; ambos se quedan inmóviles y cruzan sus miradas. A continuación, un primer plano de las manos muestra cómo él se quita la chaqueta del traje y la coloca sobre los hombros de ella. Comienza una guitarra suave; se oyen efectos sonoros sutiles de una taza de café que cae y del roce de la tela. 2–6 s: tres cortes rápidos. La protagonista, envuelta en la chaqueta, baja la mirada y sonríe con timidez, con las mejillas sonrojadas, en primer plano; el director ejecutivo la observa de espaldas con una sonrisa tenue y dice «Vamos juntos», con un estilo de voz basado en Audio 1, en un plano de perfil; los dos comparten un paraguas negro bajo la lluvia, sus dedos se rozan y se separan enseguida, en un plano cercano. El fondo lluvioso toma como referencia Imagen 4; cada corte coincide con un toque suave de percusión y sonidos de lluvia y del paraguas, con una ligera apariencia de neblina. 6–8 s: se miran y sonríen a cámara lenta; la parte de texto de Imagen 5 aparece abajo a la derecha, y el texto pequeño «NUEVO EPISODIO CADA DÍA», abajo a la izquierda. Caen unos pocos pétalos rosa pálido; la guitarra concluye suavemente mientras la imagen se congela con ambos de perfil, uno junto al otro.
BASH Ejemplo de solicitud cURL
curl --location 'https://ark.ap-southeast-1.bytepluses.com/api/v3/contents/generations/tasks' \
-X POST \
-H 'Content-Type: application/json' \
-H "Authorization: Bearer $ARK_API_KEY" \
-d '
{
  "model": "seedance-2-0-260128",
  "content": [
    {
      "type": "text",
      "text": "Crea un drama corto fresco, con una estética de pintura cremosa y una pista de guitarra ligera y animada que marque cortes rápidos al ritmo de la música. Utiliza una base blanco crema con toques rosa melocotón, iluminación suave y sin efectos visuales: la emoción se transmite mediante las expresiones. 0–2 s: dos cortes rápidos. El director ejecutivo de 【Imagen 1】 choca accidentalmente con la protagonista, que lleva la ropa de 【Imagen 2】 y es el personaje de 【Imagen 3】; ambos se quedan inmóviles y cruzan sus miradas. A continuación, un primer plano de las manos muestra cómo él se quita la chaqueta del traje y la coloca sobre los hombros de ella. Comienza una guitarra suave; se oyen efectos sonoros sutiles de una taza de café que cae y del roce de la tela. 2–6 s: tres cortes rápidos. La protagonista, envuelta en la chaqueta, baja la mirada y sonríe con timidez, con las mejillas sonrojadas, en primer plano; el director ejecutivo la observa de espaldas con una sonrisa tenue y dice «Vamos juntos», con un estilo de voz basado en 【Audio 1】, en un plano de perfil; los dos comparten un paraguas negro bajo la lluvia, sus dedos se rozan y se separan enseguida, en un plano cercano. El fondo lluvioso toma como referencia 【Imagen 4】; cada corte coincide con un toque suave de percusión y sonidos de lluvia y del paraguas, con una ligera apariencia de neblina. 6–8 s: se miran y sonríen a cámara lenta; la parte de texto de 【Imagen 5】 aparece abajo a la derecha, y el texto pequeño «NUEVO EPISODIO CADA DÍA», abajo a la izquierda. Caen unos pocos pétalos rosa pálido; la guitarra concluye suavemente mientras la imagen se congela con ambos de perfil, uno junto al otro."
    },
    {
      "type": "image_url",
      "role": "reference_image",
      "image_url": {
        "url": "asset://asset-20260224213248-ghm5g"
      }
    },
    {
      "type": "image_url",
      "role": "reference_image",
      "image_url": {
        "url": "asset://asset-20260224213248-4lb57"
      }
    },
    {
      "type": "image_url",
      "role": "reference_image",
      "image_url": {
        "url": "asset://asset-20260224213248-rc7b7"
      }
    },
    {
      "type": "image_url",
      "role": "reference_image",
      "image_url": {
        "url": "asset://asset-20260224213248-wpgsn"
      }
    },
    {
      "type": "image_url",
      "role": "reference_image",
      "image_url": {
        "url": "asset://asset-20260224213248-9wrmp"
      }
    },
    {
      "type": "audio_url",
      "role": "reference_audio",
      "audio_url": {
        "url": "asset://asset-20260224213248-g5nv7"
      }
    }
  ],
  "generate_audio": true,
  "ratio": "16:9",
  "duration": 11,
  "watermark": false
}
'

Referencia de la API de la biblioteca de retratos virtuales

Para consultar todos los parámetros de la API, los esquemas de solicitud y respuesta, los códigos de error y los límites de solicitudes detallados, véase la documentación oficial: Referencia de la API de la biblioteca de retratos virtuales ↗.