Библиотеку промптов под 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: ссылки на картинки-промпты в начале, затем описание сцены, параметры в конце. Шаблон удобно хранить как текст плюс словарь флагов и собирать строку перед отправкой.

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 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
| V7 | V8 (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 секунд |

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: модели и цены.