Ir al contenido principal

Seedream 4.5: guía completa con Python

Guía práctica en Python del modelo de imágenes Seedream 4.5 de ByteDance: generación por lotes, renderizado de texto, edición multiimagen y buenas prácticas de prompting.
Actualizado 17 sept 2026  · 10 min leer

Explora con IA

ChatGPTClaudePerplexity

BytePlus acaba de lanzar su último modelo de generación de imágenes, Seedream 4.5. Como brazo tecnológico empresarial de ByteDance, la compañía lleva capacidades de IA avanzadas a negocios de todo el mundo, apoyándose en la innovación detrás de plataformas como TikTok.

En este artículo, te enseño a usar Seedream 4.5 con Python integrándolo a través de su API para generar imágenes de forma programática. 

Te recomiendo el curso Generative AI Concepts como una gran introducción a la tecnología detrás de modelos de generación de imágenes como Seedream. Si también te interesan otros modelos, echa un vistazo a nuestra guía sobre Nano Banana 2 de Google.

Qué es Seedream 4.5

Seedream 4.5 es la última iteración del modelo de generación de imágenes con IA de BytePlus.

Esta versión mejora la consistencia del sujeto, afina los detalles de texto pequeño y perfecciona la mezcla entre varias imágenes. También entiende mejor las instrucciones, mejora el razonamiento espacial y ofrece inferencia lógica más avanzada.

El modelo puede producir imágenes 4K de alta calidad, una mejora muy bienvenida, ya que muchos competidores tienen dificultades con resoluciones altas. Además, compite en precio: las generaciones cuestan solo 4 centavos por imagen.

No te pierdas también nuestro artículo sobre el nuevo modelo de generación de vídeo de ByteDance, Seedance 2.0.

Configuración de la API de Seedream 4.5

Sin más preámbulos, vamos a empezar con la API de Seedream 4.5.

Creación de una clave de API

Para usar Seedream 4.5 con Python vía su API, primero necesitamos crear una clave de API.

  1. Ve a su web oficial, haz clic en el botón Get API en la esquina inferior derecha e inicia sesión.

  2. Una vez dentro, verás un botón Access API en la esquina superior derecha. Haz clic y crea la clave de API. Para crearla es necesario verificar el número de teléfono y añadir la información de facturación. No es una suscripción, así que no se te cobrará mensualmente: solo pagarás por las solicitudes a la API.

  3. Crea un archivo llamado .env en la misma carpeta donde escribimos el código Python y copia la clave con el siguiente formato:

ARK_API_KEY=<paste_key_here>

Antes de poder usar el modelo, asegúrate también de activarlo en la consola ModelArk de BytePlus. Esto se hace por separado de la clave de API. Para activarlo:

  1. Navega a Model activation en la barra lateral izquierda.

  2. En el centro, elige Media como categoría del modelo.

  3. Haz clic en Activate a la derecha, en la fila del modelo ByteDance-Seedream-4.5.

  4. Confirma en la ventana emergente.

Instalación de dependencias en Python

Para interactuar con la API de Seedream 4.5, instalamos unos cuantos paquetes de Python:

  • byteplussdkarkruntime: el paquete oficial de Python que permite hacer solicitudes a la API de Seedream 4.5, parte del SDK de Python de BytePlus.

  • Algunos paquetes de ayuda para cargar la clave de API desde el archivo .env, hacer solicitudes HTTP asíncronas y validar la configuración.

Instalamos estos paquetes con el comando:

pip install byteplus-python-sdk-v2 python-dotenv httpx requests typing_extensions pydantic

Generar imágenes con Seedream 4.5

Empecemos por aprender a generar una imagen a partir de un prompt de texto. Si has leído otros tutoriales de APIs de IA en Python, como los de GPT-Image-1 o Grok Imagine, seguramente ya te suene el flujo típico:

  1. Importar los paquetes.

  2. Cargar la clave de API desde el archivo .env.

  3. Crear un cliente usando el paquete oficial de la API.

  4. Enviar la solicitud a la API.

Seedream 4.5 funciona exactamente igual. Aquí tienes un script de ejemplo para generar una imagen.

# 1. Importa los paquetes necesarios
from dotenv import load_dotenv
from byteplussdkarkruntime import Ark 
import os
# 2. Carga la clave de API
load_dotenv()
# 3. Crea el cliente
client = Ark(
    base_url="https://ark.ap-southeast.bytepluses.com/api/v3", 
    api_key=os.getenv("ARK_API_KEY"), 
)
# 4. Envía la solicitud a la API
prompt = """
Photorealistic anthropomorphic animals hanging out in a coffee shop with no humans.
"""
 
imagesResponse = client.images.generate( 
    model="seedream-4-5-251128",
    prompt=prompt,
    watermark=False,
)
 
image_url = imagesResponse.data[0].url
print(image_url)

En este ejemplo concreto, el prompt que usamos fue:

Photorealistic anthropomorphic animals hanging out in a coffee shop with no humans.

Esto es lo que generó el modelo:

Imagen generada con IA de Seedream 4.5: animales antropomorfos fotorrealistas en una cafetería acogedora — zorro tomando un latte con arte, conejo leyendo y gato en la barra de espresso con luz cálida.

Descargar la imagen generada

El script anterior mostrará la URL de la imagen generada en la terminal. No es lo más cómodo. Una alternativa mejor es crear una función que descargue la imagen generada a nuestra carpeta local.

import requests
from urllib.parse import urlparse
import os
def download_image(url):
    try:
        response = requests.get(url, stream=True)
        response.raise_for_status()
        parsed_url = urlparse(url)
        filename = os.path.basename(parsed_url.path)
        if not filename:
            filename = "downloaded_image"
        with open(filename, "wb") as f:
            for chunk in response.iter_content(1024):
                f.write(chunk)
        print(f"Image saved to: {filename}")
    except Exception as e:
        print(f"Error downloading image: {e}")

Te recomiendo crear un nuevo script llamado utils.py y colocar ahí esta función. Luego, en el script que genera la imagen, añadimos el siguiente código para descargarla:

import utils
utils.download_image(image_url)

Especificar el tamaño de la imagen

Los ejemplos anteriores usaron los parámetros por defecto de Seedream 4.5, salvo watermark, que configuramos en False para ocultarlo.

Seedream 4.5 ofrece dos formas de indicar las dimensiones de la imagen de salida mediante el parámetro size.

La primera es especificar la resolución de la imagen generada estableciendo size a "2K" o "4K" y describir la relación de aspecto, forma o propósito en el prompt en lenguaje natural, dejando que el modelo determine el ancho y alto. El valor por defecto es "2K".

Aquí tienes un ejemplo:

prompt = """
Portait Instagram image to be used to promote travel to Tokyo, Japan.
"""
 
imagesResponse = client.images.generate( 
    model="seedream-4-5-251128",
    prompt=prompt,
    size="4K",
    watermark=False,
)

Como alternativa, podemos indicar el tamaño en píxeles con una cadena como "3750x1250", pero hay dos reglas que debemos cumplir:

  1. Los píxeles totales (ancho × alto) deben estar entre 3,6 millones y 16,7 millones.
  2. La relación de aspecto (ancho ÷ alto) debe estar entre 1/16 y 16.

Si solo se cumple una de las reglas, el tamaño no es válido. Para evitar tener que hacer estos cálculos, te recomiendo usar el método de resolución anterior o alguno de los siguientes tamaños válidos:

Tabla de la API de Seedream 4.5 con tamaños de píxeles recomendados por relación de aspecto: 1:1 2048x2048, 4:3 2304x1728, 3:4 1728x2304, 16:9 2560x1440, 9:16 1440x2560, 3:2 2496x1664, 2:3 1664x2496, 21:9 3024x1296.

Generación por lotes

Seedream 4.5 incluye un modo de generación por lotes que se puede usar para crear un conjunto de imágenes temáticamente relacionadas. Esto puede ser útil, por ejemplo, para generar un storyboard o visuales centrados en un mismo sujeto.

Para generar un lote de imágenes, debemos proporcionar los parámetros sequential_image_generation y sequential_image_generation_options en la solicitud a la API. Aquí tienes un ejemplo para generar 4 imágenes:

from byteplussdkarkruntime.types.images.images import SequentialImageGenerationOptions
prompt = """
Generate a series of four visually coherent and stylistically consistent images illustrating these stages of a human life: Child, Adolescent, Adult, and Elderly. Make sure it's the same person in the four images.
"""
imagesResponse = client.images.generate( 
    model="seedream-4-5-251128", 
    prompt=prompt,
    size="2K",
    sequential_image_generation="auto",
    sequential_image_generation_options=SequentialImageGenerationOptions(max_images=4),
    response_format="url",
    watermark=False
)

Cuando usamos la generación por lotes, recibimos un formato de respuesta distinto que contiene todas las imágenes. Podemos iterar sobre ellas y descargarlas así:

# Itera por todos los datos de imágenes
for image in imagesResponse.data:
    utils.download_image(image.url)

Probé esto con el siguiente prompt:

Generate a series of four visually coherent and stylistically consistent images illustrating these stages of a human life: Child, Adolescent, Adult, and Elderly. Make sure it's the same person in the four images.

Sin embargo, por alguna razón, la cuarta imagen siempre rompía la consistencia y salía como una mujer (lo intenté varias veces).

Ejemplo de generación secuencial de Seedream 4.5: collage de cuatro paneles de la misma persona en distintas etapas — niño con cometa, adolescente skater, adulto trabajando con portátil, anciana tomando té en un porche.

Para generar un número diferente de imágenes, basta con cambiar el valor de max_images en la solicitud a la API. Puede ser cualquier entero entre 1 y 15 (ambos inclusive). Por ejemplo, para generar 6 imágenes, haríamos:

imagesResponse = client.images.generate( 
    model="seedream-4-5-251128", 
    prompt=prompt,
    size="2K",
    sequential_image_generation="auto",
    sequential_image_generation_options=SequentialImageGenerationOptions(max_images=6),
    response_format="url",
    watermark=False
)

Generación de texto

Probemos la capacidad de Seedream 4.5 para generar texto. En las pruebas, quise ver si podía generar una imagen con una demostración matemática sin especificar explícitamente el texto que quería. Esto también pone a prueba su comprensión del contexto.

Este es el prompt que usé:

Generate an image of a math professor standing in front of a blackboard. On the blackboard, there is a written proof that the square root of 2 is irrational.

Aquí está el resultado:

Ilustración generada por IA de BytePlus Seedream 4.5: profesor de matemáticas señalando una pizarra con una demostración clara, paso a paso, de que la raíz de 2 es irracional, mostrando texto nítido.

Quedé bastante satisfecho con el resultado. No solo la demostración era correcta, sino que el modelo manejó sin problema una gran cantidad de texto.

Editar imágenes con Seedream 4.5

En esta sección, aprendemos a editar imágenes. La forma más sencilla de editar con Seedream 4.5 es proporcionar la URL de la imagen mediante el parámetro image y describir los cambios en el prompt.

Aquí tienes un ejemplo completo de script:

from dotenv import load_dotenv
from byteplussdkarkruntime import Ark 
import os
import utils
load_dotenv()
client = Ark(
    base_url="https://ark.ap-southeast.bytepluses.com/api/v3", 
    api_key=os.getenv('ARK_API_KEY'), 
)
image = "https://images.pexels.com/photos/34408249/pexels-photo-34408249.jpeg"
prompt = """
Make in snowy.
"""
imagesResponse = client.images.generate( 
    model="seedream-4-5-251128", 
    prompt=prompt,
    image=image,
    response_format="url",
    watermark=False,
    size="1664x2496"
) 
 
image_url = imagesResponse.data[0].url
utils.download_image(image_url)

En este ejemplo, usé una foto pública en Pexels de Michael Fischer y usé Seedream 4.5 para hacerla nevada.

Esto es lo que obtuve:

Edición de imagen con la API de Seedream 4.5 antes y después: cabaña alpina rústica junto a un lago de montaña; valla y suelo pasan de verdes otoñales a invierno nevado usando el prompt “Make it snowy.”

Ten en cuenta que en el ejemplo anterior indicamos explícitamente el tamaño de salida, "1664x2496", para mantener la relación de aspecto de la imagen de entrada. A diferencia de la mayoría de modelos de imagen con IA, Seedream 4.5 no genera automáticamente una imagen con las mismas dimensiones que la original. Cuando omití el parámetro size, la salida fue cuadrada.

Editar imágenes locales

Usar una URL es la forma más fácil de proporcionar una imagen a Seedream 4.5. Sin embargo, es engorroso si la imagen no está alojada en algún sitio.

La API de Seedream también permite usar fácilmente una imagen local. Para ello, debemos cargarla como una imagen en base64. Aquí tienes una función para hacerlo:

import mimetypes
import base64
def load_image_as_base64(file_path):
    mime_type, _ = mimetypes.guess_type(file_path)
if mime_type is None or not mime_type.startswith("image/"):
        raise ValueError("File is not a recognized image type")
with open(file_path, "rb") as f:
        encoded = base64.b64encode(f.read()).decode("utf-8")
return f"data:{mime_type};base64,{encoded}"

Te recomiendo añadirla al archivo utils.py que contiene la función para descargar imágenes, así podrás usarla fácilmente en tu script principal.

Supón que tenemos una imagen local en la misma carpeta llamada motard.jpeg. Así la cargamos y editamos:

image = utils.load_image_as_base64("motard.jpeg")
prompt = """
Remove the sunglasses and add a helmet.
"""
imagesResponse = client.images.generate( 
    model="seedream-4-5-251128", 
    prompt=prompt,
    image=image,
    response_format="url",
    watermark=False
) 

Demostración de edición con Seedream 4.5: motorista en moto negra, antes con gafas de sol y sin casco; después con casco añadido, siguiendo el prompt “Remove the sunglasses and add a helmet.”

Edición con múltiples imágenes de entrada

Seedream 4.5 admite varias imágenes de entrada. Se pueden usar para generar una imagen nueva combinando estilos y elementos visuales de esas imágenes.

Proporcionar varias imágenes en una solicitud a la API es tan sencillo como enviar una lista con las imágenes. Aquí tienes un ejemplo que combina la imagen de una persona y la de un conjunto de ropa para obtener a esa persona con ese atuendo:

image1 = utils.load_image_as_base64("woman.jpeg")
image2 = utils.load_image_as_base64("outfit.jpeg")
prompt = """
Make the woman from image 1 wear the outfit in image 2.
"""
imagesResponse = client.images.generate( 
    model="seedream-4-5-251128", 
    prompt=prompt,
    image=[image1, image2],
    response_format="url",
    watermark=False,
)

Ejemplo de edición multiimagen con la API de Seedream 4.5: izquierda, mujer con camisa blanca; centro, un body futurista plateado con neón; derecha, resultado con la mujer vistiendo el outfit.

Este ejemplo muestra que Seedream 4.5 es bastante bueno preservando rostros; la persona de la imagen final se parece mucho a la original. En esto otros modelos suelen flojear.

Edición con múltiples imágenes de salida

La funcionalidad de lotes que vimos arriba también funciona para la edición de imágenes, donde el número total de imágenes (entradas + salidas) no puede superar 15. Es muy útil, por ejemplo, para generar varias imágenes a partir de un visual.

Para ello, basta con combinar el parámetro image con los parámetros de generación por lotes que aprendimos. Aquí va un ejemplo de solicitud:

prompt = """
Use the given logo to create a visual design system for an outdoor hiking brand, 
including backpack, hat, and shoes.
"""
image = utils.load_image_as_base64("logo.jpeg")
imagesResponse = client.images.generate( 
    model="seedream-4-5-251128", 
    prompt=prompt,
    size="2K",
    image=image,
    sequential_image_generation="auto",
    sequential_image_generation_options=SequentialImageGenerationOptions(max_images=3),
    response_format="url",
    watermark=False
) 

Enmascarado

Algunos modelos de generación de imágenes con IA admiten enmascarado permitiendo aportar una máscara en blanco y negro para indicar qué zonas de la imagen se quieren editar. Sin embargo, Seedream 4.5 no admite parámetros de enmascarado de forma nativa.

Aun así, lo probé enviando la máscara como imagen de entrada y especificando lo que quería en el prompt para ver si lo entendía y podía emular el resultado:

Demostración de eliminación de objetos con la API de Seedream 4.5: tríptico de una escena de cafetería con animales antropomorfos; el panel central muestra una silueta blanca sobre el oso y el derecho muestra al oso eliminado mediante inpainting.

Funcionó en este ejemplo, pero al no ser una función integrada del modelo, no es muy fiable. Por ejemplo, al intentar lo mismo para añadir un perro, no funcionó.

Buenas prácticas con Seedream 4.5

Como hemos visto, Seedream 4.5 ofrece buen rendimiento y algunas funciones interesantes. Para sacarle el máximo partido, ten en cuenta estas buenas prácticas.

Pautas básicas de prompting

Para obtener mejores resultados con Seedream 4.5, responde a qué quieres, para qué lo quieres y con qué estilo, manteniéndolo breve:

  • Describe sujeto, acción y entorno en lenguaje claro.
  • Especifica el propósito/caso de uso (logo, póster, storyboard, UI, etc.).
  • Controla el estilo con palabras clave precisas o una imagen de referencia.
  • Prefiere prompts concisos y precisos frente a listas largas de adjetivos.
  • Pon entre comillas dobles el texto que deba aparecer en la imagen.

Pautas para la edición de imágenes

Al editar imágenes, indica exactamente qué cambios haces y qué debe permanecer sin cambios. Usa estas cuatro palabras para especificar acciones:

  • Añadir
  • Eliminar
  • Sustituir
  • Modificar

Si la escena es compleja, usar señales visuales (flechas, cajas, garabatos) para marcar regiones puede ayudar al modelo.

Cuando uses una imagen de referencia para preservar identidad, estilo o características de producto, especifica siempre:

  • Objetivo de referencia: qué extraer/conservar (p. ej., diseño de personaje, material, estilo).
  • Escena generada: dónde/cómo usarlo (disposición, escenario, realismo, tamaño, posición).

Pautas para lotes

Al usar múltiples imágenes de entrada, asigna roles con claridad: 

  • ¿Cuál aporta el sujeto, cuál el outfit/estilo/fondo?
  • Refiérete a las imágenes como imagen 1, imagen 2, etc.

Aunque el modelo tiene parámetros para indicar cuántas imágenes queremos generar, es mejor reforzarlo también en el prompt:

  • Pide “una serie”, “un conjunto” o indica el número exacto de imágenes.
  • Úsalo para storyboards, cómics, sets de marca consistentes, packs de emojis, etc.

Conclusión

Seedream 4.5 se percibe como un generador de imágenes maduro y listo para producción que está a la altura de modelos de primer nivel como Nano Banana, ofreciendo una fidelidad comparable, buena obediencia a instrucciones y coherencia entre imágenes, manteniéndose además rentable.

Lo que más me llamó la atención es lo accesible que resulta la API en la práctica: el mismo endpoint de generación cubre creación simple, ediciones (por URL o base64), mezclas multiimagen y lotes secuenciales, y activamos cada modo ajustando un pequeño conjunto de parámetros claros.

Dicho esto, no diría que aporte innovaciones rompedoras: es una ejecución excelente de la ya familiar caja de herramientas de generación de imágenes más que un salto conceptual.

Para seguir aprendiendo

Si quieres mantener el impulso tras este recorrido, refuerza los fundamentos que hacen que los proyectos con Seedream 4.5 fluyan en producción.

Empieza con el curso Introduction to APIs in Python para dominar solicitudes autenticadas y manejo de errores, y complétalo con Image Processing in Python para gestionar redimensionado, composición y conversiones de formato en tus pipelines.

Si buscas una vía más formal hacia el ML aplicado y su tooling, el itinerario profesional AI Engineer lo une todo con flujos de trabajo para desplegar funciones de IA fiables y escalables.

Seedream 4.5: preguntas frecuentes

¿Cómo se compara Seedream 4.5 con Nano Banana?

Aunque Seedream 4.5 puede competir con la versión original de Nano Banana en coste y calidad de imagen, la nueva versión, Nano Banana 2, da a Google cierta ventaja frente a Seedream 4.5

Aun así, Seedream 4.5 destaca por su alta consistencia en lotes y salidas 4K fotorrealistas. Nano Banana brilla en razonamiento espacial rápido y edición local precisa.

¿Seedream 4.5 puede generar imágenes en alta resolución?

Sí, Seedream 4.5 puede generar imágenes en 4K.

¿Cuánto cuesta generar una imagen?

Tanto las imágenes 2K como las 4K cuestan 0,04 $ por generación a través de la API BytePlus ArkRuntime.

¿Necesito una suscripción para usar Seedream 4.5?

No. Podemos usar Seedream 4.5 mediante la API BytePlus ArkRuntime y pagar solo por las imágenes que generemos.

¿Es posible generar imágenes sin marca de agua?

Sí, configurando el parámetro watermark en False.


François Aubry's photo
Author
François Aubry
LinkedIn
Ingeniero full-stack y fundador de CheapGPT. Enseñar siempre ha sido mi pasión. Desde mis primeros días como estudiante, busqué con entusiasmo oportunidades para dar clases particulares y ayudar a otros estudiantes. Esta pasión me llevó a realizar un doctorado, en el que también trabajé como ayudante de profesor para apoyar mis esfuerzos académicos. Durante esos años, encontré una inmensa satisfacción en el entorno tradicional del aula, fomentando las conexiones y facilitando el aprendizaje. Sin embargo, con la llegada de las plataformas de aprendizaje en línea, reconocí el potencial transformador de la educación digital. De hecho, participé activamente en el desarrollo de una plataforma de este tipo en nuestra universidad. Estoy profundamente comprometida con la integración de los principios de la enseñanza tradicional con metodologías digitales innovadoras. Mi pasión es crear cursos que no sólo sean atractivos e informativos, sino también accesibles para los alumnos en esta era digital.
Temas
Inteligencia Artificial
IA Generativa

Cursos de IA generativa

Curso

Conceptos de la IA generativa

2 h
120.4K
Aprovecha la IA generativa con responsabilidad, aprende cómo se desarrollan estos modelos de IA y cómo afectarán a la sociedad en el futuro.
Ver detallesRight Arrow
Empezar Curso
Ver másRight Arrow
Relacionado
An AI juggles tasks

blog

Cinco proyectos que puedes crear con modelos de IA generativa (con ejemplos)

Aprende a utilizar modelos de IA generativa para crear un editor de imágenes, un chatbot similar a ChatGPT con pocos recursos y una aplicación clasificadora de aprobación de préstamos y a automatizar interacciones PDF y un asistente de voz con GPT.
Abid Ali Awan's photo

Abid Ali Awan

10 min

Tutorial

Tutorial de Generación de nubes de palabras en Python

Aprende a realizar Análisis exploratorios de datos para el Procesamiento del lenguaje natural utilizando WordCloud en Python.
Duong Vu's photo

Duong Vu

11 min

Tutorial

Tutorial de Python: Streamlit

Este tutorial sobre Streamlit está pensado para ayudar a los científicos de datos o ingenieros de machine learning que no son desarrolladores web y no están interesados en pasar semanas aprendiendo a utilizar estos marcos para crear aplicaciones web.
Nadia mhadhbi's photo

Nadia mhadhbi

15 min

Tutorial

Visión GPT-4: Guía completa para principiantes

Este tutorial le presentará todo lo que necesita saber sobre GPT-4 Vision, desde cómo acceder a él hasta ejemplos prácticos del mundo real y sus limitaciones.
Arunn Thevapalan's photo

Arunn Thevapalan

12 min

Tutorial

Ajuste fino de GPT-3 mediante la API OpenAI y Python

Libere todo el potencial de GPT-3 mediante el ajuste fino. Aprenda a utilizar la API de OpenAI y Python para mejorar este modelo de red neuronal avanzado para su caso de uso específico.
Zoumana Keita 's photo

Zoumana Keita

12 min

Tutorial

Tutorial de DeepSeek-Coder-V2: Ejemplos, instalación, puntos de referencia

DeepSeek-Coder-V2 es un modelo de lenguaje de código de código abierto que rivaliza con el rendimiento de GPT-4, Gemini 1.5 Pro, Claude 3 Opus, Llama 3 70B o Codestral.
Dimitri Didmanidze's photo

Dimitri Didmanidze

8 min

Ver MásVer Más