CoverGAN - это набор инструментов и моделей машинного обучения, разработанных для создания красивых обложек музыкальных альбомов на основе аудио треков и эмоций пользователей. Результирующие обложки создаются в формате векторной графики (SVG).
Доступные эмоции для музыкального трека:
- Гневный
- Уютный
- Страшый
- Смешной
- Счастливый
- Вдохновляющий
- Радостный
- Одинокий
- Ностальгичесикй
- Страстный
- Спокойный
- Расслабленный
- Романтичный
- Печальный
- Серьезный
- Глубокий
- Удивлябщий
- Милый
- Осторожный
Сервис доступен по адресу http://81.3.154.178:5001/covergan.
- Генерация музыкальных обложек путем анализа музыки и эмоций
- Несколько моделей GAN
- Формат SVG
- Возможность растеризации
- Вставка хорошо читаемых подписей
- Большое количество разных шрифтов
- Вставка различных цветовых фильтров
- Редактор SVG
- Удобное изменение цветов
- Перенос стиля с предоставленного изображения
- Сохранение изображений в любом разрешении
- Предварительно обученные веса можно скачать по этой ссылке
- Эти веса должны быть помещены в папку
./weights
- Положите аудио дорожки (формата
.flacили.mp3) в папку./audioпо умолчанию. - Положите очищенные от подписей обложки (формата
.jpg) в папку./clean_coversпо умолчанию. - Посмотрите этот документ, чтобы узнать больше опций для обучения.
- Запустите
./covergan_train.pyс указанными опциями.
Пример:
python3 ./covergan_train.py --emotions emotions.json
- Положите оригинальные обложки (формата
.jpg) в папку./original_coversпо умолчанию. - Если название обложки и имя автора уже сохранены в файле
data.json(который для каждой обложки хранит координаты подписей и цвет текста), его следует сохранить в файл./checkpoint/caption_dataset/data.json. - В противном случае поместите чистые (без подписей) обложки (в формате .jpg) в
папку
./clean_covers. - Для получения более подробной информации об указанных параметрах см. этот документ.
- Запустите
./captioner_train.pyс указанными опциями.
Пример:
python3 ./captioner_train.py --clean_covers ./clean_covers
В этом сервисе доступны два типа генераторов:
- Первый создает обложки с абстрактными линиями
- Второй рисует закрытые формы
Также можно использовать один из двух алгоритмов для нанесения надписей на обложку:
- Первый алгоритм использует модель для создания подписей
- Второй - детерминированный алгоритм, который ищет наиболее подходящее место
Сервис использует предварительно обученные веса. См. этот раздел.
- Укажите версию PyTorch для установки в файле
Dockerfile.. - Соберите образ, запустив файл
docker_build_covergan_service.sh
- Запустите контейнер, запустив файл
docker_run_covergan_service.sh
Перейдите по адресу http://localhost:5001 в браузере и наслаждайтесь!
- Установите подходящую версию PyTorch:
pip install torch torchvision torchaudio - Установите DiffVG
- Установите зависимости из файла requirements.txt
- Запустите
python3 ./eval.py \
--audio_file="test.mp3" \
--emotions=joy,relaxed \
--track_artist="Cool Band" \
--track_name="New Song"- Результирующие обложки в формате
.svgпо умолчанию будут сохранены в папку./gen_samples.
См. папку examples.
captions: сеть, предсказывающая эстетически сочетающиеся цвета и позиции для подписей (имена исполнителя и трека).colorer: сеть, предсказывающая палитры для музыкальных обложек.docs: папка с инструкциями о том, как начать обучение или тестирование моделей.examples: папка с простыми музыкальными треками, их созданными обложками и примерами оригинальных и чистых наборов данных.fonts: папка с загруженными из Google Fonts шрифтами.outer: основной GAN, который генерирует описания векторной графики из аудиофайлов и указанных пользователем эмоций.utils: части кода, реализующие различные независимые функциональности и разделенные для удобного повторного использования.weights: папка, в которой сохранены лучшие модели.captioner_train.py: точка входа для запуска обучения сети Captioner.covergan_train.py: точка входа для запуска обучения CoverGAN.eval.py: точка входа для запуска основного потока в виде командной строки.service.py: основной код для генерации обложек альбомов.
audio: папка с музыкальными треками (в формате.flacили.mp3) для обучения CoverGAN.checkpoint: папка, в которой будут сохранены контрольные точки и другие промежуточные файлы во время обучения CoverGAN и Captioner Networks.clean_covers: папка с обложками, с которых были удалены подписи.original_covers: папка с оригинальными обложками.plots: папка, в которой будут сохранены промежуточные графики во время обученияemotions.json: файл с разметкой эмоций для обучающего набора данных.
- Модели машинного обучения основаны на популярном фреймворке PyTorch.
- Визуализация векторной графики с использованием diffvg, который должен быть собран из исходного кода.
- Извлечение аудиофункций основано на Essentia, предварительно собранные пакеты pip доступны.
- Другие зависимости Python включают Pillow, Matplotlib, SciPy и Kornia.
Полный набор данных включает:
- Аудио треки
- Оригинальные обложки
- Очищенные обложки
- Шрифты
- Размеченные эмоции
- Размеченные прямоугольники для обучения модели подписей
Набор данных можно скачать по [этой ссылке](https://drive.google.com/file/d/1_NKlS79y29_he9P3xTLd7SgYbOstCkmO/view?usp
This work is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License.

