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

Дообучать можно на чем угодно, а не только на лицах. Можете взять несколько картинок (хватит 15-30, если они не очень разнообразны) одного стиля или класса с ресурса типа Pinterest или просто нагуглить.

Запускать будем через ComfyUI. Это приложение само по себе очень гибкое и мощное (интерфейс видно на картинке), так что, если поразбираетесь в нём, то сможете автоматизировать трудоёмкие процессы при работе с нейросетями. Например, оцветнение старых изображений с последующим их масштабированием.

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

ComfyUI

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

Вся работа идет визуально, через блоки. Каждый блок умеет делать одну вещь: загружать модель, сохранять картинку, сравнивать что-то и т.д. Есть огромное количество кастомных блоков, которые надо устанавливать отдельно. Блоки объединяются в workflow.

Сразу установите расширение ComfyUI-Manager, оно позволит вам на лету устанавливать недостающие модули.

В прошлой статье мы обучали модель FLUX и подкладывали все дополнительные модели в папки с ComfyUI. То же самое надо сделать и сейчас, но чтобы не запускать обучение, просто скачайте их отсюда:

Положите их в соответствующие папки:

  • flux1-dev.sft → comfyui/models/unet

  • ae.sft → comfyui/models/vae

  • clip_l.safetensors → comfyui/models/clip

  • t5xxl_fp16.safetensors → comfyui/models/clip

Дообученные модели — это LoRA (Low-Rank Adaptation), подход, который позволяет обучить только малую часть параметров хорошей открытой фундаментальной модели под свои задачи. За счет него у вас и получится обучить такое на своих фото (для этого, опять же, обращайтесь к предыдущей статье).

Их надо будет положить в следующую папку:

  • <model_name>.safetensors → comfyui/models/loras

Модели

Модели я загрузил на Hugging Face, общее место, в котором исследователи делятся своими наработками в области машинного обучения (данные, модели, статьи и т.д.). Просматривать статьи с HF Daily papers, кстати, довольно полезное занятие, если хотите быть в курсе последних веяний. Это удобно делать на HFday.ru (мой небольшой открытый пет-проект) #самореклама.

Пушкин: итак, начнем. Модель с Александром Сергеевичем самая нестабильная, так как Пушкин свои фото в инстаграм не выкладывал, а дудям интервью не давал. В итоге я собрал 10 картинок с его портретами и попробовал обучиться на них.

Все генерации, глядя на которые читатель скажет "да, это Он", это в основном сгенерированные портреты в стиле Кипренского и Тропинина. Можно поиграться с композицией:

Ещё Пушкин

Можно получить ракурсы, которых нет на портретах, поменять прическу и эмоции:

Ещё

Если попробовать вытягивать генерации в стиль фотографии, то будут получаться некие пушкино-подобные люди, но насколько они похожи на оригинал не понятно, так как нет ни одной референской фотографии. Главное, я считаю, что не получился Сергей Безруков.

Еще «фото» с Пушкиным:

Модель: https://huggingface.co/averoo/flux-lora-pushkin

Ключевое слово: pushk1n. Это триггерное слово, которое надо указывать при генерации, оно не обычно, чтобы гарантированно не спутаться с тем, что модель уже знает. Промпт может выглядеть как-то так: «pushk1n portrait with christmas tree, high quality, high resolution, man, happy mood».

Что может пойти не так: всё. Могут генерироваться случайные вещи, почему-то часто это красный мопед (?). Может генерироваться не тот пол, поэтому не удивляйтесь, когда будете обучаться на себе, получается забавно. Дописывайте пол в ваш промпт, также можете писать дополнительно «pushk1n face is visible».

Ой
Ой

Достоевский: с Федором Михайловичем дела обстоят получше, известны несколько его фотографий.

Мини-датасет с Ф.М.
Мини-датасет с Ф.М.

Как следствие, картинки создаются стабильней и точней, можно увеличить параметр cfg (classifier-free guidance), об этом писал ранее, чтобы было больше деталей от модели.

Можно добавлять фотореалистичности, добавлять современные детали, менять костюмы.

Ничего глупее фото с топором я не придумал
Ничего глупее фото с топором я не придумал
Ещё

Модель: https://huggingface.co/averoo/flux-lora-dostoevsky

Ключевое слово: d0st0evsk1. Пример промпта «d0st0evsk1 portrait with axe in old Saint Petersburg, gloomy, high quality, high resolution, man, beard, retro style, evening, lantern».

Идём дальше.

Толстой: Ну тут совсем всё хорошо. Лев Николаевич застал стремительное развитие технологического прогресса, так что можно отыскать даже его фотографии в молодости (да-да, он тоже был молод).

Заметка: при обучении на лицах лучше все же использовать фото примерно одного возраста и одного человека. Я пробовал обучаться сразу на обоих Братьях Стругацких (пытался использовать разные ключевые слова), но получался некий средний человек, либо побеждал Аркадий.

Ключевое слово: t0lst0y. Пример промпта «d0st0evsk1 portrait with axe in old Saint Petersburg, gloomy, high quality, high resolution, man, beard, retro style, evening, lantern».

Ещё немного Толстого

Заметка: LoRA модели являются своего рода «нашлёпками» на основную модель и могут храниться отдельно. Так работают популярные сервисы по клонированию фото типа fal.ai, можете попробовать сами, если нет желания возиться с обучением.

Из-за этого же LoRA можно последовательно применять друг за другом. Например, вы можете обучить одну модель на фотографиях, а другую на картинах Рембрандта и, объединяя их с разными весами, переносить вместе и личность и художественный стиль.

Дополнительно: можно использовать подходы с картами глубин и переносом композиции с существующего изображения (ControlNet), тем самым сохраняя позицию человека или ландшафта на генерации.

Удачных экспериментов

Меня зовут Сергей, я занимаюсь машинным обучением и веду небольшой телеграм-канал Градиент обреченный (в названии отсылка к одной книге, догадайтесь к какой). Заходите в гости, буду рад.

Комментарии (0)


  1. ebt
    11.01.2025 13:25

    Спасибо. Замечу только, что у реального Александра Сергеевича отчётливо видны негроидные черты лица (вспоминаем его предка), а на представленных изображениях он почти ариец.


    1. averkij Автор
      11.01.2025 13:25

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


  1. averkij Автор
    11.01.2025 13:25