Перейти к основному содержимому

Генерация изображений

Узнайте, как создавать или редактировать изображения с помощью DALL·E в API.

Введение

API для изображений предоставляет три метода взаимодействия с изображениями:

  1. Создание изображений с нуля на основе текстового запроса (DALL·E 3 и DALL·E 2)
  2. Создание отредактированных версий изображений путем замены некоторых областей на предсуществующем изображении, на основе нового текстового запроса (только DALL·E 2)
  3. Создание вариаций существующего изображения (только 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.