У листопаді 2022 року ми оголошений за допомогою якого клієнти AWS можуть створювати зображення з тексту Стабільна дифузія моделі в Росії Amazon SageMaker JumpStart. Сьогодні ми оголошуємо про нову функцію, яка дозволяє покращувати зображення (змінювати розмір зображення без втрати якості) за допомогою моделей Stable Diffusion у JumpStart. Зображення з низькою роздільною здатністю, розмите та піксельне можна перетворити на зображення високої роздільної здатності, яке виглядає більш плавним, чітким і деталізованим. Цей процес, наз підвищення масштабу, можна застосовувати як до реальних зображень, так і до зображень, створених моделі стабільної дифузії тексту в зображення. Це можна використовувати для покращення якості зображення в різних галузях, таких як електронна комерція та нерухомість, а також для художників і фотографів. Крім того, масштабування може покращити візуальну якість зображень із низькою роздільною здатністю під час відображення на екранах із високою роздільною здатністю.
Stable Diffusion використовує алгоритм штучного інтелекту для масштабування зображень, усуваючи потребу в ручній роботі, яка може вимагати ручного заповнення прогалин у зображенні. Він був навчений на мільйонах зображень і може точно передбачати зображення високої роздільної здатності, що призводить до значного підвищення деталізації порівняно з традиційними програмами для збільшення зображення. Крім того, на відміну від методів неглибокого навчання, таких як найближчий сусід, Stable Diffusion враховує контекст зображення, використовуючи текстову підказку для керування процесом масштабування.
У цьому дописі ми надаємо огляд того, як розгортати та запускати логічний висновок за допомогою моделі Stable Diffusion upscaler двома способами: через інтерфейс користувача (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 upscaler на JumpStart і розгорнути її. Сторінка моделі містить цінну інформацію про модель і способи її використання. Для висновку ми використовуємо тип екземпляра ml.p3.2xlarge, оскільки він забезпечує прискорення GPU, необхідне для низької затримки висновку за низькою ціною. Після налаштування екземпляра хостингу SageMaker виберіть Розгортання. Це займе 5–10 хвилин, доки кінцева точка не запрацює та не готова відповідати на запити висновків.
Щоб пришвидшити час для висновку, JumpStart надає зразок блокнота, який показує, як запустити висновок на щойно створеній кінцевій точці. Щоб отримати доступ до блокнота в Studio, виберіть Відкрийте Блокнот в Використовуйте Endpoint із Studio розділ сторінки кінцевої точки моделі.
Використовуйте JumpStart програмно з SageMaker SDK
Ви можете використовувати JumpStart UI для розгортання попередньо навченої моделі в інтерактивному режимі всього за кілька кліків. Однак ви також можете використовувати моделі JumpStart програмно за допомогою API, інтегрованих у SDK SageMaker Python.
У цьому розділі ми вибираємо відповідну попередньо навчену модель у JumpStart, розгортаємо цю модель на кінцевій точці SageMaker і запускаємо висновок на розгорнутій кінцевій точці, використовуючи SageMaker Python SDK. Наступні приклади містять фрагменти коду. Повний код із усіма кроками в цій демонстрації див Вступ до JumpStart – покращуйте якість зображення за допомогою підказок зразок зошита.
Розгорніть попередньо навчену модель
SageMaker використовує контейнери Docker для різноманітних завдань збірки та виконання. JumpStart використовує Контейнери глибокого навчання SageMaker (DLC), які залежать від фреймворку. Спочатку ми отримуємо будь-які додаткові пакети, а також сценарії для обробки навчання та висновків для вибраного завдання. Потім попередньо підготовлені артефакти моделі вибираються окремо model_uris
, що забезпечує гнучкість платформи. Це дозволяє використовувати декілька попередньо навчених моделей з одним сценарієм висновку. Наступний код ілюструє цей процес:
Далі ми надаємо ці ресурси в a Модель SageMaker створити екземпляр і розгорнути кінцеву точку:
Після розгортання нашої моделі ми можемо отримувати прогнози з неї в режимі реального часу!
Формат введення
Кінцева точка приймає зображення з низькою роздільною здатністю як необроблені значення RGB або зображення в кодуванні base64. Обробник висновку декодує зображення на основі content_type
:
- для
content_type = “application/json”
, вхідне корисне навантаження має бути словником JSON із необробленими значеннями RGB, текстовою підказкою та іншими необов’язковими параметрами - для
content_type = “application/json;jpeg”
, вхідним корисним навантаженням має бути словник JSON із зображенням у кодуванні base64, текстовою підказкою та іншими необов’язковими параметрами
Формат виводу
Наступні приклади коду дають вам уявлення про те, як виглядають виходи. Подібно до вхідного формату, кінцева точка може відповісти необробленими значеннями RGB зображення або зображенням у кодуванні base64. Це можна вказати за допомогою налаштування accept
до одного з двох значень:
- для
accept = “application/json”
, кінцева точка повертає словник JSON зі значеннями RGB для зображення - для
accept = “application/json;jpeg”
, кінцева точка повертає словник JSON із зображенням JPEG у вигляді байтів, закодованих за допомогою кодування base64.b64
Зверніть увагу, що надсилання або отримання корисного навантаження з необробленими значеннями RGB може досягати обмежень за замовчуванням для вхідного корисного навантаження та розміру відповіді. Тому ми рекомендуємо використовувати зображення в кодуванні base64 шляхом налаштування content_type = “application/json;jpeg”
та accept = “application/json;jpeg”
.
Наступний код є прикладом запиту на висновок:
Відповідь кінцевої точки – це об’єкт JSON, що містить згенеровані зображення та підказку:
Підтримувані параметри
Моделі масштабування Stable Diffusion підтримують багато параметрів для створення зображень:
- зображення – Зображення з низькою роздільною здатністю.
- підказка – Підказка для створення зображення. Це може бути рядок або список рядків.
- num_inference_steps (необов'язково) – Кількість кроків усунення шумів під час створення зображення. Більше кроків веде до вищої якості зображення. Якщо вказано, воно має бути додатним цілим числом. Зверніть увагу, що більше кроків висновку призведе до довшого часу відповіді.
- guidance_scale (необов'язковий) – Вища шкала вказівок призводить до того, що зображення більше пов’язане з підказкою, за рахунок погіршення якості зображення. Якщо вказано, це має бути float.
guidance_scale<=1
ігнорується. - negative_prompt (необов'язковий) – Це спрямовує генерацію зображення проти цієї підказки. Якщо вказано, це має бути рядок або список рядків і використовуватися з
guidance_scale
. Якщоguidance_scale
вимкнено, це також вимкнено. Крім того, якщо підказка є списком рядків, то negative_prompt також має бути списком рядків. - насіння (необов'язково) – Це фіксує рандомізований стан для відтворюваності. Якщо вказано, воно має бути цілим числом. Щоразу, коли ви використовуєте те саме підказку з тим самим початковим кодом, кінцеве зображення завжди буде однаковим.
- noise_level (необов'язковий) – Це додає шум до прихованих векторів перед масштабуванням. Якщо вказано, воно має бути цілим числом.
Ви можете рекурсивно збільшити масштаб зображення, викликаючи кінцеву точку неодноразово, щоб отримати зображення все вищої якості.
Розмір зображення та типи екземплярів
Зображення, створені моделлю, можуть бути вчетверо більші за вихідне зображення з низькою роздільною здатністю. Крім того, вимога до пам’яті моделі (пам’ять графічного процесора) зростає зі збільшенням розміру згенерованого зображення. Таким чином, якщо ви масштабуєте вже зображення з високою роздільною здатністю або рекурсивно масштабуєте зображення, виберіть тип екземпляра з великою пам’яттю GPU. Наприклад, ml.g5.2xlarge має більше пам’яті GPU, ніж тип екземпляра ml.p3.2xlarge, який ми використовували раніше. Додаткову інформацію про різні типи екземплярів див Типи екземплярів Amazon EC2.
Масштабування зображень по частинах
Щоб зменшити вимоги до пам’яті під час масштабування великих зображень, ви можете розбити зображення на менші частини, відомі як плиткаі масштабуйте кожну плитку окремо. Після збільшення масштабу плиток їх можна змішати, щоб створити остаточне зображення. Цей метод вимагає адаптації підказки для кожної плитки, щоб модель могла зрозуміти вміст плитки та уникнути створення дивних зображень. Частина підказки щодо стилю має залишатися однаковою для всіх плиток, щоб полегшити змішування. При використанні вищих налаштувань шумозаглушення важливо бути більш конкретним у підказці, оскільки модель має більше свободи для адаптації зображення. Це може бути складно, коли плитка містить лише фон або не пов’язана безпосередньо з основним вмістом зображення.
Обмеження та упередженість
Незважаючи на те, що Stable Diffusion має вражаючу продуктивність у масштабуванні, він страждає від кількох обмежень і упереджень. Вони включають, але не обмежуються:
- Модель може не генерувати точні обличчя чи кінцівки, оскільки навчальні дані не містять достатньо зображень із цими функціями
- Модель проходила навчання на Набір даних LAION-5B, який має вміст для дорослих і може бути непридатним для використання в продукті без подальших розглядів
- Модель може погано працювати з неанглійськими мовами, оскільки модель навчена на тексті англійською мовою
- Модель не може створити якісний текст у зображеннях
Для отримання додаткової інформації про обмеження та упередження зверніться до Карта моделі Stable Diffusion upscaler.
Прибирати
Після того, як ви завершите роботу блокнота, обов’язково видаліть усі ресурси, створені в процесі, щоб переконатися, що виставлення рахунків зупинено. Код для очищення кінцевої точки доступний у асоційованому ноутбук.
Висновок
У цій публікації ми показали, як розгорнути попередньо навчену модель Stable Diffusion upscaler за допомогою JumpStart. Ми показали фрагменти коду в цій публікації — повний код із усіма кроками в цій демонстрації доступний у Вступ до JumpStart – покращуйте якість зображення за допомогою підказок приклад зошита. Спробуйте рішення самостійно та надішліть нам свої коментарі.
Щоб дізнатися більше про модель і як вона працює, перегляньте такі ресурси:
Щоб дізнатися більше про JumpStart, перегляньте такі публікації блогу:
Про авторів
Доктор Вівек Мадан є прикладним науковцем у команді Amazon SageMaker JumpStart. Він отримав ступінь доктора філософії в Університеті Іллінойсу в Урбана-Шампейн і був науковим співробітником у технічному університеті Джорджії. Він є активним дослідником машинного навчання та розробки алгоритмів і публікував статті на конференціях EMNLP, ICLR, COLT, FOCS і SODA.
Хайко Хоц є старшим архітектором рішень для штучного інтелекту та машинного навчання з особливою увагою до обробки природної мови (NLP), великих мовних моделей (LLM) і генеративного штучного інтелекту. До цієї посади він був керівником відділу обробки даних у відділі обслуговування клієнтів Amazon в ЄС. Heiko допомагає нашим клієнтам досягти успіху на шляху AI/ML на AWS і співпрацює з організаціями в багатьох галузях, включаючи страхування, фінансові послуги, медіа та розваги, охорону здоров’я, комунальні послуги та виробництво. У вільний час Хейко якомога більше подорожує.
- Розповсюдження контенту та PR на основі SEO. Отримайте посилення сьогодні.
- Платоблокчейн. Web3 Metaverse Intelligence. Розширені знання. Доступ тут.
- джерело: https://aws.amazon.com/blogs/machine-learning/upscale-images-with-stable-diffusion-in-amazon-sagemaker-jumpstart/
- 100
- 2022
- 7
- a
- МЕНЮ
- прискорювати
- Прийняти
- Приймає
- доступ
- рахунки
- точний
- точно
- досягнутий
- активний
- пристосовувати
- Додатковий
- Додатково
- Додає
- Для дорослих
- після
- проти
- AI
- ШІ та машинне навчання
- AI / ML
- алгоритм
- ВСІ
- дозволяє
- вже
- завжди
- Amazon
- Amazon SageMaker
- Amazon SageMaker JumpStart
- та
- Оголосити
- API
- Інтерфейси
- прикладної
- відповідний
- Художники
- асоційований
- автоматично
- доступний
- AWS
- фон
- заснований
- оскільки
- перед тим
- буття
- зміщення
- біллінг
- змішування
- Блог
- Повідомлення в блозі
- Перерва
- будувати
- званий
- Може отримати
- КПП
- складні
- перевірка
- Вибирати
- клас
- ясніше
- тісно
- код
- коментарі
- порівняний
- конференції
- послідовний
- Контейнер
- Контейнери
- містить
- зміст
- контекст
- перероблений
- створювати
- створений
- створення
- виготовлений на замовлення
- клієнт
- Контакти
- Клієнти
- дані
- наука про дані
- зменшити
- глибокий
- глибоке навчання
- дефолт
- демонструвати
- розгортання
- розгорнути
- дизайн
- деталь
- докладно
- різний
- радіомовлення
- безпосередньо
- інвалід
- Docker
- Ні
- під час
- кожен
- Раніше
- легше
- електронної комерції
- продуктивно
- або
- усуваючи
- кінець в кінець
- Кінцева точка
- англійська
- забезпечувати
- розваги
- запис
- майно
- EU
- приклад
- Приклади
- особи
- особливість
- Отримано
- кілька
- філе
- остаточний
- фінансовий
- фінансові послуги
- знайти
- Перший
- відповідати
- Гнучкість
- Поплавок
- Сфокусувати
- після
- формат
- Freedom
- від
- Повний
- далі
- Крім того
- породжувати
- генерується
- покоління
- генеративний
- Генеративний ШІ
- Грузія
- отримати
- Давати
- Проблиск
- добре
- GPU
- зелений
- Зростає
- керівництво
- Гід
- обробляти
- голова
- охорона здоров'я
- висота
- допомагає
- висока роздільна здатність
- вище
- хіт
- хостинг
- Як
- How To
- Однак
- HTML
- HTTPS
- Іллінойс
- зображення
- зображень
- важливо
- вражаючий
- удосконалювати
- in
- включати
- У тому числі
- Augmenter
- Індивідуально
- промисловості
- інформація
- вхід
- екземпляр
- страхування
- інтегрований
- інтерфейс
- IT
- подорож
- json
- відомий
- мова
- мови
- великий
- Затримка
- вести
- УЧИТЬСЯ
- вивчення
- дозволяє
- недоліки
- обмеженою
- рамки
- ліній
- список
- довше
- подивитися
- виглядає як
- програш
- низький
- машина
- навчання за допомогою машини
- головний
- зробити
- керівництво
- ручна робота
- вручну
- виробництво
- багато
- матч
- Медіа
- пам'ять
- метод
- мільйони
- хвилин
- ML
- модель
- Моделі
- більше
- множинний
- Природний
- Обробка природних мов
- Необхідність
- Нові
- nlp
- шум
- ноутбук
- Листопад
- номер
- об'єкт
- ONE
- відкрити
- порядок
- організації
- оригінал
- Інше
- огляд
- власний
- пакети
- документи
- параметри
- частина
- продуктивність
- картина
- частина
- платформа
- plato
- Інформація про дані Платона
- PlatoData
- точка
- позитивний
- це можливо
- пошта
- Пости
- повноваження
- передбачати
- Прогнози
- Прогноз
- представити
- price
- попередній
- процес
- обробка
- Product
- забезпечувати
- забезпечує
- забезпечення
- опублікований
- Python
- якість
- Рандомізований
- Сировина
- готовий
- реальний
- нерухомість
- отримання
- рекомендувати
- пов'язаний
- залишатися
- ПОВТОРНО
- запросити
- запитів
- вимагати
- вимога
- Вимога
- Вимагається
- дослідник
- дозвіл
- ресурси
- Реагувати
- відповідь
- результат
- в результаті
- результати
- повертати
- Умови повернення
- RGB
- Роль
- прогін
- біг
- мудрець
- то ж
- шкала
- наука
- вчений
- Екрани
- scripts
- Sdk
- другий
- розділ
- розділам
- насіння
- обраний
- відправка
- старший
- обслуговування
- Послуги
- установка
- налаштування
- кілька
- Повинен
- Показувати
- Шоу
- значний
- Аналогічно
- один
- Розмір
- менше
- більш гладкий
- So
- рішення
- Рішення
- спеціальний
- конкретний
- зазначений
- стабільний
- стан
- заходи
- зупинений
- студія
- стиль
- успішний
- такі
- Страждає
- достатній
- підтримка
- Приймати
- приймає
- Завдання
- завдання
- команда
- технології
- методи
- Тести
- Команда
- їх
- отже
- через
- час
- times
- до
- сьогодні
- разом
- традиційний
- поїзд
- навчений
- Навчання
- мандри
- Типи
- ui
- розуміти
- університет
- us
- використання
- користувач
- Інтерфейс користувача
- комунальні послуги
- використовує
- Цінний
- Цінності
- різний
- через
- Відео
- способи
- Що
- який
- білий
- волі
- в
- без
- Work
- працювати разом
- працював
- працює
- Ти
- вашу
- зефірнет