Transformer une collection de 10 000+ aquarelles physiques numérisées en une base de données intelligente et sémantique. L'outil doit apprendre le style spécifique de l'artiste (reportage, étude, carnet) et automatiser le catalogage via une boucle de rétroaction itérative (Human-in-the-loop).
- Langage : Python 3.10+
- IA Vision (Local) : * Modèle Principal : OpenCLIP (ex:
ViT-bigG-14-CLIPA-336) pour le "Zero-shot tagging".- Modèle de Description : Llava-v1.6 ou Moondream2 pour l'analyse textuelle détaillée (VLM).
- Bases de Données :
- SQL (SQLite) : Métadonnées froides (chemins, dates, EXIF, tags validés).
- Vectorielle (ChromaDB) : Stockage des embeddings pour la recherche par similarité et le clustering.
- Interface : Streamlit (Backend-to-Web local).
L'IA ne doit pas produire de tags vracs. Elle doit remplir quatre axes systématiques pour chaque image :
- Axe SUJET : [Paysage, Portrait, Architecture, Nature Morte, Animalier, Abstrait]
- Axe LIEU : [Intérieur, Extérieur, Ville, Campagne, Côte/Mer, Montagne]
- Axe TECHNIQUE : [Lavis, Sec sur Sec, Crayon Apparent, Humide sur Humide, Reportage/Rapide]
- Axe AMBIANCE : [Couleurs Chaudes/Froides, High-Key, Low-Key, Saison, Moment du jour]
- Scan du disque dur externe.
- Classement physique auto :
/Aquarelles/ANNEE/MOIS/image.jpg. - Génération des "Empreintes Digitales" (Embeddings).
- L'IA assigne des tags avec un Score de Confiance (0.0 à 1.0).
- Seuil de validation automatique : > 0.85.
- Zone d'incertitude : [0.5 - 0.85] -> Mise en attente pour "Interview".
- L'IA regroupe les incertitudes par similarité (Clustering).
- Exemple d'interaction : "J'ai 150 images d'oliviers. S'agit-il de ta série 'Palestine' ou 'Provence' ?"
- Correction : Une réponse de l'utilisateur sur une image se propage à tout le cluster visuel.
- Recherche par Similarité : "Trouver des peintures ayant la même atmosphère que image_01.jpg".
- Détection de Reportage : Identification automatique des séries de voyage via la cohérence temporelle et stylistique.
- Analyse de Pigments : Extraction de la palette chromatique (K-Means) pour filtrer par couleur dominante.
- Confidentialité : Tout doit tourner en local. Pas d'API Cloud (OpenAI/Google) sans validation explicite.
- Modularité : Séparer strictement le moteur d'IA (Inference) de la gestion de fichiers (OS/Shutil).
- Apprentissage : Toujours privilégier la suggestion à l'imposition. L'IA doit demander confirmation avant de renommer ou taguer massivement.
- Optimisation GPU : Utiliser
torch.device("cuda")pour NVIDIA outorch.device("mps")pour Mac Pro.
- Étape 1 : Script de scan, renommage et initialisation SQLite/ChromaDB.
- Étape 2 : Pipeline d'inférence CLIP (Première passe de tags).
- Étape 3 : Interface Streamlit de visualisation et filtrage.
- Étape 4 : Boucle de rétroaction (Interface de correction et propagation des tags).