FPS-Studio / modules /pipelines /base_pipeline.py
rahul7star's picture
Migrated from GitHub
05fcd0f verified
"""
Base pipeline class for FramePack Studio.
All pipeline implementations should inherit from this class.
"""
import os
from modules.pipelines.metadata_utils import create_metadata
class BasePipeline:
"""Base class for all pipeline implementations."""
def __init__(self, settings):
"""
Initialize the pipeline with settings.
Args:
settings: Dictionary of settings for the pipeline
"""
self.settings = settings
def prepare_parameters(self, job_params):
"""
Prepare parameters for the job.
Args:
job_params: Dictionary of job parameters
Returns:
Processed parameters dictionary
"""
# Default implementation just returns the parameters as-is
return job_params
def validate_parameters(self, job_params):
"""
Validate parameters for the job.
Args:
job_params: Dictionary of job parameters
Returns:
Tuple of (is_valid, error_message)
"""
# Default implementation assumes all parameters are valid
return True, None
def preprocess_inputs(self, job_params):
"""
Preprocess input images/videos for the job.
Args:
job_params: Dictionary of job parameters
Returns:
Processed inputs dictionary
"""
# Default implementation returns an empty dictionary
return {}
def handle_results(self, job_params, result):
"""
Handle the results of the job.
Args:
job_params: Dictionary of job parameters
result: The result of the job
Returns:
Processed result
"""
# Default implementation just returns the result as-is
return result
def create_metadata(self, job_params, job_id):
"""
Create metadata for the job.
Args:
job_params: Dictionary of job parameters
job_id: The job ID
Returns:
Metadata dictionary
"""
return create_metadata(job_params, job_id, self.settings)