createCompiledFromBuffer static method

Future<FaceEmbedding> createCompiledFromBuffer(
  1. Uint8List modelBytes, {
  2. Set<Accelerator> accelerators = const {Accelerator.gpu, Accelerator.cpu},
  3. Precision precision = Precision.fp16,
})

Creates a face embedding model backed by LiteRT CompiledModel.

Implementation

static Future<FaceEmbedding> createCompiledFromBuffer(
  Uint8List modelBytes, {
  Set<Accelerator> accelerators = const {Accelerator.gpu, Accelerator.cpu},
  Precision precision = Precision.fp16,
}) async {
  // MobileFaceNet fails strict-GPU compilation (unsupported ops) but runs
  // ~3.7x faster than CPU with GPU|CPU partitioning, so use the fallback
  // helper rather than pinning to either accelerator.
  final CompiledModel compiledModel = compiledModelFromBufferAuto(
    modelBytes,
    accelerators: accelerators,
    precision: precision,
    onGpuFallback: _onGpuFallback,
  );
  final int side;
  try {
    side = compiledSquareInputSide(
      compiledModel,
      label: 'Compiled face embedding',
    );
  } catch (_) {
    compiledModel.close();
    rethrow;
  }
  final obj = FaceEmbedding._compiled(compiledModel, side, side);
  try {
    obj._initializeCompiledModel();
    return obj;
  } catch (_) {
    obj.dispose();
    rethrow;
  }
}