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

Routes requested classes to an ordered list of detectors and merges their regions.

Each class goes to every child that lists it in `supported_classes/1`; `:all`
routes to every child, and unclaimed classes are dropped. Identity and
availability reflect only routed children, so an object-only request is
unaffected by a face-model change. A failing child fails the detection.

An unavailable child contributes no regions, and the other children's
regions are used. A child must return a different identity while it is
unavailable (see "Identity" in `ImagePipe.Transform.Detector`), so that
result is cached under its own key and replaced once the child is
available again. When every routed child is unavailable, the composite
returns `{:error, {:detector, :unavailable}}`. With `detector_required:
true`, any unavailable routed child fails the request with `501` instead.

The default combines the face (YuNet) and object (RT-DETR) adapters.

---

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