首先,请打开 GitHub 官网,搜索并找到 "DeOldify" 这个项目,然后将其源代码下载到您的本地电脑上。
接下来,请确保您的电脑上已经安装了 Python。如果尚未安装,请前往 Python 官网下载并安装适合您电脑系统的版本。对于 64 位的系统,可以选择下载以下文件:https://www.python.org/ftp/python/3.12.0/python-3.12.0-amd64.exe。安装完成后,打开终端并输入以下命令创建 Python 虚拟环境:
Python -m venv venv 来创建一个python的虚拟环境,在执行这个命令后你应该能够在你的当前文件夹下找到一个名为venv的文件,
随后,请在您的项目文件夹下打开终端,输入以下命令激活虚拟环境:
.\venv\Scripts\activate
接下来,切换到 "deoldify" 文件夹,该文件夹包含您刚才从 GitHub 上下载的项目文件。切换目录的命令为:cd deoldify
接下来,执行以下命令安装项目的依赖环境:
pip install -r requirements.txt
在执行这个命令的时候请确保您的电脑网络畅通,且电脑中有一块 NVIDIA 的独立显卡。安装完依赖后,再执行以下命令安装 DeOldify:pip install e .
在执行完这个指令后,再执行以下指令:pip install e . 执行这个指令是为了安装deoldify,
到了这里,运行这个deoldify项目的所有环境和依赖都安装到位了,
接下来请把下面的代码:
import subprocess
import os
# 尝试导入依赖
try:
import fastai
import deoldify
# ...你可以尝试导入其他依赖
dependencies_installed = True
except ImportError:
dependencies_installed = False
# 如果依赖没有安装,执行安装命令
if not dependencies_installed:
subprocess.run(["pip", "install", "-r", "requirements.txt"])
from deoldify import device
from deoldify.device_id import DeviceId
#choices: CPU, GPU0...GPU7
device.set(device=DeviceId.GPU0)
# 获取当前文件的目录
current_dir = os.path.dirname(os.path.abspath(__file__))
# 设置 TORCH_HOME 为当前目录下的 torch_cache 文件夹
torch_cache_dir = os.path.join(current_dir, 'torch_cache')
os.environ['TORCH_HOME'] = torch_cache_dir
os.makedirs('result', exist_ok=True)
os.makedirs('input', exist_ok=True)
import torch
if not torch.cuda.is_available():
print('GPU not available.')
import fastai
from deoldify.visualize import *
torch.backends.cudnn.benchmark = True
# 创建 models 目录
os.makedirs('models', exist_ok=True)
pretrained_model_path = './models/ColorizeStable_gen.pth'
if not os.path.exists(pretrained_model_path):
# 下载预训练模型
#subprocess.run(["wget", "https://www.dropbox.com/s/axsd2g85uyixaho/ColorizeStable_gen.pth?dl=0", "-O", pretrained_model_path])
# 或者使用 curl
subprocess.run(["curl", "-L", "https://www.dropbox.com/s/axsd2g85uyixaho/ColorizeStable_gen.pth?dl=1", "-o", pretrained_model_path])
# 下载预训练模型
#subprocess.run(["wget", "https://www.dropbox.com/s/axsd2g85uyixaho/ColorizeStable_gen.pth?dl=0", "-O", "./models/ColorizeStable_gen.pth"])
#subprocess.run(["curl", "-L", "https://www.dropbox.com/s/axsd2g85uyixaho/ColorizeStable_gen.pth?dl=1", "-o", "./models/ColorizeStable_gen.pth"])
colorizer = get_image_colorizer(artistic=False)
# 提示用户选择图片类型
image_source = input("Enter 'url' for a web image or 'file' for a local image: ").strip().lower()
# 根据用户的选择,提示用户输入相应的 URL 或文件路径
if image_source == 'url':
image_path_or_url = input("Enter the URL of the image: ").strip()
elif image_source == 'file':
image_path_or_url = input("Enter the file path of the image: ").strip()
else:
print('Invalid input. Please run the program again and enter either "url" or "file".')
exit() # 退出程序
render_factor = 35
watermarked = True
if image_source == 'url':
image_path = colorizer.plot_transformed_image_from_url(url=image_path_or_url, render_factor=render_factor, compare=True, watermarked=watermarked)
elif image_source == 'file':
image_path = colorizer.plot_transformed_image(path=image_path_or_url, render_factor=render_factor, compare=True, watermarked=watermarked)
# 使用 matplotlib 显示图像
import matplotlib.pyplot as plt
import matplotlib.image as mpimg
img = mpimg.imread(image_path)
imgplot = plt.imshow(img)
plt.show()
for i in range(10, 40, 2):
colorizer.plot_transformed_image('test_images/image.png', render_factor=i, display_render_factor=True, figsize=(8, 8))
if image_source == 'url':
# 从 URL 下载图片并保存到 input 文件夹
response = requests.get(image_path_or_url)
input_image_path = os.path.join('input', 'input_image.jpg') # 你可以选择其他文件名和格式
with open(input_image_path, 'wb') as f:
f.write(response.content)
image_path = colorizer.plot_transformed_image_from_url(url=image_path_or_url, render_factor=render_factor, compare=True, watermarked=watermarked)
elif image_source == 'file':
# 复制本地图片到 input 文件夹
input_image_path = os.path.join('input', os.path.basename(image_path_or_url))
shutil.copy(image_path_or_url, input_image_path)
image_path = colorizer.plot_transformed_image(path=image_path_or_url, render_factor=render_factor, compare=True, watermarked=watermarked)
# 保存处理后的图片到 result 文件夹
result_image_path = os.path.join('result', 'result_image.jpg') # 你可以选择其他文件名和格式
shutil.copy(image_path, result_image_path)
复制粘贴到一个txt文档中,然后将这个txt文档重命名为go_v1.py,并将这个go_v1.py文档移动到项目deoldify文件夹下,如下所示:
接下来,请记住你的虚拟环境还没有退出,如果退出了请重新激活虚拟环境,然后将虚拟环境切换到deoldify文件夹下,随后运行以下命令:
Python go_v1.py ,不久后你的电脑桌面会弹出如下画面:
到这里你需要选择你需要上色的黑白照片,如果你选择url,那么你就在这提示词“Enter 'url' for a web image or 'file' for a local image: “背后输入url,那么,接下来你应该选择网络上的一张黑白照片的地址,这里我输入的地址是这个:https://cdn.pixabay.com/photo/2016/01/17/15/15/albert-einstein-1145030_1280.jpg
如下所示:
按下回车后,等上几秒钟,你就得到了如下的画面:
上面这副图片的左侧表示的原链接中的黑白照片,而右边则是经过deoldify软件处理后的彩色照片,更多的黑白图片转彩色照片的展示示例如下所示:
上述黑白照片url地址分给为:
https://cdn.pixabay.com/photo/2018/01/01/15/24/one-3054343_1280.jpg
https://cdn.pixabay.com/photo/2012/11/19/01/41/roses-66517_1280.jpg
https://cdn.pixabay.com/photo/2015/03/24/13/13/self-portrait-687589_1280.jpg