firemoon-ai-sdk-provider
v0.0.0
Published
AI SDK provider for Firemoon Studio - image and video generation
Maintainers
Readme
AI SDK - Firemoon Provider
The Firemoon provider for the AI SDK contains image and video generation support for the Firemoon Studio API.
Setup
The Firemoon provider is available in the firemoon-ai-sdk-provider module. You can install it with:
npm i firemoon-ai-sdk-providerProvider Instance
You can import the default provider instance firemoon from firemoon-ai-sdk-provider:
import { firemoon } from 'firemoon-ai-sdk-provider';Configuration
If you need to configure the provider, you can use the createFiremoon function:
import { createFiremoon } from 'firemoon-ai-sdk-provider';
const firemoon = createFiremoon({
apiKey: 'your-api-key', // defaults to FIREMOON_API_KEY environment variable
baseURL: 'https://firemoon.studio/api', // optional, defaults to Firemoon Studio API
});Usage
Image Generation
Generate images using FLUX models:
import { firemoon } from 'firemoon-ai-sdk-provider';
import { experimental_generateImage as generateImage } from 'ai';
const { image } = await generateImage({
model: firemoon.image('flux/dev'),
prompt: 'A serene mountain landscape at sunset',
});
const filename = `image-${Date.now()}.png`;
fs.writeFileSync(filename, image.uint8Array);
console.log(`Image saved to ${filename}`);Advanced Image Generation
Pass additional options using providerOptions:
const { image } = await generateImage({
model: firemoon.image('flux/dev'),
prompt: 'A futuristic city with flying cars',
size: 'landscape_16_9',
providerOptions: {
firemoon: {
guidance_scale: 7.5,
num_inference_steps: 35,
seed: 12345,
},
},
});Multiple Images
Generate multiple images in a single request:
const { images } = await generateImage({
model: firemoon.image('flux/dev'),
prompt: 'A beautiful sunset',
n: 4, // Generate 4 images
});
images.forEach((image, index) => {
fs.writeFileSync(`image-${index}.png`, image.uint8Array);
});Video Generation
Generate videos using Kling models:
const result = await generateImage({
model: firemoon.image('kling/kling-2-1-master'),
prompt: 'A butterfly emerging from its chrysalis',
providerOptions: {
firemoon: {
duration: '5',
aspect_ratio: '16:9',
},
},
});Supported Models
Image Models
FLUX Models
flux/dev- Fast, high-quality image generationflux/schnell- Rapid image generationflux/pro- Professional-grade images
Ideogram Models
ideogram/v3- Advanced image generationideogram/v3-turbo- Fast ideogram generationideogram/v3-character-edit- Character editing
Video Models
Kling Models
kling/kling-2-1-master- Professional video generationkling/kling-1-6- Video generation
Minimax Models
minimax/hailuo-02- Creative AI contentminimax/video-01- Video generation
Google Veo Models
google/veo-3-fast- Fast video generation
Model Options
Common Options
All models support these options via providerOptions.firemoon:
seed(number) - Random seed for reproducible resultsnum_images(number) - Number of images to generate (1-4)
Image Model Options
FLUX and Ideogram models support:
image_size(string) - Image dimensions:square_hd,square,portrait_4_3,portrait_16_9,landscape_4_3,landscape_16_9guidance_scale(number) - How closely to follow the prompt (1-20)num_inference_steps(number) - Number of denoising steps (1-50)
Video Model Options
Kling and video models support:
duration(string) - Video duration in secondsaspect_ratio(string) - Video aspect ratio:16:9,9:16,1:1
Authentication
You need a Firemoon Studio API key to use this provider. You can obtain one from:
- Sign in to Firemoon Studio
- Navigate to the API Keys page
- Create a new API key
Set your API key as an environment variable:
export FIREMOON_API_KEY=your_api_key_hereOr pass it directly when creating the provider:
const firemoon = createFiremoon({
apiKey: 'your_api_key_here',
});Error Handling
The provider handles various error scenarios:
- 401 Unauthorized - Invalid or missing API key
- 403 Forbidden - Access denied or insufficient credits
- 429 Too Many Requests - Rate limit exceeded
- 500 Internal Server Error - Generation failed
Example error handling:
try {
const { image } = await generateImage({
model: firemoon.image('flux/dev'),
prompt: 'A beautiful landscape',
});
} catch (error) {
console.error('Generation failed:', error.message);
}Documentation
For more information about Firemoon Studio:
For more information about the AI SDK:
Support
Need help? Contact Firemoon Studio at [email protected]
