SD Model Dress Up: Inpaint Anything
Похожие дела: https://cloud.tencent.com/developer/article/2365063
реальный пример
Красивая женщина в белом свадебном платье, украшенном кружевами, идет по пляжу на закате. Ее волосы слегка шевелит ветерок, а в руках она держит букет белых роз. Ее волосы нежно поднимает бриз, и она держит букет белых роз. динамичная поза, фотография, шедевр, лучшее качество, 8K, HDR, highres, absurdres: 1.2, Kodak portra portra 400, зерно пленки, размытый фон, bokeh: 1.2, зерно пленки. размытый фон, боке: 1.2, блики объектива
Reverse: nsfw, ugly, paintings, sketches, (worst quality:2), (low quality:2), (normal quality:2), lowres
Например, у вас есть такие фотографии, как эта, на которой изображен одетый манекен, сделанная в нашем собственном выставочном зале.

план крыши
Если вы умеете использовать Stable Diffusion, то на создание первого снимка у вас уйдет не более 10 минут.

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

Генерация манекена Живая модель 1

Поколение манекенов Живая модель 2

Поколение манекенов Живая модель 2
I. Идеи для создания диаграмм "человек-платформа" в реальных условиях
Что нужно сделать, чтобы превратить манекен-стол в настоящего человека и при этом сохранить одежду?
В этот момент друзья, знакомые со Stable Diffusion, скажут: я знаю, это нужно использовать функцию Inpaint в Tuchengtu, а затем сделать маску вне одежды, чтобы Stable Diffusion перерисовывала.
Как вы делаете эту маску? Если вам приходится делать маску одним движением руки, то это слишком медленно, и в таком случае мне не нужно выходить именно с этим.
Опять же, кто-то скажет: я знаю, сначала нужно сделать маску в фотошопе, а затем использовать функцию перерисовки маски.
Это один из вариантов, но сейчас он может быть более разумным.
Сегодня мы будем использовать плагин inpainting anything, для придания фотографии, который берет фотографию и разделяет ее цветовыми блоками для разных вещей. В конце концов, нам остается только выбрать, какие цветовые блоки мы хотим превратить в маски, и таким образом маски будут созданы.
Функция перекрашивания используется для увеличения манекена в натуральную величину с сохранением одежды.

Основная идея такова, но если вы сами это делали, то знаете, что на этом пути еще много рытвин.
Поэтому в этой статье я не только покажу вам, как превратить манекен в реального человека, но и покажу, как я заполняю эти дыры.
Сейчас я вам все объясню.
II. Инструменты для подготовки к реализации модели манекен-стола
В этой демонстрации используется WebUI Automatic 1111 с моделью SD 1.5, так что давайте подготовимся!
Подготовка 1: раскрасьте что угодно
Прежде всего, мы будем использовать плагин Inpaint Anything, пожалуйста, проверьте ваш WebUI Automatic 1111 на наличие плагина Inpaint Anything, если нет, то установите его.

Установите краску для рисования
Перейдите к пункту "Установить с URL", введите
https://github.com/Uminosachi/sd-webui-inpaint-anything.git
Готовность к установке

После установки вернитесь на вкладку "Установка", нажмите "Применить" и выйдите из программы.

Препарат 2: Модель, специфичная для воспаления
На этот раз я использую epiCPhotoGasm, чтобы продемонстрировать, что качество модели получается таким, как будто ее снимал мастер-фотограф, что делает ее особенно подходящей для использования в местах, где требуются реалистичные изображения.
Вместо его основной модели мы сегодня будем использовать его модель Inpaint.

Перейдите по ссылке ниже, чтобы загрузить модель Inpaint и установить ее для последующего использования.
https://civitai.com/models/132632?modelVersionId=201346
Подготовка 3: Манекен-фотография
Мы воспользуемся нашим примером

Это было сделано в его собственном выставочном зале, но учтите, что он - черный манекен, что впоследствии вызовет некоторые проблемы. Сначала тизер здесь.
Как только эти три вещи будут готовы, можно приступать.
III. Оперативные демонстрации
В этом уроке используется модель SD 1.5, чтобы продемонстрировать весь процесс.
Шаг 1: Выберите модель SAM и загрузите модель
Нажмите на вкладку Inpaint Anything, и вы увидите окно, подобное этому

Выберите идентификатор Segment Model ID модели семантической сегментации, которая будет использоваться. Здесь мы выбираем модель sam_vit_l_0b3195.pth. Если вы только что установили программу, эти модели еще не загружены, вам нужно нажать кнопку загрузки модели, прежде чем она будет загружена.
Нагрузка.

Шаг 2: Получение примера диаграммы сегментации
Загрузите изображение, которое нужно закрасить, и нажмите Run Segment Anything.

Справа вы увидите пример диаграммы разделения

Шаг 3: Сделайте предварительную маску.
Если мы хотим использовать функцию перерисовки позже, нам нужно сделать маску области, которую мы хотим перерисовать. Теперь, когда у нас есть семантически разделенные цветовые блоки, как быстро сделать маску?
Это просто: возьмите мышь и нажмите на цветной блок, который хотите сделать маской. Не нужно закрашивать весь блок, просто нажмите на него и подождите немного, и он станет маской.
Потому что мы хотим, чтобы фоны, манекены и т.д. были перекрашены, так что эти места должны быть подобраны, но фоны немного сложны в исполнении.
Это слишком хлопотно, поэтому вместо этого мы можем щелкнуть по цветовому блоку на платье, а затем установить флажок Invert Mask.

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

Шаг 4: Просмотр результатов маскирования
Проверьте результаты маски, чтобы увидеть, есть ли пропущенные, на самом деле экран более сложный, поэтому его трудно увидеть четко, вот трюк, сбоку от вкладки Mask Only, чтобы открыть наружу.

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

Обратите внимание, что белый цвет здесь - это маска, область, которая будет заполнена AI в будущем, а черный - часть, которую нужно сохранить, так что не ошибитесь.
Шаг 5: Тонкая настройка маски
Как видно из этого маскированного изображения, кроме одежды есть и другие места, которые еще не были замаскированы (то есть там есть вещи, которых там быть не должно)
(черные линии).

В это время он дорабатывается вручную.
Вернитесь к схеме, на которой была сгенерирована маска, и закрасьте на ней области, в которые нужно добавить маску. Если есть области, в которые нужно добавить черный цвет, вручную переместите их и нажмите кнопку Trim mask by skatch, и наоборот, чтобы добавить белый цвет, вручную переместите их и нажмите кнопку Add mask by skatch.
Если вам кажется, что картинка слишком мала для раскрашивания, вы можете увеличить ее, нажав S, а затем снова нажать S, чтобы восстановить ее.

Плюс черный: отделка маски кнопкой skatch
Добавить белый цвет: добавление маски с помощью кнопки skatch

После нанесения нажмите кнопку Add mask by sketch
.
Затем перейдите на вкладку "Только маска" и нажмите кнопку Get mask
до Get mask as alpha of image
Этого ли мы хотим?
Маска.

Если есть еще какие-либо блуждающие участки, обрежьте их таким же образом; если все в порядке, переходим к следующему шагу.
Шаг 6: Начните перерисовывать в inpaint все, что угодно
Когда все маски готовы, мы можем начать просить стабильную диффузию, чтобы она помогла нам заполнить фон.
Перейдите на вкладку inpaint и заполните упоминание и обратное упоминание. Потому что изображение, которое я хочу сгенерировать, выглядит так: красивая женщина в свадебном платье и с белой розой в руках. Поэтому введите следующее упоминание:
A beautiful woman wearing a white wedding dress while holding a bouquet of white roses.
Dynamic pose, photography, masterpiece, best quality, 8K, HDR, highres, absurdres: 1.2,
Kodak portra 400, film grain, blurry background, bokeh: 1.2, lens flare
Реверсивный телесуфлер выглядит следующим образом:
Nsfw, ugly, paintings, sketches, (worst quality:2), (low quality:2), (normal quality:2), lowres

Выберите одну из моделей закрашивания - это предустановки закрашивания всего, что угодно.

Поскольку мы хотим делать настоящие фотографии, мы используем Uminosachi/realisticVisionV51_v51VAE-inpainting этот
Модели.
Нажмите Run Inpainting, и вы получите изображение живой модели.

Выглядит хорошо, давайте еще несколько.


Как вы думаете, после того как вы получите карту, закончится ли обучение?
Еще нет! Потому что остаются вопросы, действительно ли мы хотим его использовать.
- Мы никак не можем выбрать сразу много фотографий.
- Нет возможности использовать нужную нам модель
Что же делать? Нам нужен следующий шаг.
Шаг 7: Используйте функцию перерисовки в Tupelo
Вернитесь на вкладку "Только маска" и нажмите "Отправить в img 2 img inpaint".

Когда вы отправите маску, вы перейдете на вкладку Inpaint Upload в Tupelo. Вы увидите, что ваше изображение и маска были отправлены!

Именно тогда люди, знакомые с SD, будут рады вернуться в знакомое место и наконец-то выбрать свою любимую модель.
Итак, давайте выберем модель! Я выбрал chilloutmix.
Затем настройте размер фотографии, после нажатия на треугольник система автоматически подгонит ширину и высоту под фотографию, без необходимости повторного ввода.

Теперь, чтобы заполнить телесуфлер, мы хотим изменить его так, чтобы прекрасная женщина была на пляже в свадебном платье, ее волосы мягко развевались на ветру, а в руках она держала букет белых роз. Поэтому изменим телесуфлер следующим образом:
A beautiful woman wearing a white wedding dress adorned with lace, walking along the
beach at sunset. Her hair is gently lifted by the breeze, and she is holding a bouquet of white roses. Dynamic pose, photography, masterpiece, best quality, 8K, HDR, highres, absurdres: 1.2,
Kodak portra 400, film grain, blurry background, bokeh: 1.2, lens flare
Реверсивный телесуфлер остается неизменным:
Nsfw, ugly, paintings, sketches, (worst quality:2), (low quality:2), (normal quality:2), lowres
Сэмплер - DPM++ 2 M Karras с шагом дискретизации 40.
Все остальные параметры используются в качестве предустановок, как показано ниже:

Теперь все должно быть готово к генерации!
Появились странные вещи!

Почему модель, сгенерированная ИИ, не меняет свою одежду? Одежда выглядит так, будто она парит в воздухе.
Нужно ли корректировать содержимое маски? Текущая предустановка является оригинальной.

Давайте изменим его на что-то другое. Начнем с заполнения.

Он все еще плохо носится. Тогда переведите его в режим скрытого шума и посмотрите.

Картинка еще более странная. Так это будет латентное ничто?

Не одета! Что здесь происходит? Почему одежда всегда остается на нем?
Итак, мы пришли к выводу... это сломанный .....
Не делайте поспешных выводов, все дело в том, что мы выбрали не ту модель.
Шаг 8: Выберите epiCPhotoGasm Inpainting Model Repainting
Причина, по которой одежда не всегда подходит, проста: мы перерисовываем, а не генерируем, поэтому мы будем использовать модель, специально разработанную для перерисовки.
ChilloutMix - это не та модель, которую следует использовать для перекрашивания, поэтому вместо нее мы воспользуемся загруженным ранее epiCPhotoGasm_zinpainting.
Модели.

Изменив модель, приступим к ее генерации. Теперь все должно быть в порядке!
Давайте посмотрим на результаты:

Мы получили нарядный... красивый манекен.
Что здесь происходит? Только что одежда не была надета, а теперь человек исчез, где же обещанная красота? Может быть, это невезение, сгенерируйте его еще раз и посмотрите.

В результате красота налицо, но что это за черная ткань на его груди? Мы не просили эту ткань!
Причина в том, что текущий параметр содержимого маски - original, и при перерисовке он будет ссылаться на структуру и цвет исходного изображения, что приведет к появлению платформ и черной ткани, поскольку они присутствуют на исходном изображении. Как же решить эту проблему?
Все просто, просто измените параметр на что-то другое, например, давайте изменим на заполнить Вы получите схему, как показано ниже.




Если используется скрытый шум, результат будет выглядеть следующим образом



Если используется латентное ничто, то



Разве это не отличная картинка? Она еще не доработана до такого качества, она будет еще лучше, если ее снова оптимизировать, так что же делать дальше?
IV. Часто задаваемые вопросы
Как только вы начнете действовать подобным образом, у вас могут возникнуть вопросы, на которые вы должны будете ответить один за другим.
Вопрос 1: Что такое разделение экземпляра?
Сегментация объектов - это процесс различения предметов на картинке путем маркировки разных предметов разными цветами, причем каждый цвет обозначает один предмет.
На этот раз речь пойдет о разбиении на примеры, чтобы ускорить время создания маски.
Вопрос 2: Inpaint Anything отличается от Segment Anything Models, в чем разница?
Модель Segment Anything Model, также известная как SAM, обеспечивает 9 типов моделей Segment Anything в Inpaint Anything.

Их можно разделить на 4 категории, о которых мы расскажем по порядку.
Класс 1: начиная с sam_vit - модель SAM, предоставленная Meta
Начало sam_vit - это модель, предоставленная компанией meta. Поскольку Meta назвала свою модель семантической сегментации Segment Anything Model, именно с нее начинается SAM, о котором мы сейчас говорим, и ее следует считать родоначальником этой волны моделей SAM.
Это серия моделей, анонсированная Meta в апреле 2023 года, и другие модели SAM будут сравниваться с этой серией. Существует 3 модели, по размеру: h (огромный), l (большой), b (базовый), огромный > большой > базовый, и точность теоретически пропорциональна размеру, а скорость вычислений также пропорциональна размеру.
С точки зрения эффекта, разница между огромным и большим незначительна, но между базовым и огромным есть существенная разница.

Meta SAM Reference:
https://segment-anything.com/
https://github.com/facebookresearch/segment-anything
https://huggingface.co/facebook/sam-vit-base/tree/main
https://huggingface.co/facebook/sam-vit-large
https://huggingface.co/facebook/sam-vit-huge
Занятие 2: начало sam_hq_vit - Сегмент Что угодно из серии Высокое качество
Модель, начинающаяся с sam_hq_vit, - это высококачественная семантическая модель сегментации, предоставленная группой Visual Intelligence and Systems Group в ETH Zürich, и, согласно данным, приведенным в их статье, точность их сегментации лучше, чем у Meta, поэтому она называется высококачественной. Согласно данным, приведенным в их статье, точность сегментации лучше, чем у Meta, поэтому ее называют высококачественной, хотя сегментированная область тоньше, чем у Meta, но в нашем случае разница невелика.

SAM HQ Reference:
https://github.com/SysCV/sam-hq
https://huggingface.co/lkeab/hq-sam/tree/main
Занятие 3: Начало работы с FastSAM - Серия FastSAM
Для получения хороших результатов и экономии памяти можно использовать серию FastSAM, которую предлагает компания CASIA-IVA-Lab (CASIA-IVA-Lab). Я сам использую эту модель на машинах с небольшим объемом VRAM.
Он доступен в двух моделях - X и S.
Модель X отлично подошла для нашего примера свадебного платья, но модель S не подошла бы для нашего примера.

Информация о FastSAM приведена ниже:
https://github.com/CASIA-IVA-Lab/FastSAM
https://huggingface.co/An-619/FastSAM
Категория 4: Мобильный SAM
Маленький и быстрый SAM , SAM, который может работать быстро даже с процессором. Но эффект тоже один из худших, подходит только для различения больших блоков.

Ссылка на мобильный SAM:
https://github.com/ChaoningZhang/MobileSAM
https://huggingface.co/dhkim2810/MobileSAM/tree/main
Вопрос 3: Что контролирует параметр "Маскированное содержимое" в Inpaint?

Для содержимого Masked есть четыре варианта, описанные ниже:
Вариант 1: Заполнение
Опция заливки максимально размывает изображение перерисовываемой области, сохраняя только общую структуру и цвета. Поэтому он используется, когда требуется масштабное перекрашивание.
В нашей парадигме положение уровня моря, ход песчаных трудностей - все одинаково, даже цвет заката похож.

Вариант 2: Оригинал
Под оригиналом понимается исходное изображение, а сгенерированное изображение будет очень похоже на исходное с точки зрения блоков, цветов и так далее.
В нашем примере эта опция оставит черную часть манекена, а направление пляжа сохранится.

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

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

V. Обзор проблемы расширения
Давайте рассмотрим, что мы только что сделали.
Проще говоря, есть 2 основных этапа:
- Маскирование с помощью функции семантической сегментации Inpaint Anything.
- Затем они передаются в inpaint upload для загрузки графики и inpaint для перекраски моделей.
Уже одно это сделало бы его таким же продуктивным, как сегодня.




Все могло бы быть лучше, но и при нынешнем подходе остается несколько проблем:
- Что делать, если у нужной мне модели нет модели inpaint? Могу ли я использовать общую модель?
- Что нужно сделать, чтобы изменить свет и тень на одежде?
- Иногда кажется, что фотография отфотошоплена, что мне нужно сделать, чтобы она была более естественной?
- Как генерировать более насыщенные изображения, а не те, которые сейчас выглядят как эти.
© заявление об авторских правах
Авторское право на статью Круг обмена ИИ Пожалуйста, не воспроизводите без разрешения.
Похожие статьи
Нет комментариев...