Side-Step fully supports Windows with CUDA GPUs. This page documents Windows-specific behavior, workarounds, and configuration details that differ from Linux/macOS.
The easiest way to install on Windows is the Easy Installer:
- Clone or download Side-Step.
- Double-click
install_windows.bat(or runinstall_windows.ps1from PowerShell).
The installer handles everything:
- Installs
uv(if not already present) - Installs Python 3.11
- Clones ACE-Step 1.5 alongside Side-Step
- Runs
uv syncfor all dependencies - Optionally downloads model checkpoints
Requirements: Windows 10/11, PowerShell 5.1+, Git, NVIDIA GPU with CUDA drivers.
The installer creates two sibling directories:
Parent/
├── Side-Step/ <-- Your training toolkit
└── ACE-Step-1.5/ <-- Model checkpoints + optional vanilla mode
cd Side-Step
uv run train.pyBoth PowerShell and CMD work. The wizard displays Windows-native paths (backslashes) in its prompts.
On Windows, Side-Step forces num_workers=0 regardless of what you set.
This is because Windows uses spawn-based multiprocessing (rather than fork), which breaks PyTorch's DataLoader workers. Attempting to use workers > 0 on Windows causes crashes or hangs.
Side-Step handles this automatically:
- The CLI default is
0on Windows. - The wizard warns you and clamps to
0if you enter a higher value. - The trainer enforces
0at runtime even if overridden via CLI.
When num_workers=0:
prefetch_factoris forced to0(no background prefetching).persistent_workersis forced toFalse.
Impact: Data loading is slightly slower (single-threaded), but training speed is dominated by GPU computation, so the difference is usually negligible.
On Windows, Lightning Fabric's devices=[index] parameter causes DistributedSampler to produce 0 batches, which makes training silently "complete" with 0 steps.
Side-Step works around this by using devices=1 and calling torch.cuda.set_device(device_idx) directly. This means multi-GPU selection (e.g., --device cuda:1) works correctly on Windows.
Side-Step stores user configuration and presets at Windows-standard locations:
| Item | Path |
|---|---|
| Settings | %APPDATA%\sidestep\settings.json |
| Global presets | %APPDATA%\sidestep\presets\ |
| Local presets | .\presets\ (in the Side-Step project directory) |
%APPDATA% typically resolves to C:\Users\<you>\AppData\Roaming.
Local presets take priority over global presets. See [[Preset Management]] for details.
Side-Step writes a log file (sidestep.log) to the current working directory. On some Windows setups (e.g., running from a read-only directory or a restricted location), the log file may fail to create. In that case, Side-Step falls back to console-only logging with no error.
If you need the log file for troubleshooting, make sure you run Side-Step from a writable directory (e.g., the Side-Step project folder itself).
Preset names are validated against Windows reserved filenames. The following names are rejected:
CON, PRN, AUX, NUL, COM1-COM9, LPT1-LPT9
Characters /\:*?"<>| are also stripped from preset names. This validation applies on all platforms, not just Windows, to keep presets portable.
Windows has a historical 260-character path length limit (MAX_PATH). Side-Step does not explicitly handle this. If you encounter path-related errors:
- Keep your project close to the drive root (e.g.,
C:\ai\Side-Step\rather than deeply nested directories). - Avoid very long output directory names.
- Consider enabling long paths in Windows: Settings > System > For Developers > Enable long paths. This requires Windows 10 version 1607 or later.
| Behavior | What Happens | Why |
|---|---|---|
num_workers clamped to 0 |
DataLoader runs single-threaded | Windows spawn-based multiprocessing breaks PyTorch workers |
prefetch_factor forced to 0 |
No background batch prefetching | Required when num_workers=0 |
persistent_workers forced off |
Workers not kept alive between epochs | Required when num_workers=0 |
Fabric devices=1 |
Uses torch.cuda.set_device() instead of device list |
devices=[index] causes 0-batch bug on Windows |
| Backslash paths in prompts | Path display uses \ separator |
Native Windows path convention |
Config stored in %APPDATA% |
Settings and global presets in AppData | Windows standard user config location |
File explorer uses explorer |
"Open folder" actions use Windows Explorer | Platform-appropriate file manager |
- [[Getting Started]] -- Installation and first-run setup
- [[Preset Management]] -- Preset storage and management
- [[VRAM Optimization Guide]] -- GPU memory profiles