react-native-executorch
Version:
An easy way to run AI models in React Native with ExecuTorch
46 lines (42 loc) • 1.21 kB
text/typescript
import { ImageEmbeddingsModule } from '../../modules/computer_vision/ImageEmbeddingsModule';
import {
ImageEmbeddingsProps,
ImageEmbeddingsType,
} from '../../types/imageEmbeddings';
import { PixelData } from '../../types/common';
import { useModuleFactory } from '../useModuleFactory';
/**
* React hook for managing an Image Embeddings model instance.
* @category Hooks
* @param ImageEmbeddingsProps - Configuration object containing `model` source and optional `preventLoad` flag.
* @returns Ready to use Image Embeddings model.
*/
export const useImageEmbeddings = ({
model,
preventLoad = false,
}: ImageEmbeddingsProps): ImageEmbeddingsType => {
const {
error,
isReady,
isGenerating,
downloadProgress,
runForward,
runOnFrame,
} = useModuleFactory({
factory: (config, onProgress) =>
ImageEmbeddingsModule.fromModelName(config, onProgress),
config: model,
deps: [model.modelName, model.modelSource],
preventLoad,
});
const forward = (imageSource: string | PixelData) =>
runForward((inst) => inst.forward(imageSource));
return {
error,
isReady,
isGenerating,
downloadProgress,
forward,
runOnFrame,
};
};