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.0.2.tar.gz (11.3 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.0.2-py3-none-any.whl (9.8 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: yt_thumbnail_creator-0.0.2.tar.gz
  • Upload date:
  • Size: 11.3 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.0.2.tar.gz
Algorithm Hash digest
SHA256 6d720feabca13131b5b96e3e5c78e6ee835ebd8a6f2833ce1fb643dedb869ff8
MD5 617eea3376a110627428d8cc899c6727
BLAKE2b-256 8241df406be9d8dd9e7589ad57916c240a58b81ff238620fc4161e62210ab745

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for yt_thumbnail_creator-0.0.2-py3-none-any.whl
Algorithm Hash digest
SHA256 d041602cf3a15b4e7f04efb36e876eb8a5eb4bed3d3abf2660eb26ac1a552816
MD5 d36c87995447b952ea7dd0bd9ac841d4
BLAKE2b-256 ff18e3320c2d82a395e079c03b2f077ee7d2daed37a6e5c36efe56ae493ad09d

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