diff --git a/docs/docs/06-api-reference/classes/TextToImageModule.md b/docs/docs/06-api-reference/classes/TextToImageModule.md index e2b057a733..da64f07ab3 100644 --- a/docs/docs/06-api-reference/classes/TextToImageModule.md +++ b/docs/docs/06-api-reference/classes/TextToImageModule.md @@ -178,7 +178,7 @@ The input shape as an array of numbers. > **interrupt**(): `void` -Defined in: [modules/computer_vision/TextToImageModule.ts:133](https://github.com/software-mansion/react-native-executorch/blob/main/packages/react-native-executorch/src/modules/computer_vision/TextToImageModule.ts#L133) +Defined in: [modules/computer_vision/TextToImageModule.ts:138](https://github.com/software-mansion/react-native-executorch/blob/main/packages/react-native-executorch/src/modules/computer_vision/TextToImageModule.ts#L138) Interrupts model generation. The model is stopped in the nearest step. diff --git a/packages/expo-resource-fetcher/package.json b/packages/expo-resource-fetcher/package.json index 7cf89487f1..811eefe634 100644 --- a/packages/expo-resource-fetcher/package.json +++ b/packages/expo-resource-fetcher/package.json @@ -27,8 +27,8 @@ }, "peerDependencies": { "expo": ">=54.0.0", - "expo-asset": "^12.0.0", - "expo-file-system": "^19.0.0", + "expo-asset": ">=12.0.0", + "expo-file-system": ">=19.0.0", "react-native": "*", "react-native-executorch": "*" }, diff --git a/packages/react-native-executorch/src/modules/computer_vision/TextToImageModule.ts b/packages/react-native-executorch/src/modules/computer_vision/TextToImageModule.ts index d22ff99462..c7c6db682f 100644 --- a/packages/react-native-executorch/src/modules/computer_vision/TextToImageModule.ts +++ b/packages/react-native-executorch/src/modules/computer_vision/TextToImageModule.ts @@ -1,7 +1,7 @@ import { ResourceFetcher } from '../../utils/ResourceFetcher'; import { ResourceSource } from '../../types/common'; import { BaseModule } from '../BaseModule'; -import { Buffer } from 'buffer'; + import { PNG } from 'pngjs/browser'; import { RnExecutorchErrorCode } from '../../errors/ErrorCodes'; import { parseUnknownError, RnExecutorchError } from '../../errors/errorUtils'; @@ -121,10 +121,15 @@ export class TextToImageModule extends BaseModule { return ''; } const png = new PNG({ width: imageSize, height: imageSize }); - png.data = Buffer.from(outputArray); + png.data = outputArray as unknown as Buffer; const pngBuffer = PNG.sync.write(png, { colorType: 6 }); - const pngString = pngBuffer.toString('base64'); - return pngString; + const pngArray = new Uint8Array(pngBuffer as unknown as ArrayBufferLike); + let binary = ''; + const chunkSize = 8192; + for (let i = 0; i < pngArray.length; i += chunkSize) { + binary += String.fromCharCode(...pngArray.subarray(i, i + chunkSize)); + } + return btoa(binary); } /** diff --git a/yarn.lock b/yarn.lock index 829e4f42fe..f839c07a60 100644 --- a/yarn.lock +++ b/yarn.lock @@ -4450,8 +4450,8 @@ __metadata: typescript: "npm:~5.9.2" peerDependencies: expo: ">=54.0.0" - expo-asset: ^12.0.0 - expo-file-system: ^19.0.0 + expo-asset: ">=12.0.0" + expo-file-system: ">=19.0.0" react-native: "*" react-native-executorch: "*" languageName: unknown