@umituz/react-native-ai-fal-provider
v3.2.30
Published
FAL AI provider for React Native - implements IAIProvider interface for unified AI generation
Downloads
12,260
Maintainers
Readme
@umituz/react-native-ai-fal-provider
FAL AI provider for React Native - Unified AI generation with IAIProvider interface implementation.
Documentation Strategy
Important: This documentation follows a code-example-free approach.
- No Code Examples: Documentation references file paths instead of showing code
- Path-Based References: Always references actual file locations
- Maintainable: Documentation stays valid when implementation changes
For detailed guidelines, see: .docs-template.md
Features
- Text-to-Image Generation - Generate images from text prompts (Flux models)
- Text-to-Video Generation - Create videos from text descriptions
- Image-to-Video Conversion - Transform images into videos
- Image Processing - Advanced image editing capabilities
- Video Features - AI-powered video generation
- Model Management - Dynamic pricing and model selection
- Error Handling - Categorization and retry logic
- Job Management - Complete job lifecycle tracking
Installation
npm install @umituz/react-native-ai-fal-provider @fal-ai/clientQuick Start
1. Initialize Provider
Location: src/infrastructure/services/fal-provider.ts
Import:
import { falProvider } from '@umituz/react-native-ai-fal-provider';Usage:
Call falProvider.initialize() with your API key and configuration options.
Implementation: See src/infrastructure/services/fal-provider.ts for complete initialization options.
2. Use React Hooks
Locations:
src/presentation/hooks/use-fal-generation.ts- Generation managementsrc/presentation/hooks/use-models.ts- Model selection
Import:
import { useFalGeneration, useModels } from '@umituz/react-native-ai-fal-provider';Usage:
- Use
useFalGenerationhook for managing AI generation operations - Use
useModelshook for model selection and management
Implementation: See hook files for complete API and options.
Core Features
Text-to-Image Generation
Location: src/domain/constants/models/text-to-image.models.ts
Models:
- Flux Schnell (1 credit) - Fast generation
- Flux Dev (2 credits) - High quality
- Flux Pro (3 credits) - Professional quality
Usage:
Use model IDs from DEFAULT_TEXT_TO_IMAGE_MODELS constant with falProvider.subscribe().
Related:
- Model definitions:
src/domain/constants/models/text-to-image.models.ts - Default models:
src/domain/constants/default-models.constants.ts
Text-to-Video Generation
Location: src/domain/constants/models/text-to-video.models.ts
Models:
- Hunyuan (10 credits) - Balanced quality/speed
- MiniMax (15 credits) - High quality
- Kling 1.5 (20 credits) - Premium
- Mochi (8 credits) - Fast
Usage:
Select model from DEFAULT_TEXT_TO_VIDEO_MODELS and pass to provider.
Related:
- Video models:
src/domain/constants/models/text-to-video.models.ts
Image Features
Location: src/infrastructure/builders/image-feature-builder.ts
Available Features:
- Upscale (2x, 4x) -
src/infrastructure/utils/image-feature-builders.util.ts - Photo Restore - Enhance old photos
- Face Swap - Swap faces between images
- Remove Background - Clean background removal
- Remove Object - Object removal and inpainting
- Replace Background - Replace image background
- HD Touch Up - Enhance image quality
- Anime Selfie - Transform to anime style
Usage:
- Use
buildUpscaleInput()fromsrc/infrastructure/utils/image-feature-builders.util.ts - Use
buildRemoveBackgroundInput()for background removal - Use
buildFaceSwapInput()for face swapping - See
src/infrastructure/builders/image-feature-builder.tsfor complete list
Related:
- Image builders:
src/infrastructure/utils/image-feature-builders.util.ts
Video Features
Location: src/infrastructure/builders/video-feature-builder.ts
Features:
- Image-to-Video - Convert images to video
- Text-to-Video - Generate video from text prompts
Usage:
Use buildVideoFromImageInput() from src/infrastructure/utils/video-feature-builders.util.ts
Related:
- Video builders:
src/infrastructure/utils/video-feature-builders.util.ts
API Reference
FalProvider
Location: src/infrastructure/services/fal-provider.ts
Purpose: Main provider class for FAL AI operations
Import:
import { falProvider } from '@umituz/react-native-ai-fal-provider';Key Methods:
initialize()- Set up provider with API keysubscribe()- Subscribe to generation job with pollingrun()- Run generation jobsubmitJob()- Submit job to queuegetJobStatus()- Check job statusgetJobResult()- Get job resultcancelCurrentRequest()- Cancel current requesthasRunningRequest()- Check for active requests
Implementation: See src/infrastructure/services/fal-provider.ts for complete API
Related:
- Provider constants:
src/infrastructure/services/fal-provider.constants.ts - Subscription handler:
src/infrastructure/services/fal-provider-subscription.ts
useFalGeneration Hook
Location: src/presentation/hooks/use-fal-generation.ts
Purpose: React hook for managing AI generation operations
Import:
import { useFalGeneration } from '@umituz/react-native-ai-fal-provider';Returns:
data- Generation resulterror- Error informationisLoading- Loading stateisRetryable- Whether error can be retriedgenerate()- Start generation functionretry()- Retry failed generationcancel()- Cancel current generationreset()- Reset state
Usage Guidelines: Use this hook when you need to manage AI generation in React components. It handles loading states, errors, and retries automatically.
Implementation: See src/presentation/hooks/use-fal-generation.ts for options and callbacks
useModels Hook
Location: src/presentation/hooks/use-models.ts
Purpose: React hook for managing AI model selection
Import:
import { useModels } from '@umituz/react-native-ai-fal-provider';Returns:
models- Available models arrayselectedModel- Currently selected modelselectModel()- Select model functioncreditCost- Cost in creditsmodelId- Selected model IDisLoading- Loading stateerror- Error informationrefreshModels()- Refresh models function
Usage Guidelines: Use this hook to provide model selection UI and dynamic pricing information.
Implementation: See src/presentation/hooks/use-models.ts for configuration options
Type Definitions
Core Types
Location: src/domain/entities/fal.types.ts
Types:
FalConfig- Provider configurationFalModel- Model definitionFalJobInput- Job input structureFalJobResult- Job result structureFalQueueStatus- Queue status structure
Import:
import type {
FalConfig,
FalModel,
FalJobInput,
FalJobResult
} from '@umituz/react-native-ai-fal-provider';Error Types
Location: src/domain/entities/error.types.ts
Types:
FalErrorType- Error type enumerationFalErrorCategory- Error categoryFalErrorInfo- Error information structure
Usage:
Use error types from src/domain/entities/error.types.ts for type-safe error handling.
Related:
- Error mapper:
src/infrastructure/utils/error-mapper.ts - Error categorizer:
src/infrastructure/utils/error-categorizer.ts
Input Builder Types
Location: src/domain/types/input-builders.types.ts
Types:
UpscaleOptions- Upscale operation optionsPhotoRestoreOptions- Photo restore optionsImageToImagePromptConfig- Image-to-image configurationVideoFromImageOptions- Video generation optionsFaceSwapOptions- Face swap options
Usage:
Use these types when calling input builder functions from src/infrastructure/utils/.
Utilities
Error Handling
Location: src/infrastructure/utils/error-mapper.ts
Functions:
mapFalError()- Map FAL errors to standard formatisFalErrorRetryable()- Check if error can be retried
Import:
import { mapFalError, isFalErrorRetryable } from '@umituz/react-native-ai-fal-provider';Usage: Use these functions to handle errors consistently across your application.
Input Builders
Locations:
src/infrastructure/utils/image-feature-builders.util.ts- Image featuressrc/infrastructure/utils/video-feature-builders.util.ts- Video featuressrc/infrastructure/utils/base-builders.util.ts- Base builders
Functions:
buildUpscaleInput()- Build upscale inputbuildRemoveBackgroundInput()- Build background removal inputbuildFaceSwapInput()- Build face swap inputbuildVideoFromImageInput()- Build video generation input
Usage: Import builder functions and use them to construct API-compatible input objects.
Type Guards
Location: src/infrastructure/utils/type-guards.util.ts
Functions:
isValidBase64Image()- Validate base64 image dataisValidApiKey()- Validate API key formatisValidPrompt()- Validate prompt textisFalModelType()- Check FAL model type
Import:
import {
isValidBase64Image,
isValidApiKey,
isFalModelType
} from '@umituz/react-native-ai-fal-provider';Usage: Use these guards to validate inputs before making API calls.
Helper Functions
Location: src/infrastructure/utils/helpers.util.ts
Functions:
formatImageDataUri()- Format image data URIextractBase64()- Extract base64 from data URIformatCreditCost()- Format credit cost for displaytruncatePrompt()- Truncate prompt to max lengthsanitizePrompt()- Sanitize prompt text
Import:
import {
formatImageDataUri,
formatCreditCost,
truncatePrompt
} from '@umituz/react-native-ai-fal-provider';Usage: Use these helpers for common data formatting operations.
Job Management
Location: src/infrastructure/utils/job-metadata/index.ts
Functions:
createJobMetadata()- Create job tracking metadataupdateJobMetadata()- Update job metadataisJobCompleted()- Check if job completedgetJobDuration()- Get job durationserializeJobMetadata()- Serialize for storagedeserializeJobMetadata()- Deserialize from storage
Import:
import {
createJobMetadata,
updateJobMetadata,
saveJobMetadata,
loadJobMetadata
} from '@umituz/react-native-ai-fal-provider';Usage: Use these functions to track and persist job state.
Constants
Default Models
Location: src/domain/constants/default-models.constants.ts
Exports:
DEFAULT_TEXT_TO_IMAGE_MODELS- Text-to-image model listDEFAULT_TEXT_TO_VIDEO_MODELS- Text-to-video model listDEFAULT_IMAGE_TO_VIDEO_MODELS- Image-to-video model listDEFAULT_TEXT_TO_VOICE_MODELS- Text-to-voice model list
Functions:
getAllDefaultModels()- Get all modelsgetDefaultModelsByType()- Get models by typegetDefaultModel()- Get default model for typefindModelById()- Find model by ID
Import:
import {
DEFAULT_TEXT_TO_IMAGE_MODELS,
getDefaultModel
} from '@umituz/react-native-ai-fal-provider';Feature Models
Location: src/domain/constants/feature-models.constants.ts
Exports:
FAL_IMAGE_FEATURE_MODELS- Image feature model mappingsFAL_VIDEO_FEATURE_MODELS- Video feature model mappings
Functions:
getAllFeatureModels()- Get all feature models
Usage: Use these constants to find model IDs for specific features.
Provider Constants
Location: src/infrastructure/services/fal-provider.constants.ts
Constants:
DEFAULT_FAL_CONFIG- Default provider configurationFAL_CAPABILITIES- Provider capabilities
Usage: Reference these constants for configuration options and supported features.
Services
FalProvider Service
Location: src/infrastructure/services/fal-provider.ts
Purpose: Main service class implementing IAIProvider interface
Import:
import { falProvider } from '@umituz/react-native-ai-fal-provider';Singleton: Use the exported falProvider instance
FalModelsService
Location: src/infrastructure/services/fal-models.service.ts
Purpose: Model management service
Import:
import { falModelsService } from '@umituz/react-native-ai-fal-provider';Usage: Use this service for advanced model management operations.
Validators
NSFW Content Validator
Location: src/infrastructure/validators/nsfw-validator.ts
Function: validateNSFWContent()
Import:
import { validateNSFWContent } from '@umituz/react-native-ai-fal-provider';Purpose: Validate AI-generated content for inappropriate material
Usage: Call this function on generation results to ensure content safety.
Throws: NSFWContentError if NSFW content detected
Related:
- Error class:
src/infrastructure/services/nsfw-content-error.ts
Documentation Index
Models
Features
Core Services
Error Handling
Utilities
React Integration
Types
For AI Agents
When Working with This Codebase
DO:
- Read the actual source files before writing code
- Follow existing patterns in the codebase
- Use types from
src/domain/types/ - Respect the architecture (domain/infrastructure/presentation)
- Maintain type safety
- Update documentation when adding features
DON'T:
- Write code without reading existing implementations
- Make assumptions about code structure
- Skip type definitions
- Ignore documentation paths
- Create parallel implementations
File Finding
When documentation mentions a file path:
- Navigate to that exact path
- Read the file completely
- Understand exports and types
- Follow the implementation pattern
- Apply to your use case
Implementation Patterns
For New Features:
- Define types in
src/domain/types/ - Implement in appropriate layer (domain/infrastructure/presentation)
- Export from
src/index.ts - Update documentation
- Follow existing patterns
For Modifications:
- Read the complete file first
- Understand dependencies
- Make changes while maintaining patterns
- Update type definitions if needed
- Test thoroughly
Support
Documentation: See individual README files in each directory
Issues: Report issues at https://github.com/umituz/react-native-ai-fal-provider/issues
Author: Umit UZ [email protected]
License: MIT
