---
url: >-
  https://adk.nht.io/api/@nhtio/adk/batteries/llm/transformers_js/helpers/functions/mediaToTransformersInput.md
---

# Function: mediaToTransformersInput()

```ts
function mediaToTransformersInput(
  media: Media,
  opts?: {
    audioSampleRate?: number;
  },
): Promise<{
  data: unknown;
  kind: "audio" | "image";
}>;
```

Defined in: [src/batteries/llm/transformers\_js/helpers.ts:456](https://github.com/NHTIO/ADK/blob/v1.20260713.1/src/src/batteries/llm/transformers_js/helpers.ts#L456)

Decode an ADK [@nhtio/adk!Media](../../../../../common/classes/Media.md) into a transformers.js multimodal input.

## Parameters

| Parameter               | Type                                              |
| ----------------------- | ------------------------------------------------- |
| `media`                 | [`Media`](../../../../../common/classes/Media.md) |
| `opts?`                 | { `audioSampleRate?`: `number`; }               |
| `opts.audioSampleRate?` | `number`                                          |

## Returns

`Promise`<{
`data`: `unknown`;
`kind`: `"audio"` | `"image"`;
}>

## Remarks

Image → `RawImage.fromBlob(...)`; audio → `Float32Array` PCM at the model's sample rate (16 kHz
default) via `read_audio` over a `data:` URL. Imports `@huggingface/transformers` lazily, so it's
only loaded on the multimodal path. (Verified against a real Gemma-4 run — see plan 0a.)
