/ Модель

Характеристики

Контекст
32 768 токенов
Параметры
3,1 млрд
Размер весов
6,8 ГБ
Лицензия
Своя лицензия
Архитектура
qwen2 · dense
Базовая модель
Qwen2.5-3B
Библиотека
transformers
Опубликована
10 сен 2026

jwen

Генерация текстаТекст → текст3 профессии

Jwen — дообученная на набросках Apple Notes модель, которая генерирует последовательности штрихов для рисования лиц в стиле автора.

149скачиваний за 30 дней0лайковвеса обновлены10 сен 2026

Бенчмарки

Как модель справилась с задачами пользователей ailist и что о ней публикуют открытые лидерборды

Тесты пользователейпока нет

Никто ещё не опубликовал тест этой модели. Соберите бенчмарк из своих задач — результат появится здесь.

  1. Добавьте модель в бенчмарк

    Вместе с другими моделями категории «Текст» — сравнение идёт внутри одной категории.

  2. Опишите свои задачи

    Напишите запросы, при необходимости приложите файлы и эталонные ответы.

  3. Запустите и опубликуйте

    Модели ответят на каждую задачу, судья оценит ответы. Опубликованный результат появится на этой странице.

Публичные оценки

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

В подключённых источниках результатов для этой модели пока нет.

Что умеет модель

Описание составлено по карточке модели и метаданным Hugging Face

Jwen — экспериментальная генеративная модель Джоша Волка для создания рисунков лиц в стиле doodle, похожем на наброски автора в Apple Notes. Она основана на Qwen2.5-3B и полностью дообучена предсказывать последовательности токенов, кодирующие штрихи: инструмент, цвет, положение, форму и порядок рисования. Затем модель прошла preference tuning методом DPO на 660 оценках автора. Архитектура — плотная авторегрессионная Qwen2ForCausalLM с 3,1 млрд параметров, расширенной до 157 668 строк матрицей эмбеддингов и контекстом до 32 768 токенов.

Модель генерирует структурированные последовательности штрихов, которые можно преобразовать в рисунок; для корректного семплирования репозиторий использует ограничения грамматики токенов. Она предназначена прежде всего для генерации лиц и небольших рисунков в индивидуальном стиле автора, а не для универсального рисования. Автор отмечает нестабильное расположение черт лица, ограниченность сюжетов и некорректные последовательности при генерации без грамматических ограничений. Для визуально точного рендеринга Apple Pencil и других инструментов нужен PencilKit; предварительный рендерер служит лишь приближением.

Модель выпущена по Qwen Research License, разрешающей исследовательское и некоммерческое использование.

Сценарии применения

  • генерация набросков лиц в стиле doodle
  • создание последовательностей штрихов для Apple Pencil и PencilKit
  • эксперименты с генерацией рисунков через языковую модель

Ограничения

Модель ориентирована главным образом на лица и стиль одного автора; расположение черт лица может быть неточным. Без ограничений грамматики возможны некорректные последовательности, а для реалистичного рендеринга нужен PencilKit.

Для каких профессий подходит3

Разделы каталога профессий, в задачах которых используется эта модель

Все профессии

Карточка модели

README от автора на Hugging Face, как он его опубликовал

Открыть на Hugging Face

Jwen

Jwen draws faces the way I doodle them in Apple Notes. It is Qwen 2.5 3B, fully fine-tuned to write Apple Notes drawings as pen strokes, then preference-tuned on 660 of my own yes/no verdicts. It predicts pen tool, color, position and timing token by token, so a drawing comes out stroke by stroke in the order a hand would make it.

The live stream, and the write-up of how it was made, are at joshuawolk.com/jwen.

A face drawn by Jwen, rendered through PencilKit

samples/example.json is that drawing's stroke file: 69 strokes, one blue pen, character group 2, both temperatures at 0.9. It is one of the thousand in the live stream, re-rendered here from its tokens.

Eight more drawings by Jwen

Eight more from the same thousand, across pen, pencil, marker and crayon. Not every sample is this clean, see Limitations.

Built with Qwen. Released under the Qwen Research License: research and non-commercial use only.

What is in the repo

FilePurpose
model-*.safetensors, config.jsonthe weights, bf16, a standard Qwen2ForCausalLM with the embedding matrix widened to 157,668 rows
stroke_vocab.jsonthe 5,732 stroke tokens, in id order
meta.jsonold, the id of the first stroke token (151,936), and the format version
tokenizer.json, tokenizer_config.jsonthe base Qwen tokenizer, for the text rows; the stroke tokens are not in it
jwen/sample.pygrammar-constrained sampler that writes stroke JSON and a rough preview PNG
jwen/stroke_tokens.pythe token format, grammar and stroke decoder
pkrender/main.swift, pkrender/Info.plistPencilKit renderer for macOS, the only way to see the real ink; the plist gives the process the bundle identity PencilKit expects
samples/the example drawing's stroke file, and the two images above

Quick start

pip install torch transformers pillow
python jwen/sample.py --count 4 --group 3 --out samples

That writes samples/000.json (strokes), samples/000.tokens.txt and samples/000.png (a Pillow polyline preview). Sampling a face is a few thousand tokens; expect well under a minute per drawing on an H100 and three to four minutes on an Apple Silicon Mac with 16 GB or more.

Options: --group 0..82 picks a character group (the model chooses when omitted, but naming one helps), --palette mono|color and --inks one|many steer the look, --temp-struct and --temp-points set separate temperatures for the plan and the points (0.75 and 0.9 by default), --seed fixes the draw.

Rendering the real ink

Strokes carry Apple pencil, pen, marker, crayon, watercolor and fountain pen tools with widths and pressure, and only PencilKit draws those the way Notes does. On macOS:

cd pkrender
xcrun --sdk macosx swiftc -O main.swift -o pkrender -framework PencilKit -framework AppKit \
  -Xlinker -sectcreate -Xlinker __TEXT -Xlinker __info_plist -Xlinker Info.plist
./pkrender ../samples/000.json ../samples/000.pk.png 1080

Pass --pkrender pkrender/pkrender to sample.py to render every sample as it lands. --dark on pkrender renders the dark-mode ink.

Token format

One drawing is one sequence:

<face> <cluster:N|none> <type:face> <side:S> <palette:mono|color> <inks:one|many> <count:N>
<plan> { <s> <tool:T> <color:C> <x:X> <y:Y> <ex:X> <ey:Y> <bw:W> <bh:H> }* </plan>
{ <s> <gap:G> <dt:D> <tool:T> <color:C> <x:X> <y:Y> <ex:X> <ey:Y> <bw:W> <bh:H> <w:K> { [<w:K>] (<dx:D> <dy:D> | <x:X> <y:Y>) }* }*
</face>

The header names the character group, palette, ink count and stroke count. The plan lists every stroke's tool, color, start, end and bounding box before any point is drawn. Then each stroke repeats its header and gives its points, thinned to one every 24 ms, as deltas on a 1024 grid. Stroke token i in stroke_vocab.json has model id 151936 + i. jwen/sample.py masks illegal tokens at every step, copies each stroke header from the plan, and stops after the last planned stroke, so free-running generation is not needed and would produce malformed sequences.

Training

  • Data: 1,296 of my own Notes doodles, decoded from PencilKit bundles, with a PencilKit re-render checked against the PNG Notes saved. Recurring characters were clustered with DINOv2 into 83 groups, which is where <cluster:N> comes from.
  • Supervised: full fine-tune of Qwen 2.5 3B on an H100, 20 passes, weight decay 0.1, attention dropout 0.1. Pass 16 is the reference model.
  • Preference: DPO on 660 verdicts over four rounds (beta 2, learning rate 3e-6, 8 pairs per step, per-token averaged log-probabilities, fp32 reference), with a likelihood term on real drawings at weight 0.2 mixed into every step to stop the drift plain DPO causes. This checkpoint is step 100 of that run, chosen over step 200 in a blind 40-pair comparison.

Total GPU time was about $103.

Limitations

It draws faces and little else, in one person's hand. Feature placement is loose: eyes, nose and mouth land in plausible order more often than in plausible places. Sampling without the grammar produces broken sequences. The preview renderer is a stand-in; the ink only looks right through PencilKit.

Как запустить

На своей GPU в ailist. Цена — по текущим предложениям провайдеров

GPU в ailist

Универсальный рантайм · transformers

Можно запустить

Подбираем GPU…

Класс архитектуры
Qwen2ForCausalLM
Ревизия весов
73403a1

0 моделей