¿Qué hace EP Insignia?
Convierte una URL de imagen de origen en los dos archivos de insignia que EP espera y los sube a
s3://prod-ep-cmh-insignia (cuenta de AWS de EP 405995789491, región us-east-2).
Convenciones, que coinciden con los archivos ya existentes en el bucket:
- Clave:
<prefijo>.pngy<prefijo>.jpgen la raíz del bucket, donde<prefijo>es el prefijo del cliente de EP (minúsculas, p. ej.audubonpd,alexanderncsheriff). - Ambos son 512x512. La insignia se recorta, escala para ajustarse y se centra con un pequeño margen.
- PNG tiene fondo transparente. JPG tiene fondo blanco.
- Los tipos de contenido son
image/pngeimage/jpeg. El bucket usa BucketOwnerEnforced, por lo que no se deben establecer ACL.
Entradas
- URL de origen. Si el usuario no proporcionó una, solicítala. Una ruta de archivo local también funciona.
- Prefijo del cliente. Si no se proporcionó, solicítalo. No lo adivines a partir del nombre de la agencia. Normalízalo a minúsculas y rechaza cualquier cosa que no sea
a-z 0-9 - _.
Pasos
1. Procesar la imagen
Usa un directorio de trabajo limpio en el área de pruebas (o mktemp -d), luego ejecuta:
uv run -q <directorio_habilidad>/scripts/process_insignia.py "<url>" "<prefijo>" "<directorio_trabajo>"
uv instala las dependencias desde los metadatos en línea del script. La primera vez que se ejecuta la eliminación de fondo mediante IA, descarga un modelo de ~180 MB a ~/.u2net.
El modo de fondo predeterminado (--bg auto) funciona así:
- Si la fuente ya tiene fondo transparente, se deja como está.
- Si el borde es un solo color sólido (típicamente blanco), solo se elimina el fondo conectado a los bordes. Las letras o detalles blancos dentro de la insignia se conservan.
- De lo contrario, se utiliza segmentación por IA (rembg
isnet-general-use).
Anulaciones: --bg ai, --bg flood y --bg none fuerzan un modo. --margin N establece el relleno en píxeles (predeterminado 4).
Si la descarga falla con 403 o 429, o la URL es un SVG o una página web en lugar de una imagen, informa al usuario y solicita un enlace directo a la imagen. También pueden descargar el archivo ellos mismos y pasar la ruta local.
2. Revisar antes de subir
Crea una vista previa del PNG sobre un color contrastante, junto al JPG:
convert \( <directorio_trabajo>/<prefijo>.png -background '#c33' -flatten \) <directorio_trabajo>/<prefijo>.jpg +append <directorio_trabajo>/preview.png
Abre preview.png con la herramienta de lectura y verifica:
- Que no quede fondo residual (halo, caja o borde en el lado rojo).
- Que no falten partes de la insignia (agujeros donde se eliminó el blanco interior, o texto que se haya cortado).
- Que sea la agencia correcta.
Si el resultado es incorrecto, vuelve a ejecutar con un modo --bg diferente. Muestra la vista previa al usuario, junto con el método de fondo que informó el script y cualquier advertencia sobre una imagen de origen pequeña.
3. Verificar acceso a AWS y archivos existentes
aws sts get-caller-identity --query Account --output text # esperar 405995789491
aws s3 ls s3://prod-ep-cmh-insignia/<prefijo>.
Si <prefijo>.png o <prefijo>.jpg ya existen, informa al usuario. Este es un bucket de producción, por lo que se debe obtener una confirmación explícita antes de sobrescribir. Primero, respalda los archivos existentes:
aws s3 cp s3://prod-ep-cmh-insignia/<prefijo>.png <directorio_trabajo>/backup/<prefijo>.png
aws s3 cp s3://prod-ep-cmh-insignia/<prefijo>.jpg <directorio_trabajo>/backup/<prefijo>.jpg
Incluso si aún no existe nada, confirma la subida con el usuario después de mostrar la vista previa.
4. Subir
aws s3 cp <directorio_trabajo>/<prefijo>.png s3://prod-ep-cmh-insignia/<prefijo>.png --content-type image/png
aws s3 cp <directorio_trabajo>/<prefijo>.jpg s3://prod-ep-cmh-insignia/<prefijo>.jpg --content-type image/jpeg
Verifica la subida con aws s3 ls s3://prod-ep-cmh-insignia/<prefijo>., luego informa ambas claves de S3, sus tamaños y dónde se guardaron las copias de seguridad.