Ночная платформа, дождь, и в промте лежит сюжет игры, которую ещё никто не видел. Pyramid-JiT (2,18 млрд параметров, веса под Apache 2.0) рисует картинку на вашей видеокарте. Но по коду, который читал японский автор, в стандартной настройке сам промт сначала переписывается внешней моделью.
В досье этого шага нет. Ни одна из проверенных страниц про внешний вызов не пишет, поэтому дальше это чужая находка, а не факт.
Что выпустила Linum
Linum — лаборатория из двух человек. 4 ноября они открыли экспериментальную text-to-image модель Pyramid-JiT, или P-JiT 21K. Она работает прямо в пиксельном пространстве, без отдельного автоэнкодера, и опирается на замороженный текстовый энкодер Qwen3.5-4B.
Мы решили поделиться моделью с миром как экспериментальным релизом. (Linum, Field Notes, в переводе)
Сама Linum называет слабые места. Читаемый текст не выходит, толпа и фигуры в полный рост получаются плохо. В карточке модели, которую цитирует AdGraam, написано, что это «экспериментальный исследовательский артефакт, а не продакшн-модель», и что стоит ждать шероховатостей.
Главный вопрос: кто переписывает промт
Японский автор разбора открыл generate.py и пишет, что перед генерацией короткий промт проходит через внешний API. По его словам, стандартная настройка вызывает Claude Opus 5.5 через OpenRouter, и только потом запускается локальная модель.
«Картинка локально» и «промт локально» — это две разные вещи, и в одной и той же настройке они не обязательно совпадают. (Японский автор разбора, в переводе)
По его же описанию, флаг --no_upsample отключает это переписывание и передаёт ваше описание в генератор как есть. Сам флаг есть в команде запуска, которую приводит AI/TLDR. Что именно он делает внутри, досье не подтверждает — это тоже надо открыть в коде.
Это важно, если вы делаете фон для непубличного проекта. Локальная картинка не значит, что текст промта остался на диске. Для клиентских материалов и NDA эту разницу стоит проверить до первого прогона.
Что ещё описано в разборе
По тому же разбору, веса модели и текстовый энкодер можно скачать заранее и указать пути через --weights и --qwen_model_path. Оригинальные промты и переписанная версия, если она есть, сохраняются в prompt.json. Эти параметры досье не подтверждает, поэтому проверяйте их в своей версии кода.
Автор разбора советует писать не «заброшенная станция под дождём», а конкретную сцену: что видно, где свет, что в кадре не должно появиться. Вот его пример:
ホームの屋根の下から線路を見る。手前の濡れた床に照明が映り、奥の階段だけに月明かりが当たる。人物や読める文字は入れないИз чего собран промт
- ракурсвид на рельсы из-под крыши платформы
ホームの屋根の下から線路を見る - светсвет отражается на мокром полу переднего плана
手前の濡れた床に照明が映り - светлунный свет падает только на дальнюю лестницу
奥の階段だけに月明かりが当たる - негативбез людей и читаемых надписей
人物や読める文字は入れない
Смысл промта: вид из-под крыши на рельсы, отражение света в мокром полу, лунный свет только на дальних ступенях, без людей и текста. Причину, почему станция пуста, в кадр не пишем. Если сюжет важен для сцены, меняйте саму картинку: положение камеры, свет, пустой кадр. Историю вокруг картинки можно оставить в документе.
Как проверить на своей машине
- Склонировать репозиторий и установить по команде из AI/TLDR: git clone https://github.com/Linum-AI/pjit-21k, затем pip install -e . (команда подтверждена).
- Открыть generate.py и найти, есть ли вызов внешнего API: искать OpenRouter, ключ и имя модели. Делать это до любого прогона с материалами под NDA.
- Сделать тестовый прогон на публичной сцене с --no_upsample и с настройками по умолчанию, при одинаковом зерне и разрешении.
- Во время генерации посмотреть сетевую активность: уходит ли что-то наружу.
- Открыть 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
