Ночная платформа, дождь, и в промте лежит сюжет игры, которую ещё никто не видел. Pyramid-JiT (2,18 млрд параметров, веса под Apache 2.0) рисует картинку на вашей видеокарте. Но по коду, который читал японский автор, в стандартной настройке сам промт сначала переписывается внешней моделью.

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

Источник: adgraam.com

Что выпустила Linum

Linum — лаборатория из двух человек. 4 ноября они открыли экспериментальную text-to-image модель Pyramid-JiT, или P-JiT 21K. Она работает прямо в пиксельном пространстве, без отдельного автоэнкодера, и опирается на замороженный текстовый энкодер Qwen3.5-4B.

Источник: adgraam.com
Мы решили поделиться моделью с миром как экспериментальным релизом. (Linum, Field Notes, в переводе)

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

Главный вопрос: кто переписывает промт

Японский автор разбора открыл generate.py и пишет, что перед генерацией короткий промт проходит через внешний API. По его словам, стандартная настройка вызывает Claude Opus 5.5 через OpenRouter, и только потом запускается локальная модель.

«Картинка локально» и «промт локально» — это две разные вещи, и в одной и той же настройке они не обязательно совпадают. (Японский автор разбора, в переводе)

По его же описанию, флаг --no_upsample отключает это переписывание и передаёт ваше описание в генератор как есть. Сам флаг есть в команде запуска, которую приводит AI/TLDR. Что именно он делает внутри, досье не подтверждает — это тоже надо открыть в коде.

Это важно, если вы делаете фон для непубличного проекта. Локальная картинка не значит, что текст промта остался на диске. Для клиентских материалов и NDA эту разницу стоит проверить до первого прогона.

Что ещё описано в разборе

По тому же разбору, веса модели и текстовый энкодер можно скачать заранее и указать пути через --weights и --qwen_model_path. Оригинальные промты и переписанная версия, если она есть, сохраняются в prompt.json. Эти параметры досье не подтверждает, поэтому проверяйте их в своей версии кода.

Автор разбора советует писать не «заброшенная станция под дождём», а конкретную сцену: что видно, где свет, что в кадре не должно появиться. Вот его пример:

ПромтПример описания из японского разбора про Pyramid-JiT. Вставлять без перевода, как есть.
ホームの屋根の下から線路を見る。手前の濡れた床に照明が映り、奥の階段だけに月明かりが当たる。人物や読める文字は入れない
Скопируйте и вставьте в нейросеть как есть.
Из чего собран промт
  1. ракурсвид на рельсы из-под крыши платформыホームの屋根の下から線路を見る
  2. светсвет отражается на мокром полу переднего плана手前の濡れた床に照明が映り
  3. светлунный свет падает только на дальнюю лестницу奥の階段だけに月明かりが当たる
  4. негативбез людей и читаемых надписей人物や読める文字は入れない

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

Как проверить на своей машине

  1. Склонировать репозиторий и установить по команде из AI/TLDR: git clone https://github.com/Linum-AI/pjit-21k, затем pip install -e . (команда подтверждена).
  2. Открыть generate.py и найти, есть ли вызов внешнего API: искать OpenRouter, ключ и имя модели. Делать это до любого прогона с материалами под NDA.
  3. Сделать тестовый прогон на публичной сцене с --no_upsample и с настройками по умолчанию, при одинаковом зерне и разрешении.
  4. Во время генерации посмотреть сетевую активность: уходит ли что-то наружу.
  5. Открыть prompt.json после прогона и сверить, что там записано.

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

Что подтверждено, а что нет

ФактСтатус по материалам
Веса и код под Apache 2.0Подтверждено: Linum, AI/TLDR, AdGraam
Требуется CUDAПодтверждено: AdGraam
Команда с --no_upsampleПодтверждено: AI/TLDR; действие флага не подтверждено
Внешний вызов Claude через OpenRouterНе подтверждено, сообщает японский автор
Файлы 8,7 ГБ и 8 ГБНе подтверждено досье

Где подвох

  • Модель исследовательская. Linum пишет о «шероховатостях», это не инструмент для продакшна.
  • Текст на картинке не выходит. Надписи и вывески добавляйте в посте.
  • Толпа и фигуры в полный рост получаются плохо.
  • Локальность может быть частичной, пока не проверен generate.py.
  • В материалах есть расхождение: UXC описывает видеомодель на восьми A100 за 48 часов. Это не совпадает с Linum, AI/TLDR и AdGraam, которые говорят об image-модели на H100. Опираться на UXC не стоит.
  • Вес модели — не минимальная память GPU. Какая видеокарта нужна на практике, по материалам не ясно.

Что это меняет для креатора

Для фонов и концептов модель интересна. Открытые веса можно держать на своём GPU и дообучать без оплаты за каждый запрос. Для фонов без текста это уже рабочая идея.

Для непубличных сюжетов я бы не запускал её до того, как прочитаю generate.py. Разделите задачи: безопасные описания кадра отдайте локальной генерации, а названия, сюжетные детали и текст держите вне неё.

Ночная платформа с дождём — хороший фон. А вот сюжет игры, пока он не вышел, лучше держать отдельно от промта. Вы уже проверяли, куда уходит текст в вашем локальном генераторе?

Источники

Training a Text-to-Image Model for $21K | Field Notes by Linum

P-JiT — Linum's open 2B text-to-image model trained for $21K | AI/TLDR

Pyramid-JiT 2B Is Out: Open Weights, Specs and Access | AdGraam

Источникnote.com