У каждого из нас есть целая сокровищница старых фотографий, доставшихся нам от родителей, бабушек и дедушек и так далее. Часто эти фотографии черно-белые, а иногда мы хотим оживить их в цвете. В Интернете существует множество веб-сайтов, на которых вы можете добиться этого всего несколькими щелчками мыши прямо в браузере. Однако проблема этих сайтов заключается в их многочисленных ограничениях по количеству и качеству. Кроме того, эти услуги часто требуют регистрации и подписки, что может быть весьма неприятно. В этом посте я хотел бы рассказать, как вы можете раскрасить любое количество фотографий с помощью фантастического инструмента без ограничений, регистраций или подписок. DeOldify У , и вы можете им воспользоваться, но неподготовленным людям оно может показаться немного сложным. Здесь я хотел бы продемонстрировать более простой способ использования . DeOldify потрясающее введение DeOldify Подготовка окружающей среды Для начала вам понадобится компьютер под управлением или . Если вы используете , вы все равно можете продолжить, используя . Linux macOS Windows подсистему Windows для Linux (WSL) Существует список необходимых пакетов для : Ubuntu sudo apt update sudo apt install python3-pip wget git ffmpeg libsm6 libxext6 Вы можете использовать этот список в качестве справки, если у вас есть другой дистрибутив . Linux Для (к сожалению, это приблизительный список, так как у меня нет четкого для тестирования): macOS macOS brew install python wget git ffmpeg libsm libxext Следующим шагом является создание отдельной папки с именем , в которой все будет выполняться. Вы можете выбрать любое другое имя или даже не создавать ничего и вообще пропустить этот шаг. Sandbox # Optional mkdir Sandbox cd Sandbox Затем клонируйте : DeOldify git clone https://github.com/jantic/DeOldify.git нет релизов и тегов, а это значит, что мы работаем с веткой. Я считаю, что с последним мастером все должно работать в любое время. Но на всякий случай вот номер ревизии, с которой я все тестировал: У DeOldify основной . Если хотите, можете проверить: be725ca6c5f411c47550df951546537d7202c9bc # Optional cd DeOldify git checkout be725ca6c5f411c47550df951546537d7202c9bc cd .. После этого установите все зависимости Python: pip3 install --user -r DeOldify/requirements.txt pip3 install --user -r DeOldify/requirements-colab.txt pip3 install --user -r DeOldify/requirements-dev.txt Затем создайте каталог для моделей и загрузите модель: mkdir -p DeOldify/models wget https://data.deepai.org/deoldify/ColorizeArtistic_gen.pth -O DeOldify/models/ColorizeArtistic_gen.pth Вот и все! Среда готова; самое сложное позади. Теперь давайте напишем немного кода Python. Раскрасить все Самая интересная и полезная для нас функция — . ModelImageVisualizer.plot_transformed_image() Все, что нам нужно сделать, это написать вокруг него код. Вот моя реализация: #!/usr/bin/python3 from deoldify import device from deoldify.device_id import DeviceId # choices: CPU, GPU0...GPU7 device.set(device=DeviceId.GPU0) from deoldify.visualize import * import warnings import sys import os warnings.filterwarnings("ignore", category=UserWarning, message=".*?Your .*? set is empty.*?") # Play with this constant! render_factor = 35 input_dir = sys.argv[1] output_dir = sys.argv[2] if not os.path.isdir(input_dir): print("input directory is not a directory or not exist") sys.exit(1) if os.path.exists(output_dir): print("out directory is already exist") sys.exit(1) os.makedirs(output_dir) root_dir = Path(os.environ['PYTHONPATH']) colorizer = get_image_colorizer(root_folder=root_dir, artistic=True) for filename in os.listdir(input_dir): f = os.path.join(input_dir, filename) if os.path.isfile(f) and (f.endswith(".png") or f.endswith(".jpg") or f.endswith(".jpeg")): image_path = colorizer.plot_transformed_image( path=f, results_dir=Path(output_dir), render_factor=render_factor, compare=True, watermarked=False ) print("{} ready".format(image_path)) Не стесняйтесь копировать, вставлять и изменять его по своему усмотрению. Скрипт считывает все изображения , и из каталога, переданного в качестве первого аргумента сценария, и раскрашивает их, сохраняя результаты в каталоге, переданном в качестве второго аргумента сценария. Обратите внимание, что выходной каталог не должен существовать; скрипт создаёт его сам. Я сохранил сценарий в файле , но при желании вы можете использовать другое местоположение и имя. .png .jpg .jpeg Sandbox/runner.py Давай попробуем! Я поместил черно-белую фотографию в , а выходной каталог — : Sandbox/photos/in Sandbox/photos/out # from Sandbox directory PYTHONPATH=./DeOldify/ python3 runner.py photos/in/ photos/out/ Переменная среды должна ссылаться на каталог . PYTHONPATH DeOldify Вот результат: