Ideogram 4.5 vs FLUX 3 para edición precisa de imágenes de producto
Para una corrección pequeña sobre una imagen de producto ya aprobada, conviene probar primero Ideogram 4.5. Para colocar o coordinar varios objetos y trabajar con más referencias, conviene empezar por FLUX 3. La comparación se basa en controles documentados y en un protocolo reproducible, no en declarar un ganador universal sin un benchmark común.
Índice

Una edición de producto no es buena solo porque el resultado sea atractivo. Si la imagen ya está aprobada, el encargo suele ser estricto: corregir una etiqueta, cambiar el color de una tapa o sustituir un objeto sin redibujar el envase, el logotipo, el código de barras, la iluminación, los reflejos, las sombras, el fondo ni el encuadre.
La recomendación inicial es clara: prueba primero Ideogram 4.5 Precise Edit cuando el contrato sea «cambia esta zona pequeña y conserva todo lo demás». Prueba primero FLUX 3 Image cuando el reto principal sea la colocación espacial, varios elementos coordinados o un conjunto amplio de referencias. No es un veredicto universal de calidad. Las fuentes oficiales revisadas no ofrecen un benchmark independiente y reproducible de ambos modelos sobre el mismo original, por lo que la decisión final debe salir de una prueba de aceptación propia.
Decisión rápida
| Necesidad | Primera opción | Motivo |
|---|---|---|
| Corregir texto, un sello o una pequeña zona de color | Ideogram 4.5 | Precise Edit documenta dimensiones iguales a la entrada, máscara opcional y copia exacta de los píxeles no modificados de forma significativa. |
| Editar un recorte de un máster grande y reintegrarlo | Ideogram 4.5 | La página del modelo describe la edición de recortes con bordes conservados para volver a unirlos al original. |
| Mover, eliminar o sustituir varios elementos | FLUX 3 | Sus filas de bounding boxes describen posiciones de origen y destino. |
| Usar muchas referencias | FLUX 3 | El API acepta entre una y diez imágenes; Ideogram acepta hasta cuatro y menos cuando se utiliza una máscara. |
| Imponer «fuera de aquí no cambia nada» | Ideogram primero, siempre con verificación | La máscara limita la edición; las cajas de FLUX orientan la colocación, pero no son máscaras de recorte. |
| Crear una familia de variantes | Cualquiera, con ramas | Cada variante debe partir del mismo checkpoint aprobado, no de la variante anterior. |
Define qué significa «preciso»
Antes de elegir modelo, convierte la intención en un contrato medible:
- Zona mutable: el área mínima que puede cambiar, incluido un margen para bordes, sombras o reflejos.
- Zona protegida: todos los píxeles y objetos que deben mantenerse estables.
- Criterios de aceptación: dimensiones, deriva fuera de la zona, texto, color, geometría, luz, perfil y revisión humana.
La conservación semántica no equivale a la conservación de píxeles. Un envase puede parecer el mismo y, aun así, cambiar el espaciado del logotipo, la textura de la etiqueta, la forma de un brillo o el grano del fondo. Eso puede valer para un concepto, pero no necesariamente para comercio electrónico, texto regulado o impresión de gran formato.
Cómo trabaja Ideogram 4.5
El API oficial de Precise Edit utiliza:
POST https://api.ideogram.ai/v2/image/precise-edit/ideogram-4-5
Se envía el original como image, la instrucción como prompt y, opcionalmente, reference_images y mask. La documentación indica que la salida conserva el ancho y el alto de la entrada y que los píxeles no modificados de manera significativa se copian exactamente. En la máscara de Ideogram, negro significa editar y blanco significa conservar.
Ese contrato es especialmente útil para una modificación quirúrgica. Para archivos de alta resolución, la página de Ideogram 4.5 propone recortar con margen, editar y volver a unir el recorte, ya que se conservan sus bordes.
Dos precauciones:
- la documentación avisa de que las imágenes demasiado grandes se reducen; no presupongas que enviar todo el máster preservará cada píxel;
- una máscara ocupa una ranura de referencia, por lo que una solicitud enmascarada admite menos imágenes auxiliares.
La respuesta es síncrona por defecto. Con async o webhook, guarda generation_id y consulta GET /v2/generations/{generation_id}. El resumen del API señala además que las URL de imagen caducan, por lo que conviene descargar el archivo original inmediatamente.
Cómo trabaja FLUX 3
El API oficial de FLUX 3 Image utiliza:
POST https://api.bfl.ai/v1/flux-3-image
No hay un modo de edición separado: se envían prompt e images. Puede recibir de una a diez referencias. Con aspect_ratio: auto, una proporción solicitada en el prompt tiene prioridad; de lo contrario, si hay referencias, se mantiene el encuadre de la primera.
Su control espacial se basa en bounding boxes. Cada caja usa [top, left, bottom, right] en una cuadrícula normalizada de 0 a 1000. Las filas pueden expresar origen y destino para conservar, mover, añadir, sustituir, recolorear o eliminar elementos.
Por eso FLUX 3 encaja bien cuando la pregunta es «coloca este objeto aquí» o «coordina estos tres cambios». Sin embargo, la documentación marca un límite: las cajas guían la colocación, no son clipping masks. Los píxeles externos «normalmente» permanecen iguales; no es una garantía absoluta.
Las solicitudes son asíncronas. Guarda id y polling_url; la guía de integración exige usar la URL devuelta. Cuando el estado sea Ready, descarga result.sample de inmediato, porque BFL indica que el archivo expira en diez minutos.
En una prueba controlada, usa grounding: false. Grounding está activado por defecto y puede añadir búsquedas web o de imágenes, una variable innecesaria si solo deseas modificar el original suministrado.
Una prueba comparable con el mismo original
1. Congela un máster inmutable
Trabaja con PNG sin pérdidas o con un PNG derivado del TIFF aprobado. Registra nombre, SHA-256, dimensiones, perfil de color y versión de aprobación. Mantén una copia que ningún proceso pueda sobrescribir.
2. Crea una máscara interna de cambios permitidos
Debe tener el mismo tamaño que el original:
- blanco: puede cambiar;
- negro: debe permanecer estable.
Incluye un margen alrededor del objetivo y añade sombras, reflejos o bordes que deban adaptarse. Esta máscara interna usa blanco para «editable» y es deliberadamente opuesta a la máscara que se sube a Ideogram. Usa nombres inequívocos.
3. Haz una sola modificación por intento
Una prueba válida cambia una línea de texto, una tapa o una pegatina. No mezcles texto, fondo, iluminación y reencuadre.
Plantillas de prompt:
LABEL EDIT
Change only the product label text from "CLASSIC" to "ZERO SUGAR".
Keep the package shape, logo, barcode, lighting, reflections, shadows, background,
camera angle, crop, and all pixels outside the label area unchanged.
Do not redesign, restyle, or add objects.
COLORWAY
Change only the bottle cap from matte black to Pantone 186 C red.
Preserve the bottle, label, liquid, highlights, reflections, shadows, background,
camera angle, crop, and every object outside the cap area.
OBJECT REPLACEMENT
Replace only the small paper sticker with a clean white sticker of the same size,
position, perspective, edge softness, and shadow. Keep everything else unchanged.
En FLUX, añade cajas medidas cuando la posición sea el problema. Este ejemplo es orientativo; calcula los valores sobre el original y recuerda que la caja no impide cambios fuera de ella:
Edit only <front_label>. Keep every other part of ref_image_0 unchanged.
[
{
"id": "front_label",
"from": null,
"src_bbox": null,
"tgt_bbox": [360, 285, 690, 725],
"desc": "the same front label with the text ZERO SUGAR; preserve its size, perspective, typography, print texture, highlights, and shadow"
}
]
4. Compara la misma intención con controles propios de cada modelo
- Ideogram: imagen completa o recorte con margen; máscara negra-editar/blanca-conservar si necesitas localización estricta.
- FLUX 3: original como primera imagen,
aspect_ratio: auto, filas de cajas y grounding desactivado en la ejecución de control.
Registra cada parámetro. La comparación justa conserva la intención de negocio y aprovecha los controles documentados de cada sistema.
5. Descarga y conserva los resultados originales
No compares capturas ni vistas previas comprimidas. Guarda el archivo crudo con un nombre como:
masterHash_model_editId_attempt.ext
Calcula también su hash. Cualquier resize, conversión o compresión posterior debe guardarse como derivado separado.
Validación local de los píxeles protegidos
Este script compara original y candidato fuera de la máscara interna y genera un mapa: blanco para cambios en la zona protegida, gris para la zona permitida y negro para protección sin cambios.
Instala las dependencias:
python -m pip install pillow numpy
Guárdalo como verify_edit.py:
#!/usr/bin/env python3
"""Check whether an edited image changed pixels outside an allowed mask."""
from __future__ import annotations
import argparse
import sys
from pathlib import Path
import numpy as np
from PIL import Image
def parse_args() -> argparse.Namespace:
parser = argparse.ArgumentParser()
parser.add_argument("original", type=Path)
parser.add_argument("edited", type=Path)
parser.add_argument("allowed_mask", type=Path,
help="white = may change, black = must stay unchanged")
parser.add_argument("--tolerance", type=int, default=0,
help="maximum per-channel delta treated as unchanged")
parser.add_argument("--max-outside-ratio", type=float, default=0.0)
parser.add_argument("--diff-map", type=Path, default=Path("outside-diff.png"))
return parser.parse_args()
def main() -> int:
args = parse_args()
if not 0 <= args.tolerance <= 255:
raise SystemExit("--tolerance must be between 0 and 255")
if not 0.0 <= args.max_outside_ratio <= 1.0:
raise SystemExit("--max-outside-ratio must be between 0 and 1")
with Image.open(args.original) as original_file, \
Image.open(args.edited) as edited_file, \
Image.open(args.allowed_mask) as mask_file:
if original_file.size != edited_file.size or original_file.size != mask_file.size:
print("FAIL: original, edited image, and mask must have identical dimensions")
return 2
original_profile = original_file.info.get("icc_profile")
edited_profile = edited_file.info.get("icc_profile")
original = np.asarray(original_file.convert("RGB"), dtype=np.int16)
edited = np.asarray(edited_file.convert("RGB"), dtype=np.int16)
allowed = np.asarray(mask_file.convert("L")) >= 128
delta = np.abs(edited - original)
changed = np.max(delta, axis=2) > args.tolerance
protected = ~allowed
outside_changed = changed & protected
protected_pixels = int(protected.sum())
changed_pixels = int(outside_changed.sum())
outside_ratio = changed_pixels / protected_pixels if protected_pixels else 0.0
max_delta = int(delta[protected].max()) if protected_pixels else 0
diff_map = np.zeros(allowed.shape, dtype=np.uint8)
diff_map[allowed] = 64
diff_map[outside_changed] = 255
Image.fromarray(diff_map, mode="L").save(args.diff_map)
print(f"protected_pixels={protected_pixels}")
print(f"outside_changed_pixels={changed_pixels}")
print(f"outside_changed_ratio={outside_ratio:.8f}")
print(f"max_outside_channel_delta={max_delta}")
print(f"icc_profile_match={original_profile == edited_profile}")
print(f"diff_map={args.diff_map}")
if outside_ratio > args.max_outside_ratio:
print("FAIL: protected area changed beyond the allowed threshold")
return 1
print("PASS: protected-area pixel check passed")
return 0
if __name__ == "__main__":
sys.exit(main())
Ejecuta una comprobación estricta sobre archivos sin pérdidas:
python verify_edit.py master.png candidate.png allowed-mask.png --tolerance 0 --max-outside-ratio 0
outside_changed_pixels=0 significa que los RGB protegidos son iguales. Si outside_changed_ratio es mayor que cero, revisa outside-diff.png. icc_profile_match=False avisa de un cambio en la canalización de color. El umbral cero es adecuado para archivos sin pérdidas; un JPEG recomprimido puede variar muchos píxeles, por lo que debes validar el original sin pérdidas o documentar un umbral aprobado.
La igualdad externa no garantiza que la modificación sea correcta. Revisa ortografía, tipografía, logotipo, textura, perspectiva, bordes, luces, sombras, reflejos y oclusiones dentro de la zona editable.
Evita la deriva en ediciones sucesivas
Organiza los activos en tres niveles:
- Máster: fuente aprobada e inmutable.
- Checkpoint: resultado que superó validación automática y humana.
- Variante: rama regional, de color o de formato creada desde un checkpoint.
Las variantes roja, azul y verde deben salir del mismo checkpoint. No crees azul a partir de rojo y verde a partir de azul. En cada ronda, cambia una sola cosa; si falla, vuelve al último checkpoint. No intentes «reparar la deriva» sobre un resultado rechazado.
Mantén un registro con hash de origen, modelo, endpoint, prompt, máscara o cajas, hash de salida, dimensiones, ratio externo y decisión del revisor. La afirmación de Ideogram sobre menor deriva y los controles de FLUX deben verificarse así; ninguno sustituye los checkpoints.
Recomendación por escenario
Texto de etiqueta o cumplimiento
Ideogram 4.5 primero. Usa un recorte con margen y la máscara de proveedor. Comprueba cada carácter antes de reintegrarlo. Prueba FLUX cuando la composición sea compleja, pero no interpretes una caja como garantía de aislamiento.
Cambio de color único
Ideogram 4.5 primero si el límite es claro y el resto debe quedar estable. Incluye reflejos y luz coloreada en la zona permitida. FLUX 3 primero si cambian varios objetos o las referencias definen material y paleta.
Sustitución, movimiento o eliminación
FLUX 3 primero si la posición de origen y destino es el centro del problema. Ideogram 4.5 primero si el objetivo es pequeño, aislable mediante máscara y la geometría exacta del original es prioritaria.
Máster de alta resolución
Recorta con margen, edita el fragmento, valida el borde y vuelve a unirlo. Ideogram documenta ese proceso. Con FLUX, trata dimensiones y píxeles protegidos como criterios de aceptación, no como supuestos.
Muchas variantes
Prueba un conjunto pequeño y representativo, elige el flujo con menos rechazos y reparación manual, congela un checkpoint y genera todas las variantes desde él.
Lista de aceptación
Antes de publicar, confirma que:
- el candidato procede del máster o checkpoint correcto;
- se solicitó un único cambio documentado;
- dimensiones, orientación y recorte son correctos;
- la zona protegida cumple el umbral;
- texto, logotipo, código y datos regulados son exactos;
- textura, bordes, sombras, reflejos y oclusiones son creíbles;
- el perfil y el formato sirven al destino;
- se guardaron archivo original, prompt, controles, hashes y decisión;
- las nuevas variantes partirán de un checkpoint y no de otra variante.
Conclusión
Para una edición pequeña y quirúrgica de una imagen terminada, Ideogram 4.5 es el primer flujo más razonable por su contrato documentado de preservación y su máscara real. Para una edición espacial compleja, varios elementos o muchas referencias, FLUX 3 es la primera opción más adecuada por sus cajas estructuradas.
Ninguno elimina la verificación. Conserva el máster, prueba el mismo original, mide la zona protegida, revisa la modificación y aprueba checkpoints antes de crear variantes. Ese procedimiento, no una promesa comercial, es lo que evita que una serie de pequeñas correcciones termine convirtiéndose en una imagen nueva.