Class: StyleTransferModule
Defined in: modules/computer_vision/StyleTransferModule.ts:13
Module for style transfer tasks.
Extends
VisionModule<PixelData|string>
Properties
generateFromFrame()
generateFromFrame: (
frameData, ...args) =>any
Defined in: modules/BaseModule.ts:53
Process a camera frame directly for real-time inference.
This method is bound to a native JSI function after calling load(),
making it worklet-compatible and safe to call from VisionCamera's
frame processor thread.
Performance characteristics:
- Zero-copy path: When using
frame.getNativeBuffer()from VisionCamera v5, frame data is accessed directly without copying (fastest, recommended). - Copy path: When using
frame.toArrayBuffer(), pixel data is copied from native to JS, then accessed from native code (slower, fallback).
Usage with VisionCamera:
const frameOutput = useFrameOutput({
pixelFormat: 'rgb',
onFrame(frame) {
'worklet';
// Zero-copy approach (recommended)
const nativeBuffer = frame.getNativeBuffer();
const result = model.generateFromFrame(
{ nativeBuffer: nativeBuffer.pointer, width: frame.width, height: frame.height },
...args
);
nativeBuffer.release();
frame.dispose();
}
});
Parameters
frameData
Frame data object with either nativeBuffer (zero-copy) or data (ArrayBuffer)
args
...any[]
Additional model-specific arguments (e.g., threshold, options)
Returns
any
Model-specific output (e.g., detections, classifications, embeddings)
See
Frame for frame data format details
Inherited from
VisionModule.generateFromFrame
nativeModule
nativeModule:
any=null
Defined in: modules/BaseModule.ts:16
Internal
Native module instance (JSI Host Object)
Inherited from
VisionModule.nativeModule
Accessors
runOnFrame
Get Signature
get runOnFrame(): (
frame, ...args) =>TOutput
Defined in: modules/computer_vision/VisionModule.ts:61
Synchronous worklet function for real-time VisionCamera frame processing.
Only available after the model is loaded.
Use this for VisionCamera frame processing in worklets.
For async processing, use forward() instead.
Example
const model = new ClassificationModule();
await model.load({ modelSource: MODEL });
// Use the functional form of setState to store the worklet — passing it
// directly would cause React to invoke it immediately as an updater fn.
const [runOnFrame, setRunOnFrame] = useState(null);
setRunOnFrame(() => model.runOnFrame);
const frameOutput = useFrameOutput({
onFrame(frame) {
'worklet';
if (!runOnFrame) return;
const result = runOnFrame(frame, isFrontCamera);
frame.dispose();
}
});
Throws
If the model is not loaded.
Returns
A worklet function for frame processing.
(
frame, ...args):TOutput
Parameters
frame
args
...any[]
Returns
TOutput
Inherited from
VisionModule.runOnFrame
Methods
delete()
delete():
void
Defined in: modules/BaseModule.ts:81
Unloads the model from memory and releases native resources.
Always call this method when you're done with a model to prevent memory leaks.
Returns
void
Inherited from
VisionModule.delete
forward()
forward<
O>(input,outputType?):Promise<Oextends"url"?string:PixelData>
Defined in: modules/computer_vision/StyleTransferModule.ts:77
Executes style transfer on the provided image.
Type Parameters
O
O extends "pixelData" | "url" = "pixelData"
Parameters
input
Image source (string path/URI or PixelData from a frame library).
string | PixelData
outputType?
O
Controls the output format. Defaults to 'pixelData', which
returns raw RGBA pixels suitable for direct rendering. Pass 'url' to
have the stylized image saved to a temporary PNG on the device and
receive a file:// URI string instead.
Returns
Promise<O extends "url" ? string : PixelData>
A Promise resolving to either a PixelData object or a file:// URI string,
depending on outputType.
Overrides
VisionModule.forward
forwardET()
protectedforwardET(inputTensor):Promise<TensorPtr[]>
Defined in: modules/BaseModule.ts:62
Internal
Runs the model's forward method with the given input tensors. It returns the output tensors that mimic the structure of output from ExecuTorch.
Parameters
inputTensor
Array of input tensors.
Returns
Promise<TensorPtr[]>
Array of output tensors.
Inherited from
VisionModule.forwardET
getInputShape()
getInputShape(
methodName,index):Promise<number[]>
Defined in: modules/BaseModule.ts:72
Gets the input shape for a given method and index.
Parameters
methodName
string
method name
index
number
index of the argument which shape is requested
Returns
Promise<number[]>
The input shape as an array of numbers.
Inherited from
VisionModule.getInputShape
fromCustomModel()
staticfromCustomModel(modelSource,onDownloadProgress?):Promise<StyleTransferModule>
Defined in: modules/computer_vision/StyleTransferModule.ts:57
Creates a style transfer instance with a user-provided model binary. Use this when working with a custom-exported model that is not one of the built-in presets.
Parameters
modelSource
A fetchable resource pointing to the model binary.
onDownloadProgress?
(progress) => void
Optional callback to monitor download progress, receiving a value between 0 and 1.
Returns
Promise<StyleTransferModule>
A Promise resolving to a StyleTransferModule instance.
Remarks
The native model contract for this method is not formally defined and may change between releases. Refer to the native source code for the current expected tensor interface.
fromModelName()
staticfromModelName(namedSources,onDownloadProgress?):Promise<StyleTransferModule>
Defined in: modules/computer_vision/StyleTransferModule.ts:24
Creates a style transfer instance for a built-in model.
Parameters
namedSources
An object specifying which built-in model to load and where to fetch it from.
modelName
modelSource
onDownloadProgress?
(progress) => void
Optional callback to monitor download progress, receiving a value between 0 and 1.
Returns
Promise<StyleTransferModule>
A Promise resolving to a StyleTransferModule instance.