{"id":14285,"url":"\/distributions\/14285\/click?bit=1&hash=346f3dd5dee2d88930b559bfe049bf63f032c3f6597a81b363a99361cc92d37d","title":"\u0421\u0442\u0438\u043f\u0435\u043d\u0434\u0438\u044f, \u043a\u043e\u0442\u043e\u0440\u0443\u044e \u043c\u043e\u0436\u043d\u043e \u043f\u043e\u0442\u0440\u0430\u0442\u0438\u0442\u044c \u043d\u0430 \u043e\u0431\u0443\u0447\u0435\u043d\u0438\u0435 \u0438\u043b\u0438 \u043f\u0443\u0442\u0435\u0448\u0435\u0441\u0442\u0432\u0438\u044f","buttonText":"","imageUuid":""}

Минуты GPU и как экономить Midjourney

Метод, о котором я расскажу в статье, рассчитан на то, что у вас есть подписка — на бесплатных минутах он может и сработает, но эффект вы заметить не успеете. А вот когда речь зайдёт о часах или сотнях часов, выигрыш в 10-15% станет приятным бонусом.

Но для начала немного «базы».

Время графического процессора

Q: Почему вместо того, чтобы оплачивать количество запросов, я оплачиваю минуты? Что это за минуты?

Midjourney использует графические процессоры (GPU) для обработки каждого запроса. Когда вы покупаете подписку, вы покупаете время использования этих процессоров.

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

Сколько у меня минут?

Чтобы узнать сколько минут осталось в тарифе, можно отправить боту в дискорде команду "/info", ответом он пришлет информацию об аккаунте, где будет указан остаток минут:

Как расходуются минуты

Точное число, потраченное на каждую генерацию, зависит от многих факторов — от качества детализации, соотношения сторон, модели нейросети и типа задачи, поэтому разработчики обобщают это в три правила:

  • Вариации тратят меньше, чем сама генерация, апскейл тратит больше всех
  • Основные модели (v4, Niji) тратят меньше, чем тестовые (v5, Test и Test Photorealistic)
  • Квадратные изображения трятят меньше, чем широкие или высокие

Температура по больнице

Очень грубое приближение, которое показывает «усреднённый» опыт пользователей. Эти числа относятся только к созданию квадратных изображений в четвёртой модели:

Получается, что время на создание грида или масштабирование картинки до бóльшего размера займёт примерно 42 секунды, а создание вариаций — всего 24. Подсчёты очень условные — лучше посмотреть сколько занимают собственные генерации, отправив боту команду "/info" до и после создания картинки.

Я достаточно часто прошу Midjourney создавать неквадратные картинки в высоком качестве, поэтому в моей статистике средняя цена изображения почти равна минуте.

Отмена генерации

Когда вы отправляете запрос на генерацию боту, вы можете его отменить: в общих чатах в дискорде после запроса на увеличение или создание вариаций появляется красная кнопка “Cancel job”. Однако отменить генерацию можно и без кнопки: для этого вы должны отреагировать на отправленный запрос с помощью эмоджи :cancel: — ❌.

Это работает в случаях, когда вы написали запрос с ошибкой и не хотите тратить на него время, либо когда вы видите, что «проступающий» на холсте результат запроса вам уже точно не подойдёт. Это тоже позволит вам потратить меньше времени GPU.

Теперь о настоящей экономии

Среди параметров Midjourney есть те, которые уменьшают или увеличивают время работы процессора. Например, параметр “quality” отвечает за проработку деталей, а “stop” — за то, в какой момент нужно остановить генерацию. Подробнее о параметрах я писал в другой статье, сейчас мы поговорим о том, как использовать их для экономии.

Иногда в поиске нужной композиции или цвета я мог потратить несколько часов GPU. Тогда появилась простая идея — а что если во время поиска правильной картинки генерировать её не до конца, а до момента, на котором видны только самые важные детали?

Я попробовал объединить эти два параметра, снизив качество до минимума и останавливая генерацию в тот момент, когда основная композиция уже видна. После пары экспериментов я нашёл подходящий вариант:

--quality .25 --stop 90

Генерация таких «недоделанных» изображений занимает почти в два раза меньше времени процессора, при этом картинка получается уже достаточно внятной. Если картинка мне не нравилась, я её бросал и по крайней мере не тратил на это слишком много минут из тарифа. А если нравилась? Для этого нам понадобится параметр "--seed".

Тренируемся на кошках

Вот 12 генераций рок-н-ролльного кота с гитарой. Все они сделаны с минимальным качеством и остановлены до полного завершения. Получилось 48 котов, из которых можно что-то выбрать. Я выбрал четверых:

Мне не повезло, что выбранные мной коты находятся в четырёх разных гридах, а значит придётся повторно генерировать все четыре, а не три или меньше.

Посчитаем: вместо 12 качественных генераций пусть по 42 секунды каждая, я сгенерировал 12 некачественных по 24 секунды, и потрачу еще 4 × 42 = 168 секунд на то, чтобы создать четыре выбранных в хорошем качестве. И всё равно даже тут я сэкономлю время тарифа примерно на 10%: 456 секунд в «экономном» режиме против 504 в обычном.

Осталось повторно сгенерировать выбранные изображения. Тут нужно немного почитать о сидах. Сид — это случайный «белый шум», отправная точка для создания изображений. Если в запросе не было эталонного изображения, то оно начнёт создаваться с этого самого «шума». А у этого шума есть номер, и этот номер можно узнать и добавить в запрос.

Подробно о том, как пользоваться сидами, я рассказал в статье выше. Здесь я только опишу последовательность действий:

  • Создаём «экономный» запрос с параметрами качества 0.25 и остановкой на 90%: Например, "a cat --q .25 --stop 90"
  • Ждём пока Midjourney создаст сетку с изображениями
  • Реагируем на эту сетку смайликом конверта ✉. Бот пришлёт личное сообщение с информацией об этой генерации, в котором будет и число — seed. Пусть это будет 777.
  • Полностью повторяем запрос, но уже не ставим параметры для качества, зато ставим присланный сид: например, "a cat --seed 777"

Если вы используете v4, v5 или Niji, то ваше изображение должно получиться очень похожим. Не копией, но очень близким.

Подобные комбинации параметров можно добавлять в собственный пресет, чтобы не писать их каждый раз. О пресетах можно почитать в статье про команды бота.

А лучшее обучение — это практика, поэтому каждый день мы тренируемся на котиках. Смотреть на это можно в нашем кошачьем канале. Всем добра и валерьяны за наш счёт!

Дальше можно почитать

Связанные статьи

Источники

0
Комментарии
-3 комментариев
Раскрывать всегда