amazon_bedrock
__all__ = ['AmazonBedrockImageGenerationDriver']
module-attribute
Bases:
BaseMultiModelImageGenerationDriver
Attributes
Name | Type | Description |
---|---|---|
model | str | Bedrock model ID. |
session | Session | boto3 session. |
client | BedrockRuntimeClient | Bedrock runtime client. |
image_width | int | Width of output images. Defaults to 512 and must be a multiple of 64. |
image_height | int | Height of output images. Defaults to 512 and must be a multiple of 64. |
seed | Optional[int] | Optionally provide a consistent seed to generation requests, increasing consistency in output. |
Source Code in griptape/drivers/image_generation/amazon_bedrock_image_generation_driver.py
@define class AmazonBedrockImageGenerationDriver(BaseMultiModelImageGenerationDriver): """Driver for image generation models provided by Amazon Bedrock. Attributes: model: Bedrock model ID. session: boto3 session. client: Bedrock runtime client. image_width: Width of output images. Defaults to 512 and must be a multiple of 64. image_height: Height of output images. Defaults to 512 and must be a multiple of 64. seed: Optionally provide a consistent seed to generation requests, increasing consistency in output. """ session: boto3.Session = field(default=Factory(lambda: import_optional_dependency("boto3").Session()), kw_only=True) image_width: int = field(default=512, kw_only=True, metadata={"serializable": True}) image_height: int = field(default=512, kw_only=True, metadata={"serializable": True}) seed: Optional[int] = field(default=None, kw_only=True, metadata={"serializable": True}) _client: Optional[BedrockRuntimeClient] = field( default=None, kw_only=True, alias="client", metadata={"serializable": False} ) @lazy_property() def client(self) -> BedrockRuntimeClient: return self.session.client("bedrock-runtime") def try_text_to_image(self, prompts: list[str], negative_prompts: Optional[list[str]] = None) -> ImageArtifact: request = self.image_generation_model_driver.text_to_image_request_parameters( prompts, self.image_width, self.image_height, negative_prompts=negative_prompts, seed=self.seed, ) image_bytes = self._make_request(request) return ImageArtifact( value=image_bytes, format="png", width=self.image_width, height=self.image_height, meta={"prompt": ", ".join(prompts), "model": self.model}, ) def try_image_variation( self, prompts: list[str], image: ImageArtifact, negative_prompts: Optional[list[str]] = None, ) -> ImageArtifact: request = self.image_generation_model_driver.image_variation_request_parameters( prompts, image=image, negative_prompts=negative_prompts, seed=self.seed, ) image_bytes = self._make_request(request) return ImageArtifact( value=image_bytes, format="png", width=image.width, height=image.height, meta={"prompt": ", ".join(prompts), "model": self.model}, ) def try_image_inpainting( self, prompts: list[str], image: ImageArtifact, mask: ImageArtifact, negative_prompts: Optional[list[str]] = None, ) -> ImageArtifact: request = self.image_generation_model_driver.image_inpainting_request_parameters( prompts, image=image, mask=mask, negative_prompts=negative_prompts, seed=self.seed, ) image_bytes = self._make_request(request) return ImageArtifact( value=image_bytes, format="png", width=image.width, height=image.height, meta={"prompt": ", ".join(prompts), "model": self.model}, ) def try_image_outpainting( self, prompts: list[str], image: ImageArtifact, mask: ImageArtifact, negative_prompts: Optional[list[str]] = None, ) -> ImageArtifact: request = self.image_generation_model_driver.image_outpainting_request_parameters( prompts, image=image, mask=mask, negative_prompts=negative_prompts, seed=self.seed, ) image_bytes = self._make_request(request) return ImageArtifact( value=image_bytes, format="png", width=image.width, height=image.height, meta={"prompt": ", ".join(prompts), "model": self.model}, ) def _make_request(self, request: dict) -> bytes: response = self.client.invoke_model( body=json.dumps(request), modelId=self.model, accept="application/json", contentType="application/json", ) response_body = json.loads(response.get("body").read()) try: image_bytes = self.image_generation_model_driver.get_generated_image(response_body) except Exception as e: raise ValueError(f"Inpainting generation failed: {e}") from e return image_bytes
_client = field(default=None, kw_only=True, alias='client', metadata={'serializable': False})
class-attribute instance-attributeimage_height = field(default=512, kw_only=True, metadata={'serializable': True})
class-attribute instance-attributeimage_width = field(default=512, kw_only=True, metadata={'serializable': True})
class-attribute instance-attributeseed = field(default=None, kw_only=True, metadata={'serializable': True})
class-attribute instance-attributesession = field(default=Factory(lambda: import_optional_dependency('boto3').Session()), kw_only=True)
class-attribute instance-attribute
_make_request(request)
Source Code in griptape/drivers/image_generation/amazon_bedrock_image_generation_driver.py
def _make_request(self, request: dict) -> bytes: response = self.client.invoke_model( body=json.dumps(request), modelId=self.model, accept="application/json", contentType="application/json", ) response_body = json.loads(response.get("body").read()) try: image_bytes = self.image_generation_model_driver.get_generated_image(response_body) except Exception as e: raise ValueError(f"Inpainting generation failed: {e}") from e return image_bytes
client()
Source Code in griptape/drivers/image_generation/amazon_bedrock_image_generation_driver.py
@lazy_property() def client(self) -> BedrockRuntimeClient: return self.session.client("bedrock-runtime")
try_image_inpainting(prompts, image, mask, negative_prompts=None)
Source Code in griptape/drivers/image_generation/amazon_bedrock_image_generation_driver.py
def try_image_inpainting( self, prompts: list[str], image: ImageArtifact, mask: ImageArtifact, negative_prompts: Optional[list[str]] = None, ) -> ImageArtifact: request = self.image_generation_model_driver.image_inpainting_request_parameters( prompts, image=image, mask=mask, negative_prompts=negative_prompts, seed=self.seed, ) image_bytes = self._make_request(request) return ImageArtifact( value=image_bytes, format="png", width=image.width, height=image.height, meta={"prompt": ", ".join(prompts), "model": self.model}, )
try_image_outpainting(prompts, image, mask, negative_prompts=None)
Source Code in griptape/drivers/image_generation/amazon_bedrock_image_generation_driver.py
def try_image_outpainting( self, prompts: list[str], image: ImageArtifact, mask: ImageArtifact, negative_prompts: Optional[list[str]] = None, ) -> ImageArtifact: request = self.image_generation_model_driver.image_outpainting_request_parameters( prompts, image=image, mask=mask, negative_prompts=negative_prompts, seed=self.seed, ) image_bytes = self._make_request(request) return ImageArtifact( value=image_bytes, format="png", width=image.width, height=image.height, meta={"prompt": ", ".join(prompts), "model": self.model}, )
try_image_variation(prompts, image, negative_prompts=None)
Source Code in griptape/drivers/image_generation/amazon_bedrock_image_generation_driver.py
def try_image_variation( self, prompts: list[str], image: ImageArtifact, negative_prompts: Optional[list[str]] = None, ) -> ImageArtifact: request = self.image_generation_model_driver.image_variation_request_parameters( prompts, image=image, negative_prompts=negative_prompts, seed=self.seed, ) image_bytes = self._make_request(request) return ImageArtifact( value=image_bytes, format="png", width=image.width, height=image.height, meta={"prompt": ", ".join(prompts), "model": self.model}, )
try_text_to_image(prompts, negative_prompts=None)
Source Code in griptape/drivers/image_generation/amazon_bedrock_image_generation_driver.py
def try_text_to_image(self, prompts: list[str], negative_prompts: Optional[list[str]] = None) -> ImageArtifact: request = self.image_generation_model_driver.text_to_image_request_parameters( prompts, self.image_width, self.image_height, negative_prompts=negative_prompts, seed=self.seed, ) image_bytes = self._make_request(request) return ImageArtifact( value=image_bytes, format="png", width=self.image_width, height=self.image_height, meta={"prompt": ", ".join(prompts), "model": self.model}, )
← Prev
amazon_bedrock_image_generation_driver
↑ Up
image_generation
Next →
azure_openai_image_generation_driver
Could this page be better? Report a problem or suggest an addition!