Skip to main content

Generating Thumbnail for everyone

Project description

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.

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

yt_thumbnail_creator-0.1.1.tar.gz (11.9 kB view details)

Uploaded Source

Built Distribution

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

yt_thumbnail_creator-0.1.1-py3-none-any.whl (10.8 kB view details)

Uploaded Python 3

File details

Details for the file yt_thumbnail_creator-0.1.1.tar.gz.

File metadata

  • Download URL: yt_thumbnail_creator-0.1.1.tar.gz
  • Upload date:
  • Size: 11.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.12.1

File hashes

Hashes for yt_thumbnail_creator-0.1.1.tar.gz
Algorithm Hash digest
SHA256 d76f95888fdd14ae97f322882a059b5b9d7404b0754392c25be58ac56f7b3d0c
MD5 953fe61b3c216fac32f0c507300e3e6e
BLAKE2b-256 ee84e8468d73cda1d907878dbaf46d903d4a8022897d6a13833982b0f0414397

See more details on using hashes here.

File details

Details for the file yt_thumbnail_creator-0.1.1-py3-none-any.whl.

File metadata

File hashes

Hashes for yt_thumbnail_creator-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 32a9a6f3ad053c07ae0e644e4a4ec936f9aa352fc0b8bc3cf20c74453ddceb24
MD5 6b3a6d6e453038c3e9418c1ed763a67a
BLAKE2b-256 b8d69cad1f828ac39a34ec6d769afacadd77ffa68a43b40bcd78cdba3b1ffe7c

See more details on using hashes here.

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