从文本生成图片

此示例演示了如何使用 Imagen 模型从文本生成图片。

代码示例

Python

在尝试此示例之前,请按照《Vertex AI 快速入门:使用客户端库》中的 Python 设置说明执行操作。如需了解详情,请参阅 Vertex AI Python API 参考文档

如需向 Vertex AI 进行身份验证,请设置应用默认凭据。 如需了解详情,请参阅为本地开发环境设置身份验证


import argparse

import vertexai
from vertexai.preview.vision_models import ImageGenerationModel

def generate_image(
    project_id: str, location: str, output_file: str, prompt: str
) -> vertexai.preview.vision_models.ImageGenerationResponse:
    """Generate an image using a text prompt.
    Args:
      project_id: Google Cloud project ID, used to initialize Vertex AI.
      location: Google Cloud region, used to initialize Vertex AI.
      output_file: Local path to the output image file.
      prompt: The text prompt describing what you want to see."""

    vertexai.init(project=project_id, location=location)

    model = ImageGenerationModel.from_pretrained("imagegeneration@006")

    images = model.generate_images(
        prompt=prompt,
        # Optional parameters
        number_of_images=1,
        language="en",  # prompt language
        # By default, a SynthID watermark is added to images, but you can
        # disable it. You can't use a seed value and watermark at the same time.
        # add_watermark=False,
        # seed=100,
        aspect_ratio="1:1",  # "9:16" "16:9" "4:3" "3:4"
        # Adds a filter level to Safety filtering: "block_most" (most strict blocking),
        # "block_some" (default), "block_few", or "block_fewest" (available to
        # allowlisted users only).
        safety_filter_level="block_some",
        # Allows generation of people by the model: "dont_allow" (block
        # all people), "allow_adult" (default; allow adults but not children),
        # "allow_all" (available to allowlisted users only; allow adults and children)
        person_generation="allow_adult",
    )

    images[0].save(location=output_file, include_generation_parameters=True)

    # Optional. View the generated image in a notebook.
    # images[0].show()

    print(f"Created output image using {len(images[0]._image_bytes)} bytes")

    return images

后续步骤

如需搜索和过滤其他 Google Cloud 产品的代码示例,请参阅 Google Cloud 示例浏览器