07 февраля 2023

🤖🐍 Искусственное воображение: создание изображений из текста с помощью DALL·E 2 и OpenAI API

iOS-developer, ИТ-переводчица, пишу статьи и гайды.
Из этой статьи вы узнаете, как внедрить OpenAI API в свои приложения на Python для создания изображений из текстовых подсказок.
🤖🐍 Искусственное воображение: создание изображений из текста с помощью DALL·E 2 и OpenAI API
Данная статья является переводом. Автор: Martin Breuss. Ссылка на оригинал.

Опишите любое изображение, а затем позвольте компьютеру создать его за вас. То, что еще несколько лет назад казалось футуристическим, стало реальностью благодаря достижениям в области нейронных сетей и моделям скрытой диффузии (LDM). DALL·E от OpenAI произвел фурор благодаря удивительной способности к генерации реалистичных изображений.

OpenAI разрешил доступ к DALL·E через свой API, что означает, что вы можете использовать его функциональные возможности в своих приложениях на Python.

В этом туториале вы:

  1. Начнете использовать библиотеку OpenAI Python
  2. Изучите вызовы API, связанные с созданием изображений
  3. Создадите изображения из текстовых подсказок
  4. Создадите несколько вариантов сгенерированного изображения
  5. Преобразуете ответы Base64 JSON в файлы изображений PNG

Вам понадобится небольшой опыт работы с Python, JSON и операциями с файлами, чтобы разобраться в этом туториале. Вы также можете изучить эти темы в процессе чтения – вы найдете соответствующие ссылки по всему тексту.

Если вы еще не пользовались веб-интерфейсом пользователя (UI) DALL·E, то попробуйте поработать с ним, прежде чем вернуться к изучению того, как программно использовать его с Python.

Исходный код
Кликните здесь, чтобы загрузить бесплатный исходный код, который вы будете использовать для создания потрясающих изображений с помощью DALL·E 2 и OpenAI API.

Требования к установке

Если вы видели, на что способен DALL·E, и вам не терпится внедрить его функциональные возможности в ваши приложения на Python, то вы обратились по адресу! В первом разделе вы узнаете, что вам нужно сделать, чтобы начать использовать возможности создания образов DALL·E в вашем коде.

Установите библиотеку OpenAI Python

Убедитесь, что вы используете Python версии 3.7.1 или выше, создайте и активируйте виртуальную среду и установите библиотеку OpenAI Python:

Windows

        PS> python --version
Python 3.11.0
PS> python -m venv venv
PS> .\venv\Scripts\activate
(venv) PS> python -m pip install openai
    

Linux + macOS

        $ python --version
Python 3.11.0
$ python -m venv venv
$ source venv/bin/activate
(venv) $ python -m pip install openai
    

Пакет openai дает вам доступ к полной версии API OpenAI. В этом туториале вы сосредоточитесь на классе Image, который можно использовать для взаимодействия с DALL·E при создании и редактировании изображений из текстовых подсказок.

Получите ключ API OpenAI

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

🤖🐍 Искусственное воображение: создание изображений из текста с помощью DALL·E 2 и OpenAI API

Данное изображение и все последующие взяты тут.

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

Нажмите на Create new secret key, чтобы создать новый ключ API, и скопируйте значение, показанное во всплывающем окне:

🤖🐍 Искусственное воображение: создание изображений из текста с помощью DALL·E 2 и OpenAI API

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

Сохраните свой ключ API в качестве переменной среды

Быстрый способ сохранить ключ API и сделать его доступным для скриптов Python — сохранить его как переменную среды. Для своей операционной системы выполните следующую команду:

Windows

        (venv) PS> $ENV:OPENAI_API_KEY = "<your-key-value-here>"

    

Linux + macOS

        (venv) $ export OPENAI_API_KEY="<your-key-value-here>"
    

С помощью этой команды вы делаете ключ API доступным в переменной среды OPENAI_API_KEY в текущем сеансе терминала. Имейте в виду, что вы потеряете его, если закроете терминал.

Вы можете назвать свою переменную как угодно, но если вы используете имя OPENAI_API_KEY, предложенное в документации OpenAI, вы сможете использовать предоставленные примеры кода без необходимости выполнять какую-либо дополнительную настройку.

Ознакомьтесь с ценами на DALL·E и на другие продукты OpenAI API

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

Разрешение Цена за изображение
256×256 0,016 доллара США
512×512 0,018 доллара США
1024×1024 0,020 доллара США

Если вы недавно зарегистрировались в API OpenAI, вы получите бесплатную пробную версию, которая позволит вам использовать бесплатный кредит на сумму 18 долларов США в течение первых трех месяцев. Это позволит вам сгенерировать множество изображений, если вы просто хотите поработать с данной темой!

Однако имейте в виду, что это единый бюджет на бесплатную пробную версию для всех сервисов API OpenAI, поэтому вы можете не захотеть тратить все на создание потрясающих изображений. Также обратите внимание, что вы не можете использовать кредиты из веб-интерфейса DALL·E для вызовов API.

Примечание. OpenAI API-сервисы быстро меняются. Вы должны проверить их веб-страницу для получения актуальной информации о ценах и предложениях.

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

Создайте изображение из текстовой подсказки с помощью DALL·E от OpenAI

Проверьте, что все настроено и корректно работает, используя библиотеку openai через интерфейс командной строки:

        (venv) $ openai api image.create -p "a vaporwave computer"

    

Эта команда отправит запрос через API и создаст одно изображение из текстовой подсказки «компьютер вэйпорвэйв». В результате вы получите ответ JSON, содержащий URL-адрес, указывающий на только что созданное изображение:

        {
  "created": 1668073562,
  "data": [
    {
      "url": "https://oaidalleapiprodscus.blob.core.windows.net/private/org
      ⮑ -QANMxYn3BsMeuAbRT8X3iiu3/user-xSuQTJ0IIVj3dHM4DPymXTg4/img-5GqtVx
      ⮑ L86Retwi282RbE8HzA.png?st=2022-11-10T08%3A46%3A02Z&se=2022-11-10T1
      ⮑ 0%3A46%3A02Z&sp=r&sv=2021-08-06&sr=b&rscd=inline&rsct=image/png&sk
      ⮑ oid=6aaadede-4fb3-4698-a8f6-684d7786b067&sktid=a48cca56-e6da-484e-
      ⮑ a814-9c849652bcb3&skt=2022-11-09T14%3A20%3A19Z&ske=2022-11-10T14%3
      ⮑ A20%3A19Z&sks=b&skv=2021-08-06&sig=yorbHuIy/qHhWvGPmJrZ8apJptorzpI
      ⮑ 0/62VH2lmhcg%3D"
    }
  ]
}
    

Нажмите на свой URL-адрес или скопируйте и вставьте его в браузер, чтобы просмотреть изображение. Вот изображение, которое DALL·E придумал по моему запросу:

«компьютер вэйпорвэйв»
«компьютер вэйпорвэйв»

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

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

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

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

Больше полезных материалов вы найдете на нашем телеграм-канале «Библиотека data scientist’а»

Вызов API из скрипта Python

Замечательно, что вы можете создать изображение из интерфейса командной строки (CLI), но было бы еще лучше добавить эту функцию в ваши приложения на Python. Есть множество интересных вещей, которые вы могли бы создать!

Примечание. Обратите внимание, что API изображений находится в общедоступной бета-версии. Это означает, что API все еще будет развиваться, может значительно измениться и, следовательно, может быть неидеальным для коммерческих приложений. В настоящее время также применяется ограничение скорости: десять изображений в минуту и ​​двадцать пять изображений в пять минут.

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

        # create.py

import os

import openai

PROMPT = "An eco-friendly computer from the 90s in the style of vaporwave"

openai.api_key = os.getenv("OPENAI_API_KEY")

response = openai.Image.create(
    prompt=PROMPT,
    n=1,
    size="256x256",
)

print(response["data"][0]["url"])
    

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

  • Строка 7 определяет текстовую подсказку как константу. Для получения более точных результатов мы добавили больше текста для описания изображения, которое хотим получить. Кроме того, добавление текста в константу в верхней части скрипта позволяет быстро реорганизовать код вместо того, чтобы собирать текст из пользовательского ввода, поскольку так значение быстрее найти и отредактировать.
  • Строка 9 получает ваш ключ API из переменной среды, в которой вы его сохранили ранее. Поскольку вы назвали переменную окружения OPENAI_API_KEY, вам даже не нужна эта строка кода. Библиотека openai автоматически получает доступ к значению ключа API из вашей среды, пока вы придерживаетесь предложенного имени. С помощью этой строки кода вы также можете загрузить ее из переменной среды с другим именем.
  • Строка 11 создает экземпляр openai.Image и вызывает .create(). Следующие несколько строк содержат некоторые параметры, которые вы можете передать методу.
  • Строка 12 передает значение параметру PROMPT с соответствующим именем prompt. При этом вы передаете DALL·E текст, который будет использован для создания изображения. Обратите внимание, что вы также передавали текстовый запрос, когда вызывали API из интерфейса командной строки.
  • Строка 13 — это параметр, который вы раньше не использовали. Он передает целое число 1 в параметр n. Этот параметр позволяет определить, сколько новых изображений вы хотите создать. Значение n должно быть от одного до десяти и по умолчанию равно 1.
  • В строке 14 показан еще один новый параметр, который вы не использовали при вызове API из CLI. С помощью size вы можете определить размеры изображения, которое должен генерировать DALL·E. Аргумент должен быть строкой — либо "256x256", либо "512x512", либо "1024x1024". Каждая строка представляет размеры в пикселях изображения, которое вы получите. По умолчанию установлено максимально возможное разрешение – 1024x1024.

Вы также хотите получить URL-адрес для просмотра сгенерированного изображения в Интернете. Для этого вы просматриваете ответ JSON на ключ url в строке 17 и печатаете его значение в своем терминале.

Когда вы запустите этот скрипт, вы получите вывод, аналогичный предыдущему, но теперь вы не увидите весь ответ JSON, а только URL-адрес:

        (venv) $ python create.py
https://oaidalleapiprodscus.blob.core.windows.net/private/org-QANMxYn3BsMe
⮑ uAbRT8X3iiu3/user-xSuQTJ0IIVj3dHM4DPymXTg4/img-4AMS4wJJLFsu6ClQmGDppAeV
⮑ .png?st=2022-11-10T12%3A22%3A46Z&se=2022-11-10T14%3A22%3A46Z&sp=r&sv=20
⮑ 21-08-06&sr=b&rscd=inline&rsct=image/png&skoid=6aaadede-4fb3-4698-a8f6-
⮑ 684d7786b067&sktid=a48cca56-e6da-484e-a814-9c849652bcb3&skt=2022-11-10T
⮑ 10%3A55%3A29Z&ske=2022-11-11T10%3A55%3A29Z&sks=b&skv=2021-08-06&sig=xJW
⮑ imMiA1/nGmFMYKUTsJq7G1u4xSL652r/MrzTH0Nk%3D
    

Кликните на ссылку или вставьте ее в адресную строку браузера, чтобы просмотреть сгенерированное изображение. Ваше изображение снова будет выглядеть по-другому, но вы должны увидеть изображение, похожее на текстовое описание, которое вы использовали в PROMPT:

«Эко-френдли компьютер из 90-х в стиле вэйпорвэйв»
«Эко-френдли компьютер из 90-х в стиле вэйпорвэйв»

Вы можете заметить, что это изображение намного меньше, чем то, которое вы создали с помощью вызова CLI. Это потому, что вы запросили у API изображение размером 256x256 пикселей с помощью параметра size. Чем меньше, тем дешевле, так что вы только что сэкономили немного денег! Возможно, вы хотели бы сохранить что-то еще — например, данные изображения.

Сохраните данные изображения в файл

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

        # create.py

import os

import openai

PROMPT = "An eco-friendly computer from the 90s in the style of vaporwave"

openai.api_key = os.getenv("OPENAI_API_KEY")

response = openai.Image.create(
    prompt=PROMPT,
    n=1,
    size="256x256",
    response_format="b64_json",
)

print(response["data"][0]["b64_json"][:50])
    

API позволяет переключать формат ответа с URL-адреса на данные изображения в кодировке Base64. В строке 15 вы устанавливаете значение response_format как b64_json. Значение этого параметра по умолчанию — url, поэтому до сих пор вы получали URL-адреса в ответах JSON.

Хотя ответ JSON, который вы получаете после применения этого изменения, выглядит так же, как и раньше, ключ словаря для доступа к данным изображения теперь b64_json вместо url. Вы применили это изменение в вызове print() в строке 18 и ограничили вывод первыми пятьюдесятью символами.

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

Чтобы избежать потери идеального изображения, вы можете хранить ответы JSON в файле, а не выводить их на терминал:

        # create.py

import json
import os
from pathlib import Path

import openai

PROMPT = "An eco-friendly computer from the 90s in the style of vaporwave"
DATA_DIR = Path.cwd() / "responses"

DATA_DIR.mkdir(exist_ok=True)

openai.api_key = os.getenv("OPENAI_API_KEY")

response = openai.Image.create(
    prompt=PROMPT,
    n=1,
    size="256x256",
    response_format="b64_json",
)

file_name = DATA_DIR / f"{PROMPT[:5]}-{response['created']}.json"

with open(file_name, mode="w", encoding="utf-8") as file:
    json.dump(response, file)
    

С помощью нескольких дополнительных строк кода вы добавили обработку файлов в свой скрипт Python, используя pathlib и json:

  • Строки 10 и 12 определяют и создают каталог данных с именем responses/, в котором будут храниться ответы API в виде файлов JSON.
  • Строка 23 определяет переменную для пути к файлу, в котором вы хотите сохранить данные. Вы используете начало подсказки и отметку времени из ответа JSON для создания уникального имени файла.
  • Строки 25 и 26 создают новый файл JSON в каталоге данных и записывают ответ API в формате JSON в этот файл.

Благодаря этим дополнениям вы теперь можете запускать свой скрипт

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

Вы запустили скрипт и проверили сгенерированный файл JSON? Итак, где та прекрасная картинка, которая является лучшим изображением, когда-либо созданным DALL·E?

Прямо здесь, только в настоящее время изображение представлено в виде битов в кодировке Base64. В следующем разделе вы узнаете, как преобразовать данные изображения в кодировке Base64 в файл PNG.

Декодировать ответ Base64 JSON

Вы только что сохранили изображение PNG в виде строки в кодировке Base64 в файле JSON. Это правильное решение, потому что это означает, что ваше изображение не потеряется в интернете через час, как если бы вы продолжали генерировать URL-адреса с помощью вызовов API.

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

        # convert.py

import json
from base64 import b64decode
from pathlib import Path

DATA_DIR = Path.cwd() / "responses"
JSON_FILE = DATA_DIR / "An ec-1667994848.json"
IMAGE_DIR = Path.cwd() / "images" / JSON_FILE.stem

IMAGE_DIR.mkdir(parents=True, exist_ok=True)

with open(JSON_FILE, mode="r", encoding="utf-8") as file:
    response = json.load(file)

for index, image_dict in enumerate(response["data"]):
    image_data = b64decode(image_dict["b64_json"])
    image_file = IMAGE_DIR / f"{JSON_FILE.stem}-{index}.png"
    with open(image_file, mode="wb") as png:
        png.write(image_data)
    

Скрипт convert.py будет читать файл JSON с именем файла, которое вы определили в JSON_FILE. Помните, что вам нужно будет адаптировать значение JSON_FILE, чтобы оно соответствовало имени вашего файла JSON, которое будет другим.

Затем скрипт извлекает строку в кодировке Base64 из данных JSON, декодирует ее и сохраняет полученные данные изображения в виде файла PNG в каталоге. Python даже создаст для вас этот каталог, если это необходимо.

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

Примечание. Вы можете создавать файлы JSON с данными нескольких изображений в кодировке Base64, запустив create.py после передачи значения больше, чем 1, для n-параметра.

Большая часть кода в этом скрипте предназначена для чтения и записи файлов из нужных папок и в них. Настоящая звезда — это b64decode(). Вы импортируете функцию в строке 4 и запускаете ее в работу в строке 17. Она декодирует строку в кодировке Base64, чтобы вы могли сохранить фактические данные изображения в виде файла PNG. Затем ваш компьютер сможет распознать его как изображение PNG и понять, как отобразить его для вас.

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

«Эко-френдли компьютер из 90-х в стиле вэйпорвэйв»
«Эко-френдли компьютер из 90-х в стиле вэйпорвэйв»

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

Создание различных вариантов изображения

Если у вас есть изображение — созданное машиной или нет — похожее на то, что вы ищете, но не совсем отвечающее требованиям, вы можете создать его дополнительные варианты, используя модель скрытой диффузии OpenAI DALL·E.

На основе кода, который вы написали ранее в этом туториале, вы можете создать новый файл vary.py:

        # vary.py

import json
import os
from base64 import b64decode
from pathlib import Path

import openai

DATA_DIR = Path.cwd() / "responses"
SOURCE_FILE = DATA_DIR / "An ec-1667994848.json"

openai.api_key = os.getenv("OPENAI_API_KEY")

with open(SOURCE_FILE, mode="r", encoding="utf-8") as json_file:
    saved_response = json.load(json_file)
    image_data = b64decode(saved_response["data"][0]["b64_json"])

response = openai.Image.create_variation(
    image=image_data,
    n=3,
    size="256x256",
    response_format="b64_json",
)

new_file_name = f"vary-{SOURCE_FILE.stem[:5]}-{response['created']}.json"

with open(DATA_DIR / new_file_name, mode="w", encoding="utf-8") as file:
    json.dump(response, file)
    

В этом скрипте вы отправляете данные изображения в кодировке Base64 из предыдущего ответа JSON в API изображений и запрашиваете три варианта изображения. Вы сохраняете данные всех трех изображений в новом файле JSON в вашем каталоге данных:

  • Строка 11 определяет константу, содержащую имя файла JSON, в котором вы собрали закодированные в Base64-данные изображения, варианты которого вы хотите создать. Если вы хотите создать варианты другого изображения, вам нужно отредактировать эту константу перед перезапуском скрипта.
  • Строка 17 декодирует данные изображения с помощью b64decode() тем же способом, что и в convert.py, и сохраняет их в image_data. Обратите внимание, что код выбирает первое изображение из вашего файла JSON с расширением saved_response["data"][0]. Если ваш сохраненный ответ содержит несколько изображений, и вы хотите, чтобы ваши варианты основывались на другом изображении, вам необходимо соответствующим образом адаптировать индекс.
  • Строка 20 передается image_data в качестве аргумента openai.Image.create_variation(). Обратите внимание, что для image, параметра метода, требуются допустимые данные изображения PNG, поэтому вам необходимо декодировать строку из ответа JSON, прежде чем передавать ее методу.
  • Строка 21 определяет, сколько вариаций исходного изображения вы хотите получить. В этом случае вы установите значение n, равное 3, это означает, что вы получите три новых изображения.

Если вы посмотрите в свой responses/каталог, то увидите новый файл JSON, имя которого начинается с vary-. Этот файл содержит данные изображения из ваших новых вариантов изображения. Вы можете скопировать имя файла и установить его как JSON_FILE в convert.py, запустить скрипт преобразования и посмотреть на ваши варианты изображения.

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

        IMAGE_PATH = "images/example.png"

response = openai.Image.create_variation(
    image=open(IMAGE_PATH, mode="rb"),
    n=3,
    size="256x256",
    response_format="b64_json",
)
    

Вы также можете ознакомиться с официальной документации API по вариантам изображений.

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

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

Три вариации «Эко-френдли компьютер из 90-х в стиле вэйпорвэйв»
Три вариации «Эко-френдли компьютер из 90-х в стиле вэйпорвэйв»

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

Заключение

Мечтать об экологически чистых компьютерах с отличными AESTHETICS — это весело, но еще лучше создавать эти образы с помощью Python и OpenAI Images API!

В этом уроке вы узнали, как:

  • Настроить библиотеку OpenAI Python локально
  • Использовать возможности создания изображений благодаря OpenAI API
  • Создавать изображения из текстовых подсказок с помощью Python
  • Создавать варианты сгенерированного изображения
  • Преобразовать ответы Base64 JSON в файлы изображений PNG

Самое главное, вы получили практический опыт включения API-вызовов DALL·E в свои скрипты Python, что позволяет вам привносить потрясающие возможности создания изображений в свои собственные приложения.

Следующие шаги

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

Найдите скрипт, который вызывается edit.py в предоставленных примерах кода:

Исходный код: щелкните здесь, чтобы загрузить бесплатный исходный код, который вы будете использовать для создания потрясающих изображений с помощью DALL·E 2 и OpenAI API.

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

Чтобы улучшить обработку и организацию кода, который вы написали в этом руководстве, вы можете заменить константы скрипта записями в файле настроек TOML. В качестве альтернативы вы можете создать интерфейс командной строки с argparse, который позволит вам передавать переменные непосредственно из вашего CLI.

Возможно, вам будет интересно углубиться в модели скрытой диффузии. В этом руководстве вы научились взаимодействовать с моделью через API, но, чтобы узнать больше о логике, обеспечивающей эту функциональность, вы можете попытаться настроить ее на своем компьютере. Однако если вы хотите запустить DALL·E на своем локальном компьютере, вам не повезло, поскольку OpenAI не сделала эту модель общедоступной.

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

Или вы можете просто продолжать создавать красивые и странные изображения с помощью скриптов Python, DALL·E и API OpenAI! Какую интересную текстовую подсказку вы пробовали? Какой странный или красивый образ создал для вас DALL·E? Поделитесь своим опытом в комментариях ниже и продолжайте мечтать!

***

Материалы по теме

Больше полезных материалов вы найдете на нашем телеграм-канале «Библиотека питониста»

Источники

Комментарии

ВАКАНСИИ

Добавить вакансию
Разработчик C++
Москва, по итогам собеседования

ЛУЧШИЕ СТАТЬИ ПО ТЕМЕ