Midjourney V7 по API: флаги, sref-коды и переход на V8

10 минут чтенияобновлено

Библиотеку промптов под Midjourney V7 с флагами и sref-кодами можно вызывать из кода без переделки: через наш API V7 принимает настройки только внутри строки prompt, как в Discord. Перенос ломают не флаги, а версии style reference: коды, найденные до 16 июня 2025 года, без --sv 4 дают другой стиль. Переезд на V8 снижает цену запроса на 27%, но поля для sref у V8 в нашем API нет, а её эстетика с июля 2026 года другая.

V7 сняли с дефолта, а промпты под неё остались

По документации Midjourney V7 вышла 3 апреля 2025 года и была моделью по умолчанию с 17 июня 2025-го по 9 июня 2026-го. Потом дефолтом стала V8.1, а с 24 июля 2026 года — V8.2. За год под V7 накопились шаблоны промптов, наборы sref-кодов и код, который собирает из них строку запроса.

Переходя на V8.1, Midjourney писала, что style reference, персонализация и эстетика у V7 и V8.1 совпадают. Но V8.2 — обновление как раз эстетики: в анонсе картинки названы «смелее, дерзче, свежее». В нашем каталоге midjourney-v8 — это V8.2. Обещание совместимости касалось версии, которой в API нет, поэтому другой визуальный ряд на тех же промптах — ожидаемый результат, а не сбой.

Все настройки V7 едут внутри строки prompt

Запрос уходит на POST /v1/images/generations с моделью midjourney-v7. В каталоге у неё пустой список параметров: полей aspect_ratio или stylize в JSON нет. Описание модели прямо называет флаги --ar, --s и --sref в тексте промпта.

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

Строка промпта Midjourney V7: описание сцены и флаги --ar, --s, --sref в конце, всё уходит одним полем prompt.
У V7 настройки живут в самой строке промпта, отдельных полей для них нет.
Python
import os
from openai import OpenAI

client = OpenAI(
    api_key=os.environ["ALTROUTER_API_KEY"],
    base_url="https://api.altrouter.ai/v1",
    timeout=180,  # в замере 16.09.2026 сетка V7 пришла примерно за 44 секунды
)


def build_prompt(scene: str, flags: dict[str, str]) -> str:
    """Описание сцены, затем флаги: тот же порядок, что в Discord."""
    tail = " ".join(f"--{name} {value}" for name, value in flags.items())
    return f"{scene} {tail}".strip()


prompt = build_prompt(
    "old lighthouse on a rocky shore at dusk, warm window light, film grain",
    {"ar": "16:9", "s": "250", "sref": "1234567890", "sv": "4"},  # код из вашей библиотеки
)

result = client.images.generate(
    model="midjourney-v7",
    prompt=prompt,
    # ключ привязан к задаче: повтор с тем же ключом не создаст вторую генерацию
    extra_headers={"Idempotency-Key": "banner-42"},
)

for i, item in enumerate(result.data, start=1):
    print(i, item.url)

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

Две ошибки появляются при переносе чаще остальных. Первая — поле image: правки по картинке у V7 нет, и запрос с ним вернёт 400 с текстом Image editing is not available for и именем модели (коды ошибок). Вторая — флаг --v в старых промптах из Discord. Версию у нас задаёт поле model. Что сделает --v 6.1 внутри промпта V7, мы не проверяли, поэтому вычищайте его из шаблонов.

Какие флаги названы в описании модели, а какие нет

Midjourney получает промпт строкой, поэтому синтаксис флагов у неё свой, и мы его не переводим. В описании нашей модели названы три флага. Остальные — штатные параметры V7 из документации Midjourney, но их работу через наш API мы отдельно не подтверждали.

ФлагЧто делает у MidjourneyДиапазон по документацииВ описании модели у нас
--arсоотношение сторонпо умолчанию 1:1да
--sсила фирменной стилизации0–1000, по умолчанию 100да
--srefстиль по ссылке на картинку или по кодуURL или числода
--swвес стиля0–1000, по умолчанию 100нет
--svверсия алгоритма srefу V7 по умолчанию 6нет
--chaosразброс между четырьмя картинками0–100нет
--weirdстепень странности0–3000нет
--expэкспериментальная эстетика0–100, по умолчанию 0нет
--oref, --owперсонаж или предмет по картинке и его вес--ow 1–1000, по умолчанию 100нет
--draftчерновик: быстрее и дешевле в подписке—нет

Диапазоны взяты из статей Midjourney про stylize, chaos, weird, style reference, omni reference и из анонса --exp. Флаг из нижней части таблицы, прежде чем ставить в шаблон, прогоните на двух-трёх запросах и сравните с картинкой без него. Как собирать сами описания сцен, мы разбирали в статье про промпты.

sref: коды, ссылки и версия алгоритма

Style reference переносит цвета, материал, фактуру и свет, но не объекты с картинки (Midjourney). Задать его можно двумя способами. Первый — ссылка на картинку, которая доступна из интернета и заканчивается на .png, .gif, .webp, .jpg или .jpeg. Второй — числовой код из библиотеки стилей Midjourney.

С кодами есть ловушка версий. У V7 шесть версий алгоритма sref, по умолчанию работает --sv 6. --sv 4 — старая модель, которая была у V7 до 16 июня 2025 года, когда Midjourney выпустила новую sref. Коды, найденные до этой даты, на --sv 6 дают другой стиль. Коды и --sref random работают только с версиями 4 и 6, поэтому храните код вместе с версией: --sref 1234567890 --sv 4.

Вес стиля --sw по умолчанию равен 100, а в V7 он сильнее действует на коды, чем на картинки. Если стиль перебивает описание сцены, подбирайте вес на выборке из десятка промптов, а не меняйте его для всего потока сразу.

--sref random в интерфейсе Midjourney после отправки превращается в конкретный код. В ответе нашего API у каждой картинки есть url, b64_json и revised_prompt. Попадает ли выпавший код в revised_prompt, мы не проверяли. Пока это не подтверждено, random в API — разовая находка: удачный стиль потом не повторить. Ищите стиль вручную, а в шаблон ставьте зафиксированный код.

Omni-reference: одна картинка и двойной расход у Midjourney

Флаг --oref со ссылкой ставит в кадр персонажа или предмет с картинки (анонс). Референс допускается только один. Вес --ow по умолчанию 100, выше 400 Midjourney советует подниматься только вместе с высоким --s, иначе результат становится непредсказуемым.

В подписке такая задача тратит вдвое больше GPU-времени и не работает с --draft и --q 4 (документация). В нашем каталоге у V7 одна цена за запрос, отдельной строки под --oref нет. Сколько списано за конкретный запрос, смотрите в поле usage.cost ответа или в логе запросов.

В V8.2 omni-reference заменила модель правки: она принимает до четырёх картинок-референсов и меняет готовое изображение по инструкции (Midjourney). Если сценарий строится на правке готового кадра, вам нужна V8 или другая модель правки, например FLUX.1 Kontext.

Цена и время: $0,1012 за сетку и около 44 секунд

По каталогу на 27.10.2026 запрос к Midjourney V7 стоит $0,1012, цена помечена как приблизительная. В ответе приходит до четырёх картинок, то есть около $0,0253 за штуку. Параметра количества у модели нет: одну картинку вместо сетки не заказать. Официального API у Midjourney нет, поэтому и официальной цены за картинку нет, сравнивать не с чем. Скидку мы не заявляем.

Один запрос к Midjourney V7 возвращает сетку из четырёх картинок, цена указана за весь запрос.
Платите вы за сетку целиком, даже если в интерфейс уйдёт одна картинка.

Midjourney V8 стоит $0,0736 за запрос, так что V7 дороже на 37,5%. На тысяче сеток это $101,20 против $73,60.

16.09.2026 мы сделали по одному запросу к каждой модели: V7 вернула сетку примерно за 44 секунды, V8 — примерно за 38. Нагрузку и время суток мы не выравнивали, качество вслепую не сравнивали. Это ориентир для очереди, а не бенчмарк. Порядок цифры совпадает с тем, что Midjourney писала в мае 2025 года: V7-задача в быстром режиме идёт около 40 секунд.

Из этого следуют три правила для кода. Генерацию выносите в фоновую задачу: синхронный вызов из веб-обработчика держит пользователя почти минуту. Таймаут клиента ставьте с запасом, а повтор делайте с тем же заголовком Idempotency-Key, чтобы не оплатить вторую сетку. При ответе 504 зарезервированные кредиты возвращаются, а отказ модерации приходит как 400 content_policy_violation и не списывается (надёжность).

Когда оставлять V7, а когда переносить на V8

V7V8 (V8.2)
Настройкифлаги в строке promptполя JSON: aspect_ratio, stylize, chaos, weird, raw, seed, negative_prompt
sref-коды--sref в промптеполя в каталоге нет
Правка по картинкенет, image даёт 400есть, поле image
Цена за запрос, каталог 27.10.2026$0,1012$0,0736
Время в замере 16.09.2026около 44 секундоколо 38 секунд
Сравнение Midjourney V7 и V8 по API: способ настроек, правка по картинке, цена за запрос и время прогона.
Старая модель дороже новой — держать её стоит только ради уже налаженных промптов.

V7 оставляйте там, где продукт держится на sref-кодах и уже принятом клиентом стиле: витрина, игра, шаблоны рекламы. У V8 в нашем API нет поля для sref, а передавать --sref текстом в промпт V8 мы не проверяли. Для новых сценариев и правки берите V8. Флаги переводятся в поля почти один к одному: --ar в aspect_ratio, --s в stylize, --raw в raw: true, --no в negative_prompt.

Прежде чем переключать маршрут, прогоните на обеих моделях 30 реальных промптов, включая самые капризные sref. Это обойдётся в 30 × ($0,1012 + $0,0736) = $5,24, а переделка шаблонов после жалоб клиента — дороже.

🔴 Официального API у Midjourney нет, а её условия использования запрещают автоматический доступ к сервису. Поэтому наш маршрут к V7, как и любой «Midjourney API» на рынке, неофициальный и может пропасть без предупреждения со стороны Midjourney. Держите в коде запасную модель. Что это значит для денег и прав на картинки, разобрано в статье про V8 по API и подписку.

FAQ

Чем --sref отличается от картинки в начале промпта?

Ссылка в начале промпта — это image prompt: Midjourney берёт из неё и содержание, и композицию, и цвета. --sref переносит только стиль — палитру, фактуру, свет — и старается не тащить в кадр объекты с референса. Если нужен тот же стиль на другом сюжете, ставьте картинку в --sref, а не в начало.

Подробнее: Midjourney API: модели и цены.

Как передать референс, который лежит у меня на диске?

Midjourney берёт референс только по ссылке, поэтому файл сначала выложите по публичному адресу с расширением .png, .gif, .webp, .jpg или .jpeg. Поля для base64 у V7 нет: image у этой модели вызывает ошибку 400. Ссылка должна открываться без авторизации, иначе Midjourney её не прочитает.

Подробнее: Коды ошибок API.

Работает ли через API персонализация --p?

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

Подробнее: Midjourney API: модели и цены.

Модели из статьи