Python API Reference

February 10, 2026 ยท View on GitHub

Complete reference for using the AI Content Generation Suite programmatically.

Quick Start

from packages.core.ai_content_pipeline.pipeline.manager import AIPipelineManager

# Initialize
manager = AIPipelineManager()

# Generate image
result = manager.generate_image(
    prompt="a beautiful sunset",
    model="flux_dev"
)
print(f"Image saved to: {result.output_path}")

AIPipelineManager

Main class for all pipeline operations.

Initialization

from packages.core.ai_content_pipeline.pipeline.manager import AIPipelineManager

manager = AIPipelineManager(
    output_dir="output",      # Output directory
    parallel=False,           # Enable parallel processing
    log_level="INFO"          # Logging level
)

Methods

generate_image()

Generate an image from text.

result = manager.generate_image(
    prompt: str,              # Text prompt (required)
    model: str = "flux_dev",  # Model to use
    width: int = 1024,        # Image width
    height: int = 1024,       # Image height
    aspect_ratio: str = None, # Alternative to width/height
    seed: int = None,         # Random seed
    output_path: str = None   # Custom output path
)

Returns: GenerationResult

Example:

result = manager.generate_image(
    prompt="epic dragon in flight",
    model="flux_dev",
    aspect_ratio="16:9"
)
print(f"Image: {result.output_path}")
print(f"Cost: ${result.cost:.4f}")

create_video()

Create video from text (image + video generation).

result = manager.create_video(
    prompt: str,                      # Text prompt (required)
    image_model: str = "flux_dev",    # Image model
    video_model: str = "auto",        # Video model
    duration: int = 5,                # Video duration
    output_path: str = None           # Custom output path
)

Returns: GenerationResult

Example:

result = manager.create_video(
    prompt="serene mountain lake",
    video_model="kling_2_6_pro",
    duration=8
)

image_to_video()

Convert existing image to video.

result = manager.image_to_video(
    image_path: str,                  # Input image (required)
    model: str = "kling_2_6_pro",     # Video model
    prompt: str = None,               # Motion description
    duration: int = 5,                # Video duration
    output_path: str = None           # Custom output path
)

Returns: GenerationResult

Example:

result = manager.image_to_video(
    image_path="photo.png",
    model="sora_2",
    prompt="gentle camera pan",
    duration=8
)

text_to_video()

Generate video directly from text.

result = manager.text_to_video(
    prompt: str,                  # Text prompt (required)
    model: str = "hailuo_pro",    # Video model
    duration: int = 6,            # Video duration
    resolution: str = "720p",     # Resolution
    output_path: str = None       # Custom output path
)

Returns: GenerationResult


analyze_image()

Analyze image with AI.

result = manager.analyze_image(
    image_path: str,                  # Input image (required)
    model: str = "gemini_describe",   # Analysis model
    question: str = None              # Question for QA model
)

Returns: AnalysisResult

Example:

result = manager.analyze_image(
    image_path="photo.png",
    model="gemini_qa",
    question="What objects are visible?"
)
print(result.description)

text_to_speech()

Convert text to speech.

result = manager.text_to_speech(
    text: str,                    # Text to convert (required)
    model: str = "elevenlabs",    # TTS model
    voice: str = "Rachel",        # Voice name
    output_path: str = None       # Custom output path
)

Returns: GenerationResult


run_pipeline()

Execute a complete pipeline from configuration.

results = manager.run_pipeline(
    config: Union[str, dict],     # YAML path or config dict
    input_text: str = None,       # Input for {{input}} variable
    parallel: bool = False        # Enable parallel execution
)

Returns: List[StepResult]

Example:

# From YAML file
results = manager.run_pipeline(
    config="pipeline.yaml",
    input_text="beautiful landscape"
)

# From dict
results = manager.run_pipeline(
    config={
        "name": "Quick Pipeline",
        "steps": [
            {
                "type": "text_to_image",
                "model": "flux_schnell",
                "params": {"prompt": "{{input}}"}
            }
        ]
    },
    input_text="ocean sunset"
)

estimate_cost()

Estimate pipeline cost before execution.

estimate = manager.estimate_cost(
    config: Union[str, dict]      # YAML path or config dict
)

Returns: CostEstimate

Example:

estimate = manager.estimate_cost("pipeline.yaml")
print(f"Estimated cost: ${estimate.total:.2f}")
print(f"Steps: {estimate.breakdown}")

list_models()

Get available models.

models = manager.list_models(
    category: str = None,     # Filter by category
    provider: str = None      # Filter by provider
)

Returns: List[ModelInfo]


Data Classes

GenerationResult

@dataclass
class GenerationResult:
    success: bool           # Whether generation succeeded
    output_path: str        # Path to output file
    model: str              # Model used
    cost: float             # Cost in USD
    duration: float         # Time taken in seconds
    metadata: dict          # Additional metadata
    error: str = None       # Error message if failed

AnalysisResult

@dataclass
class AnalysisResult:
    success: bool           # Whether analysis succeeded
    description: str        # Analysis result text
    model: str              # Model used
    cost: float             # Cost in USD
    metadata: dict          # Additional metadata

StepResult

@dataclass
class StepResult:
    step_name: str          # Name of the step
    step_type: str          # Type of step
    success: bool           # Whether step succeeded
    output: Any             # Step output
    cost: float             # Step cost
    duration: float         # Step duration

CostEstimate

@dataclass
class CostEstimate:
    total: float            # Total estimated cost
    breakdown: dict         # Per-step breakdown
    warnings: List[str]     # Any cost warnings

ModelInfo

@dataclass
class ModelInfo:
    name: str               # Model identifier
    display_name: str       # Human-readable name
    category: str           # Model category
    provider: str           # Provider name
    cost: float             # Cost per unit
    description: str        # Model description

Error Handling

from packages.core.ai_content_pipeline.exceptions import (
    PipelineError,
    ModelNotFoundError,
    APIError,
    ConfigurationError
)

try:
    result = manager.generate_image(prompt="test", model="invalid_model")
except ModelNotFoundError as e:
    print(f"Model not found: {e}")
except APIError as e:
    print(f"API error: {e}")
except PipelineError as e:
    print(f"Pipeline error: {e}")

Exception Types

ExceptionDescription
PipelineErrorBase exception for all pipeline errors
ModelNotFoundErrorSpecified model doesn't exist
APIErrorError from external API
ConfigurationErrorInvalid configuration
CostLimitExceededOperation exceeds cost limit

Advanced Usage

Building Pipelines Programmatically

from packages.core.ai_content_pipeline.pipeline.manager import AIPipelineManager

manager = AIPipelineManager()

# Build pipeline using dict configuration
config = {
    "name": "Custom Pipeline",
    "steps": [
        {
            "name": "generate",
            "type": "text_to_image",
            "model": "flux_dev",
            "params": {"prompt": "{{input}}"}
        },
        {
            "name": "animate",
            "type": "image_to_video",
            "model": "kling_2_6_pro",
            "input_from": "generate",
            "params": {"duration": 5}
        }
    ]
}

results = manager.run_pipeline(config, input_text="sunset beach")

Parallel Processing

# Enable parallel for specific run
results = manager.run_pipeline(
    config="pipeline.yaml",
    parallel=True
)

# Or set globally
manager.parallel = True

Event Callbacks

def on_step_complete(step_result):
    print(f"Step {step_result.step_name} completed")

def on_error(error):
    print(f"Error: {error}")

manager.on_step_complete = on_step_complete
manager.on_error = on_error

results = manager.run_pipeline("pipeline.yaml")

Cost Tracking

# Track costs across multiple operations
with manager.track_costs() as tracker:
    manager.generate_image(prompt="test 1")
    manager.generate_image(prompt="test 2")
    manager.create_video(prompt="test 3")

print(f"Total cost: ${tracker.total:.2f}")
print(f"Operations: {tracker.count}")

Integration Examples

Flask Web App

from flask import Flask, request, jsonify
from packages.core.ai_content_pipeline.pipeline.manager import AIPipelineManager

app = Flask(__name__)
manager = AIPipelineManager()

@app.route('/generate-image', methods=['POST'])
def generate_image():
    prompt = request.json.get('prompt')
    result = manager.generate_image(prompt=prompt)
    return jsonify({
        'success': result.success,
        'path': result.output_path,
        'cost': result.cost
    })

Concurrent Usage with Threading

from concurrent.futures import ThreadPoolExecutor
from packages.core.ai_content_pipeline.pipeline.manager import AIPipelineManager

manager = AIPipelineManager()

def generate(prompt):
    return manager.generate_image(prompt=prompt)

# Parallel generation using threads
prompts = ["cat", "dog", "bird"]

with ThreadPoolExecutor(max_workers=3) as executor:
    results = list(executor.map(generate, prompts))

for result in results:
    print(result.output_path)

Note: For built-in parallel execution, use YAML pipelines with parallel_group or enable PIPELINE_PARALLEL_ENABLED=true.