Skip to main content

AI powered cost-effective content creation 🧪

Project description

🧪 mediaichemy: cost-effective AI powered content creation

mediaichemy logo

mediaichemy is a Python library for generating cheap and cost effective multimedia content using AI. It intelligently selects models and workflows to minimize costs while delivering high-quality results.

The library relies on:

Usage ovewview

mediaichemy offers a simple yet powerful approach to content creation:

  • Media: Choose a specific media type and edit its parameters to create the content you want.
  • MediaCreator Use AI to generate content ideas for you and create them.

Both approaches use the same underlying Media system, with MediaCreator adding an AI layer that handles the creative decisions for you. All content creation automatically optimizes for cost-effectiveness by choosing the best-performing, lowest-cost AI models.

What's Inside

🚀 Getting Started

🔑 Setting up API keys

🎬 Media

🧠 Using the MediaCreator

Getting Started

  1. Install mediaichemy directly from PyPI:
pip install mediaichemy
  1. Set up API keys for OpenRouter and Runware (see below).

Setting up API keys

1. Create an OpenRouter Account

2. Create a Runware Account

3. Configure your API keys as environment variables:

Linux/macOS (Terminal):

export OPENROUTER_API_KEY="your_openrouter_api_key"
export RUNWARE_API_KEY="your_runware_api_key"

Windows (Command Prompt):

set OPENROUTER_API_KEY=your_openrouter_api_key
set RUNWARE_API_KEY=your_runware_api_key

Windows (PowerShell)

$env:OPENROUTER_API_KEY="your_openrouter_api_key"
$env:RUNWARE_API_KEY="your_runware_api_key"

Option 2: Use a .env File

Create a file named .env in your project root with the following content:

OPENROUTER_API_KEY=your_openrouter_api_key
RUNWARE_API_KEY=your_runware_api_key

Media

Each Media type creates a specific form of content using AI and editing tools to craft it.

Single Media Examples

Media created using a single AI source.

Image

from mediaichemy.media.single import Image
from mediaichemy.media.parameters import ImageParameters

image_params = ImageParameters(
    image_prompt="A cat on a skateboard",
    image_model="rundiffusion:110@101"
)
image = await Image(params=image_params).create()
Skateboard Cat

Video

from mediaichemy.media.single import Video
from mediaichemy.media.parameters import VideoParameters

video_params = VideoParameters(
    video_prompt="A dog floating in outer space",
    video_model="bytedance:1@1",
    width=1088,
    height=1920
)
video = await Video(params=video_params).create()

https://github.com/user-attachments/assets/da8a297b-3808-49e1-b635-7358339a0d49

Narration

from mediaichemy.media.single import Narration
from mediaichemy.media.parameters import NarrationParameters

narration_params = NarrationParameters(
    narration_text=("A student asked the master, "
                    "What is the sound of one hand clapping? "
                    "The master simply held up his hand."),
    narration_voice_name="en_US-joe-medium",
    narration_silence_tail=5,
    narration_speed=1.0
)
narration = await Narration(params=narration_params).create()

Multi Media Examples

Media created combining multiple AI sources.

Image Video

A video created by first creating an image, then animating it. Enabling more customization on the starter image.

from mediaichemy.media.multi import ImageVideo
from mediaichemy.media.parameters import ImageVideoParameters

image_video_params = ImageVideoParameters(
    video_prompt="A hyper realistic pink mantis wearing a tuxedo.",
    image_model="rundiffusion:110@101",
    video_model="bytedance:1@1",
    width=1088,
    height=1920
)
image_video = await ImageVideo(params=image_video_params).create()

https://github.com/user-attachments/assets/515ea7ee-2084-44eb-a4b8-90cb4602e4a7

Storyline Video

from mediaichemy.media.multi import StorylineVideo
from mediaichemy.media.parameters import StorylineVideoParameters

storyline_video_params = StorylineVideoParameters(
    video_prompt="A forest in the rain",
    image_model="rundiffusion:110@101",
    video_model="bytedance:1@1",
    width=1088,
    height=1920,
    narration_text="Listen to the rain.",
    narration_voice_name="en_US-joe-medium",
    narration_silence_tail=5,
    narration_speed=1.0,
    background_relative_volume=0.5,
    background_audio_paths=[],
    subtitle_fontname="Arial",
    subtitle_fontsize=18,
    subtitle_color="#FFEE00C7",
    subtitle_outline_color="#000000",
    subtitle_positions=["bottom_center", "top_center", "middle_center"]
)
storyline_video = await StorylineVideo(params=storyline_video_params).create()

https://github.com/user-attachments/assets/16e9170f-eab2-442a-a8d5-87204acbd662

Using the MediaCreator

By using MediaCreator, you let AI create ideas for you. You can use it to generate content for a specific media type or let it pick the best type for you automatically based on your prompt.

MediaCreator

Using MediaCreator with a specific media type

from mediaichemy.creator import MediaCreator
from mediaichemy.media import StorylineVideo

creator = MediaCreator(
    creator_model='anthropic/claude-sonnet-4.5',
    media_type=StorylineVideo)

media = await creator.create(user_prompt=(
    "Create a short video telling a zen koan."
    "The video features a hyperrealistic detailed natural setting."),
    narration_voice_name='en_US-joe-medium')

https://github.com/user-attachments/assets/4dbaf275-0070-4117-a816-f5c775d39c91

Letting MediaCreator pick the best media type

from mediaichemy.creator import MediaCreator

creator = MediaCreator()  # No media_type specified
media = await creator.create(
    user_prompt="Create an image of a dog wearing a space helmet."
)
Astro Dog

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

mediaichemy-1.1.2.tar.gz (26.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

mediaichemy-1.1.2-py3-none-any.whl (35.0 kB view details)

Uploaded Python 3

File details

Details for the file mediaichemy-1.1.2.tar.gz.

File metadata

  • Download URL: mediaichemy-1.1.2.tar.gz
  • Upload date:
  • Size: 26.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for mediaichemy-1.1.2.tar.gz
Algorithm Hash digest
SHA256 aeaf9a6a09b9dfa500470eb5bfb8ee54916649fac0ce4f96a34a3c0953f278a1
MD5 9c4d25a8eb3315c48a947599a5e9f058
BLAKE2b-256 54b63f2ebedd9294fb270a55b473fa9e7613d406a8c0fc2c11369c7e5bcd2336

See more details on using hashes here.

Provenance

The following attestation bundles were made for mediaichemy-1.1.2.tar.gz:

Publisher: publish-to-pypi.yml on pedroblayaluz/mediaichemy

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file mediaichemy-1.1.2-py3-none-any.whl.

File metadata

  • Download URL: mediaichemy-1.1.2-py3-none-any.whl
  • Upload date:
  • Size: 35.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for mediaichemy-1.1.2-py3-none-any.whl
Algorithm Hash digest
SHA256 6ba7137ad406e750b20d5ef90c0d9dbff677fa2607f13532fa4dcb43a7909d58
MD5 10fa143d9d0244147c8aeb6f348050ff
BLAKE2b-256 01d4c03e210670605d2b84a42beb77e84f406ebf0f6e5a3d5c35baa7bd3daa89

See more details on using hashes here.

Provenance

The following attestation bundles were made for mediaichemy-1.1.2-py3-none-any.whl:

Publisher: publish-to-pypi.yml on pedroblayaluz/mediaichemy

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

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