# `ImagePipe.Transform.Detector.Warmup`
[🔗](https://github.com/hlindset/image_pipe/blob/v0.2.0/image_pipe/lib/image_pipe/transform/detector/warmup.ex#L1)

One-shot worker that pre-loads a detector's models at boot.

An `ImagePipe` instance starts it with the instance's detector and the
classes from its `:detector_warmup` option. A configuration used without an instance,
such as a mount configured in the router, needs the worker in the host's
supervision tree:

    {ImagePipe.Transform.Detector.Warmup, detector: :default}

`:detector` accepts `:default` (the bundled adapter, used when omitted), `nil`
(no work), or a custom detector module, matching the plug option.

Failed warmup results are logged and retried with bounded exponential backoff.
The worker then exits normally, so `restart: :transient` does not restart it.
Unavailable detectors are skipped. It does not trap exits; shutdown during a
download needs no cleanup.

Model loading runs in `handle_continue/2`, allowing `start_link/1` to return
without waiting for the download.

# `child_spec`

Returns a specification to start this module under a supervisor.

See `Supervisor`.

# `start_link`

```elixir
@spec start_link(keyword()) :: GenServer.on_start()
```

---

*Consult [api-reference.md](api-reference.md) for complete listing*
