Похожие дела: 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

 

 

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

SD模特换装:Inpaint Anything

план крыши

 

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

SD模特换装:Inpaint Anything

 

 

 

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

SD模特换装:Inpaint Anything

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

 

SD模特换装:Inpaint Anything

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

 

SD模特换装:Inpaint Anything

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

 

 

 

I. Идеи для создания диаграмм "человек-платформа" в реальных условиях

 

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

В этот момент друзья, знакомые со Stable Diffusion, скажут: я знаю, это нужно использовать функцию Inpaint в Tuchengtu, а затем сделать маску вне одежды, чтобы Stable Diffusion перерисовывала.

Как вы делаете эту маску? Если вам приходится делать маску одним движением руки, то это слишком медленно, и в таком случае мне не нужно выходить именно с этим.

Опять же, кто-то скажет: я знаю, сначала нужно сделать маску в фотошопе, а затем использовать функцию перерисовки маски.

Это один из вариантов, но сейчас он может быть более разумным.

Сегодня мы будем использовать плагин inpainting anything, для придания фотографии, который берет фотографию и разделяет ее цветовыми блоками для разных вещей. В конце концов, нам остается только выбрать, какие цветовые блоки мы хотим превратить в маски, и таким образом маски будут созданы.

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

 

SD模特换装:Inpaint Anything

 

 

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

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

Сейчас я вам все объясню.

 

 

II. Инструменты для подготовки к реализации модели манекен-стола

 

В этой демонстрации используется WebUI Automatic 1111 с моделью SD 1.5, так что давайте подготовимся!

 

Подготовка 1: раскрасьте что угодно

 

 

Прежде всего, мы будем использовать плагин Inpaint Anything, пожалуйста, проверьте ваш WebUI Automatic 1111 на наличие плагина Inpaint Anything, если нет, то установите его.

SD模特换装:Inpaint Anything

 

 

Установите краску для рисования

Перейдите к пункту "Установить с URL", введите

https://github.com/Uminosachi/sd-webui-inpaint-anything.git

 

Готовность к установке

SD模特换装:Inpaint Anything

 

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

SD模特换装:Inpaint Anything

 

 

Препарат 2: Модель, специфичная для воспаления

 

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

 

Вместо его основной модели мы сегодня будем использовать его модель Inpaint.

SD模特换装:Inpaint Anything

 

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

https://civitai.com/models/132632?modelVersionId=201346

 

Подготовка 3: Манекен-фотография

 

 

Мы воспользуемся нашим примером

SD模特换装:Inpaint Anything

 

Это было сделано в его собственном выставочном зале, но учтите, что он - черный манекен, что впоследствии вызовет некоторые проблемы. Сначала тизер здесь.

Как только эти три вещи будут готовы, можно приступать.

 

 

III. Оперативные демонстрации

 

В этом уроке используется модель SD 1.5, чтобы продемонстрировать весь процесс.

 

Шаг 1: Выберите модель SAM и загрузите модель

 

Нажмите на вкладку Inpaint Anything, и вы увидите окно, подобное этому

SD模特换装:Inpaint Anything

 

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

SD模特换装:Inpaint Anything

 

 

Шаг 2: Получение примера диаграммы сегментации

 

 

Загрузите изображение, которое нужно закрасить, и нажмите Run Segment Anything.

SD模特换装:Inpaint Anything

 

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

SD模特换装:Inpaint Anything

 

Шаг 3: Сделайте предварительную маску.

 

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

 

Это просто: возьмите мышь и нажмите на цветной блок, который хотите сделать маской. Не нужно закрашивать весь блок, просто нажмите на него и подождите немного, и он станет маской.

 

Потому что мы хотим, чтобы фоны, манекены и т.д. были перекрашены, так что эти места должны быть подобраны, но фоны немного сложны в исполнении.
Это слишком хлопотно, поэтому вместо этого мы можем щелкнуть по цветовому блоку на платье, а затем установить флажок Invert Mask.

SD模特换装:Inpaint Anything

 

 

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

SD模特换装:Inpaint Anything

 

 

Шаг 4: Просмотр результатов маскирования

 

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

SD模特换装:Inpaint Anything

 

 

 

На нем расположены две кнопки:

Получение маски альфа изображения

Получить маску

 

После нажатия этих двух кнопок вы увидите, готова ли маска.

SD模特换装:Inpaint Anything

 

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

 

Шаг 5: Тонкая настройка маски

 

Как видно из этого маскированного изображения, кроме одежды есть и другие места, которые еще не были замаскированы (то есть там есть вещи, которых там быть не должно)
(черные линии).

SD模特换装:Inpaint Anything

 

В это время он дорабатывается вручную.

 

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

 

Если вам кажется, что картинка слишком мала для раскрашивания, вы можете увеличить ее, нажав S, а затем снова нажать S, чтобы восстановить ее.

SD模特换装:Inpaint Anything

 

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

SD模特换装:Inpaint Anything

 

После нанесения нажмите кнопку Add mask by sketch.

 

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

SD模特换装:Inpaint Anything

 

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

 

Шаг 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

 

SD模特换装:Inpaint Anything

 

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

SD模特换装:Inpaint Anything

 

 

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

 

Нажмите Run Inpainting, и вы получите изображение живой модели.

SD模特换装:Inpaint Anything

 

 

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

SD模特换装:Inpaint Anything

 

SD模特换装:Inpaint Anything

 

 

 

Как вы думаете, после того как вы получите карту, закончится ли обучение?

 

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

  • Мы никак не можем выбрать сразу много фотографий.
  • Нет возможности использовать нужную нам модель

 

Что же делать? Нам нужен следующий шаг.

 

Шаг 7: Используйте функцию перерисовки в Tupelo

 

 

Вернитесь на вкладку "Только маска" и нажмите "Отправить в img 2 img inpaint".

SD模特换装:Inpaint Anything

 

 

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

SD模特换装:Inpaint Anything

 

 

Именно тогда люди, знакомые с SD, будут рады вернуться в знакомое место и наконец-то выбрать свою любимую модель.

Итак, давайте выберем модель! Я выбрал chilloutmix.

 

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

SD模特换装:Inpaint Anything

 

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

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.

 

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

SD模特换装:Inpaint Anything

 

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

Появились странные вещи!

SD模特换装:Inpaint Anything

 

 

 

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

Нужно ли корректировать содержимое маски? Текущая предустановка является оригинальной.

SD模特换装:Inpaint Anything

 

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

SD模特换装:Inpaint Anything

 

 

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

SD模特换装:Inpaint Anything

 

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

SD模特换装:Inpaint Anything

 

 

Не одета! Что здесь происходит? Почему одежда всегда остается на нем?

Итак, мы пришли к выводу... это сломанный .....

Не делайте поспешных выводов, все дело в том, что мы выбрали не ту модель.

 

Шаг 8: Выберите epiCPhotoGasm Inpainting Model Repainting

 

 

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

 

ChilloutMix - это не та модель, которую следует использовать для перекрашивания, поэтому вместо нее мы воспользуемся загруженным ранее epiCPhotoGasm_zinpainting.
Модели.

SD模特换装:Inpaint Anything

 

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

 

Давайте посмотрим на результаты:

SD模特换装:Inpaint Anything

 

Мы получили нарядный... красивый манекен.

 

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

SD模特换装:Inpaint Anything

 

В результате красота налицо, но что это за черная ткань на его груди? Мы не просили эту ткань!

 

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

 

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

SD模特换装:Inpaint Anything

 

SD模特换装:Inpaint Anything

 

SD模特换装:Inpaint Anything

 

SD模特换装:Inpaint Anything

 

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

SD模特换装:Inpaint Anything

 

SD模特换装:Inpaint Anything

 

SD模特换装:Inpaint Anything

 

 

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

SD模特换装:Inpaint Anything

 

SD模特换装:Inpaint Anything

 

 

SD模特换装:Inpaint Anything

 

Разве это не отличная картинка? Она еще не доработана до такого качества, она будет еще лучше, если ее снова оптимизировать, так что же делать дальше?

 

 

IV. Часто задаваемые вопросы

 

 

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

 

 

Вопрос 1: Что такое разделение экземпляра?

 

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

 

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

 

 

Вопрос 2: Inpaint Anything отличается от Segment Anything Models, в чем разница?

 

 

Модель Segment Anything Model, также известная как SAM, обеспечивает 9 типов моделей Segment Anything в Inpaint Anything.

SD模特换装:Inpaint Anything

 

Их можно разделить на 4 категории, о которых мы расскажем по порядку.

 

Класс 1: начиная с sam_vit - модель SAM, предоставленная Meta

 

Начало sam_vit - это модель, предоставленная компанией meta. Поскольку Meta назвала свою модель семантической сегментации Segment Anything Model, именно с нее начинается SAM, о котором мы сейчас говорим, и ее следует считать родоначальником этой волны моделей SAM.

 

Это серия моделей, анонсированная Meta в апреле 2023 года, и другие модели SAM будут сравниваться с этой серией. Существует 3 модели, по размеру: h (огромный), l (большой), b (базовый), огромный > большой > базовый, и точность теоретически пропорциональна размеру, а скорость вычислений также пропорциональна размеру.

 

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

SD模特换装:Inpaint Anything

 

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, но в нашем случае разница невелика.

SD模特换装:Inpaint Anything

 

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 не подошла бы для нашего примера.

SD模特换装:Inpaint Anything

 

Информация о FastSAM приведена ниже:

https://github.com/CASIA-IVA-Lab/FastSAM

https://huggingface.co/An-619/FastSAM

 

 

 

Категория 4: Мобильный SAM

 

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

SD模特换装:Inpaint Anything

 

Ссылка на мобильный SAM:

https://github.com/ChaoningZhang/MobileSAM

https://huggingface.co/dhkim2810/MobileSAM/tree/main

 

 

 

Вопрос 3: Что контролирует параметр "Маскированное содержимое" в Inpaint?

 

SD模特换装:Inpaint Anything

 

Для содержимого Masked есть четыре варианта, описанные ниже:

 

Вариант 1: Заполнение

 

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

 

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

SD模特换装:Inpaint Anything

 

 

 

Вариант 2: Оригинал

 

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

 

В нашем примере эта опция оставит черную часть манекена, а направление пляжа сохранится.

SD模特换装:Inpaint Anything

 

Вариант 3: скрытый шум

 

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

 

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

SD模特换装:Inpaint Anything

 

 

 

Вариант 4: Латентное ничто

 

Латентное ничто обращается к цветам вблизи области, которую нужно перерисовать, находит среднее значение близлежащих цветов и заливает перерисованную область. Это отлично подходит для удаления нежелательных объектов.

 

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

SD模特换装:Inpaint Anything

 

 

V. Обзор проблемы расширения

 

 

Давайте рассмотрим, что мы только что сделали.

 

Проще говоря, есть 2 основных этапа:

  • Маскирование с помощью функции семантической сегментации Inpaint Anything.
  • Затем они передаются в inpaint upload для загрузки графики и inpaint для перекраски моделей.

 

Уже одно это сделало бы его таким же продуктивным, как сегодня.

SD模特换装:Inpaint Anything

 

SD模特换装:Inpaint Anything

 

SD模特换装:Inpaint Anything

 

SD模特换装:Inpaint Anything

 

 

Все могло бы быть лучше, но и при нынешнем подходе остается несколько проблем:

  1. Что делать, если у нужной мне модели нет модели inpaint? Могу ли я использовать общую модель?
  2. Что нужно сделать, чтобы изменить свет и тень на одежде?
  3. Иногда кажется, что фотография отфотошоплена, что мне нужно сделать, чтобы она была более естественной?
  4. Как генерировать более насыщенные изображения, а не те, которые сейчас выглядят как эти.
© заявление об авторских правах

Похожие статьи

Нет комментариев

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