Skip to main content

YouTube Thumbnail Generator

An AI-powered YouTube thumbnail generator that leverages Stable Diffusion and Large Language Models (LLM) to create custom, eye-catching thumbnails based on a given topic.

Table of Contents

Features

  • Intelligent Thumbnail Ideation: Utilizes LLM to generate creative thumbnail concepts and asset prompts.
  • High-Quality Asset Generation: Employs Stable Diffusion 3 to create visually appealing assets.
  • Automated Thumbnail Assembly: Combines generated assets into cohesive thumbnails.
  • Background Removal: Supports automatic background removal from assets for cleaner integration.
  • Text Overlay: Adds customizable text to thumbnails for increased engagement.
  • Image Optimization: Ensures output images are optimized for YouTube's requirements.

Requirements

  • Python 3.7+
  • gradio_client
  • Pillow
  • rembg
  • colorama
  • Custom LLM implementation (llm/llama.py)

Installation

  1. Clone this repository:

    git clone https://github.com/yourusername/youtube-thumbnail-generator.git
    cd youtube-thumbnail-generator
    
  2. Install the required packages:

    pip install gradio_client Pillow rembg colorama
    
  3. Set up the custom LLM implementation:

    • Ensure you have the llm/llama.py file in your project directory.
    • Follow any additional setup instructions for your specific LLM implementation.
  4. Configure environment variables:

    • Set ASSET_DIR_PATH to specify where generated assets should be stored.
    • (Optional) Set any API keys or credentials required for Stable Diffusion or your LLM.

Usage

  1. Run the script:
    python yt_thumb_gen.py --topic "Your Topic"
    
  2. The generated thumbnail will be saved to the path specified in THUMBNAIL_PATH.

Configuration

Modify the following variables in the script to customize the thumbnail generation:

  • THUMBNAIL_PATH: Path where the final thumbnail will be saved.
  • FONT_SIZE: Default font size for text on thumbnails.
  • ASSET_DIR_PATH: Directory to store generated assets.
  • THUMBNAIL_SIZE: Size of the generated thumbnail (default: 1280x720).

Detailed Function Descriptions

generate_asset(prompt)

Generates an image asset using Stable Diffusion based on the given prompt.

extract_code(response)

Extracts Python code from LLM responses for further processing.

generate_assets(topic)

Generates all necessary assets for a thumbnail based on the given topic.

add_to_thumbnail(thumbnail, asset_path, x, y)

Adds an asset to the thumbnail at the specified (x, y) coordinates.

add_text_to_thumbnail(thumbnail, text, position, font_size, color)

Adds text to the thumbnail with customizable position, font size, and color.

save_thumbnail(thumbnail)

Saves the final thumbnail to the specified path.

remove_bg_from_asset(asset_path)

Removes the background from an asset using the rembg library.

Customization

To generate thumbnails for different topics:

  1. Open yt_thumb_gen.py in your preferred text editor.
  2. Locate the __main__ section at the bottom of the script.
  3. Modify the topic variable with your desired thumbnail topic.
  4. Save the file and run the script as described in the Usage section.

Logging

The script uses colorized logging via the colorama library to provide clear feedback on the thumbnail generation process. Different colors are used to highlight various stages and potential issues:

  • Green: Successful operations
  • Yellow: Warnings or important information
  • Red: Errors or critical issues
  • Blue: Processing steps

Troubleshooting

  • Asset Generation Fails: Ensure you have proper API credentials for Stable Diffusion and that your internet connection is stable.
  • LLM Errors: Check that your custom LLM implementation is correctly set up and that any required models are properly loaded.
  • File Permission Issues: Verify that the script has write permissions for the ASSET_DIR_PATH and THUMBNAIL_PATH directories.
  • Missing Dependencies: Run pip install -r requirements.txt to ensure all required packages are installed.

Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

  1. Fork the repository
  2. Create your feature branch (git checkout -b feature/AmazingFeature)
  3. Commit your changes (git commit -m 'Add some AmazingFeature')
  4. Push to the branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

License

This project is licensed under the MIT License - see the LICENSE file for details.

Acknowledgements

  • Stable Diffusion for providing the image generation capabilities.
  • The developers of rembg for the background removal functionality.
  • All contributors who have helped shape and improve this project.

For any questions or support, please open an issue on the GitHub repository.

Release files for yt-thumbnail-creator 0.1.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for yt-thumbnail-creator 0.1.1
File Size Uploaded
yt_thumbnail_creator-0.1.1.tar.gz 11.9 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for yt-thumbnail-creator 0.1.1
File Interpreter ABI Platform
yt_thumbnail_creator-0.1.1-py3-none-any.whl Python 3 none any Details

Total release size: 22.8 kB

Release files / yt_thumbnail_creator-0.1.1.tar.gz

Download URL yt_thumbnail_creator-0.1.1.tar.gz
Size 11.9 kB
Tags Source
SHA-256 checksum
How to use checksums
d76f95888fdd14ae97f322882a059b5b9d7404b0754392c25be58ac56f7b3d0c
BLAKE2b-256 checksum
How to use checksums
ee84e8468d73cda1d907878dbaf46d903d4a8022897d6a13833982b0f0414397
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.1.1 CPython/3.12.1

Release files / yt_thumbnail_creator-0.1.1-py3-none-any.whl

Download URL yt_thumbnail_creator-0.1.1-py3-none-any.whl
Size 10.8 kB
Tags Python 3
SHA-256 checksum
How to use checksums
32a9a6f3ad053c07ae0e644e4a4ec936f9aa352fc0b8bc3cf20c74453ddceb24
BLAKE2b-256 checksum
How to use checksums
b8d69cad1f828ac39a34ec6d769afacadd77ffa68a43b40bcd78cdba3b1ffe7c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.1.1 CPython/3.12.1

Release history Release notifications | RSS feed

This release

0.1.1 This release

2 release files

0.1.0

2 release files

0.0.2

2 release files

0.0.1

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page