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

API-документация к Kolersky API

Токен и покупка запросов
Создание токенов и пополнение запросов производится через telegram-бот @Api_midjourney_bot
Попадание в бан
  • Используя сервис API Kolersky вы обязуетесь не отправлять в сервис запросы, в которых есть слова и фразы, нарушающие условия пользовательского соглашения с Midjourney inc., либо установить на своей стороне бан/спам-фильтр, не пропускающий такие слова.
Обычно это слова и фразы, связанные с насилием, наркотиками, преступлениями, ущемлением чьих либо прав, эротикой и, в некоторых случаях упоминание известных лиц (в основном скандальные лица и главы государств)

Денежные средства за неиспользованные запросы при полной блокировке одного из наших аккаунтов (по причине подобных запросов с Вашей стороны) не возвращаются

Переводчик
Midjourney понимает запросы на английском языке, поэтому желательно интегрировать переводчик в вашу систему.
Midjourney Image (генерация изображений)
Скачать документацию Midjourney image API:
Docs
Все HTTP запросы отправляются на адрес:
api.kolersky.com/api/midjourney/{task-type}
Заголовок на установку токена:
x-token: 0000::****-****-****-****
все запросы принимают (за исключениям GET запроса) и отвечают в JSON

Пример ответа с ошибкой:
{
   "err": "bad request, missing prompt in request",
   "code": 400
}
Пример успешного ответа:
{
	"task_id": "d497783b-****-****-****-0367bce42db6",
	"status": "pending",
	"output": {	
		"image_url": "",
		"image_urls": null,
		"temporary_image_urls": null,
		"discord_image_url": "",
		"actions": [], // avalibe actions to do
		"progress": 100,
		"intermediate_image_urls": null
	},
	"code":200
	}
Create Task

Imagine
POST api.kolersky.com/api/midjourney/imagine
Эта функция генерирует 4 уникальных изображения в сетке 2x2 из текстового описания, также известного как prompt. Функция соответствует команде /imagine из официального Midjourney.

Поля запроса:
JSON вид запроса:
{
	"prompt": "new zealand wanaka",
	"aspect_ratio": "16:9"
}
cURL пример:
curl -X POST -H "x-token: 0000::****-****-****-****" --data-raw '{"prompt": "new zealand wanaka", "aspect_ratio": "16:9"}' api.kolersky.com/api/midjourney/imagine
Upscale
POST api.kolersky.com/api/midjourney/upscale
Эта функция увеличивает разрешение выбранного изображения (и изолирует его). Функция соответствует команде увеличения масштаба из официального Midjourney.
JSON вид запроса:
{
	"origin_task_id": "d497783b-****-****-****-0367bce42db6",
	"index": "1"
}
cURL пример:
curl -X POST  -H "x-token: 0000::****-****-****-****" --data-raw '{"origin_task_id": "d497783b-****-****-****-0367bce42db6", "index": "1"}' api.kolersky.com/api/midjourney/upscale
Variation
POST api.kolersky.com/api/midjourney/variation
Эта функция генерирует различные версии выбранного изображения, соответствующие командам Variations из официального Midjourney.
Поля запроса:
JSON вид запроса:
{
  "origin_task_id": "d497783b-****-****-****-0367bce42db6",
  "prompt": "winter new york",
  "index": "3",
  "aspect_ratio": "9:16"
}
cURL пример:
curl -X POST  -H "x-token: 0000::****-****-****-****" --data-raw '{"origin_task_id": "d497783b-****-****-****-0367bce42db6", "prompt": "winter new york", "index": "3", "aspect_ratio": "9:16"}' api.kolersky.com/api/midjourney/variation 
Reroll
POST api.kolersky.com/api/midjourney/reroll
Эта функция регенерирует изображения на основе нового приглашения и родительской задачи. Эта конечная точка соответствует кнопке Re-run или Re-roll из официального Midjourney.
Поля запроса:
JSON вид запроса:
JSON вид запроса:

{
  "origin_task_id": "d497783b-****-****-****-0367bce42db6",
  "prompt": "winter new york",
  "aspect_ratio": "9:16"
}
cURL пример:
curl -X POST  -H "x-token: 0000::****-****-****-****" --data-raw '{"origin_task_id": "d497783b-****-****-****-0367bce42db6", "prompt": "winter new york", "aspect_ratio": "9:16"}' api.kolersky.com/api/midjourney/reroll 
Describe
POST api.kolersky.com/api/midjourney/describe
Эта функция выдает четыре подсказки на основе входного изображения. Конечная точка соответствует команде Describe из официального Midjourney.
Поля запроса:
JSON вид запроса:
{
  "image_url": "http://midjourney-guigu.oss-us-west-1.aliyuncs.com/images/75ed4202402292139294887.jpg",
  "process_mode": "relax",
}
cURL пример:
curl -X POST  -H "x-token: 0000::****-****-****-****" --data-raw '{"image_url": "http://midjourney-guigu.oss-us-west-1.aliyuncs.com/images/75ed4202402292139294887.jpg", "process_mode": "relax"}' api.kolersky.com/api/midjourney/describe
Seed
POST api.kolersky.com/api/midjourney/seed
Эта функция получает начальную информацию о выполненной задаче.
Поля запроса:
JSON вид запроса:
{
  "origin_task_id": "d497783b-****-****-****-0367bce42db6",
}
cURL пример:
curl -X POST  -H "x-token: 0000::****-****-****-****" --data-raw '{"origin_task_id": "d497783b-****-****-****-0367bce42db6"}' api.kolersky.com/api/midjourney/seed
Blend
POST api.kolersky.com/api/midjourney/blend
Эта функция объединяет от двух до пяти входных изображений. Эта конечная точка соответствует команде Blend из официального Midjourney.
Поля запроса:
JSON вид запроса:
{
	"image_urls": [
      "https://aoyouer.com/posts/moyu-devlog-0/2022-11-24-00-59_hu3f1e0a40cb06392f97875a081976a63b_1192560_1600x0_resize_box_3.png",
      "https://aoyouer.com/posts/hugo-with-codespace/2022-11-23%2013.34.47_hu1cc8e82c0c96924b0c8ea2f0980e2e30_140972_1600x0_resize_box_3.png"
    ],
    "process_mode": "relax",
}
cURL пример:
curl -X POST  -H "x-token: 0000::****-****-****-****" --data-raw '{"image_urls": ["https://aoyouer.com/posts/moyu-devlog-0/2022-11-24-00-59_hu3f1e0a40cb06392f97875a081976a63b_1192560_1600x0_resize_box_3.png","https://aoyouer.com/posts/hugo-with-codespace/2022-11-23%2013.34.47_hu1cc8e82c0c96924b0c8ea2f0980e2e30_140972_1600x0_resize_box_3.png"], "process_mode": "relax"}' api.kolersky.com/api/midjourney/blend
Inpaint
POST api.kolersky.com/api/midjourney/inpaint
Эта функция изменяет часть увеличенного изображения. Функция соответствует команде Vary (Region) из официального Midjourney.
Поля запроса:
JSON вид запроса:
{
  "origin_task_id": "d497783b-****-****-****-0367bce42db6",
  "mask": "... base64 string",
}
cURL пример:
curl -X POST  -H "x-token: 0000::****-****-****-****" --data-raw '{"origin_task_id": "d497783b-****-****-****-0367bce42db6", "mask": "... base64 string",}' api.kolersky.com/api/midjourney/inpaint
Outpaint
POST api.kolersky.com/api/midjourney/outpaint
Эта функция расширяет холст увеличенного изображения за пределы его исходного размера, сохраняя детали исходного изображения. Эта конечная точка соответствует инструменту Zoom Out из официального Midjourney.
Поля запроса:
Для zoom_ratio допустимые значения:
  • Для кнопки Midjourney Discord "zoom out 1.5x" — используйте: 1,5
  • Для кнопки Midjourney Discord "zoom out 2x" — используйте: 2
  • Для кнопки Midjourney Discord "custom zoom" — используйте: (1, 2]
  • Для кнопки Midjourney Discord "make square" — используйте: 1
JSON вид запроса:
{
	"origin_task_id": "d497783b-****-****-****-0367bce42db6",
  "zoom_ratio": "2",
  "prompt": "flying night city",
  "aspect_ratio": "16:9",
}
cURL пример:
curl -X POST  -H "x-token: 0000::****-****-****-****" --data-raw '{"origin_task_id": "d497783b-****-****-****-0367bce42db6","zoom_ratio": "2", "prompt": "flying night city", "aspect_ratio": "16:9"}' api.kolersky.com/api/midjourney/outpaint
Pan
POST api.kolersky.com/api/midjourney/pan
Эта функция расширяет изображение в выбранном направлении, сохраняя при этом исходное содержимое изображения и используя новую подсказку для заполнения расширенного пространства. Конечная точка соответствует инструменту Pan из официального Midjourney.
Поля запроса:
JSON вид запроса:
{
	"origin_task_id": "d497783b-****-****-****-0367bce42db6",
	"direction": "down",
	"prompt": "flying city, night"
}
cURL пример:
curl -X POST  -H "x-token: 0000::****-****-****-****" --data-raw '{"origin_task_id": "d497783b-****-****-****-0367bce42db6", "direction": "down", "prompt": "flying city, night"}' api.kolersky.com/api/midjourney/pan
Cancel Task
DELETE api.kolerksy.com/api/midjourney/cancel
Эта функция закрывает задачу. Функцию можно вызвать только на задачи со статусом pending
Поля запроса:
JSON вид запроса:
{
	"origin_task_id": "d497783b-****-****-****-0367bce42db6"
}
cURL пример:
curl -X DELETE  -H "x-token: 0000::****-****-****-****" --data-raw '{"task_id": "d497783b-****-****-****-0367bce42db6"}' api.kolersky.com/api/midjourney/cancel
Get Task
GET api.kolerksy.com/api/midjourney/cancel
Функция позволяет получить статус запрашиваемый задачи.
Это единственный запрос, который вместо JSON тела принимает query параметр.
Поля запроса:
cURL пример:
curl -X GET -H "x-token: 0000::****-****-****-****" api.kolersky.com/api/midjourney/get_task?task_id=d497783b-****-****-****-0367bce42db6
Midjourney Video V1 (генерация видео)
Скачать документацию Midjourney V1 API:
Введение
Пример кода:
// Corrected client code (index.ts)
const BASE_URL = "https://api.kolersky.com/api/midjourney";
const API_KEY = "API KEY";
const HEADERS = {
    "Content-Type": "application/json",
    "x-token": API_KEY,
};

const main = async () => {
    try {
        const submitBody = {
            url: "https://i.ibb.co/DHZT2zLz/1f29638d-67a8-467a-81e3-501e08cc073d.png",
            // prompt: "optional text prompt here", // This is optional
            motion: "low",
            videoType: "vid_1.1_i2v_480",
            mode: "fast",
            animateMode: "manual",
        };

        const submitResponse = await fetch(`${BASE_URL}/video_submit`, {
            method: "POST",
            headers: HEADERS,
            body: JSON.stringify(submitBody),
        });

        if (submitResponse.status !== 200) {
            throw new Error(`Submit failed with status: ${submitResponse.status}`);
        }

        const submitJson = await submitResponse.json();
        if (submitJson.err) {
            throw new Error(`Submit error: ${submitJson.err}`);
        }

        const { task_id: taskId } = submitJson;
        console.log("Submit response:", { taskId });

        if (!taskId) {
            throw new Error('No task_id received from submit');
        }

        const maxAttempts = 60;
        for (let attempts = 0; attempts < maxAttempts; attempts++) {
            const fetchResponse = await fetch(`${BASE_URL}/video_fetch?task_id=${taskId}`, {
                method: "GET",
                headers: HEADERS,
            });

            if (fetchResponse.status !== 200) {
                throw new Error(`Fetch failed with status: ${fetchResponse.status}`);
            }

            const fetchJson = await fetchResponse.json();
            if (fetchJson.err) {
                throw new Error(`Fetch error: ${fetchJson.err}`);
            }

            const { progress, status, video_urls: videoUrls, failReason } = fetchJson;
            console.log(`Fetch progress: ${progress}, status: ${status}`);

            if (progress === "100%") {
                if (status === "SUCCESS") {
                    console.log("Video URLs:", videoUrls);
                    return;
                }
                if (status === "FAILURE") {
                    throw new Error(`Task failed: ${failReason}`);
                }
            }

            await new Promise(resolve => setTimeout(resolve, 5000)); // Wait 5 seconds
        }

        throw new Error("Polling timed out");
    } catch (error: any) {
        console.error("Error:", error.message);
    }
};

main();
Описание

Этот API предоставляет конечные точки для создания видео с помощью Midjourney. Он включает в себя две конечные точки:

- /Video_submit (POST): Отправляет запрос на генерацию видео. Требует аутентификации и вычитает 15 запросов из баланса пользователя из-за высоких вычислительных затрат.

- /Video_fetch (GET): Извлечает статус и результаты задачи по task_id. Не вычитает запросы.

API использует JSON для тел запросов и ответов. Аутентификация обрабатывается с помощью ключа API, переданного в заголовке x-token.

Base URL: https://api.kolersky.com/api/midjourney

Endpoint: /video_submit (POST)

Описание
Отправляет запрос на создание видео на основе URL-адреса изображения и дополнительной текстовой подсказки. Вычитает 15 запросов из баланса пользователя после успешной отправки.

Method
POST

Required Headers
- Content-Type: application/json
- x-token: <your-api-key>

Request Body (JSON)

Required:
- url (string): A valid image URL (e.g., https://example.com/image.png). Must end with .png, .jpg, .jpeg or .webp.

Optional:
- prompt (string): Optional text description to accompany the image URL (e.g., add a cat).
- motion (string): "low" or "high" (default: "low").
- videoType (string): "vid_1.1_i2v_480" or "vid_1.1_i2v_720" (default: "vid_1.1_i2v_480").
- mode (string): "fast" or "relax" (default: "fast").
- animateMode (string): "manual" or "automatic" (default: "manual").

Example:

{
"url": "https://i.ibb.co/DHZT2zLz/1f29638d-67a8-467a-81e3-501e08cc073d.png",
"prompt": "add a cat",
"motion": "low",
"videoType": "vid_1.1_i2v_480",
"mode": "fast",
"animateMode": "manual"
}

Validation
- Method must be POST.
- User must have at least 15 requests in their balance.
- Body must be valid JSON with allowed keys.
- url must be a non-empty string and a valid image URL.
- prompt, if provided, must be a string.
- motion, videoType, mode, and animateMode must match allowed values.

Responses
- 200 OK: Task created successfully.

{
"task_id": "1752337786244405",
"description": "Submit Success",
"code": 200
}

- 400 Bad Request: Invalid request (e.g., missing url, invalid image URL, invalid JSON, or incorrect parameter values).

{
"err": "Bad request, invalid image URL",
"code": 400
}

- 403 Forbidden: Insufficient balance or incorrect method.

{
"err": "Forbidden, you need at least 15 requests.",
"code": 403
}

- 502 Bad Gateway: External service error.

{
"err": "Unknown error",
"code": 502
}

Notes
- Deducts 15 requests upon successful submission, even if the task later fails.
- The url and optional prompt are combined into a single prompt string (e.g., https://example.com/image.png add a cat) before being sent to the external service.
- Use the returned task_id to check task status with /video_fetch.

Endpoint: /video_fetch (GET)

Description
Retrieves the status and results of a video generation task by task_id. Does not deduct requests.

Method
GET

Query Parameters
- task_id (string, required): ID of the task from /video_submit.

Example: https://api.kolersky.com/api/midjourney/video_fetch?task_id=1752337786244405

Required Headers
- x-token: <your-api-key>

Responses
- 200 OK: Task status and results.

PENDING: Task has been submitted but not yet processed.

{
"task_id": "1752337786244405",
"action": "VIDEO",
"progress": "0%",
"status": "PENDING",
"code": 200
}

IN_PROGRESS: Task is currently being processed.

{
"task_id": "1752337786244405",
"action": "VIDEO",
"progress": "50%",
"status": "IN_PROGRESS",
"code": 200
}

SUCCESS: Task completed successfully, with video URLs.

{
"task_id": "1752337786244405",
"action": "VIDEO",
"progress": "100%",
"status": "SUCCESS",
"video_urls": [
"https://storage.fonedis.cc//video/.../0_0.mp4",
"https://storage.fonedis.cc//video/.../0_1.mp4",
"https://storage.fonedis.cc//video/.../0_2.mp4",
"https://storage.fonedis.cc//video/.../0_3.mp4"
],
"code": 200
}

FAILURE: Task failed, with reason provided.

{
"task_id": "1752337786244405",
"action": "VIDEO",
"progress": "100%",
"status": "FAILURE",
"failReason": "Invalid prompt format",
"code": 200
}

- 400 Bad Request: Missing or invalid task_id.

{
"err": "Missing task_id",
"code": 400
}

- 403 Forbidden: Incorrect method.

{
"err": "Method not allowed",
"code": 403
}

- 502 Bad Gateway: External service error.

{
"err": "External service unavailable",
"code": 502
}

Notes
- Poll this endpoint every 5 seconds until progress reaches "100%" or up to 5 minutes (60 attempts).
- If status is "SUCCESS", video_urls contains the generated video links.
- If status is "FAILURE", check failReason for details.
- If status is "PENDING" or "IN_PROGRESS", continue polling until completion.

General Errors
- 400 Bad Request: Invalid request format or parameters.
- 403 Forbidden: Insufficient balance or incorrect method.
- 502 Bad Gateway: External service failure.

Usage
1. Call /video_submit with a valid image URL and optional text prompt to create a task and obtain a task_id.
2. Poll /video_fetch with the task_id every 5 seconds until progress is "100%".
3. On completion, check status:
- If "SUCCESS", retrieve video links from video_urls.
- If "FAILURE", inspect failReason.
- If "PENDING" or "IN_PROGRESS", continue polling.

Example (curl)

Submit a task:
curl -X POST https://api.kolersky.com/api/midjourney/video_submit \
-H "Content-Type: application/json" \
-H "x-token: YOUR_API_KEY" \
-d '{
"url": "https://i.ibb.co/DHZT2zLz/1f29638d-67a8-467a-81e3-501e08cc073d.png",
"prompt": "add a cat",
"motion": "low",
"videoType": "vid_1.1_i2v_480",
"mode": "fast",
"animateMode": "manual"
}'

Fetch task status:
curl -X GET "https://api.kolersky.com/api/midjourney/video_fetch?task_id=1752337786244405" \
-H "x-token: YOUR_API_KEY"

Testing
Use tools like Postman or curl to test. Ensure your API key is valid and included in the x-token header.