Spaces:
Runtime error
Runtime error
# Editing Framework Module Documentation | |
The `editing_framework` module provides a set of classes and functions for editing videos and images. This module is part of the `shortGPT` project and is designed to be used with the `CoreEditingEngine` class to generate videos and images based on a specified editing schema. | |
## Module Files | |
The `editing_framework` module consists of three files: | |
1. `rendering_logger.py`: This file contains the `MoviepyProgressLogger` class, which is used for logging the progress of the rendering process. | |
2. `editing_engine.py`: This file contains the `EditingStep` and `Flow` enums, as well as the `EditingEngine` class, which is the main class for managing the editing process. | |
3. `core_editing_engine.py`: This file contains the `CoreEditingEngine` class, which is responsible for generating videos and images based on the editing schema. | |
## `rendering_logger.py` | |
This file defines the `MoviepyProgressLogger` class, which is a subclass of `ProgressBarLogger` from the `proglog` module. It provides a callback function for logging the progress of the rendering process. The `MoviepyProgressLogger` class has the following methods: | |
### `__init__(self, callBackFunction=None)` | |
- Initializes a new instance of the `MoviepyProgressLogger` class. | |
- Parameters: | |
- `callBackFunction`: An optional callback function that will be called with the progress string. | |
### `bars_callback(self, bar, attr, value, old_value=None)` | |
- This method is called every time the logger progress is updated. | |
- It calculates the rendering progress and the estimated time left. | |
- It calls the callback function with the progress string or prints the progress string if no callback function is provided. | |
- Parameters: | |
- `bar`: The progress bar name. | |
- `attr`: The progress attribute name. | |
- `value`: The current progress value. | |
- `old_value`: The previous progress value. | |
### `format_time(self, seconds)` | |
- Formats the given time in seconds to the format "mm:ss". | |
- Parameters: | |
- `seconds`: The time in seconds. | |
- Returns: | |
- The formatted time string. | |
## `editing_engine.py` | |
This file defines the `EditingStep` and `Flow` enums, as well as the `EditingEngine` class, which is responsible for managing the editing process. The `EditingEngine` class has the following methods: | |
### `__init__(self)` | |
- Initializes a new instance of the `EditingEngine` class. | |
- It initializes the editing step tracker and the editing schema. | |
### `addEditingStep(self, editingStep: EditingStep, args: Dict[str, any] = {})` | |
- Adds an editing step to the editing schema with the specified arguments. | |
- Parameters: | |
- `editingStep`: The editing step to add. | |
- `args`: The arguments for the editing step. | |
- Raises: | |
- `Exception`: If a required argument is missing. | |
### `ingestFlow(self, flow: Flow, args)` | |
- Ingests a flow into the editing schema with the specified arguments. | |
- Parameters: | |
- `flow`: The flow to ingest. | |
- `args`: The arguments for the flow. | |
- Raises: | |
- `Exception`: If a required argument is missing. | |
### `dumpEditingSchema(self)` | |
- Returns the current editing schema. | |
### `renderVideo(self, outputPath, logger=None)` | |
- Renders the video based on the editing schema and saves it to the specified output path. | |
- Parameters: | |
- `outputPath`: The path to save the rendered video. | |
- `logger`: An optional logger object for logging the rendering progress. | |
### `renderImage(self, outputPath)` | |
- Renders the image based on the editing schema and saves it to the specified output path. | |
- Parameters: | |
- `outputPath`: The path to save the rendered image. | |
## `core_editing_engine.py` | |
This file defines the `CoreEditingEngine` class, which is responsible for generating videos and images based on the editing schema. The `CoreEditingEngine` class has the following methods: | |
### `generate_image(self, schema:Dict[str, Any], output_file)` | |
- Generates an image based on the editing schema and saves it to the specified output file. | |
- Parameters: | |
- `schema`: The editing schema. | |
- `output_file`: The path to save the generated image. | |
- Returns: | |
- The path to the saved image. | |
### `generate_video(self, schema:Dict[str, Any], output_file, logger=None)` | |
- Generates a video based on the editing schema and saves it to the specified output file. | |
- Parameters: | |
- `schema`: The editing schema. | |
- `output_file`: The path to save the generated video. | |
- `logger`: An optional logger object for logging the rendering progress. | |
- Returns: | |
- The path to the saved video. | |
### `process_common_actions(self, clip: Union[VideoFileClip, ImageClip, TextClip, AudioFileClip], actions: List[Dict[str, Any]])` | |
- Processes common actions for the given clip. | |
- Parameters: | |
- `clip`: The clip to process. | |
- `actions`: The list of actions to apply to the clip. | |
- Returns: | |
- The processed clip. | |
### `process_common_visual_actions(self, clip: Union[VideoFileClip, ImageClip, TextClip], actions: List[Dict[str, Any]])` | |
- Processes common visual clip actions for the given clip. | |
- Parameters: | |
- `clip`: The clip to process. | |
- `actions`: The list of actions to apply to the clip. | |
- Returns: | |
- The processed clip. | |
### `process_audio_actions(self, clip: AudioFileClip, actions: List[Dict[str, Any]])` | |
- Processes audio actions for the given audio clip. | |
- Parameters: | |
- `clip`: The audio clip to process. | |
- `actions`: The list of actions to apply to the audio clip. | |
- Returns: | |
- The processed audio clip. | |
### `process_video_asset(self, asset: Dict[str, Any])` | |
- Processes a video asset based on the asset parameters and actions. | |
- Parameters: | |
- `asset`: The video asset to process. | |
- Returns: | |
- The processed video clip. | |
### `process_image_asset(self, asset: Dict[str, Any])` | |
- Processes an image asset based on the asset parameters and actions. | |
- Parameters: | |
- `asset`: The image asset to process. | |
- Returns: | |
- The processed image clip. | |
### `process_text_asset(self, asset: Dict[str, Any])` | |
- Processes a text asset based on the asset parameters and actions. | |
- Parameters: | |
- `asset`: The text asset to process. | |
- Returns: | |
- The processed text clip. | |
### `process_audio_asset(self, asset: Dict[str, Any])` | |
- Processes an audio asset based on the asset parameters and actions. | |
- Parameters: | |
- `asset`: The audio asset to process. | |
- Returns: | |
- The processed audio clip. | |
### `__normalize_image(self, clip)` | |
- Normalizes the image clip. | |
- Parameters: | |
- `clip`: The image clip to normalize. | |
- Returns: | |
- The normalized image clip. | |
### `__normalize_frame(self, frame)` | |
- Normalizes the given frame. | |
- Parameters: | |
- `frame`: The frame to normalize. | |
- Returns: | |
- The normalized frame. |