image_generation
Adapted from the Griptape AI Framework documentation.
__all__ = ['BaseImageGenerationDriver', 'BaseMultiModelImageGenerationDriver']
module-attribute
Bases:
SerializableMixin
, ExponentialBackoffMixin
, ABC
Source Code in griptape/drivers/image_generation/base_image_generation_driver.py
@define class BaseImageGenerationDriver(SerializableMixin, ExponentialBackoffMixin, ABC): model: str = field(kw_only=True, metadata={"serializable": True}) def before_run(self, prompts: list[str], negative_prompts: Optional[list[str]] = None) -> None: EventBus.publish_event(StartImageGenerationEvent(prompts=prompts, negative_prompts=negative_prompts)) def after_run(self) -> None: EventBus.publish_event(FinishImageGenerationEvent()) def run_text_to_image(self, prompts: list[str], negative_prompts: Optional[list[str]] = None) -> ImageArtifact: for attempt in self.retrying(): with attempt: self.before_run(prompts, negative_prompts) result = self.try_text_to_image(prompts, negative_prompts) self.after_run() return result raise Exception("Failed to run text to image generation") def run_image_variation( self, prompts: list[str], image: ImageArtifact, negative_prompts: Optional[list[str]] = None, ) -> ImageArtifact: for attempt in self.retrying(): with attempt: self.before_run(prompts, negative_prompts) result = self.try_image_variation(prompts, image, negative_prompts) self.after_run() return result raise Exception("Failed to generate image variations") def run_image_inpainting( self, prompts: list[str], image: ImageArtifact, mask: ImageArtifact, negative_prompts: Optional[list[str]] = None, ) -> ImageArtifact: for attempt in self.retrying(): with attempt: self.before_run(prompts, negative_prompts) result = self.try_image_inpainting(prompts, image, mask, negative_prompts) self.after_run() return result raise Exception("Failed to run image inpainting") def run_image_outpainting( self, prompts: list[str], image: ImageArtifact, mask: ImageArtifact, negative_prompts: Optional[list[str]] = None, ) -> ImageArtifact: for attempt in self.retrying(): with attempt: self.before_run(prompts, negative_prompts) result = self.try_image_outpainting(prompts, image, mask, negative_prompts) self.after_run() return result raise Exception("Failed to run image outpainting") @abstractmethod def try_text_to_image(self, prompts: list[str], negative_prompts: Optional[list[str]] = None) -> ImageArtifact: ... @abstractmethod def try_image_variation( self, prompts: list[str], image: ImageArtifact, negative_prompts: Optional[list[str]] = None, ) -> ImageArtifact: ... @abstractmethod def try_image_inpainting( self, prompts: list[str], image: ImageArtifact, mask: ImageArtifact, negative_prompts: Optional[list[str]] = None, ) -> ImageArtifact: ... @abstractmethod def try_image_outpainting( self, prompts: list[str], image: ImageArtifact, mask: ImageArtifact, negative_prompts: Optional[list[str]] = None, ) -> ImageArtifact: ...
model = field(kw_only=True, metadata={'serializable': True})
class-attribute instance-attribute
after_run()
Source Code in griptape/drivers/image_generation/base_image_generation_driver.py
def after_run(self) -> None: EventBus.publish_event(FinishImageGenerationEvent())
before_run(prompts, negative_prompts=None)
Source Code in griptape/drivers/image_generation/base_image_generation_driver.py
def before_run(self, prompts: list[str], negative_prompts: Optional[list[str]] = None) -> None: EventBus.publish_event(StartImageGenerationEvent(prompts=prompts, negative_prompts=negative_prompts))
run_image_inpainting(prompts, image, mask, negative_prompts=None)
Source Code in griptape/drivers/image_generation/base_image_generation_driver.py
def run_image_inpainting( self, prompts: list[str], image: ImageArtifact, mask: ImageArtifact, negative_prompts: Optional[list[str]] = None, ) -> ImageArtifact: for attempt in self.retrying(): with attempt: self.before_run(prompts, negative_prompts) result = self.try_image_inpainting(prompts, image, mask, negative_prompts) self.after_run() return result raise Exception("Failed to run image inpainting")
run_image_outpainting(prompts, image, mask, negative_prompts=None)
Source Code in griptape/drivers/image_generation/base_image_generation_driver.py
def run_image_outpainting( self, prompts: list[str], image: ImageArtifact, mask: ImageArtifact, negative_prompts: Optional[list[str]] = None, ) -> ImageArtifact: for attempt in self.retrying(): with attempt: self.before_run(prompts, negative_prompts) result = self.try_image_outpainting(prompts, image, mask, negative_prompts) self.after_run() return result raise Exception("Failed to run image outpainting")
run_image_variation(prompts, image, negative_prompts=None)
Source Code in griptape/drivers/image_generation/base_image_generation_driver.py
def run_image_variation( self, prompts: list[str], image: ImageArtifact, negative_prompts: Optional[list[str]] = None, ) -> ImageArtifact: for attempt in self.retrying(): with attempt: self.before_run(prompts, negative_prompts) result = self.try_image_variation(prompts, image, negative_prompts) self.after_run() return result raise Exception("Failed to generate image variations")
run_text_to_image(prompts, negative_prompts=None)
Source Code in griptape/drivers/image_generation/base_image_generation_driver.py
def run_text_to_image(self, prompts: list[str], negative_prompts: Optional[list[str]] = None) -> ImageArtifact: for attempt in self.retrying(): with attempt: self.before_run(prompts, negative_prompts) result = self.try_text_to_image(prompts, negative_prompts) self.after_run() return result raise Exception("Failed to run text to image generation")