使用Deoldify模型来对视频影像复原(对运行时遇到的问题的做出的解决方案)

1.模型权重

第一次做Deoldify模型的复原,由于对该模型的使用不太清晰,搜索了一篇文章来查看,文章如下:https://blog.youkuaiyun.com/weixin_42512684/article/details/117376885  

文章发布于21年,但是其作者提供的代码也是帮助解决了很多问题,但是由于作者所提供的模型如stable类型的模型已经无法下载了,这里贴出我收集的三类模型。

处理视频文件的话,使用Video权重就行。

模型权重(百度网盘):

https://pan.baidu.com/s/1Oadr1qk6vWQpokFwsprH8Q?pwd=iybk

2.代码问题:

先去这个网址下获取项目的压缩包:https://github.com/jantic/DeOldify

解压压缩包到对应项目位置。

pip install -r requirements.txt

首先,先下载所需要的各种包,当然这个包不齐全会缺少好几个包,需要后续根据缺少的名字来pip install 一下,不知道包的pip指令可以在网上查询。

直接使用该作者之前提供的运行的代码遇到了这个问题:

修改运行的代码如下即可解决问题:

from deoldify import device
from deoldify.device_id import DeviceId

#choices:  CPU, GPU0...GPU7
device.set(device=DeviceId.GPU0)

from deoldify.visualize import *
plt.style.use('dark_background')
import warnings
warnings.filterwarnings("ignore", category=UserWarning, message=".*?Your .*? set is empty.*?")

colorizer = get_video_colorizer(workfolder='.')


#NOTE:  Max is 44 with 11GB video cards.  21 is a good default
render_factor= 21

file_name = 'video'

file_name_ext = file_name + '.mp4'
# result_path = Path('E:./video_result.mp4')

def progress_bar(progress, message):
    print(f"{message}: {progress}%")
colorizer.colorize_from_file_name(file_name_ext, render_factor=render_factor, g_process_bar=progress_bar)
# colorizer.save_colorized_video(Path(file_name_ext), result_path)

再往下运行就会遇到一种同一类但需要修改的地方十分多的问题,如下所示,还有其它bug,但是没必要一一列出:

 File "E:\***\******\sd-webui-deoldify-main\deoldify\visualize.py", line 237, in _extract_raw_frames
    bwframes_folder = self.bwframes_root / (source_path.stem)
                      ~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~
TypeError: unsupported operand type(s) for /: 'str' and 'str'

可以发现visualize.py存在诸多需要修改的地方,我将修改好的visualize.py贴在下方,这是我个人的一个修改方式:

from fastai.core import *
from fastai.vision import *
from matplotlib.axes import Axes
from .filters import IFilter, MasterFilter, ColorizerFilter
from .generators import gen_inference_deep, gen_inference_wide
from PIL import Image
import ffmpeg
import yt_dlp as youtube_dl
import gc
import requests
from io import BytesIO
import base64
import cv2
import logging
import gradio as gr
from pathlib import Path

class ModelImageVisualizer:
    def __init__(self, filter: IFilter, results_dir: str = None):
        self.filter = filter
        self.results_dir = None if results_dir is None else Path(results_dir)
        self.results_dir.mkdir(parents=True, exist_ok=True)

    def _clean_mem(self):
        torch.cuda.empty_cache()
        # gc.collect()

    def _open_pil_image(self, path: Path) -> Image:
        return PIL.Image.open(path).convert('RGB')

    def _get_image_from_url(self, url: str) -> Image:
        response = requests.get(url, timeout=30, headers={'user-agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/62.0.3202.94 Safari/537.36'})
        img = PIL.Image.open(BytesIO(response.content)).convert('RGB')
        return img

    def plot_transformed_image_from_url(
        self,
        url: str,
        path: str = 'test_images/image.png',
        results_dir:Path = None,
        figsize: Tuple[int, int] = (20, 20),
        render_factor: int = None,
        
        
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值