aboutsummaryrefslogtreecommitdiff
path: root/.venv/lib/python3.12/site-packages/litellm/llms/bedrock/image/amazon_stability3_transformation.py
diff options
context:
space:
mode:
authorS. Solomon Darnell2025-03-28 21:52:21 -0500
committerS. Solomon Darnell2025-03-28 21:52:21 -0500
commit4a52a71956a8d46fcb7294ac71734504bb09bcc2 (patch)
treeee3dc5af3b6313e921cd920906356f5d4febc4ed /.venv/lib/python3.12/site-packages/litellm/llms/bedrock/image/amazon_stability3_transformation.py
parentcc961e04ba734dd72309fb548a2f97d67d578813 (diff)
downloadgn-ai-master.tar.gz
two version of R2R are hereHEADmaster
Diffstat (limited to '.venv/lib/python3.12/site-packages/litellm/llms/bedrock/image/amazon_stability3_transformation.py')
-rw-r--r--.venv/lib/python3.12/site-packages/litellm/llms/bedrock/image/amazon_stability3_transformation.py100
1 files changed, 100 insertions, 0 deletions
diff --git a/.venv/lib/python3.12/site-packages/litellm/llms/bedrock/image/amazon_stability3_transformation.py b/.venv/lib/python3.12/site-packages/litellm/llms/bedrock/image/amazon_stability3_transformation.py
new file mode 100644
index 00000000..2c90b3a1
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/litellm/llms/bedrock/image/amazon_stability3_transformation.py
@@ -0,0 +1,100 @@
+import types
+from typing import List, Optional
+
+from openai.types.image import Image
+
+from litellm.types.llms.bedrock import (
+ AmazonStability3TextToImageRequest,
+ AmazonStability3TextToImageResponse,
+)
+from litellm.types.utils import ImageResponse
+
+
+class AmazonStability3Config:
+ """
+ Reference: https://us-west-2.console.aws.amazon.com/bedrock/home?region=us-west-2#/providers?model=stability.stable-diffusion-xl-v0
+
+ Stability API Ref: https://platform.stability.ai/docs/api-reference#tag/Generate/paths/~1v2beta~1stable-image~1generate~1sd3/post
+ """
+
+ @classmethod
+ def get_config(cls):
+ return {
+ k: v
+ for k, v in cls.__dict__.items()
+ if not k.startswith("__")
+ and not isinstance(
+ v,
+ (
+ types.FunctionType,
+ types.BuiltinFunctionType,
+ classmethod,
+ staticmethod,
+ ),
+ )
+ and v is not None
+ }
+
+ @classmethod
+ def get_supported_openai_params(cls, model: Optional[str] = None) -> List:
+ """
+ No additional OpenAI params are mapped for stability 3
+ """
+ return []
+
+ @classmethod
+ def _is_stability_3_model(cls, model: Optional[str] = None) -> bool:
+ """
+ Returns True if the model is a Stability 3 model
+
+ Stability 3 models follow this pattern:
+ sd3-large
+ sd3-large-turbo
+ sd3-medium
+ sd3.5-large
+ sd3.5-large-turbo
+
+ Stability ultra models
+ stable-image-ultra-v1
+ """
+ if model:
+ if "sd3" in model or "sd3.5" in model:
+ return True
+ if "stable-image-ultra-v1" in model:
+ return True
+ return False
+
+ @classmethod
+ def transform_request_body(
+ cls, prompt: str, optional_params: dict
+ ) -> AmazonStability3TextToImageRequest:
+ """
+ Transform the request body for the Stability 3 models
+ """
+ data = AmazonStability3TextToImageRequest(prompt=prompt, **optional_params)
+ return data
+
+ @classmethod
+ def map_openai_params(cls, non_default_params: dict, optional_params: dict) -> dict:
+ """
+ Map the OpenAI params to the Bedrock params
+
+ No OpenAI params are mapped for Stability 3, so directly return the optional_params
+ """
+ return optional_params
+
+ @classmethod
+ def transform_response_dict_to_openai_response(
+ cls, model_response: ImageResponse, response_dict: dict
+ ) -> ImageResponse:
+ """
+ Transform the response dict to the OpenAI response
+ """
+
+ stability_3_response = AmazonStability3TextToImageResponse(**response_dict)
+ openai_images: List[Image] = []
+ for _img in stability_3_response.get("images", []):
+ openai_images.append(Image(b64_json=_img))
+
+ model_response.data = openai_images
+ return model_response