Реализация AI-колоризации чёрно-белых изображений

Проектируем и внедряем системы искусственного интеллекта: от прототипа до production-ready решения. Наша команда объединяет экспертизу в машинном обучении, дата-инжиниринге и MLOps, чтобы AI работал не в лаборатории, а в реальном бизнесе.
Показано 1 из 1 услугВсе 1566 услуг
Реализация AI-колоризации чёрно-белых изображений
Простая
~2-3 рабочих дня
Часто задаваемые вопросы
Направления AI-разработки
Этапы разработки AI-решения
Последние работы
  • image_website-b2b-advance_0.png
    Разработка сайта компании B2B ADVANCE
    1218
  • image_web-applications_feedme_466_0.webp
    Разработка веб-приложения для компании FEEDME
    1161
  • image_websites_belfingroup_462_0.webp
    Разработка веб-сайта для компании БЕЛФИНГРУПП
    853
  • image_ecommerce_furnoro_435_0.webp
    Разработка интернет магазина для компании FURNORO
    1047
  • image_logo-advance_0.png
    Разработка логотипа компании B2B Advance
    561
  • image_crm_enviok_479_0.webp
    Разработка веб-приложения для компании Enviok
    825

AI-раскрашивание чёрно-белых изображений

AI-раскрашивание восстанавливает цвет в чёрно-белых фотографиях и видео. Нейросетевые модели понимают контекст: небо синее, трава зелёная, кожа телесная — без ручной разметки.

DeOldify — классика раскрашивания

from deoldify import device
from deoldify.device_id import DeviceId
from deoldify.visualize import get_image_colorizer
import PIL.Image as Image
import io

device.set(device=DeviceId.GPU0)

colorizer = get_image_colorizer(artistic=True)  # artistic=True — более насыщенные цвета

def colorize_image(image_bytes: bytes, render_factor: int = 35) -> bytes:
    """
    render_factor: 7-45, выше = более насыщенные цвета, медленнее
    """
    input_image = Image.open(io.BytesIO(image_bytes)).convert("L").convert("RGB")

    # Сохраняем временно
    import tempfile, os
    with tempfile.NamedTemporaryFile(suffix=".jpg", delete=False) as f:
        input_image.save(f.name)
        temp_path = f.name

    result = colorizer.get_transformed_image(temp_path, render_factor=render_factor)
    os.unlink(temp_path)

    buf = io.BytesIO()
    result.save(buf, format="JPEG", quality=95)
    return buf.getvalue()

Stable Diffusion img2img подход

from diffusers import StableDiffusionImg2ImgPipeline
import torch

pipe = StableDiffusionImg2ImgPipeline.from_pretrained(
    "runwayml/stable-diffusion-v1-5",
    torch_dtype=torch.float16
).to("cuda")

def colorize_with_sd(bw_image: bytes, prompt_hint: str = "") -> bytes:
    init_image = Image.open(io.BytesIO(bw_image)).convert("RGB")

    prompt = f"colorized photograph, natural colors, realistic{', ' + prompt_hint if prompt_hint else ''}"

    result = pipe(
        prompt=prompt,
        image=init_image,
        strength=0.5,  # Низкий strength сохраняет структуру
        guidance_scale=8.0,
        num_inference_steps=30
    ).images[0]

    buf = io.BytesIO()
    result.save(buf, format="JPEG", quality=95)
    return buf.getvalue()

DeOldify лучше для исторических фотографий (обучен на реальных ЧБ снимках). SD img2img даёт больше контроля через промпт (можно задать эпоху, регион). Для видео: DeOldify поддерживает пофреймовое раскрашивание с temporal consistency. Сроки интеграции — 1–2 дня.