diff --git a/README.md b/README.md index 46e3cd6..76293cb 100644 --- a/README.md +++ b/README.md @@ -15,7 +15,7 @@ From raw images to test renders in a single browser window, including from your
-The training page on desktop and the training monitor on a phone +Projects: every LoRA project with its current step, the running task and the queue @@ -34,7 +34,7 @@ Dataset → curation → preprocess → tags → reg set → training → queue **📖 Every setting explains itself**
-All 182 training options carry a plain-language description and a recommended value, in English or Russian, right next to the field. +All 182 training options carry a plain-language description and a recommended value, in English or Russian: hover the setting name to see it. @@ -56,6 +56,43 @@ Block swap, fp8, latent and text-encoder caches, NaViT packing. Before you start
+## A quick tour + + + + + + + + + + + + + + +
+Project overview
+Project overview · The pipeline of the active version, KPIs, tasks and versions on one page. +
+Dataset
+Dataset · Drag & drop or Booru scrape, with format and size stats. +
+Curation
+Curation · Dataset → train set, concept folders with repeats, validation set. +
+Train
+Train · Config with a hover tip on every setting, step budget and a live preview. +
+Task
+Task · Loss and LR curves, samples per epoch, logs and outputs. +
+Queue
+Queue · One GPU slot, a timeline to the end of the queue, pause and resume. +
+ +
+ ## Features ### 🗂 Dataset @@ -73,7 +110,7 @@ Block swap, fp8, latent and text-encoder caches, NaViT packing. Before you start - **GPU queue**: pause with progress saved, resume, hold the queue, schedule a start. - **Monitoring**: loss / LR curves, per-step samples, logs, output files with a zip export. -Training monitor: loss, learning rate, samples +Task page: progress, loss and learning rate, samples per epoch ### 🧪 Algorithms | | | @@ -91,8 +128,6 @@ Block swap, fp8, latent and text-encoder caches, NaViT packing. Before you start - Prompts straight from dataset captions, several LoRAs with individual weights. - **Checkpoint soup**: average several epochs or runs into one file and test it right away. Incompatible checkpoints are refused up front with the reason. -Checkpoint soup - ### ⚙️ Environment - The first launch creates a `venv`, picks a PyTorch build for your driver (cu118–cu130) and installs dependencies. - All caches (pip, HuggingFace, torch, npm) stay inside the project folder. @@ -105,15 +140,10 @@ Outputs are saved as `lora_unet_*` and load into ComfyUI without conversion. ## From your phone -Project overview, monitor and training page on a phone - Every page is laid out for a phone: columns stack, the monitor takes the full width, crop handles and thumbnail checkboxes work with a finger. - @@ -56,6 +56,43 @@ Block swap, fp8, кеши латентов и текстового энкоде
+## Экскурсия по студии + +
-Remote access settings - **Settings → Remote access** @@ -146,7 +176,7 @@ Nothing is opened on your router. The link carries a persistent access key, and **🎨 Interface**
-New design on [Tailark](https://tailark.com) (zinc + indigo, Geist). Fully in English and Russian, no Chinese left in the UI. +New design, ported page by page from an approved mockup: warm neutrals, a lime accent, Geist type. Every setting explains itself on hover. Fully in English and Russian, no Chinese left in the UI.
diff --git a/README.ru.md b/README.ru.md index 9519131..9cfe24b 100644 --- a/README.ru.md +++ b/README.ru.md @@ -15,7 +15,7 @@
-Страница тренировки на компьютере и монитор тренировки на телефоне +Проекты: все LoRA-проекты с текущим шагом, идущей тренировкой и очередью @@ -34,7 +34,7 @@
**📖 Каждая настройка объясняет себя**
-У всех 182 параметров тренировки есть понятное описание и рекомендуемое значение на русском или английском, прямо рядом с полем. +У всех 182 параметров тренировки есть понятное описание и рекомендуемое значение на русском или английском: наведите на название настройки.
+ + + + + + + + + + + + +
+Обзор проекта
+Обзор проекта · Конвейер активной версии, ключевые цифры, задачи и версии на одной странице. +
+Датасет
+Датасет · Перетаскивание файлов или сбор с Booru, статистика по форматам и объёму. +
+Отбор в train
+Отбор в train · Датасет → train-набор, папки концептов с повторами, validation-набор. +
+Тренировка
+Тренировка · Конфиг с подсказкой у каждой настройки, бюджет шагов и живой предпросмотр. +
+Задача
+Задача · Кривые loss и LR, сэмплы по эпохам, логи и выходные файлы. +
+Очередь
+Очередь · Один слот GPU, план до конца очереди, пауза и продолжение. +
+ +
+ ## Возможности ### 🗂 Датасет @@ -73,7 +110,7 @@ Block swap, fp8, кеши латентов и текстового энкоде - **GPU-очередь**: пауза с сохранением прогресса, возобновление, заморозка очереди, отложенный старт. - **Мониторинг**: кривые loss / LR, сэмплы по шагам, логи, файлы результатов с выгрузкой в zip. -Монитор тренировки: loss, learning rate, сэмплы +Страница задачи: прогресс, loss и learning rate, сэмплы по эпохам ### 🧪 Алгоритмы | | | @@ -91,8 +128,6 @@ Block swap, fp8, кеши латентов и текстового энкоде - Промпты прямо из капшенов датасета, несколько LoRA с отдельными весами. - **Суп из чекпоинтов**: усреднить несколько эпох или прогонов в один файл и сразу проверить. Несовместимые чекпоинты отсекаются заранее с объяснением. -Суп из чекпоинтов - ### ⚙️ Окружение - Первый запуск сам создаёт `venv`, подбирает сборку PyTorch под драйвер (cu118–cu130) и ставит зависимости. - Все кеши (pip, HuggingFace, torch, npm) остаются в папке проекта. @@ -105,15 +140,10 @@ Block swap, fp8, кеши латентов и текстового энкоде ## Доступ с телефона -Обзор проекта, монитор и страница тренировки на телефоне - Все страницы свёрстаны под телефон: колонки выстраиваются друг под другом, монитор занимает всю ширину, ручки кропа и галочки на миниатюрах работают пальцем. -
-Настройки удалённого доступа - **Настройки → Удалённый доступ** @@ -146,7 +176,7 @@ Block swap, fp8, кеши латентов и текстового энкоде **🎨 Интерфейс**
-Новый дизайн на [Tailark](https://tailark.com) (zinc + indigo, Geist). Полностью на русском и английском, китайского в UI не осталось. +Новый дизайн, перенесённый постранично из утверждённого макета: тёплые нейтральные цвета, лаймовый акцент, шрифт Geist. У каждой настройки подсказка по наведению на название. Полностью на русском и английском, китайского в UI не осталось.
diff --git a/docs/images/curate-en.png b/docs/images/curate-en.png new file mode 100644 index 0000000..416e301 Binary files /dev/null and b/docs/images/curate-en.png differ diff --git a/docs/images/curate-ru.png b/docs/images/curate-ru.png new file mode 100644 index 0000000..7266582 Binary files /dev/null and b/docs/images/curate-ru.png differ diff --git a/docs/images/dataset-en.png b/docs/images/dataset-en.png new file mode 100644 index 0000000..82029bd Binary files /dev/null and b/docs/images/dataset-en.png differ diff --git a/docs/images/dataset-ru.png b/docs/images/dataset-ru.png new file mode 100644 index 0000000..49cb106 Binary files /dev/null and b/docs/images/dataset-ru.png differ diff --git a/docs/images/hero-en.png b/docs/images/hero-en.png deleted file mode 100644 index cb9c8ab..0000000 Binary files a/docs/images/hero-en.png and /dev/null differ diff --git a/docs/images/hero-ru.png b/docs/images/hero-ru.png deleted file mode 100644 index 3b9ee6e..0000000 Binary files a/docs/images/hero-ru.png and /dev/null differ diff --git a/docs/images/monitor-en.png b/docs/images/monitor-en.png deleted file mode 100644 index 558ee8d..0000000 Binary files a/docs/images/monitor-en.png and /dev/null differ diff --git a/docs/images/monitor-ru.png b/docs/images/monitor-ru.png deleted file mode 100644 index 61a3a57..0000000 Binary files a/docs/images/monitor-ru.png and /dev/null differ diff --git a/docs/images/overview-en.png b/docs/images/overview-en.png new file mode 100644 index 0000000..b4b84f8 Binary files /dev/null and b/docs/images/overview-en.png differ diff --git a/docs/images/overview-ru.png b/docs/images/overview-ru.png new file mode 100644 index 0000000..a1998ce Binary files /dev/null and b/docs/images/overview-ru.png differ diff --git a/docs/images/phones-en.png b/docs/images/phones-en.png deleted file mode 100644 index 42f6288..0000000 Binary files a/docs/images/phones-en.png and /dev/null differ diff --git a/docs/images/phones-ru.png b/docs/images/phones-ru.png deleted file mode 100644 index bfd941e..0000000 Binary files a/docs/images/phones-ru.png and /dev/null differ diff --git a/docs/images/presets-en.png b/docs/images/presets-en.png new file mode 100644 index 0000000..390cc89 Binary files /dev/null and b/docs/images/presets-en.png differ diff --git a/docs/images/presets-ru.png b/docs/images/presets-ru.png new file mode 100644 index 0000000..c472bc9 Binary files /dev/null and b/docs/images/presets-ru.png differ diff --git a/docs/images/projects-en.png b/docs/images/projects-en.png new file mode 100644 index 0000000..34a9f87 Binary files /dev/null and b/docs/images/projects-en.png differ diff --git a/docs/images/projects-ru.png b/docs/images/projects-ru.png new file mode 100644 index 0000000..24b1923 Binary files /dev/null and b/docs/images/projects-ru.png differ diff --git a/docs/images/queue-en.png b/docs/images/queue-en.png new file mode 100644 index 0000000..abcfbad Binary files /dev/null and b/docs/images/queue-en.png differ diff --git a/docs/images/queue-ru.png b/docs/images/queue-ru.png new file mode 100644 index 0000000..a8f78e2 Binary files /dev/null and b/docs/images/queue-ru.png differ diff --git a/docs/images/remote-en.png b/docs/images/remote-en.png deleted file mode 100644 index 75ebb96..0000000 Binary files a/docs/images/remote-en.png and /dev/null differ diff --git a/docs/images/remote-ru.png b/docs/images/remote-ru.png deleted file mode 100644 index fb064d0..0000000 Binary files a/docs/images/remote-ru.png and /dev/null differ diff --git a/docs/images/soup-en.png b/docs/images/soup-en.png deleted file mode 100644 index 9613f6b..0000000 Binary files a/docs/images/soup-en.png and /dev/null differ diff --git a/docs/images/soup-ru.png b/docs/images/soup-ru.png deleted file mode 100644 index 90ead42..0000000 Binary files a/docs/images/soup-ru.png and /dev/null differ diff --git a/docs/images/task-en.png b/docs/images/task-en.png new file mode 100644 index 0000000..ccc6c4d Binary files /dev/null and b/docs/images/task-en.png differ diff --git a/docs/images/task-ru.png b/docs/images/task-ru.png new file mode 100644 index 0000000..2c9843a Binary files /dev/null and b/docs/images/task-ru.png differ diff --git a/docs/images/train-en.png b/docs/images/train-en.png new file mode 100644 index 0000000..2005f91 Binary files /dev/null and b/docs/images/train-en.png differ diff --git a/docs/images/train-ru.png b/docs/images/train-ru.png new file mode 100644 index 0000000..6e6c31f Binary files /dev/null and b/docs/images/train-ru.png differ diff --git a/studio/web/src/i18n/locales/en.json b/studio/web/src/i18n/locales/en.json index 8f45e2f..3317a82 100644 --- a/studio/web/src/i18n/locales/en.json +++ b/studio/web/src/i18n/locales/en.json @@ -348,10 +348,10 @@ "lrScheduler": { "none": "Constant", "cosine": "Cosine", - "cosineWithRestart": "Cosine with restart", + "cosineWithRestart": "Cosine with warm restarts", "cosineWithWarmup": "Cosine with warmup", - "cosineCycles": "Custom cosine cycles", - "constantThenCosine": "Constant, then cosine decay" + "cosineCycles": "Cosine with equal cycles", + "constantThenCosine": "Constant with cosine decay" }, "optimizerType": { "adamw": "AdamW", @@ -471,7 +471,7 @@ "grad_checkpoint": "Gradient checkpointing (saves VRAM, roughly +1/3 compute)", "grad_accum": "Gradient accumulation steps (effective batch = batch_size × grad_accum)", "learning_rate": "Learning rate. Automagic recommends 1e-6 (auto-applied on switch); Lion recommends AdamW lr / 3; Prodigy / PPSF require 1.0", - "lr_scheduler": "Learning-rate scheduler (none = constant; Prodigy / PPSF lock this to none)", + "lr_scheduler": "How the learning rate changes over the run. Constant: it stays the same. Cosine: it eases down to the end. Cosine with warmup: a ramp-up first, then a smooth decay. Cosine with warm restarts: decays and restarts, each cycle longer than the last. Cosine with equal cycles: N identical cosine cycles, each can have its own peak. Constant with cosine decay: flat learning rate, then a smooth decay at the end. Prodigy, PPSF, Automagic and SOAP-SF always use Constant.", "lr_scheduler_t0": "First cosine_with_restart cycle length (unit: step)", "lr_scheduler_t_mult": "cosine_with_restart cycle-length multiplier relative to the previous cycle (>1 = lengthening cycles)", "lr_scheduler_eta_min": "LR decay floor for cosine schedules; should be much smaller than the initial lr (e.g. 1e-6 for an initial lr of 1e-4)", @@ -648,7 +648,7 @@ "lora_module_dropout": "0.05–0.1 — cheap protection against copying", "learning_rate": "1e-4 for LoKr with AdamW", "grad_accum": "2–4", - "lr_scheduler": "cosine_with_warmup", + "lr_scheduler": "Cosine with warmup", "lr_scheduler_warmup_steps": "100", "grad_clip_max_norm": "1.0", "optimizer_type": "adamw is the honest baseline; soap converges faster at the same lr", diff --git a/studio/web/src/i18n/locales/ru.json b/studio/web/src/i18n/locales/ru.json index 818e8cc..0e8ba0e 100644 --- a/studio/web/src/i18n/locales/ru.json +++ b/studio/web/src/i18n/locales/ru.json @@ -969,8 +969,12 @@ "schema": { "enums": { "lrScheduler": { - "cosineCycles": "Настраиваемые косинусные циклы", - "constantThenCosine": "Постоянная LR → плавное снижение" + "none": "Constant", + "cosine": "Cosine", + "cosineWithRestart": "Cosine with warm restarts", + "cosineWithWarmup": "Cosine with warmup", + "cosineCycles": "Cosine with equal cycles", + "constantThenCosine": "Constant with cosine decay" }, "timestepSampling": { "dualPeak": "Dual Peak — два пика для стиля" @@ -1078,7 +1082,7 @@ "grad_checkpoint": "Градиентный чекпоинтинг (экономит видеопамять, примерно +1/3 вычислений)", "grad_accum": "Число шагов накопления градиента (эффективный батч = batch_size × grad_accum)", "learning_rate": "Скорость обучения. Для automagic рекомендуется 1e-6 (подставляется автоматически); для lion — lr AdamW делённая на 3; prodigy и PPSF требуют 1.0", - "lr_scheduler": "Расписание скорости обучения (none — постоянная; prodigy и PPSF жёстко требуют none)", + "lr_scheduler": "Как меняется скорость обучения по ходу тренировки. Constant — не меняется. Cosine — плавно снижается к концу. Cosine with warmup — сначала разгон, потом плавный спад. Cosine with warm restarts — спад с перезапусками, каждый цикл длиннее предыдущего. Cosine with equal cycles — N одинаковых косинусных циклов, у каждого можно задать свой пик. Constant with cosine decay — постоянная lr, а в конце плавный спад. Prodigy, PPSF, Automagic и SOAP-SF всегда используют Constant.", "lr_scheduler_t0": "Длина первого цикла cosine_with_restart (в шагах)", "lr_scheduler_t_mult": "Во сколько раз каждый следующий цикл cosine_with_restart длиннее предыдущего (>1 — циклы растут)", "lr_scheduler_eta_min": "Нижний предел затухания для косинусных расписаний; должен быть сильно меньше стартовой lr (например 1e-6 при старте 1e-4)", @@ -1195,7 +1199,7 @@ "lora_module_dropout": "0.05–0.1 — дешёвая защита от копирования", "learning_rate": "1e-4 для LoKr с AdamW", "grad_accum": "2–4", - "lr_scheduler": "cosine_with_warmup", + "lr_scheduler": "Cosine with warmup", "lr_scheduler_warmup_steps": "100", "grad_clip_max_norm": "1.0", "optimizer_type": "adamw — честная база; soap сходится быстрее при той же lr", diff --git a/studio/web/src/i18n/locales/zh.json b/studio/web/src/i18n/locales/zh.json index fd0cac8..193a1dc 100644 --- a/studio/web/src/i18n/locales/zh.json +++ b/studio/web/src/i18n/locales/zh.json @@ -309,10 +309,10 @@ "lrScheduler": { "none": "常数", "cosine": "Cosine", - "cosineWithRestart": "Cosine 重启", + "cosineWithRestart": "Cosine 热重启", "cosineWithWarmup": "Cosine 预热", - "cosineCycles": "自定义 Cosine 周期", - "constantThenCosine": "常数后 Cosine 衰减" + "cosineCycles": "Cosine 等长周期", + "constantThenCosine": "常数 + Cosine 衰减" }, "optimizerType": { "adamw": "AdamW",