Превратите свои бредни в шедевры по запросу

TL;DR

  • Недавние достижения в области генеративного ИИ привели к запуску целого ряда сервисов, таких как DALL-E 2, Midjourney и Stability AI, которые могут кардинально изменить наш подход к созданию контента.
  • В этом посте я покажу вам, как создать и обслуживать свой собственный высокопроизводительный сервис преобразования текста в изображение через API. На основе Stable Diffusion через HuggingFace, с использованием Vertex AI Workbench и Endpoints.

🚣🏼 Как мы сюда попали

Как отмечает Джордж Лоутон в своей статье: Генеративный ИИ — это тип технологии искусственного интеллекта, который может создавать различные типы контента, включая текст, изображения, аудио и синтетические данные. Недавний ажиотаж вокруг генеративного ИИ был вызван простотой новых пользовательских интерфейсов для создания высококачественного текста, графики и видео за считанные секунды.[2]

В машинном обучении нет ничего нового, на самом деле оно существует в той или иной форме с 1960-х годов[1]. Но только в 2014 году, с введением «генеративно-состязательных сетей (GAN), типа алгоритма машинного обучения, генеративный ИИ смог создавать убедительно аутентичные изображения, видео и аудио реальных людей».[2]

В сочетании с мощью больших языковых моделей (LLM), которые могут принимать подсказки пользователя на естественном языке, описывая что-либо, а затем создавать фотореалистичные изображения, мы прошли очень долгий путь за короткий период времени. Первым, кто сделал это, был DALL·E OpenAI в апреле 2022 года, за ним последовала Disco Diffusion в августе 2022 года, на смену которой в конечном итоге пришла Stable Diffusion. Параллельно со всеми этими предложениями существует компания под названием Midjourney, которая создала очень популярную модель, использующую взаимодействие с ботом Discord.

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

Перенесемся в 2023 год. Midjourney только что выпустила пятую версию 15 марта. Эта модель имеет очень высокую согласованность, превосходно интерпретирует подсказки на естественном языке, имеет более высокое разрешение и поддерживает расширенные функции, такие как повторяющиеся шаблоны[4]. Stability AI также выпустила Stable Diffusion 2.1. Темпы развития этих моделей стремительно растут!

Как описано в недавнем белом документе, опубликованном Deloitte: «Похоже, что мы, возможно, только начинаем видеть влияние того, на что способны модели генеративного ИИ. Несмотря на то, что первые успехи были связаны с выпусками для потребителей, которые могли бы определить эпоху, Генеративный ИИ также может добавить контекстную осведомленность и человеческое принятие решений почти во все аспекты жизни.

Таким образом, генеративный ИИ вызвал интерес со стороны традиционных (например, венчурного капитала (ВК), слияний и поглощений (M&A)) и новых (например, экосистемных партнерств) источников. Только в 2022 году венчурные компании инвестировали более 2 миллиардов долларов, а технологические лидеры сделали значительные инвестиции, такие как доля Microsoft в OpenAI на 10 миллиардов долларов и доля Google в Anthropic на 300 миллионов долларов».

🧐 Что такое стабильная диффузия?

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

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

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

Главное преимущество стабильной диффузии в том, что она очень быстрая. Он может сгенерировать изображение из текстового описания всего за несколько секунд. Это намного быстрее, чем другие методы, такие как GAN. Наши современные соперники (например, Midjourney, DALL E и т. д.) используют тот или иной вариант метода стабильной диффузии.

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

👷🏾‍♀️ Начинаем!

В этом посте я собираюсь показать вам, как использовать код для:

  1. Поэкспериментируйте с моделью Stable Diffusion в интерактивном режиме и создайте классные рисунки!
  2. Обслуживайте модель через конечную точку с помощью Vertex AI.
  3. Создайте простой RESTful API с помощью FLASK.

Конечно, вы могли бы просто использовать существующую модель, обращенную к потребителю, подобную той, что мы упоминали в предыдущем разделе, но что в этом интересного? 😜

➡️ Не стесняйтесь переходить к той части, которая кажется вам наиболее интересной!

👾 Я добавлю любые фрагменты кода (еще не связанные) в репозиторий github, ссылка в конце в разделе «Полезные ресурсы».

👩🏻‍💻 1. Эксперименты со стабильной диффузией

Когда вы начинаете работать над новой проблемой машинного обучения, записные книжки обеспечивают сверхгибкий способ тестирования моделей и быстрого выполнения итераций. Может быть, вам нравится запускать Jupyter в локальной среде, используя Kaggle Kernel или мой любимый Colab. Благодаря таким инструментам создание и экспериментирование с машинным обучением становится все более доступным.

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

💨 См. раздел «Ресурсы», чтобы загрузить файл блокнота, если у вас нет времени (или вы не хотите) создавать его шаг за шагом!

Предпосылки:

  • Учетная запись Google для входа в Colab и сохранения блокнотов
  • Аккаунт HuggingFace и токен API (бесплатно)

1. Перейдите на https://colab.research.google.com/. Это создаст для вас новую записную книжку Python и сохранит ее на вашем Google Диске.

2. Colab предоставляется бесплатно, но вам придется заплатить, если вы хотите получить доступ к большему объему памяти и вычислительным ресурсам для запуска вашего ноутбука. Мы просто будем использовать то, что доступно бесплатно, первое, что вам нужно сделать, это настроить среду выполнения ноутбука, включив в нее ускоритель графического процессора. Использование графического процессора ускорит время, необходимое модели для создания изображения. выполнить умозаключение. Бесплатный уровень предоставляет графический процессор NVIDIA Tesla T4 с 12 ГБ памяти (что как раз достаточно для того, что мы хотим делать). В меню файла выберите Среда выполнения > Изменить тип среды выполнения и выберите Аппаратный ускоритель = GPU.

Затем вам нужно будет подключиться к вашей среде выполнения, чтобы мы могли выполнить любой код, который мы напишем в блокноте. Нажмите Подключить/Повторно подключиться -> Подключиться к размещенной среде выполнения:

3. После того, как вы подключились к среде выполнения, пришло время ввести код! Вы можете ввести код в одну «ячейку» блокнота или, если вы хотите выполнять шаги по отдельности, с помощью кнопки «+ Код», чтобы создать новую «ячейку». Я считаю полезным разбивать код на ячейки, чтобы было легче выявлять и устранять проблемы. В каждой ячейке есть кнопка «воспроизведение», когда вы наводите курсор мыши, щелкните ее, чтобы запустить код. Вы можете выполнить следующие шаги после ввода или копирования/вставки кода в новую ячейку:

а. Поскольку мы извлекаем модель из HuggingFace, нам нужно установить некоторые библиотеки Python и пройти аутентификацию с помощью токена API:

!pip install --upgrade huggingface_hub

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

from huggingface_hub import notebook_login
notebook_login()

в. После успешного входа в вашу учетную запись HuggingFace мы собираемся загрузить библиотеки Python для диффузоров и трансформаторов:

!pip install -qq -U diffusers transformers

д. Нам нужно создать конвейер модели StableDiffusion, чтобы мы могли в основном передать модели некоторый текст и создать изображение на основе этого приглашения. Вы могли заметить, что один из параметров, которые мы передаем, — это путь к модели Stable Diffusion, размещенной на HuggingFace. Примеры в этом посте были протестированы с использованием версии 1.5, вы можете попробовать заменить ее на последнюю версию (версия 2.1) на момент написания:

from diffusers import StableDiffusionPipeline
pipe = StableDiffusionPipeline.from_pretrained('runwayml/stable-diffusion-v1–5')
.to('cuda')

е. Теперь самое интересное, мы собираемся создать арт! Загрузите библиотеку torch python, а затем добавьте ячейку, заменив строковое значение для переменной приглашения тем, что вы хотите! Я привел простой пример, чтобы вы начали:

import torch

# Initialize a prompt
prompt = “polar bear on an iceberg”

# Pass the prompt in the pipeline
pipe(prompt).images[0]

У вас должно получиться что-то похожее на скриншот ниже:

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

torch.cuda.empty_cache()

Написав всего несколько строк кода в блокнот, вы сможете создавать изображения из текстовой подсказки!

🍦 2. Обслуживайте модель через конечную точку Vertex AI.

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

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

Вы можете использовать другого поставщика общедоступных облачных сервисов для достижения примерно таких же результатов, но я собираюсь использовать Google Cloud Platform (GCP) и, в частности, набор инструментов Vertex AI, поскольку я лучше всего с ним знаком.

Предпосылки:

  • Аккаунт GCP с включенным выставлением счетов/бесплатными стартовыми кредитами
  • Иметь базовые знания об администрировании GCP, например. как создать проект, виртуальные машины, сегменты хранилища и другие ресурсы,
  • Дайте разрешения сервисной учетной записи через IAM,
  • скачать ключ сервисной учетной записи,
  • используйте Google Cloud SDK + немного Python.

1. Мы будем использовать готовый пример блокнота: (https://github.com/GoogleCloudPlatform/vertex-ai-samples/blob/main/notebooks/community/vertex_endpoints/torchserve/dreambooth_stablediffusion.ipynb) из официального репозитория образцов ИИ GCP Vertex на Github. Я не собираюсь повторять здесь все заново, я просто объясню наиболее важные части и любые проблемы, которые мне пришлось преодолеть, чтобы заставить его работать… примеры кода никогда не бывают такими простыми, как кажутся. !

⚠️ Создание блокнота, управляемого пользователем, и развертывание модели в конечной точке в этом примере потребует затрат. Вы можете начать с 300 долларов бесплатных кредитов при первом создании учетной записи GCP, но рекомендуемая конфигурация оборудования (и любые последующие обращения к конечной точке, где развернута ваша модель), скорее всего, довольно быстро сожжет эти кредиты — вы были предупреждены. Я поделюсь фактическими затратами, которые я понес, в разделе «Заключительные мысли».

2. Если вы впервые используете Vertex AI, войдите в свою консоль GCP и обязательно включите все необходимые API-интерфейсы на панели инструментов Vertex AI:

3. Откройте блокнот, прямо под его заголовком вы должны увидеть несколько кнопок, в том числе Запустить в Colab и Открыть в Vertex AI Workbench. Вы хотите нажать последний.

4. Затем вам будет предложено настроить экземпляр виртуальной машины, на котором будет размещаться блокнот, управляемый пользователем. В примере рекомендуется использовать NVIDIA A100 с экземпляром ОЗУ 85 ГБ, также известным как. «a2-highgpu-1g». Вывод (создание изображения из примера в блокноте) был быстрым, возвращая изображение из модели стабильной диффузии примерно за 11 секунд.

5. После создания экземпляра вы можете получить к нему доступ через Workbench -> Блокноты, управляемые пользователем.

Прежде чем погрузиться и нажать ОТКРЫТЬ JUPYTERLAB, убедитесь, что вы предоставили учетной записи службы для виртуальной машины, на которой работает ваш ноутбук, разрешения на такие действия, как создание сегментов хранилища и конечных точек. Это не будет сделано для вас автоматически, так как выбрано "Управление пользователем".

6. Щелкните имя записной книжки, в сведениях о записной книжке вы увидите псевдоним владельца или сервисной учетной записи.

7. Перейдите в раздел IAM & Admin > IAM, затем нажмитенажмите Предоставить доступ, вставьте или введите псевдоним служебной учетной записи для своего экземпляра блокнота и, чтобы упростить жизнь, я дал он покрывает доступ «Редактор». Если вы привередливы, вы можете предоставить только определенные разрешения, необходимые для шагов в примере dreambooth_diffusion.

8. Теперь вы должны быть готовы запустить код блокнота dreambooth_diffusion.ipynb в Jupyterlab, откройте его из Workbench (как показано на шаге 5). По какой-то причине код из git-репозитория примера не был скопирован в экземпляр моего ноутбука, поэтому я просто открыл терминал и быстро клонировал репозиторий Github:

$ git clone https://github.com/GoogleCloudPlatform/vertex-ai-samples

9. После того, как вы открыли dreambooth_diffusion.ipynb в Jupyterlab, вы сможете запускать ячейки блокнота без каких-либо серьезных проблем. В первой части записной книжки выполняются шаги по загрузке модели Stable Diffusion и созданию образа из подсказки. Следующим шагом является создание конечной точки Vertex AI и развертывание модели для обслуживания.

10. Следуйте инструкциям в блокноте, чтобы:

а. Создайте собственный обработчик TorchServe.

б. Загрузите артефакты модели в Google Cloud Storage.

в. Создайте модель Vertex AI с артефактами модели и готовым образом контейнера PyTorch.

д. Разверните модель Vertex AI на конечной точке.

Все должно пройти гладко, при условии, что вы ранее включили Vertex API (см. Шаг 2. Если вы забыли!). У меня после создания конечной точки развертывание модели заняло около 30 минут. Когда он будет готов к показу, вы увидите что-то вроде этого в разделе Конечные точки:

Теперь вы готовы обслуживать запросы от вашей модели Stable Diffusion! На этом этапе вы можете остановить виртуальную машину экземпляра ноутбука и удалить созданную вами корзину, если хотите сэкономить на расходах. См. шаги «Очистка» в самом конце файла dreambooth_diffusion.ipynb.

🧪 Протестируйте свою конечную точку

Чтобы отправить запрос на конечную точку Vertex AI, вам потребуется использовать клиентскую библиотеку HTTP или инструмент командной строки, который поддерживает отправку запросов с соответствующим методом HTTP и параметрами запроса.

Я проводил тестирование локально на своем ноутбуке. Для этого вам потребуется скачать и установить Vertex AI SDK for Python, затем создать и скачать сервисный ключ для аутентификации.

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

1. Перейдите в раздел IAM и администратор -> Сервисные аккаунты. Затем нажмите на три точки в разделе «Действие» справа от псевдонима сервисного аккаунта, для которого вы хотите создать ключи, а затем нажмите Управление ключами:

затем нажмите Добавить ключ -> Создать новый ключ и загрузите его в рекомендуемом формате .JSON:

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

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

$ export GOOGLE_APPLICATION_CREDENTIALS=”path/to/your.json file”

3. Теперь просто измените этот фрагмент кода Python, указав имя проекта, регион и идентификатор конечной точки. Он передаст приглашение вашей конечной точке и сохранит ответ, т. е. изображение, сгенерированное Stable Diffusion, в файле JPEG:

import base64
import logging
from io import BytesIO
from google.cloud import aiplatform as aip

PROJECT_NAME = “YOUR-PROJECT-ID”
REGION = “us-central1”
ENDPOINT_ID = “YOUR-ENDPOINT-ID”

aip.init(project=PROJECT_NAME, location=REGION)
endpoint = aip.Endpoint(endpoint_name=ENDPOINT_ID)
text_input = “””Polar bear on an iceberg”””

# Invoke the Vertex AI endpoint 
def query_endpoint(endpoint, text_input):
  payload = {“prompt”: text_input}
  response = endpoint.predict(instances=[payload])
  return response

response = query_endpoint(endpoint, text_input)

with open(“generated_imgage.jpg”, “wb”) as g:
    g.write(base64.b64decode(response.predictions[0]))

Если вы установили Vertex AI для Python SDK, прошли аутентификацию в GCP и конечная точка активна, через несколько секунд вы должны увидеть сгенерированный файл изображения в вашей файловой системе!

🎁 3. Создайте простой RESTful API с помощью FLASK

На этом этапе вы можете довольно легко интегрировать код для вызова конечной точки модели генеративного ИИ с существующим приложением, используя Vertex AI Python SDK.

Но я обещал API, так что это то, что я собираюсь пройти в этой заключительной части раздела.

Предпосылки:

  • Установите библиотеки Python Flask и Pillow.
  • Скачай Postman и установи, это бесплатно! Мы будем использовать его для имитации вызовов нашего API.

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

2. Вот код, необходимый для создания простого RESTful API с использованием среды веб-приложений Flask. Смотрите комментарии в коде для объяснения того, что происходит. В основном мы использовали предыдущий код для запроса конечной точки и завернули его в вызов API:

import base64
from google.cloud import aiplatform as aip
from flask import Flask, jsonify, request, send_file
from PIL import Image
from io import BytesIO

app = Flask(__name__)

@app.route(‘/predict’, methods=[‘POST’])
def predict():
  PROJECT_NAME = ‘YOUR-PROJECT-ID’
  REGION = ‘us-central1’
  ENDPOINT_ID = ‘YOUR-ENDPOINT-ID’
  
  # Get the input data from the HTTP request
  input_data = request.get_json()

  # Extract the text parameter from the input data
  prompt = input_data.get(‘prompt’, ‘’)

  aip.init(project=PROJECT_NAME, location=REGION)
  endpoint = aip.Endpoint(endpoint_name=ENDPOINT_ID)
  text_input = prompt

  # Invoke the Vertex AI
  payload = {“prompt”: text_input}
  response = endpoint.predict(instances=[payload])
  
  # Decode the image data from base64 format
  image_data = response.predictions[0]
  image_bytes = base64.b64decode(image_data)

  # Create a PIL Image object from the decoded image data
  image = Image.open(BytesIO(image_bytes))

  # Save the image to a BytesIO buffer
  buffer = BytesIO()
  image.save(buffer, format=’JPEG’)
  buffer.seek(0)

  # Return the image file in the response
  return send_file(buffer, mimetype=’image/jpeg’)

if __name__ == ‘__main__’:
    app.run(debug=True)

3. Запустите полученный файл, и у вас должен быть сервер Flask, на котором размещен ваш API, готовый принимать запросы:

4. Затем мы собираемся запустить Postman, перейдите в Файл -> Импорт, вставьте следующую команду cURL (вам может потребоваться изменить адрес сервера, если он настроен иначе, чем по умолчанию ):

curl -X POST \
-H “Content-Type: application/json” \
-d ‘{“prompt”: “Astronauts in the ocean”}’ \
http://127.0.0.1:5000/predict \
-- output generated_image.jpg

Мы могли бы запустить это из терминала, и ответ от нашего API был бы сохранен как изображение JPEG в нашей локальной файловой системе. Но чтобы имитировать приложение, и потому что у меня не было времени написать бота Discord или интерфейс HTML… 😅

Если все прошло хорошо, вы получите хорошо сгенерированное изображение, которое будет обслуживаться вашим собственным API. Вы можете изменить подсказку на вкладке «Тело», ваш единственный предел — творчество!

🗑️ Готово экспериментировать? Вы можете вернуться к Вершинному ИИ -> Конечные точки, выбрать конечную точку, отменить развертывание модели, вернуться на уровень вверх к конечной точке и удалить ее. (подсказка: меню с тремя точками в конце каждой позиции). Дважды проверьте, что вы удалили или удалили что-либо еще, связанное с этим постом, чтобы не потреблять ресурсы. Вы также можете отозвать созданный вами ключ сервисной учетной записи на всякий случай.

⚠️ Последнее предупреждение:это явно не готовый к работе код. Если бы вы сделали свой API общедоступным, вам нужно было бы проделать работу с аутентификацией, среди прочего, что выходит за рамки этого поста! Условно говоря, стоимость запроса (или часов вычислений) для нашей конечной точки также намного дороже, чем, скажем, Midjourney или DALL-E 2, поэтому, вероятно, вам нецелесообразно запускать ее как услугу.

🏆 Подведение итогов и закрытие мыслей

Я получил много удовольствия от написания этого поста и много узнал о пространстве генеративного ИИ, Stable Diffusion и о том, что значит упаковать его в нечто, отдаленно напоминающее один из популярных сервисов, ориентированных на потребителя, доступных сегодня. Я приветствую те команды разработчиков, которые находятся на переднем крае этой технологии, в данный момент это такое захватывающее пространство!

💸 Стоимость

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

В конце написания этого поста я заглянул в раздел «Оплата» в своей консоли GCP, чтобы увидеть, какой ущерб был нанесен…

За два дня, что я использовал GCP с проектом, созданным специально для этого поста, я потратил около 40 долларов США. Вы можете увидеть разбивку на скриншоте выше.

Большая часть затрат была связана с инференсом (см. статью «Сервис Vertex AI»). Это стоимость в «вычислительных часах» для того, чтобы сделать мою конечную точку доступной для создания образов с использованием модели Stable Diffusion, которую я там развернул.

Конечная точка использовала «Графический процессор Vertex AI: Online/Batch Prediction NVIDIA Tesla P100, работающий в Северной и Южной Америке для SKU платформы AI», с некоторыми другими затратами на запуск предопределенного экземпляра. Мы могли бы избавиться от лишнего, выбрав более дешевое семейство графических процессоров, но компромиссом было бы увеличение периода времени, необходимого для получения сгенерированного изображения.

По сравнению с имеющимся в продаже решением, базовый план Midjourney стоит 10 долларов США за ежемесячную подписку. За это вы получаете 3,3 часа быстрой работы графического процессора в месяц, а затем это стоит еще 4 доллара в час сверх этого. В нашем случае я оставил конечную точку включенной примерно на 24 часа и потратил 30 долларов без ограничений на параллелизм или ожидание заданий. Опять же, существует компромисс между полностью управляемым сервисом, таким как Midjourney, инженеры которого постоянно улучшают модель, и повторением и развертыванием собственных моделей в масштабируемой облачной инфраструктуре.

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

Стоимость тестирования модели и фактического развертывания конечной точки через блокнот, управляемый пользователем, составила чуть менее 10 долларов США (см. статьи «Вычислительный движок и ноутбуки»).

Итак, у вас есть это, в этом посте я дал краткий обзор генеративного ИИ и, в частности, его использования для создания искусства с использованием техники стабильной диффузии. Затем мы погрузились в некоторые примеры кода, чтобы продемонстрировать шаги, необходимые для создания некоторых изображений с использованием модели Stable Diffusion, и, действительно, как развернуть их на конечной точке и использовать через API. Надеюсь, вам понравился этот пост, и увидимся в следующем! 👋🏼

Рисунки в этом посте созданы автором, если не указано иное.

📇 Ссылки

[1] Машинное обучение, история и связь с другими областями: https://en.wikipedia.org/wiki/Machine_learning#History_and_relationships_to_other_fields

[2] Что такое генеративный ИИ? Все, что вам нужно знать, Джордж Лоутон: https://www.techtarget.com/searchenterpriseai/definition/generative-AI

[3] Значение генеративного ИИ для бизнеса — Новый рубеж в области искусственного интеллекта, Deloitte LLP: https://www2.deloitte.com/us/en/pages/consulting/articles/generative-artificial-intelligence.html

[4] Документы Midjourney, версия: https://docs.midjourney.com/docs/model-versions#:~:text=Current%20Model,places%2C%20objects%2C%20and%20more.

📚 Полезные ресурсы