banner_image ×
SeaArt AI 企业版
article cover

Creating a LoRA of medieval weapons for FLUX

avatar
O
avatar_frame
osti
发布于 Jul 20, 2025
2861

Предисловие

В статье пойдёт речь о создании LoRA под Checkpoint на базе FLUX для средневекового и фэнтезийного оружия ближнего боя, а так же сравнении этой LoRA с другими созданными ранее на базе Illustrious и Pony.

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

Вступление

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

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

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

Хотелось привести небольшой пример использования LoRA персонажей.

Цель: создать сложное изображение с несколькими различающимися героями.

Основная сложность заключалась в размещении существ относительно друг друга и создании композиции. Было принято решение прибегнуть к хитрости. Благодаря хорошей семантике базовой модели SeaArt Film были описаны девушка, стоящая на балконе второго этажа с ракурсом из-за её спины вниз и существо, похожее на аксолотля, стоящее на том же балконе рядом. А позже описано парящее в воздухе маленькое существо, напоминающее девочку. Конечно, ни одно из существ не было похоже на искомых нами героев и для корректировки их облика были применены 2 разных LoRA, одного и другого персонажа по очереди. На картинке ниже вы можете увидеть постепенные изменения облика персонажа благодаря повышению силы LoRA за несколько итераций:

Выявляя ассоциативные связи, благодаря LoRA, нейросеть приближает сгенерированный результат к предоставленным нами данным. К примеру, во всех картинках, на которых была обучена LoRA персонажа у неё чёрный глаз, синяя кожа, рога на голове и плавники, когда мы применяем эту LoRA на изображении, то у всего, более менее похожего по форме на голову, проявляются подобные черты. При увеличении силы LoRA, они могут проявиться и на других объектах, в который нейросеть найдёт схожие черты:

Как мы видим на картинке выше, некоторые объекты при изменении изображения с включённой LoRA персонажа стали приобретать его характерные черты.

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

Но для начала нужно определиться с основой, на которую будет опираться наша модель.


Выбор базовой модели

В зависимости от Ваших предпочтений и задач, перед Вами встаёт вопрос о выборе между базовыми моделями, такими как: SD1.5, SDXL, FLUX, Ponu, Illustrious, SD3.5 и т.д.

У всех есть свои преимущества и компромиссы при обходе недостатков. Например, для составления подсказки на FLUX Вы можете использовать описания, наполненные деталями на понятном литературном языке, высокая семантика этой модели позволит распознать Вашу задумку и добиться сложного композиционного сходства в реализации идеи. Но обучение на FLUX сейчас несколько дороже, как и создание изображений, а разрешение ниже аналогов других базовых моделей. Модели же, базирующиеся на Pony могут чуть хуже интерпретировать подсказку, включающую более одного персонажа и их взаимодействие, зато превосходно подходят для демонстрации образов в различной стилистике и высоком разрешении.

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

Показал результаты у различных базовых моделей:

В случае первого Checkpoint на базе модели Pony, рыба и вовсе перестала быть собой, но приобрела узнаваемые отличительные особенности модели, нереалистичное окружение и формы, приятные глазу цвета и узнаваемые очертания, читаемость и отделение от фона основного объекта в композиции. В случае модели SeaArt-Infinity, просматриваются чёткие реалистичные текстуры и высокое соответствие поставленной в подсказке задаче. Несмотря на "примеси" LoRA, полагаю, многие узнают её стиль. В версии с FLUX просматриваются общие черты с Infinity, и не удивительно, ведь они основаны на одной базе FLUX, отличающейся высокой семантикой и стремлению к высокому числу деталей, в некоторых случаях - к реалистичным текстурам, если LoRA не задаёт иной стиль. Для IIlustrious просматриваются характерные черты и стиль, свойственный цифровым изображениям, семантика и понимание задачи остаётся на высоком уровне, но зачастую, как мне показалось, требует использования подходящих LoRA для сложных сюжетов и понимания картины. Модель SD XL (Stable Diffusion), несмотря на разнообразие стилей и хорошее понимание запросов, не всегда хорошо справляется с генерацией сложных предметов (эту проблему частично может помочь решить использование LoRA), а так же, иногда плохая фотореалистичность.

Опробуйте различные модели, чтобы определиться с Checkpoint для Вашей LoRA.

Теперь мы должны подготовить данные для обучения LoRA, желательно, в стиле нашего выбранного Checkpoint, именно по этому мы вначале определялись с ним.


Подготовка данных для обучения

Общее количество изображений, необходимых для обучения зависит от сложности и особенностей нашей задумки, например, для того, чтобы LoRA точно воспроизводила облик нашего персонажа, желательно собрать около 25-40 его изображений, желательно, одного стиля, но с разных ракурсов. Можно использовать изображения сгенерированные самой нейросетью.

Среди которых ~12 качественных портретных снимков, 6 в полуоборота, 4 сзади. 8 Снимков в полный рост, 6 поз сидя. Делайте изображения с разными эмоциями и в разной одеждой, если вы не хотите, чтобы она "приклеилась" к образу персонажа. Так же и с фоном, старайтесь менять его от изображения к изображению. Старайтесь не использовать тёмные (как нечитаемые, недоэкспонированные) или слишком сложные фоны, если в этом нет необходимости. Важно избегать некачественных изображений, иногда лучше отказаться от нескольких работ с браком, чем включать их в LoRA и потом исправлять ошибки в готовых результатах.

При создании LoRA для стиля, постарайтесь подготовить различные предметы, выполненные в нужном Вам оформлении, а так же людей под разными углами с различными видами и в разной одежде, 8-14 изображений. Дополните это сценами без какого-либо основного предмета, хотя бы несколько различающихся между собой.

Например, для создания LoRA персонажа, мной были использованы 47 изображений:

18 - в полный рост

25 - это портреты

7 - сидя

6 - в полуоборота

6 - спиной

5 - с нижнего ракурса

10 - с верхнего ракурса

(47 в сумме, но некоторые снизу и со спины, например, некоторые в полный рост и сидя и т.д.)

А для создания LoRA для фона и локаций использовались в общей сложности 83 изображения:

Изображения для той и другой LoRA, предварительно прошли обработку и были приведены к одному стилю. А именно, персонаж всюду получил свои характерные черты: чёрный глаз, плавники, рога, цвет кожи, хвост, где-то через редактирование в редакторе и последующее изменение через Checkpoint на базе которого, в дальнейшем, проходило обучение LoRA. Изображения для LoRA локаций и фона были созданы в высоком качестве а, затем изменены с теми же подсказками через Checkpoint на котором будет проходить обучение.

Если говорить про создание LoRA для сложных технических деталей или абстрактных концепций, то может потребоваться больше данных для обучения, 50-100 качественных изображений.

Для нашей LoRA с оружием мы подготовили и затем обобрали всего 22 изображения, где на каждом с помощью генерации с последующим редактированием разместили нужное нам оружие:

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

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


Настройка параметров обучения

После загрузки, изображения были центрированы в разрешении 1024x1024px. и благодаря алгоритму маркировки: jou2, он очень похож на BLIP (систему, напоминающую естественный язык, который неплохо подходит под  Flux и SD3.5) с минимальными изменениями и удалением лишнего.

Из-за низкого значения порога тегирования, текст получился длинным, описывающим некоторые мелочи.

Так же, ко всем изображениям было автоматически добавлено триггерное слово: MBrush, но после удалено с тех, где на было данного оружия: кистеня на цепи, прикреплённой к деревянной палке.

Если в случае с LoRA для персонажа со всех облаков тегов для каждого изображения были убраны её характерные черты в виде: цвета кожи, рогов, плавников, глаза и хвоста, т.е. того, что не меняется от изображения к изображению, то в нашем случае с оружием, краткое описание было оставлено, ведь пользователь будет создавать с ним своих персонаже в своих сюжетах.

Пример:

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

В случае, если бы мы выбрали метод: Deepbooru. мы бы получили набор тезисов, определяющих те или иные аспекты изображения:

Чёрный фон, 1девушка, оружие, синий плащ, серебряный доспех, герб, тело целиком, полный рост, жёлтые волосы и т.д.

Они могут быть проще к редактированию и позволяют уместить большой объём данных, хорошо подходят для моделей основанных на основе SD1.5, Pony и т.п.


С самым сложным разобрались, теперь переходим к тонкой настройке.

Количество шагов было выставлено на 1232 (22 изображения)

При 7 повторениях (Repeat) и 8 циклах (Epoch)

Этого должно хватить для FLUX (да и по энергии дешевле). "Пережаренные" LoRA, которые слишком сильно переобучены, тоже не хорошо. Чрезмерные повторения могут привести к жесткости изображения.

Mixed precision был установлен на bf16 (Brain Float 16) - это позволит сэкономить память и работать быстрее.

Gradient Checkpointing был отключён. При активации техники, он сохраняет только ключевые промежуточные состояния (checkpoints) в процессе прямого распространения. Во время обратного распространения, когда необходимо вычислить градиенты для обновления весов, система восстанавливает необходимые активации, вычисляя их заново из ближайших сохранённых точек.

Enable Bucket - автоматически классифицирует разрешение изображений, у нас все изображения квадратные с соотношением сторон 1024x1024px.

Bucket Reso Steps - он указывает количество шагов, которые система применяет для группировки изображений с похожими разрешениями (бэкетирования). Было оставлено 64 шага.

Min и Max Bucket Reso - при настройке модели масштаб набора данных автоматически увеличивается. Это позволяет подготовить набор данных с разным разрешением, и LoRA будет автоматически увеличивать масштаб до указанного значения. От 256 до 1024 px.

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

Flip Aug - позволяет улучшить производительность моделей машинного обучения, обученных на данных временных рядов, за счёт уменьшения переобучения и улучшения обобщения.

Была составлена подсказка для генерации простого изображения при демонстрации.

Скорость обучения была задана: 0,0001

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

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

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

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

Оптимизатор был выбран: AdamW8bit (квантизованный оптимизатор AdamW) имеет преимущества, связанные с уменьшением использования памяти.

Количество перезапусков: не менялся - 1. (LR Scheduler Num Cycles) и указывает на количество раз, когда скорость обучения перезапускается во время тренировки. Это побуждают модель исследовать разнообразные решения, периодически сбрасывая скорость обучения.

Train U-Net Only - оставлен включённым, он который обновляет только компонент U-Net модели во время обучения для фокусировки ресурсов на улучшении желаемых результатов без ненужных вычислений, так как U-Net — ключевой компонент для задач, например, сегментации изображений или извлечения признаков.

Настройки сети:

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

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

Другие параметры были выбраны по умолчанию.


Результат после обучения LoRA

Модель завершила своё обучение и была опубликована. Выбрана последняя 8-ая LoRA как наиболее соответствующая ожиданиям.

Checkpoint FLUX позволяет, при прочих равных, генерировать изображения в разрешении 1024x1024px. вплоть до 60 шагов.

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

Давайте взглянем на сгенерированный результат при силе 1. (С добавлением LoRA персонажа и LoRA для увеличения числа деталей):

Изображение 1. Изображение 2. Изображение 3.

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


Сравнение получившихся моделей

Пришло время сравнить результаты.

Для Kedra LoRA на базе IIlustrious

Repeat: 12

Epoch: 16

Total number of steps: 9000

Подходили значения:

sampler:Euler a

steps:35

cfg_scale:4.0

Где первые 3 были сгенерированы с нуля, а последние 3 были изменены с помощью LoRA на подготовленных изображениях.


Для Fantasy backgrounds на базе IIlustrious

Repeat: 10

Epoch: 10

Total number of steps: 8300

Подходили значения:

sampler:Euler a

Strength: ~0.7-1.0

Sampling Steps: 32

CFG Scale: 4.0

Clip Skip: 2

Получились приятные цвета и хорошо сочеталась со многими Checkpoint, не только с тем на котором обучалась (MiaoMiao Harem).

1 картинка - MiaoMiao Harem, 2 и 3-и картинки - GR-Illustrious 3in1.

Иногда возникали ошибки с "левитирующими" горами или деревьями (4ая картинка) или обилием объектов как на 5-ой.

А так же с LoRA персонажей (была проверена с Kedra LoRA и другими LoRA персонажей,  участвующими в конкурсе).


Для Diana by E5CKAR на базе FLUX

Repeat: 4

Epoch: 11

Общее количество шагов: 1100

Подходили значения:

sampler:Euler a

Strength: 1.0

Sampling Steps: 60

Модель часто использовалась совместно с созданной и описанной в статье, по этому предлагаю рассмотреть их вместе для последующего сравнения.

Модель LoRA brush on a chain на базе FLUX

Repeat 7

Epoch 8

Общее количество шагов: 1232

Нужно было ставить силу выше, для видимых результатов:

sampler:DPM++ 2S a Karras (использовался и Euler a)

Euler a - давал более чёткий, но мультяшный рисунок, а DPM++ 2S a Karras немного добавлял шумов, но становилось чуть больше деталей изображения.

Strength: 1.35-1.65

Sampling Steps: 60

Выборка была минимальная, взяты, буквально, первые сгенерированные изображения.

На первом и втором портрете использовалась только модель Diana by E5CKAR, так же, именно из неё были сгенерированы данные для обучения LoRA brush on a chain которая сгенерировала 3-е изображение совместно с первой моделью и 4-ое уже без неё.

В последнем изображении использовалась LoRA для деталей 1,2,3, с малым значением силы: 0.15.-0.60 при значении силы LoRA brush on a chain Strength : 1.55. Во втором изображении последнем был выбран sampler: DPM++ 2S a Karras.

Среди ошибок можно заметить наше оружие у двух воинов в кадре, и более того, даже свисающим с дерева. Давайте сгенерируем ещё 3 примера:

Параметры не изменилась, участвовали 3 LoRA с деталями (1,2,3) и Diana by E5CKAR Strength : 0.15, sampler:DPM++ 2S a Karras. LoRA brush on a chain Strength : 1.55. Было высокое значение силы, из-за чего нейросеть посчитала, что нам очень нужен кистень в качестве молота, котелка, колокольчика на входе в кузню :-) Но общий результат для первой попытки показался удовлетворительным.


Благодарим за просмотр и желаем Вам удачи, 🍀.


Используемые ресурсы

Для создания моделей был использован персонаж авторства - E5CKAR

В первом примере использовалась модель - hzkawaiidarkgirl XL Авторства - Uyciak

При подготовке обучающего материала использовались статьи:

  1. Официальное Обучение LoRA
  2. LoRA training parameters с  https://github.com.
  3. Understanding Learning Rate in LoRA Training
  4. Обучение модели с помощью LoRA (версия для десктопа). На примере датасета полученного из самой нейронки.
  5. Understanding Min SNR Gamma, Network Rank Dim, and Tokens in LoRA Training

При составлении примеров и формировании LoRA использовались модели:

  1. SeaArt Film
  2. Fantasy backgrounds
  3. Kedra LoRA
  4. Diana by E5CKAR
  5. LoRA brush on a chain
  6. А так же Checkpoint FLUX.



1133
2861
共 0 条评论
2.8K
1.1K
0
0/400
相关教程
cover
Get Started with SeaArt SonoVision in 3 Minutes
avatar
S
avatar_frame
SeaArt Official
1665
1166
cover
COMPREHENSIVE GUIDE DIRECTORY
avatar
S
avatar_frame
SeaArt Official
11917
4873
cover
Wan2.5を使って10秒CMを作る(架空アパレルブランド編)
avatar
R
avatar_frame
razor
2468
360
cover
【Veo3キラー】Wan2.5 解説
avatar
椎
avatar_frame
椎名
1678
254
cover
【🍌】Nano Banana 解説
avatar
椎
avatar_frame
椎名
1408
385
cover
SeaArt Film Video Realistic Style Tutorial
avatar
C
chengxu01
283
8535
cover
SeaArt Muse Prompt Tutorial
avatar
avatar_frame
SeaArt VIdeo Master
124
4319
cover
WANVideo VACE KJ Fun Use Case Collection
avatar
S
avatar_frame
SeaArt Comfy Helper
223
98
cover
SeaArt Realism User Guide
avatar
D
DL
666
17883
cover
SeaArt · WAN2.5 Model User Guide
avatar
avatar_frame
SeaArt VIdeo Master
78
1112
logo
中文
应用
创作图像 数字人 快捷AI 模型训练 高级画板 AI应用 工作流
关于
实验室 排行榜 AI聊天 AI博客 AI新闻
帮助
教程 客服
获取应用
icon
Download on the
APP Store
icon
GET IT ON
Google Play
关注我们
iconiconiconiconiconiconiconicon
© 2025 SeaArt, Inc.
版权政策
《条款》
《隐私政策》 特定商取引法 資金決済法に基づく表示
更多