sketchkit.colorization package¶
Subpackages¶
- sketchkit.colorization.controlnet_lineart package
- sketchkit.colorization.controlnet_scribble package
- sketchkit.colorization.manga_ninja package
Submodules¶
sketchkit.colorization.colorizer module¶
Colorizer for sketch colorization tasks.
- class sketchkit.colorization.colorizer.Colorizer(method: str = 'controlnet_lineart', device: str = 'cuda', **kwargs: Any)[source]¶
Bases:
objectA class for sketch colorization using various AI methods.
This class provides a unified interface to colorize vector sketches or rasterized linearts using ControlNet-based models or reference-based methods like MangaNinja.
- method¶
The colorization method being used (e.g., ‘controlnet_lineart’).
- Type:
str
- device¶
The computation device (‘cuda’ or ‘cpu’).
- Type:
str
- _model¶
The underlying AI model instance initialized based on the method.
- AVAILABLE_METHODS = ['controlnet_lineart', 'controlnet_scribble', 'manga_ninja']¶
- _generate_controlnet(control_image: Image, prompt: str, size: int | Tuple[int, int] | None = None, **kwargs: Any) Image[source]¶
Generates an image using ControlNet-based models.
- Parameters:
control_image (Image.Image) – The processed conditioning image.
prompt (str) – Textual prompt.
size (Optional[Union[int, Tuple[int, int]]]) – Final output size.
**kwargs (Any) – Additional control parameters.
- Returns:
The generated image.
- Return type:
Image.Image
- _generate_manga_ninja(control_image: Image, reference_image: Image, size: int | Tuple[int, int] | None = None, **kwargs: Any) Image[source]¶
Generates a colorized image using MangaNinja.
- Parameters:
control_image (Image.Image) – The input line art image.
reference_image (Image.Image) – The reference image for color guidance.
size (Optional[Union[int, Tuple[int, int]]]) – Processing resolution.
**kwargs (Any) – MangaNinja-specific parameters including: - is_lineart (bool): Whether input is already line art. - guidance_scale_ref (float): Reference guidance scale. - guidance_scale_point (float): Point guidance scale. - num_inference_steps (int): Denoising steps. - seed (int): Random seed. - point_ref (torch.Tensor): Point map on reference image. - point_main (torch.Tensor): Point map on line art image.
- Returns:
The colorized image.
- Return type:
Image.Image
- _generate_with_control_image(control_image: Image, prompt: str, size: int | Tuple[int, int] | None = None, reference_image: Image | None = None, **kwargs: Any) Image[source]¶
Generates the final image using the underlying model.
- Parameters:
control_image (Image.Image) – The processed conditioning image.
prompt (str) – Textual prompt.
size (Optional[Union[int, Tuple[int, int]]]) – Final output size.
reference_image (Optional[Image.Image]) – Reference image for MangaNinja.
**kwargs (Any) – Additional control parameters.
- Returns:
The generated image.
- Return type:
Image.Image
- _prepare_control_image(image: ndarray | Image) Image[source]¶
Standardizes the control image format to a PIL Image.
- Parameters:
image (Union[np.ndarray, Image.Image]) – The raw input image array or PIL object.
- Returns:
The standardized PIL Image in the correct color mode.
- Return type:
Image.Image
- Raises:
TypeError – If the input type is unsupported.
- _prepare_reference_image(image: Image | ndarray) Image[source]¶
Standardizes the reference image format to a PIL RGB Image.
- Parameters:
image (Union[Image.Image, np.ndarray]) – The reference image.
- Returns:
The standardized PIL Image in RGB mode.
- Return type:
Image.Image
- _run_with_image(image: Image | ndarray, prompt: str, size: int | Tuple[int, int] | None, input_size: Tuple[int, int] | None, reference_image: Image | ndarray | None = None, **kwargs: Any) Image[source]¶
Processes a raster image (PIL or numpy array) for colorization.
- Parameters:
image (Union[Image.Image, np.ndarray]) – The input raster image.
prompt (str) – Textual prompt for colorization.
size (Optional[Union[int, Tuple[int, int]]]) – Output image size.
input_size (Optional[Tuple[int, int]]) – Target size to resize the input image.
reference_image (Optional[Union[Image.Image, np.ndarray]]) – Reference image for MangaNinja method.
**kwargs (Any) – Additional generation parameters.
- Returns:
Generated colorized image.
- raises ValueError:
If the numpy array shape is invalid.
- Return type:
Image.Image
- _run_with_sketch(sketch: Sketch, prompt: str, size: int | Tuple[int, int] | None, input_size: Tuple[int, int] | None, reference_image: Image | ndarray | None = None, **kwargs: Any) Image[source]¶
Processes a vector Sketch object for colorization.
- Parameters:
sketch (Sketch) – The input vector sketch.
prompt (str) – Textual prompt for colorization.
size (Optional[Union[int, Tuple[int, int]]]) – Output image size.
input_size (Optional[Tuple[int, int]]) – Target size for rasterization.
reference_image (Optional[Union[Image.Image, np.ndarray]]) – Reference image for MangaNinja method.
**kwargs (Any) – Additional generation parameters.
- Returns:
Generated colorized image.
- Return type:
Image.Image
- _sketch_to_raster(sketch: Sketch, size: int | Tuple[int, int] = 1024, background_color: Tuple[float, float, float] = (1, 1, 1), stroke_width: int = 3, fit_canvas: bool = True) ndarray[source]¶
Converts a vector Sketch to a rasterized numpy array.
- Parameters:
sketch (Sketch) – The vector sketch to render.
size (Union[int, Tuple[int, int]]) – Canvas dimensions. Defaults to 1024.
background_color (Tuple[float, float, float]) – RGB background color. Defaults to white.
stroke_width (int) – Thickness of the rendered strokes. Defaults to 3.
fit_canvas (bool) – Whether to scale paths to fit the canvas. Defaults to True.
- Returns:
The rasterized image as a numpy array.
- Return type:
np.ndarray
- run(input_data: Sketch | Image | ndarray, prompt: str = 'masterpiece, best quality, vibrant colors, flat color, highly detailed, anime illustration style', size: int | Tuple[int, int] | None = None, input_size: Tuple[int, int] | None = None, reference_image: Image | ndarray | None = None, **kwargs: Any) Image[source]¶
Executes the colorization process on the input sketch or image.
- Parameters:
input_data (Union[Sketch, Image.Image, np.ndarray]) – The input lineart. Can be a vector Sketch, a PIL Image, or a numpy array.
prompt (str) – Text description to guide the colorization. Defaults to a high-quality anime illustration prompt. Note: Not used by ‘manga_ninja’ method (reference image is used instead).
size (Optional[Union[int, Tuple[int, int]]]) – The desired output size. If None, it infers the size from the input. For ‘manga_ninja’, the internal processing resolution is 512x512.
input_size (Optional[Tuple[int, int]]) – Optional resolution to resize the input to before processing.
reference_image (Optional[Union[Image.Image, np.ndarray]]) – Reference image for colorization guidance. Required for ‘manga_ninja’ method. Ignored for ControlNet-based methods.
**kwargs (Any) – Additional generation parameters. Common parameters include: - num_inference_steps (int): Number of denoising steps. - guidance_scale (float): CFG scale for text guidance. - seed (int): Random seed for deterministic generation. - negative_prompt (str): Negative text prompt. For ‘manga_ninja’ method, additional parameters include: - is_lineart (bool): If True, input is already line art. - guidance_scale_ref (float): Guidance scale for reference image influence. - guidance_scale_point (float): Guidance scale for point control influence. - point_ref (torch.Tensor): Point map on reference image (1,1,H,W). - point_main (torch.Tensor): Point map on line art image (1,1,H,W).
- Returns:
The resulting colorized image.
- Return type:
Image.Image
- Raises:
TypeError – If the input_data type is not supported.
ValueError – If ‘manga_ninja’ method is used without a reference_image.
Module contents¶
Sketch Colorization
This module provides a unified API for colorizing vector sketches.
- class sketchkit.colorization.Colorizer(method: str = 'controlnet_lineart', device: str = 'cuda', **kwargs: Any)[source]¶
Bases:
objectA class for sketch colorization using various AI methods.
This class provides a unified interface to colorize vector sketches or rasterized linearts using ControlNet-based models or reference-based methods like MangaNinja.
- method¶
The colorization method being used (e.g., ‘controlnet_lineart’).
- Type:
str
- device¶
The computation device (‘cuda’ or ‘cpu’).
- Type:
str
- _model¶
The underlying AI model instance initialized based on the method.
- AVAILABLE_METHODS = ['controlnet_lineart', 'controlnet_scribble', 'manga_ninja']¶
- _generate_controlnet(control_image: Image, prompt: str, size: int | Tuple[int, int] | None = None, **kwargs: Any) Image[source]¶
Generates an image using ControlNet-based models.
- Parameters:
control_image (Image.Image) – The processed conditioning image.
prompt (str) – Textual prompt.
size (Optional[Union[int, Tuple[int, int]]]) – Final output size.
**kwargs (Any) – Additional control parameters.
- Returns:
The generated image.
- Return type:
Image.Image
- _generate_manga_ninja(control_image: Image, reference_image: Image, size: int | Tuple[int, int] | None = None, **kwargs: Any) Image[source]¶
Generates a colorized image using MangaNinja.
- Parameters:
control_image (Image.Image) – The input line art image.
reference_image (Image.Image) – The reference image for color guidance.
size (Optional[Union[int, Tuple[int, int]]]) – Processing resolution.
**kwargs (Any) – MangaNinja-specific parameters including: - is_lineart (bool): Whether input is already line art. - guidance_scale_ref (float): Reference guidance scale. - guidance_scale_point (float): Point guidance scale. - num_inference_steps (int): Denoising steps. - seed (int): Random seed. - point_ref (torch.Tensor): Point map on reference image. - point_main (torch.Tensor): Point map on line art image.
- Returns:
The colorized image.
- Return type:
Image.Image
- _generate_with_control_image(control_image: Image, prompt: str, size: int | Tuple[int, int] | None = None, reference_image: Image | None = None, **kwargs: Any) Image[source]¶
Generates the final image using the underlying model.
- Parameters:
control_image (Image.Image) – The processed conditioning image.
prompt (str) – Textual prompt.
size (Optional[Union[int, Tuple[int, int]]]) – Final output size.
reference_image (Optional[Image.Image]) – Reference image for MangaNinja.
**kwargs (Any) – Additional control parameters.
- Returns:
The generated image.
- Return type:
Image.Image
- _prepare_control_image(image: ndarray | Image) Image[source]¶
Standardizes the control image format to a PIL Image.
- Parameters:
image (Union[np.ndarray, Image.Image]) – The raw input image array or PIL object.
- Returns:
The standardized PIL Image in the correct color mode.
- Return type:
Image.Image
- Raises:
TypeError – If the input type is unsupported.
- _prepare_reference_image(image: Image | ndarray) Image[source]¶
Standardizes the reference image format to a PIL RGB Image.
- Parameters:
image (Union[Image.Image, np.ndarray]) – The reference image.
- Returns:
The standardized PIL Image in RGB mode.
- Return type:
Image.Image
- _run_with_image(image: Image | ndarray, prompt: str, size: int | Tuple[int, int] | None, input_size: Tuple[int, int] | None, reference_image: Image | ndarray | None = None, **kwargs: Any) Image[source]¶
Processes a raster image (PIL or numpy array) for colorization.
- Parameters:
image (Union[Image.Image, np.ndarray]) – The input raster image.
prompt (str) – Textual prompt for colorization.
size (Optional[Union[int, Tuple[int, int]]]) – Output image size.
input_size (Optional[Tuple[int, int]]) – Target size to resize the input image.
reference_image (Optional[Union[Image.Image, np.ndarray]]) – Reference image for MangaNinja method.
**kwargs (Any) – Additional generation parameters.
- Returns:
Generated colorized image.
- raises ValueError:
If the numpy array shape is invalid.
- Return type:
Image.Image
- _run_with_sketch(sketch: Sketch, prompt: str, size: int | Tuple[int, int] | None, input_size: Tuple[int, int] | None, reference_image: Image | ndarray | None = None, **kwargs: Any) Image[source]¶
Processes a vector Sketch object for colorization.
- Parameters:
sketch (Sketch) – The input vector sketch.
prompt (str) – Textual prompt for colorization.
size (Optional[Union[int, Tuple[int, int]]]) – Output image size.
input_size (Optional[Tuple[int, int]]) – Target size for rasterization.
reference_image (Optional[Union[Image.Image, np.ndarray]]) – Reference image for MangaNinja method.
**kwargs (Any) – Additional generation parameters.
- Returns:
Generated colorized image.
- Return type:
Image.Image
- _sketch_to_raster(sketch: Sketch, size: int | Tuple[int, int] = 1024, background_color: Tuple[float, float, float] = (1, 1, 1), stroke_width: int = 3, fit_canvas: bool = True) ndarray[source]¶
Converts a vector Sketch to a rasterized numpy array.
- Parameters:
sketch (Sketch) – The vector sketch to render.
size (Union[int, Tuple[int, int]]) – Canvas dimensions. Defaults to 1024.
background_color (Tuple[float, float, float]) – RGB background color. Defaults to white.
stroke_width (int) – Thickness of the rendered strokes. Defaults to 3.
fit_canvas (bool) – Whether to scale paths to fit the canvas. Defaults to True.
- Returns:
The rasterized image as a numpy array.
- Return type:
np.ndarray
- run(input_data: Sketch | Image | ndarray, prompt: str = 'masterpiece, best quality, vibrant colors, flat color, highly detailed, anime illustration style', size: int | Tuple[int, int] | None = None, input_size: Tuple[int, int] | None = None, reference_image: Image | ndarray | None = None, **kwargs: Any) Image[source]¶
Executes the colorization process on the input sketch or image.
- Parameters:
input_data (Union[Sketch, Image.Image, np.ndarray]) – The input lineart. Can be a vector Sketch, a PIL Image, or a numpy array.
prompt (str) – Text description to guide the colorization. Defaults to a high-quality anime illustration prompt. Note: Not used by ‘manga_ninja’ method (reference image is used instead).
size (Optional[Union[int, Tuple[int, int]]]) – The desired output size. If None, it infers the size from the input. For ‘manga_ninja’, the internal processing resolution is 512x512.
input_size (Optional[Tuple[int, int]]) – Optional resolution to resize the input to before processing.
reference_image (Optional[Union[Image.Image, np.ndarray]]) – Reference image for colorization guidance. Required for ‘manga_ninja’ method. Ignored for ControlNet-based methods.
**kwargs (Any) – Additional generation parameters. Common parameters include: - num_inference_steps (int): Number of denoising steps. - guidance_scale (float): CFG scale for text guidance. - seed (int): Random seed for deterministic generation. - negative_prompt (str): Negative text prompt. For ‘manga_ninja’ method, additional parameters include: - is_lineart (bool): If True, input is already line art. - guidance_scale_ref (float): Guidance scale for reference image influence. - guidance_scale_point (float): Guidance scale for point control influence. - point_ref (torch.Tensor): Point map on reference image (1,1,H,W). - point_main (torch.Tensor): Point map on line art image (1,1,H,W).
- Returns:
The resulting colorized image.
- Return type:
Image.Image
- Raises:
TypeError – If the input_data type is not supported.
ValueError – If ‘manga_ninja’ method is used without a reference_image.