Как обучить стабильный диффузионный ИИ с помощью вашего лица для создания произведений искусства с помощью DreamBooth

Опубликовано: 2022-10-10

Гостевой пост Тарунабха Датты.

Если 2021 год был годом языковых моделей ИИ на основе слов, то в 2022 году произошел скачок в сторону моделей ИИ, преобразующих текст в изображение. Сегодня доступно множество моделей искусственного интеллекта преобразования текста в изображение, которые могут создавать высококачественные изображения. Stable Diffusion — один из самых популярных и известных вариантов. Это быстрая и стабильная модель, дающая стабильные результаты.

how to train stable diffusion

Процесс генерации изображения все еще несколько загадочен, но ясно, что Stable Diffusion дает отличные результаты. Его можно использовать для создания изображений из текста или для изменения существующих изображений. Доступные опции и параметры позволяют настраивать и контролировать конечное изображение.

Хотя относительно проще работать с изображениями знаменитостей и популярных личностей, исключительно из-за уже имеющегося набора изображений, не так просто заставить ИИ работать с вашим собственным лицом. Логика подсказывает, что нужно накормить модель ИИ своими изображениями, а затем позволить ей творить чудеса, но как именно это можно сделать?

В этой статье мы постараемся продемонстрировать, как обучить модель стабильной диффузии с помощью текстовой инверсии DreamBooth на эталоне изображения для создания ИИ-представлений вашего собственного лица или любого другого объекта и создания результирующих фотографий с невероятными результатами, точностью и согласованностью. Если это звучит слишком технично, подождите, и мы постараемся сделать его максимально удобным для новичков.

Оглавление

Что такое стабильная диффузия?

Давайте уберем основы. Модель стабильной диффузии — это современная модель машинного обучения преобразования текста в изображение, обученная на большом наборе изображений. Обучение стоит дорого, около 660 000 долларов. Однако модель стабильной диффузии можно использовать для создания произведений искусства с использованием естественного языка.

Модели искусственного интеллекта с преобразованием текста в изображение с глубоким обучением становятся все более популярными благодаря их способности точно преобразовывать текст в изображения. Эту модель можно использовать бесплатно, ее можно найти на Hugging Face Spaces и DreamStudio. Вес модели также можно загрузить и использовать локально.

Стабильная диффузия использует процесс, называемый «диффузией», для создания изображений, похожих на текстовое приглашение.

Короче говоря, алгоритм стабильной диффузии берет текстовое описание и генерирует изображение на основе этого описания. Сгенерированное изображение будет похоже на текст, но не будет его точной копией. Альтернативы Stable Diffusion включают модели OpenAI Dall-E и Google Imagen.

Руководство по обучению стабильного диффузионного ИИ с вашим лицом для создания изображения с помощью DreamBooth

Сегодня я покажу, как обучить модель стабильной диффузии, используя мое лицо в качестве исходного эталона, чтобы генерировать изображения с очень последовательным и точным стилем, оригинальным и свежим.

Итак, для этой цели мы будем использовать Google Colab под названием DreamBooth для обучения стабильной диффузии.

Перед запуском этого Google Colab мы должны подготовить определенные ресурсы контента.

Этап 1: Google Диск с достаточным количеством свободного места

Для этого вам понадобится учетная запись Google Диска с не менее 9 ГБ свободного места.

Бесплатная учетная запись Google Диска поставляется с 15 ГБ свободного места для хранения, чего достаточно для этой задачи. Таким образом, вы можете создать новую (одноразовую) учетную запись Gmail только для этой цели.

google drive

Этап 2: эталонные изображения для обучения ИИ

Во-вторых, у вас должно быть как минимум дюжина портретов вашего лица или любого целевого объекта, готовых для использования в качестве референсов.

  • Пожалуйста, убедитесь, что черты лица хорошо видны и освещены на захваченных изображениях. Избегайте использования резких теней, особенно на лице.
  • Кроме того, субъект должен стоять лицом к камере или иметь профиль сбоку, при котором хорошо видны оба глаза и все черты лица.
  • Камера должна быть способна фиксировать черты лица в высоком качестве. Наилучший вариант – зеркальная или беззеркальная камера профессионального уровня. Также может хватить камеры смартфона отличного качества.
  • Композиция должна располагаться в центре кадра с небольшим свободным пространством.
  • В качестве входных изображений должно хватить не менее двенадцати фотографий лица крупным планом, пяти фотографий среднего плана, охватывающих от головы до пояса, и примерно трех фотографий в полный рост.
  • Для этой цели должно быть достаточно как минимум двадцати эталонных фотографий.

birme faces

В моем случае я снял и собрал коллекцию из примерно 50 автопортретов, которые я обрезал до 512 x 512 пикселей с помощью онлайн-инструмента — Birme. Вы также можете использовать любой альтернативный редактор изображений для этой цели.

Пожалуйста, имейте в виду, что конечное выходное изображение должно быть оптимизировано для Интернета и уменьшено в размере файла с минимальной потерей качества.

Этап 3: Google Colab

Теперь можно запустить среду выполнения Google Colab.

Существуют как бесплатные, так и платные версии платформы Google Colab. Dreambooth может работать в бесплатной версии, но производительность значительно выше и стабильнее в версии Colab Pro (платной), которая отдает приоритет использованию высокоскоростного графического процессора и выделяет не менее 15 ГБ видеопамяти для выполнения поставленной задачи.

Если вы не возражаете потратить несколько долларов, подписка Colab Pro за 10 долларов, которая включает 100 вычислительных единиц каждый месяц, более чем достаточна для этого сеанса.

google colab signup

У вас также будет доступ к дополнительной оперативной памяти и графическим процессорам, которые относительно мощнее и быстрее.

Позвольте мне повторить: вам НЕ нужно быть техническим специалистом, чтобы запустить этот Colab. Вам также не требуется никакого предварительного опыта кодирования.

После регистрации в Google Colab (бесплатная или платная версия) войдите в систему, используя свои учетные данные, и перейдите по этой ссылке , чтобы открыть DreamBooth Stable Diffusion .

Google Colab имеет разделы или ячейки «времени выполнения» с кнопками воспроизведения с левой стороны, которые расположены последовательно. Чтобы воспроизвести среду выполнения, начиная сверху, просто нажимайте кнопки воспроизведения одну за другой. Каждый сегмент состоит из среды выполнения, которая должна быть выполнена. Когда вы нажимаете кнопку воспроизведения, соответствующий раздел выполняется как среда выполнения. Через некоторое время слева от кнопки воспроизведения появится зеленая галочка, указывающая на успешное выполнение среды выполнения.

Убедитесь, что вы вручную запускаете только одну среду выполнения за раз и переходите к следующему разделу «среда выполнения» только после завершения текущей среды выполнения.

В рабочей части верхней строки меню у вас есть возможность запускать все среды выполнения одновременно. Однако это не рекомендуется.

change runtime type dreambooth

Ниже находится опция с надписью «Изменить тип среды выполнения». Если вы подписаны на профессиональную подписку, вы можете выбрать и сохранить «премиальный» графический процессор и большую оперативную память для своего исполнения.

choose high ram

Теперь вы готовы запустить DreamBooth Colab.

run dream booth

10 шагов для успешного создания обученной модели ИИ на DreamBooth

ШАГ 1: Определитесь с графическим процессором и видеопамятью

Первым шагом является определение типа доступного графического процессора и видеопамяти. Профессиональные пользователи получат доступ к быстрому графическому процессору и улучшенной видеопамяти, которая является более стабильной.

determine GPU VRAM

Как только вы нажмете кнопку воспроизведения, появится предупреждение, потому что GitHub, исходный веб-сайт разработчика, находится в процессе доступа. Вам нужно только нажать « Выполнить в любом случае », чтобы продолжить.

choose vram

ШАГ 2: Запустите DreamBooth

На следующем шаге вам необходимо установить определенные требования и зависимости. Вам просто нужно нажать на кнопку воспроизведения и запустить.

dreambooth play

ШАГ 3: Войдите в Hugging Face

После нажатия кнопки воспроизведения на следующем шаге вам потребуется войти в свою учетную запись Hugging Face. Вы можете создать бесплатную учетную запись, если у вас ее еще нет. После входа в систему перейдите на страницу настроек в правом верхнем углу.

hugging face settings

Затем щелкните раздел « Токены доступа » и кнопку « Создать новый », чтобы сгенерировать новый «токен доступа» и переименовать его по желанию.

access tokens

Скопируйте токен доступа, затем вернитесь на вкладку Colab и введите его в соответствующее поле, затем нажмите « Войти ».

login to huggingface

ШАГ 4: Установите xformers

На этом этапе вы можете щелкнуть среду выполнения, чтобы установить xformers , просто нажав кнопку воспроизведения.

install xformers

ШАГ 5. Подключите Google Диск

После нажатия кнопки воспроизведения в новом всплывающем окне вам будет предложено разрешить доступ к вашей учетной записи Google Диска. Нажмите «Разрешить», когда вас спросят о разрешениях.

access google drive folder

После предоставления разрешений необходимо подтвердить, что выбрано « сохранить на Google Диске ». Вы также должны установить новое имя для переменной ' CLASS NAME '. Если вы хотите отправить эталонные изображения человека, просто введите «человек», «мужчина» или «женщина». Если ваши эталонные изображения относятся к собаке, введите «собака» и так далее. Вы можете оставить остальные поля без изменений. Кроме того, вы можете переименовать входной каталог — «INSTANCE DIR» или выходной каталог — «OUTPUT DIR».

dreambooth settings

ШАГ 6. Загрузите эталонные фотографии

После нажатия кнопки воспроизведения на предыдущем шаге вы увидите возможность загрузить и добавить все свои референсные фотографии.

upload images

Я бы рекомендовал минимум 6 и максимум 20 фотографий. Обратитесь к «ЭТАПУ 2» выше для краткого объяснения того, как выбрать наилучшее эталонное изображение на основе того, как захвачен объект.

select images

Как только все ваши изображения будут загружены, вы можете просмотреть их в левой колонке. Есть значок папки. После того, как вы нажмете на нее, вы сможете просмотреть папки и подпапки, в которых в настоящее время хранятся ваши данные.

В каталоге данных вы можете просмотреть свой входной каталог, где хранятся все ваши загруженные фотографии. В моем случае он известен как «sks» (имя по умолчанию).

Кроме того, обратите внимание, что этот контент временно хранится в вашем хранилище Google Colab, а не на Google Диске.

input directory

start training

ШАГ 7: Обучите модель ИИ с помощью DreamBooth

Это самый важный шаг, так как вы будете обучать новую модель ИИ на основе всех загруженных вами эталонных фотографий с помощью DreamBooth.

train images dreambooth

Вы должны сосредоточиться только на двух полях ввода. Первый параметр — «—instance prompt». Здесь вы должны ввести очень уникальное имя. В моем случае я буду использовать свое имя, за которым следуют мои инициалы. Вся идея состоит в том, чтобы полное имя было уникальным и точным.

Вторым важным полем ввода является параметр «—class prompt». Вы должны переименовать его, чтобы он соответствовал тому, который вы использовали в «ШАГЕ 4». В моем случае я использовал термин «мужчина». Поэтому я перепечатаю его в это поле и перезапишу любую предыдущую запись.

dreambooth parameters

Остальные поля можно не трогать. Я наблюдал, как пользователи экспериментировали, изменяя такие поля, как «количество изображений класса» до 12 и «— максимальное количество шагов поезда» до 1000, 2000 или даже выше. Однако помните, что изменение этих полей может привести к нехватке памяти и сбою Colab, что потребует перезапуска с самого начала. Поэтому желательно не редактировать их с первой попытки. Вы можете поэкспериментировать с ними в будущем, когда наберетесь достаточного опыта.

Как только вы запустите эту среду выполнения, нажав кнопку воспроизведения, Colab начнет загрузку необходимых исполняемых файлов и затем сможет тренироваться, используя ваши эталонные изображения.

Обучение модели займет от 15 минут до более часа. Вы должны быть терпеливы и следить за прогрессом, пока среда выполнения не будет завершена. Если ваш Google Colab бездействует слишком долго, он может сбросить настройки. Так что продолжайте следить за прогрессом и время от времени нажимайте на вкладку.

colab executing

execution complete

ШАГ 8: Преобразование модели AI в формат ckpt

После завершения обучения у вас будет возможность преобразовать обученную модель в файл в формате ckpt, который напрямую совместим со Stable Diffusion.

Преобразование может быть выполнено в два этапа выполнения. Первый — « Скачать скрипт », а второй — « Выполнить преобразование », где у вас есть возможность уменьшить размер загрузки обученной модели. Однако это значительно ухудшит качество получаемого изображения.

Поэтому, чтобы сохранить исходный размер, опция ' fp16 ' должна оставаться неотмеченной.

run conversion

В конце этой конкретной среды выполнения файл с именем « model.ckpt » будет сохранен на подключенном Google Диске.

model ckpt

Мы можем сохранить этот файл для будущего использования, потому что ваши среды выполнения немедленно удаляются, когда вы закрываете вкладку браузера DreamBooth Colab. Когда вы позже снова откроете версию DreamBooth для Colab, вам придется начинать с нуля.

Предположим, вы сохранили файл обученной модели на свой Google Диск. В этом случае вы можете получить его позже, чтобы использовать с локально установленным графическим интерфейсом Stable Diffusion, DreamBooth или любыми блокнотами Stable Diffusion Colab, которые требуют загрузки файла «model.ckpt» для эффективной работы среды выполнения. Вы также можете сохранить его на локальный жесткий диск для последующего использования.

ШАГ 9: Подготовьтесь к текстовой подсказке

Следующие два процесса среды выполнения в категории «Вывод» подготавливают недавно обученную модель к текстовой подсказке, используемой для создания изображения. Просто нажмите кнопку воспроизведения для каждого времени выполнения, и оно завершится через несколько минут.

inference

ШАГ 10: Создание изображений AI

Это последний шаг, на котором вы можете ввести текстовые подсказки, и будут созданы изображения AI.

Вы должны использовать точное имя «instance_prompt» и «–class_prompt» вместе из ШАГА 6 в начале текстового приглашения. Например, в моем случае я использовал «портрет мужчины-тарунабхта, цифровую живопись» для создания новых изображений ИИ, похожих на меня.

image prompt

image generation

Ниже вы можете увидеть результаты некоторых изображений, созданных с помощью обученной модели DreamBooth.

sample generated images

Поэкспериментируйте с подсказками, чтобы получить наилучшие результаты

Если вы внимательно выполните шаги, описанные выше, вы сможете создавать изображения AI, которые очень похожи на черты лица на ваших эталонных изображениях. Этот метод просто требует, чтобы онлайн-платформа Google Colab выполняла обновленную версию технологии искусственного интеллекта для текстовой инверсии.

Чтобы найти лучшие идеи для текстовых подсказок, вы можете посетить такие сайты, как —

  • ИИ OpenArt
  • Креа ИИ
  • Лексика арт

Вам также необходимо научиться искусству создания более качественных и эффективных текстовых подсказок с использованием различных художественных стилей и различных комбинаций. Хорошей отправной точкой будет сабреддит Stable Diffusion.

На Reddit есть огромное сообщество, посвященное стабильной диффузии. Существует также ряд групп Facebook и сообществ Discord, которые активно обсуждают, делятся и изучают новые возможности стабильной диффузии.

Ниже я также делюсь ссылками на несколько обучающих видеороликов DreamBooth, которые вы можете посмотреть на Youtube.

Я надеюсь, что вы найдете это руководство полезным. Если у вас есть какие-либо вопросы, не стесняйтесь комментировать ниже, и мы постараемся вам помочь.

Автор:
Тарунабх Датта — удостоенный наград режиссер, который за последние 16 лет реализовал более 45 проектов, включая полнометражные, короткометражные, музыкальные клипы, документальные фильмы и рекламные ролики, под своим независимым брендом «TD Film Studio».