Add ImageGenService docstrings
This commit is contained in:
@@ -4,6 +4,12 @@
|
|||||||
# SPDX-License-Identifier: BSD 2-Clause License
|
# 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 abc import abstractmethod
|
||||||
from typing import AsyncGenerator
|
from typing import AsyncGenerator
|
||||||
|
|
||||||
@@ -13,15 +19,46 @@ from pipecat.services.ai_service import AIService
|
|||||||
|
|
||||||
|
|
||||||
class ImageGenService(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):
|
def __init__(self, **kwargs):
|
||||||
super().__init__(**kwargs)
|
super().__init__(**kwargs)
|
||||||
|
|
||||||
# Renders the image. Returns an Image object.
|
# Renders the image. Returns an Image object.
|
||||||
@abstractmethod
|
@abstractmethod
|
||||||
async def run_image_gen(self, prompt: str) -> AsyncGenerator[Frame, None]:
|
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
|
pass
|
||||||
|
|
||||||
async def process_frame(self, frame: Frame, direction: FrameDirection):
|
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)
|
await super().process_frame(frame, direction)
|
||||||
|
|
||||||
if isinstance(frame, TextFrame):
|
if isinstance(frame, TextFrame):
|
||||||
|
|||||||
Reference in New Issue
Block a user