diff --git a/.gitea/workflows/docker.yml b/.gitea/workflows/docker.yml index da29646..fc2dcdc 100644 --- a/.gitea/workflows/docker.yml +++ b/.gitea/workflows/docker.yml @@ -23,6 +23,41 @@ jobs: with: fetch-depth: 0 + - name: Download Essentia models + run: | + mkdir -p backend/models + cd backend/models + + # Download models from Essentia + echo "Downloading Essentia models..." + + # Embedding model (18 MB) + curl -L -o discogs-effnet-bs64-1.pb \ + https://essentia.upf.edu/models/feature-extractors/discogs-effnet/discogs-effnet-bs64-1.pb + + # Genre classifier (2 MB) + curl -L -o genre_discogs400-discogs-effnet-1.pb \ + https://essentia.upf.edu/models/classification-heads/genre_discogs400/genre_discogs400-discogs-effnet-1.pb + + # Genre metadata + curl -L -o genre_discogs400-discogs-effnet-1.json \ + https://essentia.upf.edu/models/classification-heads/genre_discogs400/genre_discogs400-discogs-effnet-1.json + + # Mood classifier (2.7 MB) + curl -L -o mtg_jamendo_moodtheme-discogs-effnet-1.pb \ + https://essentia.upf.edu/models/classification-heads/mtg_jamendo_moodtheme/mtg_jamendo_moodtheme-discogs-effnet-1.pb + + # Instrument classifier (2.6 MB) + curl -L -o mtg_jamendo_instrument-discogs-effnet-1.pb \ + https://essentia.upf.edu/models/classification-heads/mtg_jamendo_instrument/mtg_jamendo_instrument-discogs-effnet-1.pb + + # Genre classifier alternative (2.7 MB) + curl -L -o mtg_jamendo_genre-discogs-effnet-1.pb \ + https://essentia.upf.edu/models/classification-heads/mtg_jamendo_genre/mtg_jamendo_genre-discogs-effnet-1.pb + + ls -lh + echo "Models downloaded successfully!" + - name: Set up Docker Buildx uses: docker/setup-buildx-action@v3 @@ -77,6 +112,25 @@ jobs: with: fetch-depth: 0 + - name: Download Essentia models (for context) + run: | + mkdir -p backend/models + cd backend/models + + # Download models (needed because frontend build context is root) + curl -L -o discogs-effnet-bs64-1.pb \ + https://essentia.upf.edu/models/feature-extractors/discogs-effnet/discogs-effnet-bs64-1.pb + curl -L -o genre_discogs400-discogs-effnet-1.pb \ + https://essentia.upf.edu/models/classification-heads/genre_discogs400/genre_discogs400-discogs-effnet-1.pb + curl -L -o genre_discogs400-discogs-effnet-1.json \ + https://essentia.upf.edu/models/classification-heads/genre_discogs400/genre_discogs400-discogs-effnet-1.json + curl -L -o mtg_jamendo_moodtheme-discogs-effnet-1.pb \ + https://essentia.upf.edu/models/classification-heads/mtg_jamendo_moodtheme/mtg_jamendo_moodtheme-discogs-effnet-1.pb + curl -L -o mtg_jamendo_instrument-discogs-effnet-1.pb \ + https://essentia.upf.edu/models/classification-heads/mtg_jamendo_instrument/mtg_jamendo_instrument-discogs-effnet-1.pb + curl -L -o mtg_jamendo_genre-discogs-effnet-1.pb \ + https://essentia.upf.edu/models/classification-heads/mtg_jamendo_genre/mtg_jamendo_genre-discogs-effnet-1.pb + - name: Set up Docker Buildx uses: docker/setup-buildx-action@v3 diff --git a/README.md b/README.md index cc5e6d0..a65be00 100644 --- a/README.md +++ b/README.md @@ -78,12 +78,16 @@ Les images Docker sont automatiquement téléchargées depuis le registry Gitea. ### 🛠 Build local (développement) -Si vous voulez builder les images localement : +Si vous voulez builder les images localement, les modèles Essentia doivent être présents dans `backend/models/` (28 MB). + ```bash +# Build avec docker-compose docker-compose -f docker-compose.build.yml build docker-compose -f docker-compose.build.yml up -d ``` +**Note** : Les modèles Essentia (`.pb`, 28 MB) ne sont pas versionnés dans Git. Le workflow CI/CD les télécharge automatiquement depuis essentia.upf.edu pendant le build. + ## 📖 Utilisation ### Scanner un dossier