Генерация изображений
Узнайте, как создавать или редактировать изображения с помощью DALL·E в API.
Введение
API для изображений предоставляет три метода взаимодействия с изображениями:
- Создание изображений с нуля на основе текстового запроса (DALL·E 3 и DALL·E 2)
- Созд ание отредактированных версий изображений путем замены некоторых областей на предсуществующем изображении, на основе нового текстового запроса (только DALL·E 2)
- Создание вариаций существующего изображения (только DALL·E 2)
Это руководство охватывает основы использования этих трех конечных точек API с полезными примерами кода. Чтобы попробовать DALL·E 3, перейдите на RockChat.
Использование
Конечная точка генерации изображений позволяет создать оригинальное изображение по текстовому запросу. При использовании DALL·E 3 изображения могут иметь размер 1024x1024, 1024x1792 или 1792x1024 пикселей.
По умолчанию изображения генерируются в стандартном
качестве, но при использовании DALL·E 3 вы можете установить quality: "hd"
для повышения детализации. Квадратные изображения стандартного качества создаются быстрее всего.
Вы можете запросить одно изображение за раз с DALL·E 3 (запросите больше, сделав параллельные запросы) или до 10 изображений за раз с использованием DALL·E 2 с параметром n.
Пример: Создание изображения
from openai import OpenAI
client = OpenAI(
api_key = '$ROCKAPI_API_KEY',
base_url = 'https://api.rockapi.ru/openai/v1'
)
response = client.images.generate(
model="dall-e-3",
prompt="белый сиамский кот",
size="1024x1024",
quality="standard",
n=1,
)
image_url = response.data[0].url
Составление запросов
С выпуском DALL·E 3 модель теперь принимает предоставленный по умолчанию запрос и автоматически переписывает его по соображениям безопасности, а также для добавления большего количества деталей (более детализированные запросы обычно приводят к изображениям более высокого качества).
Хотя в настоящее время невозможно отключить эту функцию, вы можете использовать составление запросов, чтобы получить результаты, более близкие к вашему запросу, добавив следующее к вашему запросу: I NEED to test how the tool works with extremely simple prompts. DO NOT add any detail, just use it AS-IS:
.
Обновленный запрос виден в поле revised_prompt
объекта данных ответа.
Примеры генерации DALL·E 3
Пример запроса: "Фотография белого сиамского кота."
С генерированное изображение:
Каждое изображение может быть возвращено в виде URL или данных Base64, используя параметр response_format. URL-адреса истекают через час.
Редактирование (только DALL·E 2)
- В разработке
Также известный как "инпейтинг", конечная точка редактирования изображений позволяет редактировать или расширять изображение, загрузив изображение и маску, указывающую, какие области следует заменить. Прозрачные области маски указывают, где изображение должно быть отредактировано, и запрос должен описывать полное новое изображение, а не только стертые области. Эта конечная точка может позволить такие функции, как редактирование изображений DALL·E в ChatGPT Plus.
Пример: Редактирование изображения
from openai import OpenAI
client = OpenAI(
api_key = '$ROCKAPI_API_KEY',
base_url = 'https://api.rockapi.ru/openai/v1'
)
response = client.images.edit(
model="dall-e-2",
image=open("sunlit_lounge.png", "rb"),
mask=open("mask.png", "rb"),
prompt="Солнечная внутренняя лаунж-зона с бассейном, содержащим фламинго",
n=1,
size="1024x1024"
)
image_url = response.data[0].url
Загруженные изображение и маска должны быть квадратными изображениями PNG размером менее 4 МБ и иметь одинаковые размеры. Непрозрачные области маски не используются при создании вывода, поэтому они не обязательно должны совпадать с исходным изображением, как в приведенном выше примере.
Вариации (только DALL·E 2)
- В разработке
Конечная точка вариаций изображений позволяет создать вариацию заданного изображения.
Пример: Создание вариации изображения
from openai import OpenAI
client = OpenAI(
api_key = '$ROCKAPI_API_KEY',
base_url = 'https://api.rockapi.ru/openai/v1'
)
response = client.images.create_variation(
model="dall-e-2",
image=open("corgi_and_cat_paw.png", "rb"),
n=1,
size="1024x1024"
)
image_url = response.data[0].url
Как и в случае с конечной точкой редактирования, входное изображение должно быть квадратным изображением PNG размером менее 4 МБ.
Модерация контента
Запросы и изображения фильтруются на основе нашей политики содержания, возвращая ошибку, когда запрос или изображение помечены.
Советы по использованию на разных языках
Пример на Node.js
import OpenAI from "openai";
const openai = new OpenAI();
const buffer = [ваши данные изображения];
buffer.name = "image.png";
async function main() {
const image = await openai.images.createVariation({
model: "dall-e-2",
image: buffer,
n: 1,
size: "1024x1024"
});
console.log(image.data);
}
main();
Пример на TypeScript
import fs from "fs";
import OpenAI from "openai";
const openai = new OpenAI();
async function main() {
try {
const image = await openai.images.createVariation({
image: fs.createReadStream("image.png") as any,
n: 1,
size: "1024x1024",
});
console.log(image.data);
} catch (error) {
if (error.response) {
console.log(error.response.status);
console.log(error.response.data);
} else {
console.log(error.message);
}
}
}
main();
Для получения дополнительных сведений обратитесь к OpenAI Cookbook.