Перейти к основному содержанию
В данной статье будет представлено руководство по интеграции SeeDream Images Generation API, который позволяет генерировать изображения SeeDream с помощью пользовательских параметров.

Процесс подачи заявки

Чтобы использовать API, сначала необходимо перейти на страницу SeeDream Images Generation API и подать заявку на соответствующую услугу. После перехода на страницу нажмите кнопку «Acquire», как показано на изображении: Если вы еще не вошли в систему или не зарегистрированы, вас автоматически перенаправит на страницу входа, где вас пригласят зарегистрироваться и войти в систему. После регистрации и входа вы автоматически вернетесь на текущую страницу. При первой подаче заявки предоставляется бесплатный лимит, который позволяет бесплатно использовать данный API.

Основное использование

Сначала ознакомьтесь с основным способом использования, который заключается в вводе подсказки prompt, действия action, размера изображения size, чтобы получить обработанный результат. Сначала необходимо передать поле action, значение которого равно generate, затем нужно ввести подсказку, конкретное содержание выглядит следующим образом:

Как видно, здесь мы установили заголовки запроса, включая:
  • accept: желаемый формат ответа, здесь указано application/json, то есть формат JSON.
  • authorization: ключ для вызова API, который можно выбрать из выпадающего списка после подачи заявки.
Также установлен тело запроса, включая:
  • prompt: подсказка.
  • model: модель генерации, по умолчанию doubao-seedream-4.0.
  • image: информация о входном изображении, поддерживает URL или кодировку Base64. Из них, doubao-seedream-4.5, doubao-seedream-4.0 поддерживают ввод одного или нескольких изображений, doubao-seededit-3.0-i2i поддерживает только одно изображение, doubao-seededit-3.0-t2i не поддерживает этот параметр.
  • size: указывает информацию о размере генерируемого изображения, поддерживает следующие два способа, которые нельзя комбинировать. Способ 1 | Указать разрешение генерируемого изображения и в подсказке описать соотношение сторон, форму или назначение изображения, в конечном итоге модель определит размер генерируемого изображения. Способ 2 | Указать значения пикселей ширины и высоты генерируемого изображения: значение по умолчанию: 2048x2048, в зависимости от модели значение по умолчанию может отличаться.
  • seed: случайное число, используемое для контроля случайности генерируемого контента моделью. Диапазон значений: [-1, 2147483647]. Только doubao-seedream-3.0-t2i, doubao-seededit-3.0-i2i поддерживают этот параметр.
  • sequential_image_generation: группа изображений: на основе введенного вами контента генерируется группа связанных изображений. Только doubao-seedream-4.5, doubao-seedream-4.0 поддерживают этот параметр, по умолчанию disabled.
  • stream: контролирует, включен ли режим потокового вывода. Только doubao-seedream-4.5, doubao-seedream-4.0 поддерживают этот параметр, по умолчанию false.
  • guidance_scale: степень соответствия результата модели и подсказки, степень свободы генерируемого изображения, также известная как вес текста; чем больше значение, тем меньше степень свободы модели, тем сильнее связь с введенной пользователем подсказкой. Диапазон значений: [1, 10]. doubao-seedream-3.0-t2i значение по умолчанию 2.5, doubao-seededit-3.0-i2i значение по умолчанию 5.5, другие не поддерживают.
  • response_format: указывает формат возвращаемого изображения. По умолчанию url, также поддерживает b64_json.
  • watermark: добавлять ли водяной знак на генерируемое изображение. По умолчанию true.
  • callback_url: URL, на который нужно отправить результаты.
После выбора можно увидеть, что справа также сгенерирован соответствующий код, как показано на изображении:

Нажмите кнопку «Try», чтобы провести тестирование, как показано на изображении, и мы получили следующий результат:
{
  "success": true,
  "task_id": "25027ba3-0430-4a1b-91c8-d2297f19ba73",
  "trace_id": "8043a9e9-692f-43b0-82f7-5890f798be38",
  "data": [
    {
      "prompt": "a white siamese cat",
      "size": "2048x2048",
      "image_url": "https://platform.cdn.acedata.cloud/seedream/3c060029-69b1-406f-a957-fcd55ddc9386.jpg"
    }
  ]
}
Возвращаемый результат содержит несколько полей, описание которых приведено ниже:
  • success: статус задачи по генерации изображения.
  • task_id: ID задачи по генерации изображения.
  • trace_id: ID отслеживания задачи по генерации изображения.
  • data: список результатов задачи по генерации изображения.
    • image_url: ссылка на задачу по генерации изображения.
    • prompt: подсказка.
    • size: пиксели генерируемого изображения.
Как видно, мы получили удовлетворительную информацию об изображении, нам нужно только получить сгенерированное изображение SeeDream по ссылке изображения из data. Кроме того, если вы хотите сгенерировать соответствующий код интеграции, вы можете просто скопировать его, например, код CURL выглядит следующим образом:
curl -X POST 'https://api.acedata.cloud/seedream/images' \
-H 'accept: application/json' \
-H 'authorization: Bearer ${token}' \
-H 'content-type: application/json' \
-d '{
  "action": "generate",
  "model": "doubao-seedream-4-0-250828",
  "prompt": "a white siamese cat"
}'

Задача редактирования изображения

Если вы хотите отредактировать изображение, сначала параметр image должен содержать ссылку на изображение, которое нужно редактировать.
  • model: модель, используемая для редактирования изображения, в данный момент поддерживает doubao-seedream-4.5, doubao-seedream-4.0, поддерживает ввод одного или нескольких изображений, doubao-seededit-3.0-i2i поддерживает только одно изображение.
  • image: загруженное изображение, которое нужно редактировать, одно или несколько.
Пример заполнения выглядит следующим образом:

Соответствующий код:
import requests

url = "https://api.acedata.cloud/flux/images"

headers = {
    "accept": "application/json",
    "authorization": "Bearer {token}",
    "content-type": "application/json"
}

payload = {
    "model": "doubao-seedream-4-0-250828",
  "prompt": "Сохраните позу модели и форму текучего наряда без изменений. Измените материал одежды с серебряного металла на полностью прозрачную воду (или стекло). Через текучесть жидкости видны детали кожи модели. Эффект света и тени смещается от отражения к преломлению.",
  "image": ["https://ark-project.tos-cn-beijing.volces.com/doc_image/seedream4_5_imageToimage.png"],
  "size": "2K",
  "watermark": False
}

response = requests.post(url, json=payload, headers=headers)
print(response.text)
Нажмите «Запустить», и вы сразу получите результат, как показано ниже:
{
    "success": true,
    "task_id": "c9aaffa2-b8ac-40ff-8468-43e77cb9ddde",
    "trace_id": "131a40c3-2eaf-44c9-af28-c9b408577286",
    "data": [
        {
            "prompt": "Сохраните позу модели и форму текучего жидкого наряда без изменений. Измените материал одежды с серебряного металла на полностью прозрачную воду (или стекло). Через поток жидкости видны детали кожи модели. Эффект света и тени смещается от отражения к преломлению.",
            "size": "2048x2048",
            "image_url": "https://platform.cdn.acedata.cloud/seedream/3e88db7e-4771-4f6a-adbd-5ae4590c5d59.jpg"
        }
    ]
}
Можно увидеть, что сгенерированный эффект является результатом редактирования оригинального изображения, результат схож с вышеупомянутым.

Асинхронный обратный вызов

Поскольку время генерации изображений API SeeDream Images Generation относительно долгое, примерно 1-2 минуты, если API долго не отвечает, HTTP-запрос будет поддерживать соединение, что приведет к дополнительному расходу системных ресурсов, поэтому этот API также предоставляет поддержку асинхронного обратного вызова. Общий процесс таков: когда клиент инициирует запрос, дополнительно указывается поле callback_url, после того как клиент инициирует API-запрос, API немедленно возвращает результат, содержащий информацию о поле task_id, представляющем текущий ID задачи. Когда задача завершена, результат сгенерированного изображения будет отправлен на указанный клиентом callback_url в формате POST JSON, который также включает поле task_id, так что результат задачи можно связать по ID. Ниже мы рассмотрим пример, чтобы понять, как именно это работает. Нажмите “Запустить”, и вы сразу получите результат, как показано ниже:
{
  "task_id": "c9aaffa2-b8ac-40ff-8468-43e77cb9ddde"
}
Содержимое следующее:
{
    "success": true,
    "task_id": "c9aaffa2-b8ac-40ff-8468-43e77cb9ddde",
    "trace_id": "131a40c3-2eaf-44c9-af28-c9b408577286",
    "data": [
        {
            "prompt": "Сохраните позу модели и форму текучего жидкого наряда без изменений. Измените материал одежды с серебряного металла на полностью прозрачную воду (или стекло). Через поток жидкости видны детали кожи модели. Эффект света и тени смещается от отражения к преломлению.",
            "size": "2048x2048",
            "image_url": "https://platform.cdn.acedata.cloud/seedream/3e88db7e-4771-4f6a-adbd-5ae4590c5d59.jpg"
        }
    ]
}
Можно увидеть, что в результате есть поле task_id, остальные поля аналогичны вышеупомянутым, с помощью этого поля можно связать задачи.

Обработка ошибок

При вызове API, если возникла ошибка, API вернет соответствующий код ошибки и информацию. Например:
  • 400 token_mismatched: Неверный запрос, возможно, из-за отсутствующих или недействительных параметров.
  • 400 api_not_implemented: Неверный запрос, возможно, из-за отсутствующих или недействительных параметров.
  • 401 invalid_token: Неавторизованный, недействительный или отсутствующий токен авторизации.
  • 429 too_many_requests: Слишком много запросов, вы превысили лимит частоты.
  • 500 api_error: Внутренняя ошибка сервера, что-то пошло не так на сервере.

Пример ответа об ошибке

{
  "success": false,
  "error": {
    "code": "api_error",
    "message": "не удалось получить"
  },
  "trace_id": "2cf86e86-22a4-46e1-ac2f-032c0f2a4e89"
}

Заключение

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