Class ImageGenerationModel (1.45.0)

ImageGenerationModel(model_id: str, endpoint_name: typing.Optional[str] = None)

Generates images from text prompt.

Examples::

model = ImageGenerationModel.from_pretrained("imagegeneration@002")
response = model.generate_images(
    prompt="Astronaut riding a horse",
    # Optional:
    number_of_images=1,
    seed=0,
)
response[0].show()
response[0].save("image1.png")

Methods

ImageGenerationModel

ImageGenerationModel(model_id: str, endpoint_name: typing.Optional[str] = None)

Creates a _ModelGardenModel.

This constructor should not be called directly. Use {model_class}.from_pretrained(model_name=...) instead.

Parameters
Name Description
model_id str

Identifier of a Model Garden Model. Example: "text-bison@001"

endpoint_name typing.Optional[str]

Vertex Endpoint resource name for the model

edit_image

edit_image(
    *,
    prompt: str,
    base_image: vertexai.vision_models.Image,
    mask: typing.Optional[vertexai.vision_models.Image] = None,
    negative_prompt: typing.Optional[str] = None,
    number_of_images: int = 1,
    guidance_scale: typing.Optional[float] = None,
    edit_mode: typing.Optional[
        typing.Literal[
            "inpainting-insert", "inpainting-remove", "outpainting", "product-image"
        ]
    ] = None,
    mask_mode: typing.Optional[
        typing.Literal["background", "foreground", "semantic"]
    ] = None,
    segmentation_classes: typing.Optional[typing.List[str]] = None,
    mask_dilation: typing.Optional[float] = None,
    product_position: typing.Optional[typing.Literal["fixed", "reposition"]] = None,
    output_mime_type: typing.Optional[typing.Literal["image/png", "image/jpeg"]] = None,
    compression_quality: typing.Optional[float] = None,
    language: typing.Optional[str] = None,
    seed: typing.Optional[int] = None,
    output_gcs_uri: typing.Optional[str] = None,
    safety_filter_level: typing.Optional[
        typing.Literal["block_most", "block_some", "block_few", "block_fewest"]
    ] = None,
    person_generation: typing.Optional[
        typing.Literal["dont_allow", "allow_adult", "allow_all"]
    ] = None
) -> vertexai.preview.vision_models.ImageGenerationResponse

Edits an existing image based on text prompt.

from_pretrained

from_pretrained(model_name: str) -> vertexai._model_garden._model_garden_models.T

Loads a _ModelGardenModel.

Parameter
Name Description
model_name str

Name of the model.

Exceptions
Type Description
ValueError If model_name is unknown.
ValueError If model does not support this class.

generate_images

generate_images(
    prompt: str,
    *,
    negative_prompt: typing.Optional[str] = None,
    number_of_images: int = 1,
    aspect_ratio: typing.Optional[
        typing.Literal["1:1", "9:16", "16:9", "4;3", "3:4"]
    ] = None,
    guidance_scale: typing.Optional[float] = None,
    language: typing.Optional[str] = None,
    seed: typing.Optional[int] = None,
    output_gcs_uri: typing.Optional[str] = None,
    add_watermark: typing.Optional[bool] = False,
    safety_filter_level: typing.Optional[
        typing.Literal["block_most", "block_some", "block_few", "block_fewest"]
    ] = None,
    person_generation: typing.Optional[
        typing.Literal["dont_allow", "allow_adult", "allow_all"]
    ] = None
) -> vertexai.preview.vision_models.ImageGenerationResponse

Generates images from text prompt.

Parameter
Name Description
prompt str

Text prompt for the image.

upscale_image

upscale_image(
    image: typing.Union[
        vertexai.vision_models.Image, vertexai.preview.vision_models.GeneratedImage
    ],
    new_size: typing.Optional[int] = 2048,
    output_gcs_uri: typing.Optional[str] = None,
) -> vertexai.vision_models.Image

Upscales an image.

This supports upscaling images generated through the generate_images() method, or upscaling a new image that is 1024x1024.

Examples::

# Upscale a generated image
model = ImageGenerationModel.from_pretrained("imagegeneration@002")
response = model.generate_images(
    prompt="Astronaut riding a horse",
)
model.upscale_image(image=response[0])

# Upscale a new 1024x1024 image
my_image = Image.load_from_file("my-image.png")
model.upscale_image(image=my_image)
Parameters
Name Description
image Union[GeneratedImage, Image]

Required. The generated image to upscale.

new_size int

The size of the biggest dimension of the upscaled image. Only 2048 and 4096 are currently supported. Results in a 2048x2048 or 4096x4096 image. Defaults to 2048 if not provided.

output_gcs_uri typing.Optional[str]

Google Cloud Storage uri to store the upscaled images.