Skip to main content

Overview

FalImageGenService provides high-speed image generation capabilities using fal’s optimized Stable Diffusion XL models. It supports various image sizes, formats, and generation parameters with a focus on fast inference and low-latency image creation.

Fal Image Gen API Reference

Pipecat’s API methods for fal image generation integration

Example Implementation

Browse examples using fal image generation

fal Documentation

Official fal API documentation and model guides

fal Platform

Access fast SDXL models and manage API keys

Installation

To use fal image generation services, install the required dependencies:
pip install "pipecat-ai[fal]"

Prerequisites

fal Account Setup

Before using fal image generation services, you need:
  1. fal Account: Sign up at fal Platform
  2. API Key: Generate an API key from your account dashboard
  3. Model Selection: Choose from available fast SDXL models
  4. HTTP Session: Configure aiohttp session for image downloading

Required Environment Variables

  • FAL_KEY: Your fal API key for authentication

Configuration

params
InputParams
deprecated
Input parameters for image generation configuration. Deprecated in v0.0.105. Use settings=FalImageGenService.Settings(...) instead.
aiohttp_session
aiohttp.ClientSession
required
HTTP client session for downloading generated images.
model
str
default:"fal-ai/fast-sdxl"
deprecated
The fal model to use for image generation. Deprecated in v0.0.105. Use settings=FalImageGenService.Settings(model=...) instead.
key
str
default:"None"
Optional API key for fal. If provided, sets the FAL_KEY environment variable.
settings
FalImageGenService.Settings
default:"None"
Runtime-configurable generation settings. See Settings below.

Settings

Runtime-configurable settings passed via the settings constructor argument using FalImageGenService.Settings(...). See Service Settings for details.
ParameterTypeDefaultDescription
modelstrNOT_GIVENFal model identifier. (Inherited from base settings.)
seedint | NoneNOT_GIVENRandom seed for reproducible generation. If None, uses a random seed.
num_inference_stepsintNOT_GIVENNumber of inference steps for generation.
num_imagesintNOT_GIVENNumber of images to generate.
image_sizestr | dictNOT_GIVENImage dimensions as a string preset or dict with width/height keys.
expand_promptboolNOT_GIVENWhether to automatically expand/enhance the prompt.
enable_safety_checkerboolNOT_GIVENWhether to enable content safety filtering.
formatstrNOT_GIVENOutput image format.
NOT_GIVEN values are omitted from the request, letting the service use its own defaults ("fal-ai/fast-sdxl" for model, 8 for num_inference_steps, "square_hd" for image_size, etc.). Only parameters that are explicitly set are included.

Usage

Basic Setup

import aiohttp
from pipecat.services.fal import FalImageGenService

async with aiohttp.ClientSession() as session:
    image_gen = FalImageGenService(
        aiohttp_session=session,
        key=os.getenv("FAL_KEY"),
        settings=FalImageGenService.Settings(
            image_size="landscape_16_9",
        ),
    )

With Custom Settings

image_gen = FalImageGenService(
    aiohttp_session=session,
    key=os.getenv("FAL_KEY"),
    settings=FalImageGenService.Settings(
        model="fal-ai/fast-sdxl",
        image_size={"width": 1024, "height": 768},
        num_inference_steps=12,
        seed=42,
        enable_safety_checker=True,
    ),
)
The InputParams / params= pattern is deprecated as of v0.0.105. Use Settings / settings= instead. See the Service Settings guide for migration details.

Notes

  • Environment variable: If the key constructor parameter is provided, it sets the FAL_KEY environment variable automatically.
  • HTTP session required: You must provide an aiohttp.ClientSession for downloading the generated images from fal’s URLs.
  • Image size presets: The image_size parameter accepts string presets (e.g., "square_hd", "landscape_16_9") or a dictionary with explicit width and height values.