Python Pipeline (alternative haute qualité)
Pipeline Python alternative pour les étapes 4 (embeddings) et 5 (UMAP) du pipeline FontMap.
Avantages vs pipeline JS
| Pipeline JS | Pipeline Python | |
|---|---|---|
| Modèle | CLIP ViT-B/32 vanilla | CLIP ou FontCLIP (fine-tuné typographie) |
| UMAP | umap-js (init aléatoire) |
umap-learn (init spectrale, référence) |
| PCA | EVD custom | scikit-learn (optimisé, LAPACK) |
| k-NN | Brute-force JS | scikit-learn NearestNeighbors |
Installation
cd src/typography/new-pipe/python-pipeline
pip install -r requirements.txt
Utilisation
# Avec CLIP standard
python generate_embeddings_and_umap.py \
--pngs-dir ../output/pngs \
--output-dir ../output/data \
--font-index ../input/font-index.json \
--device mps # ou cpu, cuda
# Avec FontCLIP (si les poids sont disponibles)
python generate_embeddings_and_umap.py \
--pngs-dir ../output/pngs \
--output-dir ../output/data \
--font-index ../input/font-index.json \
--fontclip \
--device mps
FontCLIP
Pour utiliser FontCLIP :
- Cloner https://github.com/yukistavailable/FontCLIP
- Entraîner ou récupérer les poids fine-tunés
- Placer le fichier
.ptdansweights/fontclip_vit_b32.pt
Options
| Flag | Défaut | Description |
|---|---|---|
--pca |
50 | Nombre de composantes PCA |
--umap-neighbors |
15 | UMAP n_neighbors |
--umap-min-dist |
0.3 | UMAP min_dist |
--knn-k |
8 | Nombre de voisins k-NN |
--fontclip |
false | Utiliser FontCLIP |
--device |
cpu | cpu, cuda, mps |
Sortie
Le script produit un fichier typography_data_python_*.json compatible avec le format existant.
Pour déployer : copier vers public/data/typography_data.json.