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.

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.