---
title: 'Files, Media, Models'
description: 'This tutorial covers the new file-like API surface:'
canonical: 'https://lightning.ai/docs/litlogger/stable/tutorials/file_media_model'
---
# Files, Media, Models {#files-media-models}

This tutorial covers the new file-like API surface:

- [`File`](/docs/litlogger/2026.08.28/api-reference/api.md#litlogger.media.File)
- [`Image`](/docs/litlogger/2026.08.28/api-reference/api.md#litlogger.media.Image)
- [`Text`](/docs/litlogger/2026.08.28/api-reference/api.md#litlogger.media.Text)
- [`Video`](/docs/litlogger/2026.08.28/api-reference/api.md#litlogger.media.Video)
- [`Model`](/docs/litlogger/2026.08.28/api-reference/api.md#litlogger.media.Model)

## Static Files {#static-files}

```python
import litlogger
from litlogger import File

experiment = litlogger.init(name="artifacts-demo")
experiment["config"] = File("config.yaml")
```

## File Series {#file-series}

Append file-like values to create a time series:

```python
for step in range(3):
    experiment["reports"].append(File(f"report-{step}.txt"))
```

## Text {#text}

Use [`Text`](/docs/litlogger/2026.08.28/api-reference/api.md#litlogger.media.Text) for text content you want rendered to a
temporary file and uploaded automatically.

```python
from litlogger import Text

experiment["notes"] = Text("experiment summary")
experiment["captions"].append(Text("checkpoint at step 0"), step=0)
```

## Images {#images}

[`Image`](/docs/litlogger/2026.08.28/api-reference/api.md#litlogger.media.Image) accepts a path or common in-memory image data.

```python
from litlogger import Image

experiment["preview"] = Image("preview.png")
experiment["samples"].append(Image("sample-0.png"), step=0)
```

## Videos {#videos}

Use [`Video`](/docs/litlogger/2026.08.28/api-reference/api.md#litlogger.media.Video) for video files or in-memory frame data.

```python
from litlogger import Video

experiment["demo"] = Video("preview.mp4")
experiment["clips"].append(Video("sample-0.mp4"), step=0)
```

## Models {#models}

Use [`Model`](/docs/litlogger/2026.08.28/api-reference/api.md#litlogger.media.Model) for model objects or saved model files.

```python
from litlogger import Model

experiment["checkpoint"] = Model("checkpoint.ckpt", version="latest")
experiment["checkpoints"].append(Model("checkpoint-1.ckpt", version="step-1"))
```

Unlike files, images, and text entries, logged models are registered in the
`Weights` tab of Lightning AI rather than the experiment's `Experiments`
tab. For background, see the [Lightning model registry docs](/docs/overview/model-registry.md).
Within the current process, uploaded [`Model`](/docs/litlogger/2026.08.28/api-reference/api.md#litlogger.media.Model) values are
rebound with download or load behavior. Resumed experiment recovery for models
still needs dedicated backend support.

## Finalize {#finalize}

```python
experiment.finalize()
```

## Runnable Example {#runnable-example}

See [Examples](/docs/litlogger/2026.08.28/guides/examples.md) for the full
`examples/file_media_model_usage.py` walkthrough.

---

**Navigation**

- Parent: [Tutorials](/docs/litlogger/2026.08.28/tutorials.md)
