Skip to main content

Midjourney SDK for interacting with Midjourney Discord. Get imagine. All options possible.

Project description

Midjourney Python SDK

PyPI version License: MIT Python Version

The Midjourney Python SDK is a powerful and easy-to-use library that allows you to interact with the Midjourney AI image generation platform directly from your Python code. With this SDK, you can generate stunning images, upscale them, and customize the generation process using various parameters and options.

How use it the Midjourney SDK

What is Midjourney?

Midjourney is an AI-powered image generation platform that creates highly detailed and imaginative images from textual descriptions. It utilizes advanced machine learning techniques to interpret and visualize prompts, enabling users to generate unique and captivating artwork, illustrations, and designs.

Installation

You can install the Midjourney Python SDK using pip:

pip install midjourney-sdk-py

Usage

To use the Midjourney Python SDK, you need to obtain your discord_channel_id and discord_user_token. Here's how you can retrieve them:

Note

You need an active subscription in Midjourney to use the Midjourney SDK.

discord_channel_id:

Navigate to the Discord channel where you want to use the Midjourney bot. The URL of the channel will look like this: https://discord.com/channels/yyyyyyyyy/xXXXXxxxXxXxxXxx Copy the last part of the URL (xXXXXxxxXxXxxXxx), which represents your discord_channel_id.

discord_user_token:

Open your Discord application and navigate to https://discord.com/channels/@me. Open the browser's developer console (usually by pressing F12). Go to the "Network" tab and select the "XHR" filter. Refresh the page and click on the "@me" request. In the "Headers" section, look for the "Authorization" header and copy the token value.

Session ID

You can get the session ID by running an /imagine command in discord and then looking at the request in the browser's developer console. Check for "interactions" endpoint and get the request body. It's a JSON object with a "session_id" property. How get Session ID

After that, you can use the Midjourney Python SDK with your discord_channel_id, discord_user_token and session_id (and an active subscription).

A picture is worth a thousand words

An image to illustrate the process to get the discord_channel_id and discord_user_token. How get Discord ID

Once you have the discord_channel_id and discord_user_token, you can start using the Midjourney Python SDK. Here's a basic example of how to generate an image using the SDK:

from midjourney_sdk_py import Midjourney

discord_channel_id = "YOUR_DISCORD_CHANNEL_ID"
discord_user_token = "YOUR_DISCORD_USER_TOKEN"
discord_session_id = "YOUR_DISCORD_SESSION_ID"
midjourney = Midjourney(discord_channel_id, discord_user_token, discord_session_id)

prompt = "A teddy bear in Scotland, holding a French flag, with a Scottish landscape in the background, in a comic style"
options = {
    "ar": "3:2",
    "v": "6.1",
}

message = midjourney.generate(prompt, options)

print(message['upscaled_photo_url'])

The SDK provides various methods and options to customize the image generation process, such as:

imagine: Generate an initial image based on a prompt. upscale: Upscale a previously generated image. get_imagine: Retrieve a previously generated image. get_upscale: Retrieve an upscaled version of a generated image. get_parameter_from_prompt: Extract parameters and sources from a prompt string.

You can explore the available options and parameters to fine-tune the generated images according to your requirements. The SDK supports aspect ratios, chaos levels, quality settings, styles, negative prompting, and more.

Extracting Parameters from Prompts

The get_parameter_from_prompt method allows you to extract parameters and sources from a prompt string. This can be incredibly useful when you have a complete prompt string containing options and image sources, and you want to separate them for more flexible usage. Here's an example of how to use get_parameter_from_prompt:

from midjourney_sdk_py import Midjourney

discord_channel_id = "YOUR_DISCORD_CHANNEL_ID"
discord_user_token = "YOUR_DISCORD_USER_TOKEN"
discord_session_id = "YOUR_DISCORD_SESSION_ID"

midjourney = Midjourney(discord_channel_id, discord_user_token, discord_session_id)

prompt = "An illustration of A teddy bear in scotland, french flag in the hand, scotland landscape, comics --ar 3:2 --v 6.1 --turbo --sref http://example.com/style1.jpg, http://example.com/style2.jpg --cref http://example.com/character1.jpg, http://example.com/character2.jpg"

options, sources, cleaned_prompt = midjourney.get_parameter_from_prompt(prompt)

print("Options:", options)
print("Sources:", sources)
print("Cleaned Prompt:", cleaned_prompt)

message = midjourney.generate(cleaned_prompt, options, sources)

print(message['upscaled_photo_url'])

Midjourney Image Download and Conversion to JPEG

The Midjourney SDK also allows you to download and convert generated images into different formats. The download_and_convert_image method enables you to download an image from a URL and convert it to JPEG with options for compression and resizing.

Usage Example

Here’s an example of how you can use this method to download and convert an image:

message = midjourney.generate(prompt, options)

# Download path
download_path = "downloads"
# Download and convert the image
image_path = midjourney.download_and_convert_image(message['upscaled_photo_url'], "A Teddy bear in Scotland", download_path, 0.9, (500, 500), True)

print(f"The image has been downloaded and converted to: {image_path}")

Parameters for the download_and_convert_image Method

  • image_url: The URL of the image to download.
  • image_name: (Optional) The name under which the image will be saved.
  • save_path: (Optional) The path where the image will be saved.
  • compression: (Optional) The level of compression for the JPEG format (value between 0 and 1).
  • size: (Optional) A tuple specifying the size (width, height) to which the image should be resized.
  • crop: (Optional) A boolean indicating whether the image should be cropped to fit the specified size.

License

This project is licensed under the MIT License. See the LICENSE file for more details. Acknowledgments

Midjourney for providing the incredible AI image generation platform. The developers and contributors of the Midjourney Python SDK for their hard work and dedication.

Feedback and Support

If you have any questions, suggestions, or issues regarding the Midjourney Python SDK, please feel free to open an issue on the GitHub repository. We appreciate your feedback and will do our best to assist you. Happy image generation with the Midjourney Python SDK!

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

midjourney-sdk-py-1.1.0.tar.gz (9.2 kB view details)

Uploaded Source

Built Distribution

midjourney_sdk_py-1.1.0-py3-none-any.whl (9.6 kB view details)

Uploaded Python 3

File details

Details for the file midjourney-sdk-py-1.1.0.tar.gz.

File metadata

  • Download URL: midjourney-sdk-py-1.1.0.tar.gz
  • Upload date:
  • Size: 9.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.0.0 CPython/3.9.20

File hashes

Hashes for midjourney-sdk-py-1.1.0.tar.gz
Algorithm Hash digest
SHA256 81e0fde7ecac9db43d98876d0254e08ec460eecc9c769eb932dbe568afb9158b
MD5 689c187b549f09a12befcfaf78c203f3
BLAKE2b-256 d59550a3129d7bdcfeb3f75a29577615f4cb8dd4eded8611eb1435e0e5e930d4

See more details on using hashes here.

File details

Details for the file midjourney_sdk_py-1.1.0-py3-none-any.whl.

File metadata

File hashes

Hashes for midjourney_sdk_py-1.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 9d7935ecb42cdfb2851da1422526959e03ddeb13d673bf82d361b453a8029c92
MD5 2e096c43806070c78a919356da877237
BLAKE2b-256 df30f2ec8b8f31bc817ea5dbbd752f499ad8c18d7325acb0e3ded9c1c4ca8a51

See more details on using hashes here.

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