Add ImageGenService docstrings
This commit is contained in:
@@ -4,6 +4,12 @@
|
||||
# SPDX-License-Identifier: BSD 2-Clause License
|
||||
#
|
||||
|
||||
"""Image generation service implementation.
|
||||
|
||||
Provides base functionality for AI-powered image generation services that convert
|
||||
text prompts into images.
|
||||
"""
|
||||
|
||||
from abc import abstractmethod
|
||||
from typing import AsyncGenerator
|
||||
|
||||
@@ -13,15 +19,46 @@ from pipecat.services.ai_service import AIService
|
||||
|
||||
|
||||
class ImageGenService(AIService):
|
||||
"""Base class for image generation services.
|
||||
|
||||
Processes TextFrames by using their content as prompts for image generation.
|
||||
Subclasses must implement the run_image_gen method to provide actual image
|
||||
generation functionality using their specific AI service.
|
||||
|
||||
Args:
|
||||
**kwargs: Additional arguments passed to the parent AIService.
|
||||
"""
|
||||
|
||||
def __init__(self, **kwargs):
|
||||
super().__init__(**kwargs)
|
||||
|
||||
# Renders the image. Returns an Image object.
|
||||
@abstractmethod
|
||||
async def run_image_gen(self, prompt: str) -> AsyncGenerator[Frame, None]:
|
||||
"""Generate an image from a text prompt.
|
||||
|
||||
This method must be implemented by subclasses to provide actual image
|
||||
generation functionality using their specific AI service.
|
||||
|
||||
Args:
|
||||
prompt: The text prompt to generate an image from.
|
||||
|
||||
Yields:
|
||||
Frame: Frames containing the generated image (typically ImageRawFrame
|
||||
or URLImageRawFrame).
|
||||
"""
|
||||
pass
|
||||
|
||||
async def process_frame(self, frame: Frame, direction: FrameDirection):
|
||||
"""Process frames for image generation.
|
||||
|
||||
TextFrames are used as prompts for image generation, while other frames
|
||||
are passed through unchanged.
|
||||
|
||||
Args:
|
||||
frame: The frame to process.
|
||||
direction: The direction of frame processing.
|
||||
"""
|
||||
await super().process_frame(frame, direction)
|
||||
|
||||
if isinstance(frame, TextFrame):
|
||||
|
||||
Reference in New Issue
Block a user