TensorBoard Export is a LichtFeld Studio plugin that writes full training metrics from the training lifecycle hooks to TensorBoard-compatible event files and CSV.
It exists because LichtFeld Studio's built-in loss plot is intentionally short-lived UI state. This plugin records the training signal at the source, so long runs can be inspected later in TensorBoard or external analysis tools.
- Writes TensorBoard event files via
tensorboardX. - Writes
metrics.csvnext to each event file run. - Writes
config.jsonwith plugin/schema version, trainer state, dataset params, and optimization params. - Starts a new unique run automatically on training start.
- Flushes and closes the current run on training end.
- Exposes plugin UI controls for status, run rotation, folder opening, TensorBoard command copying, and TensorBoard URL opening.
- Avoids known empty metrics:
train/progressis written only when max iterations are known, and PSNR is not exported because this LichtFeld runtime commonly reports it as an empty zero signal.
LichtFeld export panel:
TensorBoard dashboard:
- LichtFeld Studio
>=0.4.2 - LichtFeld plugin API
>=1,<2 - Python
>=3.12 tensorboardXis used by the plugin for event file writing.- TensorBoard itself must be installed and started separately.
If you use a local coding agent such as Codex, Claude Code, or another assistant with filesystem access, you can ask it to install the plugin for you:
Install the LichtFeld Studio plugin from https://github.com/Dok11/lichtfeld-tensorboard-export.
Clone it into the LichtFeld plugin directory with the exact folder name tensorboard_export:
- Windows: %USERPROFILE%\.lichtfeld\plugins\tensorboard_export
- Linux/macOS: ~/.lichtfeld/plugins/tensorboard_export
After installation, run the LichtFeld plugin check if LichtFeld-Studio.exe is available. Do not rename the plugin folder. Tell me the installed path and whether validation passed.
The agent should clone the repository into LichtFeld's plugin directory as tensorboard_export, so the installed plugin root contains pyproject.toml and __init__.py.
Clone this repository into LichtFeld's plugin directory with the plugin directory name tensorboard_export:
git clone https://github.com/Dok11/lichtfeld-tensorboard-export.git "$env:USERPROFILE\.lichtfeld\plugins\tensorboard_export"On Linux/macOS:
git clone https://github.com/Dok11/lichtfeld-tensorboard-export.git ~/.lichtfeld/plugins/tensorboard_exportThe plugin directory must contain pyproject.toml and __init__.py at its root.
To update an existing installation:
cd "$env:USERPROFILE\.lichtfeld\plugins\tensorboard_export"
git pullOn Linux/macOS:
cd ~/.lichtfeld/plugins/tensorboard_export
git pullThen validate it from the directory that contains LichtFeld-Studio.exe:
$env:PYTHONUTF8='1'
.\LichtFeld-Studio.exe plugin check tensorboard_exportPYTHONUTF8=1 works around a Windows plugin validator issue where dependency files inside .venv can be read with the legacy console code page.
After the plugin files are installed, open LichtFeld Studio, go to Tools > Plugin Marketplace, find tensorboard_export, and click Install.
- Open LichtFeld Studio.
- Open the plugin manager and load
tensorboard_export. - In the
TensorBoard Exportpanel, enableEnabled. - Start training.
- The plugin automatically creates a new run directory and starts writing metrics.
Default output directory:
%USERPROFILE%\LichtFeldTensorBoardRuns
Run TensorBoard separately:
py -m pip install tensorboard
tensorboard --logdir "$env:USERPROFILE\LichtFeldTensorBoardRuns" --port 6006Then open:
http://localhost:6006/?darkMode=true
Open TensorBoard opens the browser URL only. It does not start the TensorBoard server.
Enabled: enables automatic logging.Write CSV: writesmetrics.csvnext to the TensorBoard event files.Every N steps: controls how often values are written to disk.Log dir: root directory for TensorBoard runs.Run name: optional custom run name. Leave empty for an automatic name.Rotate run now: closes the current writer and starts a new unique run directory.Flush and close run: flushes event files and CSV, then closes the current run.Open run folder: opens the current run directory in Explorer.Copy TensorBoard command: copies the TensorBoard command for the configured log root.Open TensorBoard: openshttp://localhost:6006/?darkMode=true.
Automatic run names use:
YYYYMMDD_HHMMSS_<dataset>_<strategy>_<iterations>iter
Fields are omitted when LichtFeld does not expose them. If a directory already exists, the plugin appends a numeric suffix.
Loss:
train/loss_raw: instantaneous loss at the logged iteration.train/loss_mean_since_last_write: average loss across steps observed since the previous write.train/loss_min_since_last_write: minimum loss since the previous write.train/loss_max_since_last_write: maximum loss since the previous write.train/loss_ema_100: exponential moving average updated every training step and written everyEvery N steps.train/loss_ema_500: slower exponential moving average updated every training step and written everyEvery N steps.
Training:
train/num_gaussianstrain/progress
Performance:
performance/iters_per_second
Trainer:
trainer/elapsed_secondstrainer/eta_seconds
Config:
config/sessiontext summary
Each run directory contains:
events.out.tfevents...
metrics.csv
config.json
config.json includes:
schema_versionplugin_versiontrainer_statestrategy_typemax_gaussianstotal_iterationsoptimization_paramsdataset_params
- TensorBoard must be started separately.
- Old TensorBoard event files keep old tags after plugin upgrades. Create a new run for a clean dashboard.
train/progressappears only when total iterations are available through the runtime.
From the directory that contains LichtFeld-Studio.exe:
$env:PYTHONUTF8='1'
.\LichtFeld-Studio.exe plugin check tensorboard_exportFrom this plugin directory:
.\.venv\Scripts\python.exe -m py_compile .\__init__.py
