У листопаді 2022 року ми оголошений за допомогою якого клієнти AWS можуть створювати зображення з тексту Стабільна дифузія використання моделей Amazon SageMaker JumpStart. Сьогодні ми раді представити нову функцію, яка дозволяє користувачам малювати зображення за допомогою моделей стабільної дифузії. Inpainting – це процес заміни частини зображення іншим зображенням на основі текстової підказки. Надаючи оригінальне зображення, зображення маски, яке окреслює частину, яку потрібно замінити, і текстову підказку, модель Stable Diffusion може створювати нове зображення, яке замінює замасковану область об’єктом, предметом або середовищем, описаними в текстовій підказці.
Ви можете використовувати inpainting для відновлення пошкоджених зображень або створення нових зображень із новими сюжетами чи стилями в певних розділах. У сфері архітектурного дизайну фарбування Stable Diffusion inpainting можна застосовувати для ремонту неповних або пошкоджених ділянок креслень будівель, надаючи точну інформацію для будівельних бригад. У разі клінічного МРТ-зображення голова пацієнта має бути утримана, що може призвести до невідповідних результатів через артефакт кадрування, що спричиняє втрату даних або зниження діагностичної точності. Нанесення зображень може ефективно допомогти пом’якшити ці неоптимальні результати.
У цьому дописі ми представляємо вичерпний посібник із розгортання та запуску логічного висновку за допомогою моделі малювання Stable Diffusion двома методами: через інтерфейс користувача (UI) JumpStart у Студія Amazon SageMaker, і програмно через API JumpStart доступні в SageMaker Python SDK.
Огляд рішення
Наступні зображення є прикладами живопису. Оригінальні зображення розташовані ліворуч, зображення маски — у центрі, а намальоване зображення, створене моделлю, — праворуч. Для першого прикладу моделі було надано оригінальне зображення, зображення маски та текстову підказку «білий кіт, блакитні очі, одягнений у светр, лежить у парку», а також негативну підказку «погано намальовані ноги». » Для другого прикладу текстова підказка була такою: «Жінка-модель витончено демонструє повсякденну довгу сукню з поєднанням рожевих і блакитних відтінків».
Запуск великих моделей, таких як Stable Diffusion, потребує спеціальних сценаріїв висновку. Ви повинні запустити наскрізні тести, щоб переконатися, що сценарій, модель і потрібний екземпляр працюють разом ефективно. JumpStart спрощує цей процес, надаючи готові до використання сценарії, які були ретельно перевірені. Ви можете отримати доступ до цих сценаріїв одним клацанням миші в інтерфейсі Studio або за допомогою кількох рядків коду через API JumpStart.
Наступні розділи допоможуть вам розгорнути модель і запустити висновок за допомогою інтерфейсу користувача Studio або API JumpStart.
Зауважте, що використовуючи цю модель, ви погоджуєтеся з Ліцензія CreativeML Open RAIL++-M.
Отримайте доступ до JumpStart через інтерфейс користувача Studio
У цьому розділі ми проілюструємо розгортання моделей JumpStart за допомогою інтерфейсу користувача Studio. Супровідне відео демонструє пошук попередньо підготовленої моделі малювання Stable Diffusion на JumpStart і її розгортання. Сторінка моделі містить важливі відомості про модель та її використання. Для виконання висновку ми використовуємо тип екземпляра ml.p3.2xlarge, який забезпечує необхідне прискорення GPU для логічного висновку з низькою затримкою за доступною ціною. Після налаштування екземпляра хостингу SageMaker виберіть Розгортання. Кінцева точка запрацює та буде готова обробляти запити на висновок протягом приблизно 10 хвилин.
JumpStart надає зразок блокнота, який може допомогти пришвидшити час, потрібний для запуску висновків на щойно створеній кінцевій точці. Щоб отримати доступ до блокнота в Studio, виберіть Відкрийте Блокнот в Використовуйте Endpoint із Studio розділ сторінки кінцевої точки моделі.
Використовуйте JumpStart програмно з SageMaker SDK
Використання JumpStart UI дає змогу розгортати попередньо навчену модель в інтерактивному режимі лише за кілька клацань. Крім того, ви можете використовувати моделі JumpStart програмно за допомогою API, інтегрованих у SageMaker Python SDK.
У цьому розділі ми вибираємо відповідну попередньо навчену модель у JumpStart, розгортаємо цю модель на кінцевій точці SageMaker і виконуємо висновки щодо розгорнутої кінцевої точки, використовуючи SageMaker Python SDK. Наступні приклади містять фрагменти коду. Щоб отримати доступ до повного коду з усіма кроками, включеними в цю демонстрацію, зверніться до Вступ до редагування зображень JumpStart – стабільне дифузійне малювання зразок зошита.
Розгорніть попередньо навчену модель
SageMaker використовує контейнери Docker для різноманітних завдань збірки та виконання. JumpStart використовує Контейнери глибокого навчання SageMaker (DLC), які залежать від фреймворку. Спочатку ми отримуємо будь-які додаткові пакети, а також сценарії для обробки навчання та висновків для вибраного завдання. Потім попередньо підготовлені артефакти моделі вибираються окремо model_uris
, що забезпечує гнучкість платформи. Це дозволяє використовувати декілька попередньо навчених моделей з одним сценарієм висновку. Наступний код ілюструє цей процес:
Далі ми надаємо ці ресурси а Модель SageMaker створити екземпляр і розгорнути кінцеву точку:
Після розгортання моделі ми можемо отримувати прогнози в реальному часі з неї!
вхід
Вхідними даними є базове зображення, зображення маски та підказка, що описує суб’єкт, об’єкт або середовище, які потрібно замінити в замаскованій частині. Створення ідеального зображення маски для ефектів під час малювання передбачає кілька найкращих практик. Почніть із конкретної підказки та не соромтеся експериментувати з різними налаштуваннями стабільної дифузії, щоб досягти бажаних результатів. Використовуйте зображення маски, яке дуже нагадує зображення, яке ви хочете намалювати. Цей підхід допомагає алгоритму inpainting завершити відсутні ділянки зображення, що призводить до більш природного вигляду. Високоякісні зображення, як правило, дають кращі результати, тому переконайтеся, що зображення основи та маски мають гарну якість і схожі одне на одне. Крім того, вибирайте велике та гладке зображення маски, щоб зберегти деталі та мінімізувати артефакти.
Кінцева точка приймає базове зображення та маску як необроблені значення RGB або зображення в кодуванні base64. Обробник висновку декодує зображення на основі content_type
:
- для
content_type = “application/json”
, вхідне корисне навантаження має бути словником JSON із необробленими значеннями RGB, текстовою підказкою та іншими необов’язковими параметрами - для
content_type = “application/json;jpeg”
, вхідним корисним навантаженням має бути словник JSON із зображенням у кодуванні base64, текстовою підказкою та іншими необов’язковими параметрами
Вихід
Кінцева точка може генерувати два типи виводу: зображення RGB у кодуванні Base64 або словник JSON згенерованих зображень. Ви можете вказати, який вихідний формат ви хочете, встановивши accept
заголовок до "application/json"
or "application/json;jpeg"
для зображення JPEG або base64 відповідно.
- для
accept = “application/json”
, кінцева точка повертає словник JSON зі значеннями RGB для зображення - для
accept = “application/json;jpeg”
, кінцева точка повертає словник JSON із зображенням JPEG у вигляді байтів, закодованих за допомогою кодування base64.b64
Зверніть увагу, що надсилання або отримання корисного навантаження з необробленими значеннями RGB може досягати обмежень за замовчуванням для вхідного корисного навантаження та розміру відповіді. Тому ми рекомендуємо використовувати зображення в кодуванні base64 шляхом налаштування content_type = “application/json;jpeg”
і accept = “application/json;jpeg”.
Наступний код є прикладом запиту на висновок:
Підтримувані параметри
Моделі Stable Diffusion inpainting підтримують багато параметрів для створення зображень:
- зображення – Оригінальне зображення.
- маска – Зображення, де затемнена частина залишається незмінною під час створення зображення, а біла частина замінюється.
- підказка – Підказка для створення зображення. Це може бути рядок або список рядків.
- num_inference_steps (необов'язково) – Кількість кроків усунення шумів під час створення зображення. Більше кроків веде до вищої якості зображення. Якщо вказано, воно має бути додатним цілим числом. Зауважте, що більше кроків висновку призведе до довшого часу відповіді.
- guidance_scale (необов'язковий) – Вища шкала вказівок призводить до того, що зображення більше пов’язане з підказкою, за рахунок погіршення якості зображення. Якщо вказано, це має бути float.
guidance_scale<=1
ігнорується. - negative_prompt (необов'язковий) – Це спрямовує генерацію зображення проти цієї підказки. Якщо вказано, це має бути рядок або список рядків і використовуватися з
guidance_scale
. Якщоguidance_scale
вимкнено, це також вимкнено. Крім того, якщо підказка є списком рядків, тоnegative_prompt
також має бути список рядків. - насіння (необов'язково) – Це фіксує рандомізований стан для відтворюваності. Якщо вказано, воно має бути цілим числом. Щоразу, коли ви використовуєте те саме підказку з тим самим початковим кодом, кінцеве зображення завжди буде однаковим.
- batch_size (необов'язковий) – Кількість зображень для створення за один прохід вперед. Якщо ви використовуєте менший екземпляр або генеруєте багато зображень, зменшіть
batch_size
бути невеликим числом (1–2). Кількість зображень = кількість підказок*num_images_per_prompt
.
Обмеження та упередження
Незважаючи на те, що Stable Diffusion має вражаючу продуктивність у малюванні, він страждає від кількох обмежень і упереджень. Вони включають, але не обмежуються:
- Модель може не генерувати точні обличчя чи кінцівки, оскільки навчальні дані не містять достатньо зображень із цими функціями.
- Модель проходила навчання на Набір даних LAION-5B, який має вміст для дорослих і може бути непридатним для використання в продукті без подальших розглядів.
- Модель може погано працювати з неанглійськими мовами, оскільки модель навчена на тексті англійською мовою.
- Модель не може створити якісний текст у зображеннях.
- Стабільне дифузійне малювання зазвичай найкраще працює із зображеннями нижчої роздільної здатності, наприклад 256×256 або 512×512 пікселів. Під час роботи із зображеннями високої роздільної здатності (768 × 768 або вище) метод може важко підтримувати бажаний рівень якості та деталізації.
- Незважаючи на те, що використання вихідного коду може допомогти контролювати відтворюваність, фарбування стабільної дифузії все одно може давати різноманітні результати з незначними змінами вхідних даних або параметрів. Через це може бути складно точно налаштувати вивід для конкретних вимог.
- Цей метод може мати проблеми зі створенням складних текстур і візерунків, особливо коли вони охоплюють великі області зображення або є важливими для підтримки загальної узгодженості та якості намальованої області.
Для отримання додаткової інформації про обмеження та упередження зверніться до Картка моделі Stable Diffusion Inpainting.
Розчин Inpainting із маскою, згенерованою за допомогою підказки
CLIPSeq — це передова техніка глибокого навчання, яка використовує потужність попередньо навчених моделей CLIP (Contrastive Language-Image Pretraining) для створення масок із вхідних зображень. Цей підхід забезпечує ефективний спосіб створення масок для таких завдань, як сегментація зображення, малювання та маніпуляції. CLIPSeq використовує CLIP для створення текстового опису вхідного зображення. Потім текстовий опис використовується для створення маски, яка ідентифікує пікселі зображення, які мають відношення до текстового опису. Потім маску можна використовувати для виділення відповідних частин зображення для подальшої обробки.
CLIPSeq має кілька переваг перед іншими методами генерації масок із вхідних зображень. По-перше, це більш ефективний метод, оскільки не вимагає обробки зображення окремим алгоритмом сегментації зображення. По-друге, це точніше, оскільки може генерувати маски, які точніше узгоджуються з текстовим описом зображення. По-третє, він більш універсальний, тому що ви можете використовувати його для створення масок із широкого спектру зображень.
Однак CLIPSeq також має деякі недоліки. По-перше, метод може мати обмеження щодо предмета, оскільки він спирається на попередньо підготовлені моделі CLIP, які можуть не охоплювати конкретні домени чи сфери знань. По-друге, це може бути чутливим методом, оскільки він чутливий до помилок у текстовому описі зображення.
Для отримання додаткової інформації зверніться до Віртуальний модний стиль із генеративним ШІ за допомогою Amazon SageMaker.
Прибирати
Після того, як ви завершите роботу блокнота, обов’язково видаліть усі ресурси, створені в процесі, щоб переконатися, що виставлення рахунків зупинено. Код для очищення кінцевої точки доступний у асоційованому ноутбук.
Висновок
У цій публікації ми показали, як розгорнути попередньо навчену модель малювання Stable Diffusion за допомогою JumpStart. Ми показали фрагменти коду в цій публікації — повний код із усіма кроками в цій демонстрації доступний у Вступ до JumpStart – покращуйте якість зображення за допомогою підказок приклад зошита. Спробуйте рішення самостійно та надішліть нам свої коментарі.
Щоб дізнатися більше про модель і як вона працює, перегляньте такі ресурси:
Щоб дізнатися більше про JumpStart, перегляньте такі публікації:
Про авторів
Доктор Вівек Мадан є прикладним науковцем у команді Amazon SageMaker JumpStart. Він отримав ступінь доктора філософії в Університеті Іллінойсу в Урбана-Шампейн і був науковим співробітником у технічному університеті Джорджії. Він є активним дослідником машинного навчання та розробки алгоритмів і публікував статті на конференціях EMNLP, ICLR, COLT, FOCS і SODA.
Альфред Шен є старшим спеціалістом зі штучного інтелекту та ML в AWS. Він працював у Кремнієвій долині, займаючи технічні та керівні посади в різних секторах, включаючи охорону здоров’я, фінанси та високі технології. Він є відданим прикладним дослідником AI/ML, зосередженим на CV, NLP та мультимодальності. Його роботи були представлені в таких публікаціях, як EMNLP, ICLR та Public Health.
- Розповсюдження контенту та PR на основі SEO. Отримайте посилення сьогодні.
- Платоблокчейн. Web3 Metaverse Intelligence. Розширені знання. Доступ тут.
- джерело: https://aws.amazon.com/blogs/machine-learning/inpaint-images-with-stable-diffusion-using-amazon-sagemaker-jumpstart/
- :є
- $UP
- 10
- 100
- 2022
- 7
- a
- МЕНЮ
- прискорювати
- Прийняти
- Приймає
- доступ
- точність
- точний
- Achieve
- активний
- Додатковий
- Додатково
- Для дорослих
- просунутий
- Переваги
- доступний
- після
- проти
- AI
- AI / ML
- посібник
- алгоритм
- вирівняні
- ВСІ
- дозволяє
- завжди
- Amazon
- Amazon SageMaker
- Amazon SageMaker JumpStart
- та
- Інший
- API
- Інтерфейси
- прикладної
- підхід
- відповідний
- приблизно
- архітектурний
- ЕСТЬ
- ПЛОЩА
- області
- AS
- At
- автоматично
- доступний
- AWS
- база
- заснований
- BE
- оскільки
- КРАЩЕ
- передового досвіду
- Краще
- зміщення
- біллінг
- Blend
- синій
- будувати
- Створюємо
- by
- CAN
- випадок
- випадковий
- КПП
- викликаючи
- Центр
- певний
- складні
- перевірка
- Вибирати
- клас
- клацання
- Клінічний
- тісно
- код
- коментарі
- повний
- завершення
- всеосяжний
- конференції
- міркування
- будівництво
- містити
- Контейнер
- Контейнери
- зміст
- контроль
- створювати
- створений
- створення
- виготовлений на замовлення
- Клієнти
- дані
- втрати даних
- присвячених
- глибокий
- глибоке навчання
- дефолт
- постачає
- демонструє
- розгортання
- розгорнути
- розгортання
- розгортання
- описаний
- description
- дизайн
- бажаний
- деталь
- деталі
- радіомовлення
- інвалід
- Різне
- Docker
- Ні
- домени
- Не знаю
- під час
- кожен
- фактично
- ефекти
- ефективний
- продуктивно
- або
- дозволяє
- кінець в кінець
- Кінцева точка
- англійська
- забезпечувати
- запис
- Навколишнє середовище
- помилки
- особливо
- істотний
- приклад
- Приклади
- збуджений
- експеримент
- експертиза
- очі
- особи
- мода
- особливість
- риси
- Показуючи
- ноги
- жінка
- Отримано
- кілька
- філе
- фінансування
- Перший
- відповідати
- Гнучкість
- Поплавок
- після
- для
- формат
- Вперед
- від
- Повний
- далі
- в цілому
- породжувати
- генерується
- породжує
- покоління
- генеративний
- Генеративний ШІ
- Грузія
- добре
- GPU
- керівництво
- керівництво
- Гід
- обробляти
- Мати
- голова
- здоров'я
- охорона здоров'я
- допомога
- високоякісний
- висока роздільна здатність
- вище
- хіт
- проведення
- хостинг
- Як
- How To
- HTML
- HTTPS
- ідентифікує
- Іллінойс
- зображення
- зображень
- Зображеннями
- вражаючий
- in
- включати
- включені
- У тому числі
- інформація
- вхід
- екземпляр
- інтегрований
- інтерфейс
- вводити
- IT
- ЙОГО
- JPG
- json
- мова
- мови
- великий
- вести
- УЧИТЬСЯ
- вивчення
- рівень
- як
- недоліки
- обмеженою
- рамки
- ліній
- список
- Довго
- довше
- від
- машина
- навчання за допомогою машини
- підтримувати
- Підтримка
- зробити
- управлінський
- Маніпуляція
- багато
- маска
- маски
- Матерія
- Може..
- метод
- методика
- може бути
- хвилин
- відсутній
- Пом'якшити
- ML
- модель
- Моделі
- більше
- більш ефективний
- Більше того
- МРТ
- множинний
- Природний
- Необхідність
- негативний
- Нові
- nlp
- ноутбук
- роман
- Листопад
- номер
- об'єкт
- отримувати
- of
- Пропозиції
- on
- ONE
- відкрити
- оперативний
- порядок
- оригінал
- Інше
- контури
- вихід
- загальний
- власний
- пакети
- сторінка
- документи
- параметри
- Парк
- частини
- проходити
- моделі
- ідеальний
- Виконувати
- продуктивність
- платформа
- plato
- Інформація про дані Платона
- PlatoData
- точка
- позиції
- позитивний
- пошта
- Пости
- влада
- практики
- необхідність
- Прогнози
- Прогноз
- підготовлений
- представити
- price
- процес
- Оброблено
- обробка
- виробляти
- Product
- забезпечувати
- за умови
- забезпечує
- забезпечення
- громадськість
- охорона здоров'я
- публікаціям
- опублікований
- Python
- якість
- Рандомізований
- Сировина
- реального часу
- царство
- отримання
- рекомендувати
- зменшити
- Знижений
- відноситься
- регіон
- пов'язаний
- доречний
- залишається
- ремонт
- замінити
- запросити
- запитів
- вимагати
- вимагається
- Вимога
- Вимагається
- дослідник
- походить
- ресурси
- відповідь
- відновлення
- в результаті
- результати
- повертати
- Умови повернення
- RGB
- прогін
- біг
- мудрець
- то ж
- шкала
- вчений
- scripts
- Sdk
- другий
- розділ
- розділам
- Сектори
- насіння
- сегментація
- обраний
- відправка
- старший
- чутливий
- окремий
- установка
- налаштування
- кілька
- Кремній
- Силіконова долина
- один
- Розмір
- невеликий
- менше
- So
- рішення
- деякі
- span
- спеціаліст
- конкретний
- зазначений
- стабільний
- старт
- стан
- заходи
- Як і раніше
- зупинений
- рядок
- боротьба
- студія
- тема
- такі
- Страждає
- достатній
- підтримка
- схильний
- приймає
- Завдання
- завдання
- команда
- технології
- технічний
- terms
- Тести
- Що
- Команда
- отже
- Ці
- третій
- через
- час
- до
- сьогодні
- разом
- навчений
- Навчання
- Типи
- типово
- ui
- університет
- us
- Використання
- використання
- користувач
- Інтерфейс користувача
- користувачі
- використовувати
- використовує
- Долина
- Цінності
- різноманітність
- різний
- різнобічний
- через
- Відео
- шлях..
- ДОБРЕ
- який
- білий
- широкий
- волі
- з
- в
- без
- Work
- працювати разом
- робочий
- працює
- вихід
- Ти
- вашу
- зефірнет