Skip to main content

A library for providing programmatic access to the DALL·E 2 API

Project description

pydalle: A DALL·E 2 API Wrapper for Python

PyPI - Python Version PyPI - Wheel PyPI - License

This library provides basic programmatic access to the DALL·E 2 API.

The intent of this library is to provide researchers with a means to easily layout results from DALL·E 2 into a jupyter notebook or similar.

Installation

pip install pydalle

If you want to use sync methods, also make sure you have the requests library installed.

pip install requests

If you want to use async methods, also make sure you have the aiohttp library installed.

pip install aiohttp

Tips

  • Get access by signing up for the DALL·E 2 waitlist.

  • Ensure your usage of DALL·E 2 abides by DALL·E 2's content policy and terms of use.

  • Be mindful about how easy this library makes it for you to spend your money / DALL·E 2 credits.

Features

  • get_bearer_token / get_bearer_token_async: Get a bearer token from username and password (discards access token)
  • get_access_token / get_access_token_async: Get an access token from username and password. Only needed for the following:
    • get_bearer_token_with_access_token / get_bearer_token_with_access_token_async: Get a bearer token from an access token.
    • get_login_info / get_login_info_async: Get information for the user (which includes the bearer token). Good for checking how many credits are remaining, etc.
  • get_task / get_task_async: Get a task by ID
  • get_tasks / get_tasks_async: Get tasks created after a given timestamp
  • create_text2im_task / create_text2im_task_async: Create a task to generate an image from a text
  • create_variations_task / create_variations_task_async: Create a task to generate variations of an image
  • create_inpainting_task / create_inpainting_task_async: Create a task to generate an image from a mask and caption
  • poll_for_task_completion / poll_for_task_completion_async: Poll for a task until it is complete
  • download_generation / download_generation_async: Download the image bytes for a given generation ID (the generation also has an image_path field, but it does not include the necessary watermark so use this instead)
  • share_generation / share_generation_async: Make the generation with the given ID public. The share_url property on the returned object will include the share link for this image
  • save_generations / save_generations_async: Save the generations with the given generation IDs to your collection. Returns a Collection object for the collection saved to.

Image input

All the following notes on method usage also apply to each method's corresponding async version.

  • create_variations_task and create_inpainting_task both accept a parameter called parent_id_or_image.
    • For create_variations_task, it is required.
    • For create_inpainting_task, it will default to the value of the image_mask parameter if not provided.
    • It can be a string in any of the following formats:
      • A "generation ID" (format: generation-[a-zA-Z0-9]{24}) -- can be obtained with prefix included from a task with task.generations[i].id
      • A "prompt ID" (format: prompt-[a-zA-Z0-9]{24}) -- can be obtained with prefix included from a task with task.prompt_id or task.prompt.id
      • A base64-encoded PNG image decoded as a string -- full examples in dev.ipynb and dev.py
  • create_inpainting_task also accepts the parameter image_mask
    • It must be a base64-encoded PNG image decoded as a string -- full examples in dev.ipynb and dev.py

Examples

See the following files for examples:

  • dev.ipynb - Example of using the library in a jupyter notebook
  • dev.py - Example of using the library in a python script
  • dev_async.py - Example of using the library in a python script using asyncio

Useful tools

While not dependencies of this library, the following tools are useful companions when working with images:

  • PIL: pip install Pillow
    • Displaying an image in a notebook or in a Python script
    • Adding an alpha channel to an image (for creating masks)
    • Converting an image to PNG format (for uploading to DALL·E 2)
    • Resizing, cropping, padding, and masking images (etc.)
    • Saving images to disk
  • matplotlib: pip install matplotlib
    • Arranging images in a grid for display
  • numpy: pip install numpy
    • Vectorization of image processing operations (if you find yourself doing a lot of slow loops over pixels, try putting the image in a numpy array and vectorizing the loops)

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pydalle-0.0.6.tar.gz (16.1 kB view hashes)

Uploaded Source

Built Distribution

pydalle-0.0.6-py3-none-any.whl (18.1 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page