> ## Documentation Index
> Fetch the complete documentation index at: https://docs.orchestrallabs.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# FLUX 3 Action

> Inspect and deploy FLUX 3 Action, including fine-tuned policy packages.

FLUX 3 Action is available under its
[non-commercial license](https://huggingface.co/black-forest-labs/flux-3-action-droid/blob/e3b6c915cdcdfb1d5db08e133b8ca3d29be2d7d4/LICENSE.md).
The public checkpoint is trained for DROID data, but Servo deploys the policy to the robot you
name with `--robot`; DROID is not a deployment requirement.

## Checkpoint format for fine-tunes

Publish a complete FLUX 3 Action policy package in a Hugging Face repository. The reference package
has root `config.json`, `config.native.json`, `manifest.json`, and `model.safetensors`; include the
weight files selected by the manifest. The root config uses the LeRobot-style `type: "flux3"`.
Keep the checkpoint's camera names and order, state and action
widths, image layout, chunk size, control rate, normalization, and sampler recipe consistent with
the fine-tuned weights. The importer reads this recipe from `config.json`; it does not infer or
repair missing values.

The checkpoint recipe includes `camera_keys`, `camera_layout`, `canvas_hw`, `chunk_size`, `fps`,
`action_scale`, `gripper_flip_dims`, `sampler`, `num_inference_steps`, guidance values,
`sampler_shift`, `dtype`, and the declared video VAE and text encoder IDs. Keep referenced encoder
assets available at those IDs. The policy package's `config.json` and `policy_preprocessor.json`
must agree on the camera inputs. For the public checkpoint, the source revision is pinned below;
for a fine-tune, inspect and deploy the exact Hugging Face commit you published.

## Inspect the input contract

Inspection reads metadata and small config files, not model weights. The public checkpoint declares
three RGB image arrays and an eight-value state array. Its image keys are
`observation.images.wrist_image_left`, `observation.images.exterior_image_1_left`, and
`observation.images.exterior_image_2_left`; inspection shows their shapes and the state key. A
fine-tuned package can declare different inputs, so inspect that revision before connecting the
robot's cameras:

```python inspect_checkpoint.py theme={null}
import servo

sv = servo.Servo()
inspection = sv.models.inspect_checkpoint(
    "hf://black-forest-labs/flux-3-action-droid",
    revision="e3b6c915cdcdfb1d5db08e133b8ca3d29be2d7d4",
)
for item in inspection.input_contract.inputs or ():
    print(f"{item.name}: {item.shape} ({item.modality})")
```

## Deploy

Deploy the pinned public checkpoint to any enrolled robot supported by the policy contract:

```bash your computer theme={null}
servo model deploy hf://black-forest-labs/flux-3-action-droid --revision e3b6c915cdcdfb1d5db08e133b8ca3d29be2d7d4 --robot robot-1 --wait
```

## Import and deploy a fine-tune

Import the fine-tune at the same pinned revision you inspected, then deploy the returned model ID:

```bash your computer theme={null}
servo model import hf://ORG/REPO --revision COMMIT
servo model deploy mdl_YOUR_MODEL_ID --robot robot-1 --wait
```

The public checkpoint can be deployed directly from its `hf://` path as shown above. For a
fine-tuned package, keep its policy inputs, recipe, and referenced encoder assets together at the
revision you import.

## Send observations and receive actions

Use the contract's exact keys and tensor shapes when constructing `Session.predict(inputs=...)`.
The [quickstart](/quickstart#choose-a-model) prints the deployed policy's resolved keys, shapes,
and dtypes before its prediction example.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.