# ImageGenerationTool

> **Class** in `langchain_azure_ai`

📖 [View in docs](https://reference.langchain.com/python/langchain-azure-ai/tools/builtin/_tools/ImageGenerationTool)

A tool that generates or edits images using GPT image models.

Wraps :class:`openai.types.responses.tool_param.ImageGeneration`.

When ``model_deployment`` is specified the tool automatically injects
an ``x-ms-oai-image-generation-deployment`` HTTP header into every
inference API call made via :meth:`model.bind_tools`.  This tells the
Azure AI Foundry endpoint which model deployment to use for image
generation.

Example::

    from langchain_azure_ai.tools.builtin import ImageGenerationTool

    tool = ImageGenerationTool(
        quality="high",
        size="1024x1024",
        model_deployment="my-gpt-image-1-deployment",
    )
    model_with_img = model.bind_tools([tool])

## Signature

```python
ImageGenerationTool(
    self,
    *,
    model: Optional[Literal['gpt-image-1', 'gpt-image-1-mini', 'gpt-image-1.5']] = None,
    model_deployment: Optional[str] = None,
    action: Optional[Literal['generate', 'edit', 'auto']] = None,
    background: Optional[Literal['transparent', 'opaque', 'auto']] = None,
    input_fidelity: Optional[str] = None,
    input_image_mask: Optional[ImageGenerationInputImageMask] = None,
    moderation: Optional[Literal['auto', 'low']] = None,
    output_compression: Optional[int] = None,
    output_format: Optional[Literal['png', 'webp', 'jpeg']] = None,
    partial_images: Optional[int] = None,
    quality: Optional[Literal['low', 'medium', 'high', 'auto']] = None,
    size: Optional[Literal['1024x1024', '1024x1536', '1536x1024', 'auto']] = None,
)
```

## Parameters

| Name | Type | Required | Description |
|------|------|----------|-------------|
| `model_deployment` | `Optional[str]` | No | Deployment name of the image generation model in Azure AI Foundry.  When set, the ``x-ms-oai-image-generation-deployment`` HTTP request header is injected automatically via :attr:`request_headers`. (default: `None`) |
| `model` | `Optional[Literal['gpt-image-1', 'gpt-image-1-mini', 'gpt-image-1.5']]` | No | Image generation model to use (e.g. ``"gpt-image-1"``). (default: `None`) |
| `action` | `Optional[Literal['generate', 'edit', 'auto']]` | No | Whether to generate a new image or edit an existing one. One of ``"generate"``, ``"edit"``, or ``"auto"`` (default). (default: `None`) |
| `background` | `Optional[Literal['transparent', 'opaque', 'auto']]` | No | Background type.  One of ``"transparent"``, ``"opaque"``, or ``"auto"`` (default). (default: `None`) |
| `input_fidelity` | `Optional[str]` | No | How closely the output should match style and facial features of input images.  One of ``"high"`` or ``"low"``. (default: `None`) |
| `input_image_mask` | `Optional[ImageGenerationInputImageMask]` | No | Mask for inpainting.  Use :class:`~openai.types.responses.tool_param.ImageGenerationInputImageMask` or a plain :class:`dict` with optional ``image_url`` / ``file_id`` keys. (default: `None`) |
| `moderation` | `Optional[Literal['auto', 'low']]` | No | Moderation level.  One of ``"auto"`` (default) or ``"low"``. (default: `None`) |
| `output_compression` | `Optional[int]` | No | Compression level (0–100, default 100). (default: `None`) |
| `output_format` | `Optional[Literal['png', 'webp', 'jpeg']]` | No | Output format.  One of ``"png"`` (default), ``"webp"``, or ``"jpeg"``. (default: `None`) |
| `partial_images` | `Optional[int]` | No | Number of partial images to stream (0–3). (default: `None`) |
| `quality` | `Optional[Literal['low', 'medium', 'high', 'auto']]` | No | Image quality.  One of ``"low"``, ``"medium"``, ``"high"``, or ``"auto"`` (default). (default: `None`) |
| `size` | `Optional[Literal['1024x1024', '1024x1536', '1536x1024', 'auto']]` | No | Image size.  One of ``"1024x1024"``, ``"1024x1536"``, ``"1536x1024"``, or ``"auto"`` (default). (default: `None`) |

## Extends

- `BuiltinTool`

## Constructors

```python
__init__(
    self,
    *,
    model: Optional[Literal['gpt-image-1', 'gpt-image-1-mini', 'gpt-image-1.5']] = None,
    model_deployment: Optional[str] = None,
    action: Optional[Literal['generate', 'edit', 'auto']] = None,
    background: Optional[Literal['transparent', 'opaque', 'auto']] = None,
    input_fidelity: Optional[str] = None,
    input_image_mask: Optional[ImageGenerationInputImageMask] = None,
    moderation: Optional[Literal['auto', 'low']] = None,
    output_compression: Optional[int] = None,
    output_format: Optional[Literal['png', 'webp', 'jpeg']] = None,
    partial_images: Optional[int] = None,
    quality: Optional[Literal['low', 'medium', 'high', 'auto']] = None,
    size: Optional[Literal['1024x1024', '1024x1536', '1536x1024', 'auto']] = None,
) -> None
```

| Name | Type |
|------|------|
| `model` | `Optional[Literal['gpt-image-1', 'gpt-image-1-mini', 'gpt-image-1.5']]` |
| `model_deployment` | `Optional[str]` |
| `action` | `Optional[Literal['generate', 'edit', 'auto']]` |
| `background` | `Optional[Literal['transparent', 'opaque', 'auto']]` |
| `input_fidelity` | `Optional[str]` |
| `input_image_mask` | `Optional[ImageGenerationInputImageMask]` |
| `moderation` | `Optional[Literal['auto', 'low']]` |
| `output_compression` | `Optional[int]` |
| `output_format` | `Optional[Literal['png', 'webp', 'jpeg']]` |
| `partial_images` | `Optional[int]` |
| `quality` | `Optional[Literal['low', 'medium', 'high', 'auto']]` |
| `size` | `Optional[Literal['1024x1024', '1024x1536', '1536x1024', 'auto']]` |


---

[View source on GitHub](https://github.com/langchain-ai/langchain-azure/blob/7a6a664d617264df8dcb12fcfb1bacc09f21d504/libs/azure-ai/langchain_azure_ai/tools/builtin/_tools.py#L259)