Skip to main content

DALLEImageGenerator

Generate images using OpenAI's DALL-E model.

Basic Information

  • Type: haystack.components.generators.openai_dalle.DALLEImageGenerator
  • Components it can connect with:
    • PromptBuilder: Receives a prompt as input.
    • OutputAdapter: Sends the generated images and revised prompt to a converter like OutputAdapter, which then sends it to AnswerBuilder.

Inputs

ParameterTypeDefaultDescription
promptstrThe prompt to generate the image.
sizeOptional[Literal['256x256', '512x512', '1024x1024', '1792x1024', '1024x1792']]NoneIf provided, overrides the size provided during initialization.
qualityOptional[Literal['standard', 'hd']]NoneIf provided, overrides the quality provided during initialization.
response_formatOptional[Optional[Literal['url', 'b64_json']]]NoneIf provided, overrides the response format provided during initialization.

Outputs

ParameterTypeDefaultDescription
imagesList[str]A dictionary containing the generated list of images and the revised prompt. Depending on the response_format parameter, the list of images can be URLs or base64 encoded JSON strings. The revised prompt is the prompt that was used to generate the image, if there was any revision to the prompt made by OpenAI.
revised_promptstrA dictionary containing the generated list of images and the revised prompt. Depending on the response_format parameter, the list of images can be URLs or base64 encoded JSON strings. The revised prompt is the prompt that was used to generate the image, if there was any revision to the prompt made by OpenAI.

Overview

DALLEImageGenerator generates images using OpenAI's DALL-E model.

For details on OpenAI API parameters you can use to customize the generation, see OpenAI documentation.

Authentication

To use this component, connect Haystack Platform with OpenAI first. For detailed instructions, see Use OpenAI Models.

Usage Example

This pipeline uses DALLEImageGenerator to generate images based on a query:

components:
prompt_builder:
type: haystack.components.builders.prompt_builder.PromptBuilder
init_parameters:
template: '{{query}}'
dalle_image_generator:
type: haystack.components.generators.openai_dalle.DALLEImageGenerator
init_parameters:
model: dall-e-3
quality: standard
size: 1024x1024
response_format: url
timeout: 60
answer_formatter:
type: haystack.components.converters.output_adapter.OutputAdapter
init_parameters:
template: |-
{% set ns = namespace(doc_string='') %}
{% set ns.doc_string = ns.doc_string + '## Query:\n' + query + '\n\n' %}
{% set ns.doc_string = ns.doc_string + '## OpenAIs Revised Prompt:\n' + revised_prompt + '\n\n' %}
{% set ns.doc_string = ns.doc_string + '![](' + images[0] + ')' + '\n\n' %}
{% set answer = [ns.doc_string] %}
{{ answer }}
output_type: List[str]
answer_builder:
type: deepset_cloud_custom_nodes.augmenters.deepset_answer_builder.DeepsetAnswerBuilder
init_parameters: {}

connections:
- sender: prompt_builder.prompt
receiver: dalle_image_generator.prompt
- sender: dalle_image_generator.revised_prompt
receiver: answer_formatter.revised_prompt
- sender: dalle_image_generator.images
receiver: answer_formatter.images
- sender: answer_formatter.output
receiver: answer_builder.replies
- sender: prompt_builder.prompt
receiver: answer_builder.prompt

max_runs_per_component: 100

metadata: {}

inputs:
query:
- prompt_builder.query
- answer_formatter.query
- answer_builder.query

outputs:
answers: answer_builder.answers

Parameters

Init Parameters

These are the parameters you can configure in Pipeline Builder:

ParameterTypeDefaultDescription
modelstrdall-e-3The model to use for image generation. Can be "dall-e-2" or "dall-e-3".
qualityLiteral['standard', 'hd']standardThe quality of the generated image. Can be "standard" or "hd".
sizeLiteral['256x256', '512x512', '1024x1024', '1792x1024', '1024x1792']1024x1024The size of the generated images. Must be one of 256x256, 512x512, or 1024x1024 for dall-e-2. Must be one of 1024x1024, 1792x1024, or 1024x1792 for dall-e-3 models.
response_formatLiteral['url', 'b64_json']urlThe format of the response. Can be "url" or "b64_json".
api_keySecretSecret.from_env_var('OPENAI_API_KEY')The OpenAI API key to connect to OpenAI.
api_base_urlOptional[str]NoneAn optional base URL.
organizationOptional[str]NoneThe Organization ID, defaults to None.
timeoutOptional[float]NoneTimeout for OpenAI Client calls. If not set, it is inferred from the OPENAI_TIMEOUT environment variable or set to 30.
max_retriesOptional[int]NoneMaximum retries to establish contact with OpenAI if it returns an internal error. If not set, it is inferred from the OPENAI_MAX_RETRIES environment variable or set to 5.
http_client_kwargsOptional[Dict[str, Any]]NoneA dictionary of keyword arguments to configure a custom httpx.Clientor httpx.AsyncClient. For more information, see the HTTPX documentation.

Run Method Parameters

These are the parameters you can configure for the component's run() method. This means you can pass these parameters at query time through the API, in Playground, or when running a job. For details, see Modify Pipeline Parameters at Query Time.

ParameterTypeDefaultDescription
promptstrThe prompt to generate the image.
sizeOptional[Literal['256x256', '512x512', '1024x1024', '1792x1024', '1024x1792']]NoneIf provided, overrides the size provided during initialization.
qualityOptional[Literal['standard', 'hd']]NoneIf provided, overrides the quality provided during initialization.
response_formatOptional[Optional[Literal['url', 'b64_json']]]NoneIf provided, overrides the response format provided during initialization.