EP Insignia
Wandelt eine Quellbild-URL in die beiden von EP erwarteten Insigniendateien um und lädt sie hoch nach
s3://prod-ep-cmh-insignia (EP AWS-Konto 405995789491, Region us-east-2).
Konventionen, die den bereits im Bucket vorhandenen Dateien entsprechen:
- Schlüssel:
<praefix>.pngund<praefix>.jpgim Bucket-Root, wobei<praefix>das EP-Kundenpräfix ist (Kleinbuchstaben, z. B.audubonpd,alexanderncsheriff). - Beide sind 512×512. Das Abzeichen wird beschnitten, maßstäblich eingepasst und mit einem kleinen Rand zentriert.
- PNG hat einen transparenten Hintergrund. JPG hat einen weißen Hintergrund.
- Die Inhaltstypen sind
image/pngundimage/jpeg. Der Bucket verwendet BucketOwnerEnforced, daher keine ACLs setzen.
Eingaben
- Quell-URL. Falls der Benutzer keine angegeben hat, danach fragen. Ein lokaler Dateipfad funktioniert ebenfalls.
- Kundenpräfix. Falls nicht angegeben, danach fragen. Nicht aus dem Behördennamen raten. In Kleinbuchstaben normalisieren und alles außer
a-z 0-9 - _ablehnen.
Schritte
1. Bild verarbeiten
Ein neues Arbeitsverzeichnis im Scratchpad (oder mktemp -d) verwenden, dann ausführen:
uv run -q <skill_dir>/scripts/process_insignia.py "<url>" "<praefix>" "<workdir>"
uv installiert die Abhängigkeiten aus den Inline-Metadaten des Skripts. Beim ersten Lauf der KI-Hintergrundentfernung wird ein ~180 MB großes Modell nach ~/.u2net heruntergeladen.
Der Standard-Hintergrundmodus (--bg auto) funktioniert so:
- Wenn die Quelle bereits einen transparenten Hintergrund hat, wird dieser unverändert gelassen.
- Wenn der Rand eine einzelne, einheitliche Farbe ist (normalerweise Weiß), wird nur der mit den Kanten verbundene Hintergrund entfernt. Weiße Buchstaben oder Details innerhalb des Abzeichens bleiben erhalten.
- Andernfalls wird KI-Segmentierung (rembg
isnet-general-use) verwendet.
Überschreibungen: --bg ai, --bg flood und --bg none erzwingen einen Modus. --margin N legt den Rand in px fest (Standard 4).
Wenn der Download mit 403 oder 429 fehlschlägt oder es sich bei der URL um ein SVG oder eine Webseite und nicht um ein Bild handelt, den Benutzer informieren und um einen direkten Bildlink bitten. Der Benutzer kann die Datei auch selbst herunterladen und den lokalen Pfad übergeben.
2. Vorschau vor dem Hochladen
Eine Vorschau des PNGs über einer Kontrastfarbe neben dem JPG erstellen:
convert \( <workdir>/<praefix>.png -background '#c33' -flatten \) <workdir>/<praefix>.jpg +append <workdir>/preview.png
preview.png mit dem Lese-Tool öffnen und überprüfen:
- Kein restlicher Hintergrund (Lichthof, Kasten oder Rand auf der roten Seite).
- Keine fehlenden Teile des Abzeichens (Löcher, wo weißes Innenleben entfernt wurde, oder abgeschnittener Text).
- Es ist die richtige Behörde.
Wenn das Ergebnis falsch ist, mit einem anderen --bg-Modus erneut ausführen. Die Vorschau dem Benutzer zeigen, zusammen mit der vom Skript gemeldeten Hintergrundmethode und einer eventuellen Warnung über ein zu kleines Quellbild.
3. AWS-Zugriff und vorhandene Dateien prüfen
aws sts get-caller-identity --query Account --output text # erwartet 405995789491
aws s3 ls s3://prod-ep-cmh-insignia/<praefix>.
Wenn <praefix>.png oder <praefix>.jpg bereits existieren, den Benutzer informieren. Dies ist ein Produktions-Bucket, daher vor dem Überschreiben eine explizite Bestätigung einholen. Vorhandene Dateien zuerst sichern:
aws s3 cp s3://prod-ep-cmh-insignia/<praefix>.png <workdir>/backup/<praefix>.png
aws s3 cp s3://prod-ep-cmh-insignia/<praefix>.jpg <workdir>/backup/<praefix>.jpg
Auch wenn noch nichts vorhanden ist, den Upload mit dem Benutzer bestätigen, nachdem die Vorschau gezeigt wurde.
4. Hochladen
aws s3 cp <workdir>/<praefix>.png s3://prod-ep-cmh-insignia/<praefix>.png --content-type image/png
aws s3 cp <workdir>/<praefix>.jpg s3://prod-ep-cmh-insignia/<praefix>.jpg --content-type image/jpeg
Den Upload mit aws s3 ls s3://prod-ep-cmh-insignia/<praefix>. überprüfen, dann beide S3-Schlüssel, ihre Größen und den Speicherort etwaiger Backups melden.