imgutils.sd.nai
This module provides functionality for handling metadata in images, specifically for the Novel AI (NAI) format. It includes classes and functions for extracting, creating, and saving NAI metadata in images.
The module offers the following main features:
- Extraction of NAI metadata from images 
- Creation of NAI metadata objects 
- Adding NAI metadata to images 
- Saving images with NAI metadata 
This module is particularly useful for working with AI-generated images and their associated metadata.
NAIMetaData
- class imgutils.sd.nai.NAIMetaData(software: str, source: str, parameters: dict, title: str | None = None, generation_time: float | None = None, description: str | None = None)[source]
- A dataclass representing Novel AI (NAI) metadata. - This class encapsulates various metadata fields associated with NAI-generated images. - Parameters:
- software (str) – The software used to generate the image. 
- source (str) – The source of the image. 
- parameters (dict) – A dictionary containing generation parameters. 
- title (Optional[str]) – The title of the image (optional). 
- generation_time (Optional[float]) – The time taken to generate the image (optional). 
- description (Optional[str]) – A description of the image (optional). 
 
 - __init__(software: str, source: str, parameters: dict, title: str | None = None, generation_time: float | None = None, description: str | None = None) None
 - property pnginfo: PngInfo
- Convert the NAIMetadata to a PngInfo object. - This property creates a PngInfo object with the metadata information, which can be used when saving PNG images. - Returns:
- A PngInfo object containing the metadata. 
- Return type:
- PngInfo 
 
 
NAIMetadata
- class imgutils.sd.nai.NAIMetadata
- Alias of - NAIMetaData
get_naimeta_from_image
- imgutils.sd.nai.get_naimeta_from_image(image: str | PathLike | bytes | bytearray | BinaryIO | Image) NAIMetaData | None[source]
- Extract and create a NAIMetadata object from an image. - This function attempts to extract NAI metadata from the given image and create a NAIMetadata object. If the required metadata fields are not present, it returns None. - Parameters:
- image (ImageTyping) – The input image. 
- Returns:
- A NAIMetadata object if successful, None otherwise. 
- Return type:
- Optional[NAIMetaData] 
 
add_naimeta_to_image
- imgutils.sd.nai.add_naimeta_to_image(image: str | PathLike | bytes | bytearray | BinaryIO | Image, metadata: NAIMetaData) Image[source]
- Add NAI metadata to an image using LSB (Least Significant Bit) encoding. - Parameters:
- image (ImageTyping) – The input image. 
- metadata (NAIMetaData) – The NAIMetadata object to add to the image. 
 
- Returns:
- The image with added metadata. 
- Return type:
- Image.Image 
 
save_image_with_naimeta
- imgutils.sd.nai.save_image_with_naimeta(image: str | PathLike | bytes | bytearray | BinaryIO | Image, dst_file: str | PathLike, metadata: NAIMetaData, add_lsb_meta: str | bool = 'auto', save_metainfo: str | bool = 'auto', **kwargs) Image[source]
- Save an image with NAI metadata. - This function saves the given image with the provided NAI metadata. It can add LSB metadata and save metainfo based on the image format and user preferences. - Parameters:
- image (ImageTyping) – The input image. 
- dst_file (Union[str, os.PathLike]) – The destination file path. 
- metadata (NAIMetaData) – The NAIMetadata object to include in the image. 
- add_lsb_meta (Union[str, bool]) – Whether to add LSB metadata. Can be ‘auto’, True, or False. 
- save_metainfo (Union[str, bool]) – Whether to save metainfo. Can be ‘auto’, True, or False. 
- kwargs – Additional keyword arguments for image saving. 
 
- Returns:
- The saved image. 
- Return type:
- Image.Image 
- Raises:
- ValueError – If LSB metadata cannot be saved to the specified image format. 
- SystemError – If the image format is not supported for saving metainfo.