diff --git a/studio/Unsloth_Studio_Colab.ipynb b/studio/Unsloth_Studio_Colab.ipynb index 42bd11bb0e..4bc8f46bca 100644 --- a/studio/Unsloth_Studio_Colab.ipynb +++ b/studio/Unsloth_Studio_Colab.ipynb @@ -14,19 +14,21 @@ "\n", "To install Unsloth on your local device, follow [our guide](https://unsloth.ai/docs/get-started/install). This notebook is licensed [AGPL-3.0](https://github.com/unslothai/unsloth/blob/main/studio/LICENSE.AGPL-3.0).\n", "\n", - "Run **Unsloth Studio** directly in Google Colab." + "Run [**Unsloth Studio**](https://unsloth.ai/docs/new/unsloth-studio/start) directly in Google Colab.\n", + "\n", + "### Unsloth Studio\n", + "\n", + "Train and run local models with a unified UI interface.\n", + "\n", + "[Features](https://unsloth.ai/docs/new/unsloth-studio) • [Quickstart](https://unsloth.ai/docs/new/unsloth-studio/start) • [Data Recipes](https://unsloth.ai/docs/new/unsloth-studio/data-recipe) • [Studio Chat](https://unsloth.ai/docs/new/unsloth-studio/chat) • [Export](https://unsloth.ai/docs/new/unsloth-studio/export)" ] }, { "cell_type": "markdown", - "id": "f6907711", + "id": "e4206349", "metadata": {}, "source": [ - "
\n", - "\n", - "![studio github landscape.png](data:image/png;base64,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)\n", - "\n", - "
" + "

" ] }, { diff --git a/studio/frontend/public/studio github landscape colab display.png b/studio/frontend/public/studio github landscape colab display.png new file mode 100644 index 0000000000..10d6521f50 Binary files /dev/null and b/studio/frontend/public/studio github landscape colab display.png differ diff --git a/studio/install_python_stack.py b/studio/install_python_stack.py index e20f1eb486..20011a298a 100644 --- a/studio/install_python_stack.py +++ b/studio/install_python_stack.py @@ -22,6 +22,19 @@ from pathlib import Path IS_WINDOWS = sys.platform == "win32" +# ── Verbosity control ────────────────────────────────────────────────────────── +# By default the installer shows a minimal progress bar (one line, in-place). +# Set UNSLOTH_VERBOSE=1 in the environment to restore full per-step output: +# Linux/Mac: UNSLOTH_VERBOSE=1 ./studio/setup.sh +# Windows: $env:UNSLOTH_VERBOSE="1" ; .\studio\setup.ps1 +VERBOSE: bool = os.environ.get("UNSLOTH_VERBOSE", "0") == "1" + +# Progress bar state — updated by _progress() as each install step runs. +# _TOTAL counts: pip-upgrade + 7 shared steps + triton (non-Windows) + local-plugin + finalize +# Update _TOTAL here if you add or remove install steps in install_python_stack(). +_STEP: int = 0 +_TOTAL: int = 0 # set at runtime in install_python_stack() based on platform + # ── Paths ────────────────────────────────────────────────────────────── SCRIPT_DIR = Path(__file__).resolve().parent REQ_ROOT = SCRIPT_DIR / "backend" / "requirements" @@ -59,7 +72,9 @@ def _enable_colors() -> bool: return True # Unix terminals support ANSI by default -_HAS_COLOR = _enable_colors() +# Colors disabled — Colab and most CI runners render ANSI fine, but plain output +# is cleaner in the notebook cell. Re-enable by setting _HAS_COLOR = _enable_colors() +_HAS_COLOR = False def _green(msg: str) -> str: @@ -74,11 +89,30 @@ def _red(msg: str) -> str: return f"\033[91m{msg}\033[0m" if _HAS_COLOR else msg +def _progress(label: str) -> None: + """Print an in-place progress bar for the current install step. + + Uses only stdlib (sys.stdout) — no extra packages required. + In VERBOSE mode this is a no-op; per-step labels are printed by run() instead. + """ + global _STEP + _STEP += 1 + if VERBOSE: + return # verbose mode: run() already printed the label + width = 20 + filled = int(width * _STEP / _TOTAL) + bar = "=" * filled + "-" * (width - filled) + end = "\n" if _STEP >= _TOTAL else "" # newline only on the final step + sys.stdout.write(f"\r[{bar}] {_STEP:2}/{_TOTAL} {label:<40}{end}") + sys.stdout.flush() + + def run( label: str, cmd: list[str], *, quiet: bool = True ) -> subprocess.CompletedProcess[bytes]: """Run a command; on failure print output and exit.""" - print(_cyan(f" {label}...")) + if VERBOSE: + print(f" {label}...") result = subprocess.run( cmd, stdout = subprocess.PIPE if quiet else None, @@ -196,7 +230,8 @@ def pip_install( try: if USE_UV: uv_cmd = _build_uv_cmd(args) + constraint_args + req_args - print(_cyan(f" {label}...")) + if VERBOSE: + print(f" {label}...") result = subprocess.run( uv_cmd, stdout = subprocess.PIPE, @@ -250,17 +285,19 @@ def patch_package_file(package_name: str, relative_path: str, url: str) -> None: def install_python_stack() -> int: - global USE_UV + global USE_UV, _STEP, _TOTAL + _STEP = 0 + _TOTAL = 10 if IS_WINDOWS else 11 # 1. Upgrade pip (needed even with uv as fallback and for bootstrapping) + _progress("pip upgrade") run("Upgrading pip", [sys.executable, "-m", "pip", "install", "--upgrade", "pip"]) # Try to use uv for faster installs USE_UV = _bootstrap_uv() - installer = "uv" if USE_UV else "pip" - print(_cyan(f"── Installing Python stack (via {installer}) ──")) # 2. Core packages: unsloth-zoo + unsloth + _progress("base packages") pip_install( "Installing base packages", "--no-cache-dir", @@ -268,6 +305,7 @@ def install_python_stack() -> int: ) # 3. Extra dependencies + _progress("unsloth extras") pip_install( "Installing additional unsloth dependencies", "--no-cache-dir", @@ -275,6 +313,7 @@ def install_python_stack() -> int: ) # 3b. Extra dependencies (no-deps) — audio model support etc. + _progress("extra codecs") pip_install( "Installing extras (no-deps)", "--no-deps", @@ -283,6 +322,7 @@ def install_python_stack() -> int: ) # 4. Overrides (torchao, transformers) — force-reinstall + _progress("dependency overrides") pip_install( "Installing dependency overrides", "--force-reinstall", @@ -292,6 +332,7 @@ def install_python_stack() -> int: # 5. Triton kernels (no-deps, from source) if not IS_WINDOWS: + _progress("triton kernels") pip_install( "Installing triton kernels", "--no-deps", @@ -322,6 +363,7 @@ def install_python_stack() -> int: # ) # 8. Studio dependencies + _progress("studio deps") pip_install( "Installing studio dependencies", "--no-cache-dir", @@ -329,6 +371,7 @@ def install_python_stack() -> int: ) # 9. Data-designer dependencies + _progress("data designer deps") pip_install( "Installing data-designer base dependencies", "--no-cache-dir", @@ -336,6 +379,7 @@ def install_python_stack() -> int: ) # 10. Data-designer packages (no-deps to avoid conflicts) + _progress("data designer") pip_install( "Installing data-designer", "--no-cache-dir", @@ -351,6 +395,7 @@ def install_python_stack() -> int: ), ) return 1 + _progress("local plugin") pip_install( "Installing local data-designer unstructured plugin", "--no-cache-dir", @@ -360,6 +405,7 @@ def install_python_stack() -> int: ) # 12. Patch metadata for single-env compatibility + _progress("finalizing") run( "Patching single-env metadata", [sys.executable, str(SINGLE_ENV / "patch_metadata.py")], diff --git a/studio/setup.sh b/studio/setup.sh index 9754473798..5fbdce918f 100755 --- a/studio/setup.sh +++ b/studio/setup.sh @@ -118,8 +118,6 @@ fi echo "✅ Node $(node -v) | npm $(npm -v)" # ── 5. Build frontend ── -echo "" -echo "Building frontend..." cd "$SCRIPT_DIR/frontend" # Tailwind v4's oxide scanner respects .gitignore in parent directories. @@ -156,8 +154,6 @@ echo "✅ Frontend built to frontend/dist" fi # end frontend dist check # ── 6. Python venv + deps ── -echo "" -echo "Setting up Python environment..." # ── 6a. Discover best Python >= 3.11 and < 3.14 (i.e. 3.11.x, 3.12.x, or 3.13.x) ── MIN_PY_MINOR=11 # minimum minor version (>= 3.11)