diff --git a/docs/images/settings-refresh-preview.png b/docs/images/settings-refresh-preview.png new file mode 100644 index 0000000..7f40df7 Binary files /dev/null and b/docs/images/settings-refresh-preview.png differ diff --git a/docs/user-guide/custom-models.md b/docs/user-guide/custom-models.md index 2122ad5..6c49a28 100644 --- a/docs/user-guide/custom-models.md +++ b/docs/user-guide/custom-models.md @@ -1,6 +1,6 @@ # Using your own weights: base model / VAE / text encoder -In Settings → **Training Models**, every category of weights can be swapped out from the official download for a file you already have on disk: +In Settings → **Models**, every category of weights can be swapped out from the official download for a file you already have on disk: | Weight | Form | Card | |---|---|---| @@ -14,7 +14,7 @@ In Settings → **Training Models**, every category of weights can be swapped ou 2. The selected path appears as a "local" candidate row below the official variant; click its radio button to make it the default. 3. To stop using it, click **Unregister** — this only removes it from the list, **the file on disk is left untouched**. If the unregistered entry was the currently selected one, the selection automatically falls back to the official weights. -> **The path is relative to the machine running Studio.** In local mode that's your own computer; in cloud modes like Colab / Kaggle, the file picker browses the container's disk, so a local `D:\...` path doesn't exist there — upload the weights to the cloud drive (or the Drive mount point) first, then select them. The gray text next to the button tells you which case you're in. +> **The path is relative to the machine running Studio.** In local mode that's your own computer; in cloud modes like Colab / Kaggle, the file picker browses the container's disk, so a local `D:\...` path doesn't exist there — upload the weights to the cloud drive (or the Drive mount point) first, then select them. Hover over the file or directory button for the hint about your current mode. If a file is deleted or moved, resolution automatically falls back to the official location instead of writing a dead path into the training config; the corresponding row on the card is marked "file not found" and its radio button is grayed out. diff --git a/studio/web/index.html b/studio/web/index.html index d3e5633..7b505b7 100644 --- a/studio/web/index.html +++ b/studio/web/index.html @@ -6,18 +6,9 @@
{row.label}
-
- {t('settings.localBaseModel')}
-
+ {row.label}
+ {t('settings.localBaseModel')}
{row.exists ? `✓ ${fmtBytes(row.size)}` : t('settings.localModelMissing')}
-
{familyOptions && familyOptions.length > 1 && (
{{path}}.",
@@ -1533,8 +1533,8 @@
"onnxRestartRequired": "A new onnxruntime package is installed, but the current process is still using the old one. Restart Studio to apply EP changes.",
"saveFailedWithError": "Save failed: {{error}}",
"hfMirrorHint": "Recommended in China",
- "hfOfficialHint": "Official source (default)",
- "hfCustomHint": "Paste self-hosted proxy / sjtug / Tencent mirror, etc.",
+ "hfOfficialHint": "official",
+ "hfCustomHint": "mirror or your own proxy",
"modelDescriptions": {
"animaMain": "Cosmos transformer (~4 GB)",
"animaVae": "qwen_image_vae shared by Anima / Krea2 (~250 MB)",
@@ -1552,8 +1552,8 @@
"remacri": "Realistic-style community favorite",
"esrgan4x": "Generic ESRGAN baseline"
},
- "downloadSourceHuggingface": "HuggingFace (including hf-mirror and other mirrors)",
- "downloadSourceModelscope": "ModelScope (direct access in China)",
+ "downloadSourceHuggingface": "HuggingFace",
+ "downloadSourceModelscope": "ModelScope",
"confirmInstallOnnxAuto": "Platform + nvidia-smi detection chooses the best package (Windows + GPU → DirectML; Linux + GPU → CUDA; no GPU → CPU). Package installation takes a few minutes.\n\nNote: restart Studio after installation for it to take effect. Continue?",
"confirmInstallOnnxGpu": "The current onnxruntime package will be removed and onnxruntime-gpu (CUDA EP) installed. Package installation takes a few minutes.\n\nNote: restart Studio after installation for it to take effect. Continue?",
"confirmInstallOnnxCpu": "The current onnxruntime package will be removed and onnxruntime (CPU) installed. Package installation takes a few minutes.\n\nNote: restart Studio after installation for it to take effect. Continue?",
@@ -1601,9 +1601,9 @@
"autoSelect": "Auto-select: {{tag}}",
"noNvidiaDriverCannotCuda": "No NVIDIA driver detected; CUDA build cannot be installed",
"installing": "Installing...",
- "reinstallCudaBuild": "⤓ Reinstall CUDA build ({{tag}})",
- "reinstallAuto": "↻ Reinstall (auto: {{tag}})",
- "advancedManualCuda": "Advanced (manual CUDA version)",
+ "reinstallCudaBuild": "Reinstall CUDA build ({{tag}})",
+ "reinstallAuto": "Reinstall ({{tag}})",
+ "advancedManualCuda": "Pick CUDA version",
"manualCudaHint": "Choose based on your driver / preference; auto is usually fine. The wrong version may fail on import and require choosing again.",
"installCpuBuildHint": "Install CPU build (very slow; diagnostics / no GPU only)",
"installCudaBuildHint": "Install {{tag}} build (PyTorch index: /whl/{{tag}})",
@@ -1619,23 +1619,23 @@
"noWheelForPython": "No prebuilt wheel was found for {{python}} (the current Python version may not be supported yet). Select another candidate below manually, or paste a URL from GitHub Releases.",
"flashAttnNeedsCudaTorch": "PyTorch is currently a CPU build (torch+cpu) and flash_attn cannot be installed on it. flash_attn is a CUDA C extension — go to the PyTorch section above to reinstall a CUDA build (cu128 / cu130), restart Studio, then come back here.",
"noWheelManual": "No usable wheel; select manually",
- "reinstallAutoMatch": "↻ Reinstall (auto match)",
- "autoMatchInstall": "⤓ Auto-match install",
- "candidateWheels": "Candidate wheels ({{n}} usable)",
+ "reinstallAutoMatch": "Reinstall",
+ "autoMatchInstall": "Install",
+ "candidateWheels": "Builds ({{n}})",
"wheelQueryFailed": "Query failed or no match (check network connection)",
"installWheel": "Install this wheel",
"wheelAbiIncompatible": "Python ABI is incompatible; force install may fail",
"installAction": "⤓ Install",
"forceInstall": "Force install",
- "manualUrl": "Paste URL manually:",
+ "manualUrl": "Wheel URL",
"install": "Install",
"confirmInstallXformers": "xformers will be installed with pip using the PyTorch index URL matching the current torch+cu.\nInstallation can take several to tens of minutes; restart Studio after installation. Continue?",
"xformersSubtitle": "attention acceleration (mutually exclusive with Flash Attention)",
"xformersHelp1": "xformers and Flash Attention are mutually exclusive; each training / generation task chooses one attention_backend value (none / xformers / flash_attn).",
"xformersHelp2": "xformers is more broadly compatible (sm_70+), while flash_attn is faster (sm_80+ Ampere and newer).",
"xformersHelp3": "Install failures usually mean upstream PyPI / PyTorch index has no wheel for this torch+cu combination (common for 5090 / new GPUs). The button toast shows the tail of stderr; use it to downgrade torch or wait for upstream coverage.",
- "reinstallAutoMatchPlain": "Reinstall (auto match)",
- "installAutoMatchPlain": "Install (auto match)",
+ "reinstallAutoMatchPlain": "Reinstall",
+ "installAutoMatchPlain": "Install",
"previewThrottle": "Throttle (preview every N steps)",
"previewThrottleDesc": "0 = off; recommended 3-5",
"taeFluxHelp": "The TAEFlux decode model is downloaded in the background when the server starts; no separate UI action is needed.",
@@ -1848,7 +1848,7 @@
"selectDefaultMainModel": "Use as default main model",
"trainingModelsOneClick": "Training models (one-click download)",
"allowGpuDuringTrainHint": "WD14 tagging with onnxruntime-gpu uses about ~2 GB; only enable if enough VRAM remains outside training, otherwise OOM may occur",
- "redownload": "↻ Redownload",
+ "redownload": "Redownload",
"redownloadTitle": "Already downloaded, click to redownload",
"localBaseModel": "local",
"allowGpuDuringTrain": "Allow GPU tasks while training",
@@ -1860,7 +1860,7 @@
"purposeInference": "inference",
"selectDefaultTe": "Use as default text encoder",
"teSelected": "Text encoder set: {{name}}",
- "trainingRuntime": "Training",
+ "trainingRuntime": "Training & queue",
"trainingRamGuard": "Memory / VRAM guard",
"trainingRamGuardHelp": "Before loading the base model for training or AI-prior regularization, budget system RAM and free VRAM against the actual weight file sizes and abort with an actionable error if either falls short.",
"trainingRamGuardDefaultHelp": "Off by default: the file-size estimate is conservative and turned out to reject often on machines that were in fact large enough. Turn it on if a training run has ever paged your whole machine to a halt. Block swap's pinned-memory guard is separate and always on — locked memory cannot be paged out, and its way out is a smaller blocks_to_swap.",
@@ -1895,7 +1895,9 @@
"krea2Main": "Krea 2 main model"
},
"sounds": "Interface sounds",
- "soundsDesc": "Soft clicks on toggles and tabs, a chime when something finishes, a low tone on errors."
+ "soundsDesc": "Soft clicks on toggles and tabs, a chime when something finishes, a low tone on errors.",
+ "tokenLabel": "Token",
+ "endpointLabel": "Download endpoint"
},
"monitor": {
"taskLabel": "Task",
@@ -3839,7 +3841,7 @@
"switched": "Runtime mode set to {{mode}}. Restart the server for the bind address to take effect.",
"local": {
"name": "Local machine",
- "summary": "Studio runs on this computer, on your own GPU.",
+ "summary": "Training runs on this computer.",
"bullets": [
"Binds to 127.0.0.1 — reachable only from this machine",
"Opens your browser automatically on start",
@@ -3849,7 +3851,7 @@
},
"colab": {
"name": "Colab / cloud notebook",
- "summary": "Studio runs in a hosted notebook container (Colab, Kaggle, a rented GPU).",
+ "summary": "Hosted notebook: Colab, Kaggle, a rented GPU.",
"bullets": [
"Binds to 0.0.0.0 so the notebook port proxy can reach it",
"Never tries to open a browser inside the container",
@@ -3928,8 +3930,8 @@
"copy": "Copy",
"copied": "Copied",
"copyFailed": "Could not copy the link",
- "shareWarning": "Anyone with this link has the same access to this machine as you do — it can browse files and start jobs. Send it only to yourself. If it leaks, press “New access key”.",
- "notInstalled": "This needs cloudflared, a single small program from Cloudflare. It is not installed yet.",
+ "shareWarning": "The link gives full access to this computer. Keep it to yourself; if it leaks, press “New access key”.",
+ "notInstalled": "Needs the cloudflared utility, which is not installed.",
"install": "Download cloudflared",
"installing": "Downloading…",
"installManually": "There is no prebuilt cloudflared for this system. Install it yourself and it will be picked up automatically.",
@@ -3939,18 +3941,18 @@
"provider": {
"tailscale": {
"name": "Tailscale Funnel",
- "hint": "Free, permanent https://{t('settings.modelscopeTokenHelp')}
+{t('settings.modelscopeTokenHelp')}
-{t('settings.trainingRamGuardHelp')}
{t('settings.trainingRamGuardDefaultHelp')}
- > - } - > -