【AI】视频动漫化

一、功能

将一个现实中的人物视频,让视频变成动漫的风格

二、实现原理

基于github上的图片动漫化ai项目,其不支持图片,所以我通过将视频拆分为大量的图片,然后将图片全部转换为动漫图片,最后将所有的图片进行合并,即可间接将视频进行动漫化

三、操作方法

1、你需要学会怎么将视频拆分为图片,以及怎么将图片合并为视频,可参考我的文章:视频拆分为图片、图片合并为视频(带声音)
2、你需要有我的python脚本,本文会给出

点击查看代码
import os

import requests,json,base64,urllib3,time,re,os
source_path=r"C:\Users\painter\Desktop\视频拆分图片-图片合并成视频\output\\"    #这里是待动漫化处理的图片路径
filenames=os.listdir(source_path)

for filename in filenames:   #获取每一张图片的文件名
    try:
        ext = filename.split(\'.\')[1]
        with open(source_path+filename,"rb") as f:
            tupian=f.read()
        # print(tupian)
        tupian="data:image/{};base64,".format(ext)+base64.b64encode(tupian).decode()
        # print(tupian)
        proxy={"http://":"127.0.0.1:8080","https://":"127.0.0.1:8080"}
        headers={
        \'User-Agent\': \'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/96.0.4664.93 Safari/537.36\',
        \'Sec-Ch-Ua-Platform\': "Windows",
        \'Content-Type\': \'application/json\',
        \'Origin\': \'https://hf.space\',
        \'Sec-Fetch-Site\': \'same-origin\',
        \'Sec-Fetch-Mode\': \'cors\',
        \'Referer\': \'https://hf.space/gradioiframe/akhaliq/AnimeGANv2/+\'}
        urllib3.disable_warnings(urllib3.exceptions.InsecureRequestWarning)
        r = requests.post(url=\'https://hf.space/gradioiframe/akhaliq/AnimeGANv2/api/queue/push/\',headers=headers,json={"data": [tupian,"version 2 (\ud83d\udd3a robustness,\ud83d\udd3b stylizatior)"],"action":"predict"},verify=False)
        hash=r.json()["hash"]
        hash={"hash":hash}
        time.sleep(7)
        urllib3.disable_warnings(urllib3.exceptions.InsecureRequestWarning)
        req=requests.post(url="https://hf.space/gradioiframe/akhaliq/AnimeGANv2/api/queue/status/",headers=headers,json=hash,verify=False)
        # print(req.json())
        # urllib3.disable_warnings(urllib3.exceptions.InsecureRequestWarning)
        # req1=requests.post(url="https://hf.space/gradioiframe/akhaliq/AnimeGANv2/api/queue/status/",headers=headers,json=hash,verify=False)
        img=req.json()["data"]["data"][0].replace("data:image/png;base64,","")
        img=base64.b64decode(img)
        # base64.b64encode(tupian).decode()
        # print(img)

        #写入处理好的动漫图片,将其写入到原来的原图片路径,为了节省空间,对原图片进行覆盖处理
        with open(source_path+filename,"wb") as f:
            f.write(img)
        print("已完成:{}".format(filename))
        # print(result)
    except:
        pass

四、效果视频

相关推荐:

Python爬虫怎么抓取短视频数据_从页面分析获取真实视频URL

短视频平台HTML中无真实视频URL,因地址藏于XHR接口响应的加密字段中,需通过浏览器抓包定位接口、复现带签名的请求或用Playwright等工具执行JS获取。 为什么直接请求页面HTML拿不到视频URL 短视频平台(如抖音、快手)的首页或详情页HTML里基本不写真实视频地址,video标签要么没...

怎么用Python自动化截取视频的精彩画面作为封面图

根本原因是OpenCV默认后端解码器不一致,Windows上常fallback到DSHOW,对H.265等编码支持差;应强制指定cv2.CAP_FFMPEG后端,并检查cap.read()返回值ret确保帧有效。 用cv2.VideoCapture逐帧读取视频时,为什么总卡在黑帧或第一帧不动? 常见...

在 Python 中使用 OpenCV 处理 10 位视频的完整实践指南

OpenCV默认仅支持8位视频读取,无法原生解析如yuv422p10le等10位色深格式;本文提供无需重编译OpenCV的实用替代方案,包括图像序列转换、16位帧加载与深度保留处理全流程。 opencv默认仅支持8位视频读取,无法原生解析如`yuv422p10le`等10位色深格式;本文提供无需重编...