Дисклеймер
Сразу скажу, дорогие читатели: я не профи, эта работа — арт‑проект по переосмыслению работы графической нейросети. Однако меня по‑настоящему увлекла эта тема, и мне понравилось работать над проектом. Поэтому я решила поделиться процессом и результатами с русскоязычной аудиторией, поскольку на момент начала работы (апрель 2026) материалов от соотечественников было совсем мало. Надеюсь, что кому‑то эта статья будет полезна.
Что такое спектрограмма и зачем её генерировать нейросетью
Спектрограмма — это графическое отображение звука, где горизонтальная ось отображает время, вертикальная ось — частоты, а яркость каждой точки показывает громкость соответствующей частоты в данный момент.

Вообще, спектрограммы используются в очень разных сферах. Например, при распознавании речи или медицине, при изучении природы (сигналов дельфинов и китов, песен птиц), анализе вибраций земли для предсказания землетрясений, распознавания шума двигателей и технической диагностики. Ну и конечно в музыке — обработка треков и голоса.
Идея проекта родилась из личного интереса: что будет, если графическую нейросеть — то есть модель, которая изначально создана рисовать картинки, — заставить генерировать спектрограммы? И получится ли с помощью этого музыка?
Отсюда как раз и вытекла концепция:
В проекте используется графическая нейросеть, созданная изначально для работы с изображениями, как инструмент для создания музыки. Модель обучалась на спектрограммах, не зная, что рисует звук, а не картинки. Так стандартный визуальный инструмент стал музыкальным.
Как звук превратился в датасет
Перед тем как обучать саму модель, нужно было решить две задачи:
Научиться превращать звук в изображение и обратно
Собрать из этих изображений датасет.
Для решения первой мне потребовался Сursor и пара промптов. Таким образом «я» создала программу на Python, которая переводит звук в mel‑спектрограмму и умеет проделывать обратную операцию — превращать спектрограмму в звук.
Отступление: перед написанием программы я пробовала делать это через браузерные декодеры, но проблема была в том, что сама спектрограмма выходила слишком мелкой и нечеткой для обучения нейросети (и брала я изначально классические произведения). Поэтому было принято решение взять мелодии попроще и делить их на фрагменты по 5 секунд. Для этого тоже была написана отдельная программа, которая быстро нарезала все мелодии на чанки (chunks).
А уже для создания датасета использовала ранее написанную программу. В качестве источника звука я взяла 8-битную музыку из открытых источников и разрезала на фрагменты по 5 секунд, для того, чтобы спектрограммы были более подробными и четкими. И, собственно, конвертировала полученные чанки в картинки.
Таким образом я сформировала 2 датасета по 50 картинок (спектрограмм) с разрешением 512×512, а также 1024×1024. Позже объясню для чего мне нужно было 2 разных датасета.

Обучение нейросети
Итак, вводные данные: есть датасет, среднемощный компьютер, ComfyUI, OneTrainer, 0 опыта в обучении нейросетей, 100% интереса.
Мы с преподавателем решили, что проверить гипотезу о том может ли графическая нейросеть обучиться рисовать спектрограммы и будет там какая‑то музыка или нет можно локально на компьютере, используя модели попроще. Поэтому выбрала для работы Stable Diffusion 1.5 и Stable Diffusion XL.
Я провела три эксперимента с разными моделями и разрешениями:
Stable Diffusion 1.5 на изображениях 512×512
Stable Diffusion XL на изображениях 512×512
Stable Diffusion XL на изображениях 1024×1024
Важно отметить, что обучала я LoRA (в программе OneTrainer)
Настройки каждый раз были одни и те же:

Результаты
Дальше — то, ради чего всё затевалось: сравнение того, что рисовали разные модели, на разных стадиях обучения и инференса.
Эксперимент 1. Stable Diffusion 1.5, 512×512
LoRA обучалась около 30 минут, получились неплохие результаты.

На обоих изображениях хорошо видна характерная для 8-битной музыки структура. У sample 90 в нижней половине заметна диагональная волнообразная линия — похоже, модель уловила скользящее изменение высоты тона в одном из треков датасета. Comfy (85) выглядит более однородно и регулярно.
Эксперимент 2. Stable Diffusion XL, 512×512
После неплохих результатов первого эксперимента я подумала о том, что модель побольше справится лучше с генерацией спектрограмм и обучила лору на том же датасете. LoRA обучалась также около 30 минут, получились результаты сравнимые с предыдущей попыткой.

SDXL на том же разрешении даёт заметно более детализированную структуру: у comfy 1024 (60) видна плотная, равномерная штриховка — модель как будто увереннее «держит» гармоническую структуру звука. У comfy 1024×512 (60), при этом, изображение получилось меньше по размеру и с заметными белыми горизонтальными полосами — это похоже на шум или артефакт генерации, а не на осмысленную звуковую структуру.
Эксперимент 3. Stable Diffusion XL, 1024×1024
По той же логике эксперимента 2, я подумала, что может быть если разрешение спектрограмм в датасете будет больше — модель будет лучше понимать «правила». LoRA обучалась около 1,5 часов. При большем затраченном времени результаты не на много лучше предыдущих, хоть и разрешение у них больше.

В финальном, самом «тяжёлом» эксперименте разница между вариантами становится более наглядной: comfy (100) выглядит немного более «блочным» и однородным, а comfy (70) — плотнее и разнообразнее, но с теми же белыми горизонтальными артефактами, что и в предыдущем эксперименте.
Аудио: как это звучит
К каждой из семи сгенерированных спектрограмм выше прилагался восстановленный из неё звук — то есть спектрограмма конвертировалась обратно в аудио через ту же Python‑программу, что переводила звук в mel‑спектрограмму. Отрывки получились по 5 секунд, по длине как фрагменты, на которые нарезалась 8-бтная музыка.
Мое субъективное мнение: мелодии действительно похожи на те, что давались изначально, слышится схожий бит, который конечно иногда прерывается. Также присутствует мелодия, не всегда приятная на слух, тем не менее она есть.
Аудио, полученные входе декодирования сгенерированных спектрограмм среди 3 экспериментов мало чем отличаются, я бы сказала, что они не отличаются ничем по качеству. Могут быть как более удачные отрывки, так и не очень, но это не зависело от LoRA, а скорее от того, как сгенерировалась конкретная картинка.
Выводы (самое полезное, если вы нубик как я)
Нужно более внимательно подходить к формированию датасета, потому что это напрямую влияет на то, как будет обучаться модель — либо на более однородную, либо на очень разнообразную.
Я кое‑что умолчала, дорогой читатель. Видите ли перед тем, как формировать датасет, я нарезала треки на 5-секундные отрезки и взяла первые 50 картинок из папки. А это значит, что в датасете были в большинстве спектрограммы одного трека. Поняла это я уже на этапе подготовки презентации проекта, когда анализировала, почему все полученные файлы похожи друг на друга. Это была очень глупая ошибка…
Нет смысла обучать модель на изображениях с большим разрешением (1024×1024): это делает звук лишь немного чище, но требует заметно больше времени и ресурсов. Резонно использовать высокое разрешение только для финальной версии модели, а не для всех экспериментов подряд.
Ну тут по факту. Реально, разницы прямо заметной нет, а времени на это уходит больше: для формирования отдельного датасета, обучения и проверки. Если можно сделать быстрее и проще для проверки гипотезы, то надо делать так. А потом, если есть ресурсы, уже прибегать к более затратным методам.
Нужно заранее продумывать рамки и правила исследования и проводить его в равных условиях для всех моделей — иначе результаты экспериментов сложно сравнивать друг с другом.
О да, это супер важно!! Я в самом начале сказала, что я нуб, чтобы в меня не кидали палки за то, как вообще проходил этот эксперимент. В начале работы я не знала какой датасет нужен, что необходимы абсолютно одинаковые условия для точности эксперимента.
Что дальше
Дальше я планирую изучить, какие исследования на стыке генеративных image‑моделей и звука уже проводились и как далеко они зашли. Если тема ещё не так хорошо изучена, — продолжить эксперименты уже с более новыми нейросетями (например, Qwen‑Image или FLUX), но уже с более серьёзным подходом и чётким планом исследования, а не в формате арт‑эксперимента.
Если у вас есть свои идеи, как улучшить подобный подход, — буду рада обсудить в комментариях.

