李云龙二次元风格化!一键fork你也能行


本文介绍用AnimeGANv2实现李云龙视频二次元风格化的方法。先说明AnimeGANv2的改进,接着讲实现思路与目录结构,然后阐述素材准备、环境配置和代码实操过程,包括安装依赖、导入环境、用预训练模型进行视频风格迁移,最后说明合并音视频的步骤,还提供了相关展示和技术详解链接。

☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 免费无限量使用 DeepSeek R1 模型☜☜☜

李云龙二次元风格化!一键star、fork,你也可以生成这样的团长!

0.效果展示

打滚卖萌求star求fork!

  • 视频效果如下,前往B站观看效果更佳:李云龙二次元风格化:

  • github开源repo:李云龙二次元风格化
  • CSDN技术详解:李云龙二次元风格化!

1.模型简介

1.1AnimeGANv2

本文使用了animeGANv2进行了视频的风格迁移。
animeGANv2,顾名思义,是其前作AnimeGAN的改进版,改进方向主要在以下4点:

  • 解决了生成的图像中的高频伪影问题。
  • 它易于训练,并能直接达到论文所述的效果。
  • 进一步减少生成器网络的参数数量。(现在生成器大小 8.17Mb)
  • 尽可能多地使用来自BD电影的新的高质量的风格数据。
    效果图参考:

    本文则是使用了paddlepaddle预训练好的animeGANv2模型对李云龙名场面视频进行了风格化迁移,详情请看下文分解。

2.实现思路

2.1目录结构

├── codes 代码、数据都在这里面
│   ├── PaddleGAN-develop 代码,基于paddleGAN进行了一些改动,鸣谢
│   ├── videos 所需要转换的视频及音频信息
│   ├── images notebook展示用的图片,没啥用

3.素材准备

首先要找到自己要操作的视频素材,将视频的音频单独提取出来备用
我自己找的资源放在了codes/videos/liyunlong文件夹下,是李云龙名场面:
你咋不敢跟旅长干一架呢!→旅长我给你跪下了

4.代码实操:

话不多说,首先是环境的基本配置

In [ ]
# 安装基本环境!pip install -r codes/PaddleGAN-develop/requirements.txt
Looking in indexes: https://mirror.baidu.com/pypi/simple/
Requirement already up-to-date: xgboost==1.1.0 in /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages (1.1.0)
Requirement already satisfied, skipping upgrade: scipy in /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages (from xgboost==1.1.0) (1.3.0)
Requirement already satisfied, skipping upgrade: numpy in /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages (from xgboost==1.1.0) (1.16.4)
Looking in indexes: https://mirror.baidu.com/pypi/simple/
Requirement already satisfied: tqdm in /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages (from -r codes/PaddleGAN-develop/requirements.txt (line 1)) (4.36.1)
Requirement already satisfied: PyYAML>=5.1 in /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages (from -r codes/PaddleGAN-develop/requirements.txt (line 2)) (5.1.2)
Requirement already satisfied: scikit-image>=0.14.0 in /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages (from -r codes/PaddleGAN-develop/requirements.txt (line 3)) (0.17.2)
Requirement already satisfied: scipy>=1.1.0 in /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages (from -r codes/PaddleGAN-develop/requirements.txt (line 4)) (1.3.0)
Requirement already satisfied: opencv-python in /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages (from -r codes/PaddleGAN-develop/requirements.txt (line 5)) (4.1.1.26)
Requirement already satisfied: imageio-ffmpeg in /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages (from -r codes/PaddleGAN-develop/requirements.txt (line 6)) (0.3.0)
Collecting librosa==0.7.0 (from -r codes/PaddleGAN-develop/requirements.txt (line 7))
  Downloading https://mirror.baidu.com/pypi/packages/ad/6e/0eb0de1c9c4e02df0b40e56f258eb79bd957be79b918511a184268e01720/librosa-0.7.0.tar.gz (1.6MB)
     |████████████████████████████████| 1.6MB 11.2MB/s eta 0:00:01
Requirement already satisfied: numba==0.48 in /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages (from -r codes/PaddleGAN-develop/requirements.txt (line 8)) (0.48.0)
Requirement already satisfied: easydict in /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages (from -r codes/PaddleGAN-develop/requirements.txt (line 9)) (1.9)
Collecting munch (from -r codes/PaddleGAN-develop/requirements.txt (line 10))
  Downloading https://mirror.baidu.com/pypi/packages/cc/ab/85d8da5c9a45e072301beb37ad7f833cd344e04c817d97e0cc75681d248f/munch-2.5.0-py2.py3-none-any.whl
Requirement already satisfied: numpy>=1.15.1 in /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages (from scikit-image>=0.14.0->-r codes/PaddleGAN-develop/requirements.txt (line 3)) (1.16.4)
Requirement already satisfied: matplotlib!=3.0.0,>=2.0.0 in /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages (from scikit-image>=0.14.0->-r codes/PaddleGAN-develop/requirements.txt (line 3)) (2.2.3)
Requirement already satisfied: PyWavelets>=1.1.1 in /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages (from scikit-image>=0.14.0->-r codes/PaddleGAN-develop/requirements.txt (line 3)) (1.1.1)
Requirement already satisfied: imageio>=2.3.0 in /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages (from scikit-image>=0.14.0->-r codes/PaddleGAN-develop/requirements.txt (line 3)) (2.6.1)
Requirement already satisfied: pillow!=7.1.0,!=7.1.1,>=4.3.0 in /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages (from scikit-image>=0.14.0->-r codes/PaddleGAN-develop/requirements.txt (line 3)) (7.1.2)
Requirement already satisfied: tifffile>=2019.7.26 in /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages (from scikit-image>=0.14.0->-r codes/PaddleGAN-develop/requirements.txt (line 3)) (2025.3.16)
Requirement already satisfied: networkx>=2.0 in /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages (from scikit-image>=0.14.0->-r codes/PaddleGAN-develop/requirements.txt (line 3)) (2.4)
Requirement already satisfied: audioread>=2.0.0 in /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages (from librosa==0.7.0->-r codes/PaddleGAN-develop/requirements.txt (line 7)) (2.1.8)
Requirement already satisfied: scikit-learn!=0.19.0,>=0.14.0 in /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages (from librosa==0.7.0->-r codes/PaddleGAN-develop/requirements.txt (line 7)) (0.22.1)
Requirement already satisfied: joblib>=0.12 in /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages (from librosa==0.7.0->-r codes/PaddleGAN-develop/requirements.txt (line 7)) (0.14.1)
Requirement already satisfied: decorator>=3.0.0 in /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages (from librosa==0.7.0->-r codes/PaddleGAN-develop/requirements.txt (line 7)) (4.4.0)
Requirement already satisfied: six>=1.3 in /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages (from librosa==0.7.0->-r codes/PaddleGAN-develop/requirements.txt (line 7)) (1.15.0)
Requirement already satisfied: resampy>=0.2.0 in /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages (from librosa==0.7.0->-r codes/PaddleGAN-develop/requirements.txt (line 7)) (0.2.2)
Requirement already satisfied: soundfile>=0.9.0 in /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages (from librosa==0.7.0->-r codes/PaddleGAN-develop/requirements.txt (line 7)) (0.10.3.post1)
Requirement already satisfied: llvmlite<0.32.0,>=0.31.0dev0 in /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages (from numba==0.48->-r codes/PaddleGAN-develop/requirements.txt (line 8)) (0.31.0)
Requirement already satisfied: setuptools in /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages (from numba==0.48->-r codes/PaddleGAN-develop/requirements.txt (line 8)) (41.4.0)
Requirement already satisfied: python-dateutil>=2.1 in /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages (from matplotlib!=3.0.0,>=2.0.0->scikit-image>=0.14.0->-r codes/PaddleGAN-develop/requirements.txt (line 3)) (2.8.0)
Requirement already satisfied: kiwisolver>=1.0.1 in /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages (from matplotlib!=3.0.0,>=2.0.0->scikit-image>=0.14.0->-r codes/PaddleGAN-develop/requirements.txt (line 3)) (1.1.0)
Requirement already satisfied: cycler>=0.10 in /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages (from matplotlib!=3.0.0,>=2.0.0->scikit-image>=0.14.0->-r codes/PaddleGAN-develop/requirements.txt (line 3)) (0.10.0)
Requirement already satisfied: pyparsing!=2.0.4,!=2.1.2,!=2.1.6,>=2.0.1 in /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages (from matplotlib!=3.0.0,>=2.0.0->scikit-image>=0.14.0->-r codes/PaddleGAN-develop/requirements.txt (line 3)) (2.4.2)
Requirement already satisfied: pytz in /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages (from matplotlib!=3.0.0,>=2.0.0->scikit-image>=0.14.0->-r codes/PaddleGAN-develop/requirements.txt (line 3)) (2019.3)
Requirement already satisfied: cffi>=1.0 in /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages (from soundfile>=0.9.0->librosa==0.7.0->-r codes/PaddleGAN-develop/requirements.txt (line 7)) (1.14.0)
Requirement already satisfied: pycparser in /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages (from cffi>=1.0->soundfile>=0.9.0->librosa==0.7.0->-r codes/PaddleGAN-develop/requirements.txt (line 7)) (2.19)
Building wheels for collected packages: librosa
  Building wheel for librosa (setup.py) ... done
  Created wheel for librosa: filename=librosa-0.7.0-cp37-none-any.whl size=1598346 sha256=f77d09d330640410b176d36a3c3f9f5108aade35b81da8a49d2046ac494bd691
  Stored in directory: /home/aistudio/.cache/pip/wheels/81/7e/60/c27574fffbf2f28075dbf4b28c00d3fe3240fefb51d597932e
Successfully built librosa
Installing collected packages: librosa, munch
  Found existing installation: librosa 0.7.2
    Uninstalling librosa-0.7.2:
      Successfully uninstalled librosa-0.7.2
Successfully installed librosa-0.7.0 munch-2.5.0
In [ ]
# 导入基本环境import paddle 
import os 
import sys 
sys.path.insert(0,'codes/PaddleGAN-develop')from ppgan.apps import AnimeGANPredictor
codes/PaddleGAN-develop/ppgan/modules/dense_motion.py:116: DeprecationWarning: invalid escape sequence \h
  """

5.GAN它!

友情提示:此处最好使用GPU环境,cpu推理属实是有点点慢 进行模型的推理:

In [ ]
# 使用paddlepaddle预训练好的animeGANv2模型对视频进行风格迁移:from ppgan.apps import AnimeGANPredictorimport cv2
    
predictor = AnimeGANPredictor('',None,)
video_src = 'codes/videos/liyunlong/格式工厂混流 亮剑-03+亮剑-03+亮剑-04 00_00_23-.mp4'video_ = cv2.VideoCapture(video_src)
video_name_ = os.path.basename(video_src)
total_frames = video_.get(cv2.CAP_PROP_FRAME_COUNT)
fps_ = video_.get(cv2.CAP_PROP_FPS)print("video {}, fps:{}, total frames:{}...".format(video_name_, fps_, total_frames))
frame_count_ = 0save_per_frames = 1dst_dir = 'codes/videos/liyunlong/'
    out_video = cv2.VideoWriter('{}/hayao_{}'.format(dst_dir, video_name_),
                                cv2.VideoWriter_fourcc(*'DIVX'), int(fps_),
                                (int(video_.get(3)), int(video_.get(4))))print('now begin...')while True:
    ret_, frame_ = video_.read()    if not ret_:  # or len(fps_list_) == 0:
        print('end of video...')        break
        
    result_frame = predictor.anime_image_only(frame_)    if frame_count_ % save_per_frames == 0:
        out_video.write(result_frame)
    frame_count_ = frame_count_ + 1
    if frame_count_ % 100 == 0:        print("{}/{} processed...".format(frame_count_, int(total_frames)), flush=False)
[03/17 14:08:11] ppgan INFO: Found /home/aistudio/.cache/ppgan/animeganv2_hayao.pdparams
video 格式工厂混流 亮剑-03+亮剑-03+亮剑-04 00_00_23-.mp4, fps:23.0, total frames:5739.0...
now begin...
100/5739 processed...
200/5739 processed...
300/5739 processed...
代码解释

6.最终视频

合成最终所需要的视频:

In [ ]
# 合并生成的视频和之前分离的音频:!ffmpeg -i codes/videos/liyunlong/hayao_格式工厂混流 亮剑-03+亮剑-03+亮剑-04 00_00_23-.mp4 -i codes/videos/liyunlong/音频1.aac -c:v copy -c:a aac -strict experimental codes/videos/liyunlong/李云龙二次元化.mp4

这样就大功告成啦~~~

你可以在此基础上:

  • 更换你喜欢的视频
  • 更换其他paddle预训练好的模型
  • 甚至可以尝试自己动手训练定制化的模型!

打滚卖萌求star、fork!

  • 视频前往B站观看效果更佳:李云龙二次元风格化:
  • github开源repo:李云龙二次元风格化
  • CSDN技术详解:李云龙二次元风格化!


# 所需要  # 则是  # 是有  # 都在  # 你可以  # 放在  # 使用了  # 更佳  # 开源  # python  # 进行了  # paddlepaddle  # github  # red  # yy  # ai  # b站  # git 


相关栏目: 【 Google疑问12 】 【 Facebook疑问10 】 【 网络优化91478 】 【 技术知识72672 】 【 云计算0 】 【 GEO优化84317 】 【 优选文章0 】 【 营销推广36048 】 【 网络运营41350 】 【 案例网站102563 】 【 AI智能45237


相关推荐: Midjourney怎样用参数调色彩饱和度_Midjourney饱和度调整【方法】  Character AI深度解析:功能、用户反馈与替代方案全攻略  DeepSeek写合同怎么用_DeepSeek写合同使用方法详细指南【教程】  AI 3D建模革命:免费生成高质量模型和纹理  Django与React构建AI音乐推荐:数据库集成实战指南  Tamilnad Mercantile Bank TMB:如何在线下载账户报表  提升房地产业务:AI语音助手赋能房地产经纪公司  探索心灵的音乐之旅:Kanwar Garewal的《Ishq Bulleh Nu》  AI对决:挑战AI上帝,探索信仰与科技的边界  ChatGPT 处理非结构化数据并转换为 JSON 格式  使用文心一言进行中文客服话术库的逻辑优化  Logic Pro 11更新全面解析:免费升级、AI功能与音乐制作流程  AI网站构建指南:Duda平台免费创建教程  Runway Gen-2怎么用 Runway视频生成AI使用教程  AI写作工具深度评测:Novelcrafter, Sudowrite, Squibler  美图秀秀AI抠图如何修复抠图误差_美图秀秀AI误差修复与手动涂抹【指南】  5分钟教你用AI生成短视频分镜脚本,小白也能拍大片  探索弦乐器世界:从吉他到卡曼切,乐器全解析  AI无镜头相机Paragraphica:颠覆传统摄影的新方式  AI|直播|话术生成工具有哪些_一键生成带货话术的AI工具推荐  tofai官网网页版入口 tofai最新网页版登录链接  夸克AI怎样搜索医疗健康_夸克AI医疗频道与症状自查【技巧】  MediCa AI:AI赋能的智能医疗保健平台全面解析  AI Sales Assistant:提升销售效率与客户互动的终极指南  手相解析:生命线的形状与意义详解,预示健康、财富和命运  AI视频工具:加速内容创作,提升效率的终极指南  AI绘图软件怎么用_AI绘图软件使用方法详细指南【教程】  Claude怎么用新功能代码调试_Claude代码调试使用【方法】  如何利用豆包 AI 快速查询当地生活服务资讯  AI海报设计终极指南:用ChatGPT和ImageFX轻松创建专业级海报  AI社交媒体自动化:n8n与HeyGen打造个性化内容引擎  通义千问怎样写文案_通义千问文案写作教程【指南】  ChatGPT官网免费使用入口 ChatGPT在线版官方地址  利用Gen AI和AI Agent进行软件测试:Ollama本地LLM实践  Google AI 在教育领域个性化学习路径的构建  Motion:革新项目管理的智能日历解决方案  免费涨粉秘籍:Instagram快速提升技巧,告别粉丝流失  Depseek怎么设置总结汇报重点_Depseek重点突出与关键词标注方法【步骤】  Higgsfield WAN 2.5:AI视频生成工具新纪元  ChatGPT 4 辅助进行室内设计灵感采集  ChatGPT怎么写工作汇报 职场办公效率提升与周报生成方法  通义千问怎样优化提示词合需求_通义千问需求契合技巧【步骤】  Midjourney怎样做PPT模板_MidjourneyPPT模板生成【方法】  CanvaAI抠图怎样调整色彩_CanvaAI色彩校正与滤镜叠加方法【攻略】  百度ai助手任务栏怎么关 百度ai助手任务栏图标隐藏  AI伴侣:连接还是孤独?真实对话揭秘AI伦理困境  ChatGPT 角色扮演实战:提升沟通技巧与问题解决能力  AI赋能抵押贷款:Total Expert AI 销售助理深度解析  Pictory AI视频制作平台深度评测:功能、价格与使用指南  利用豆包 AI 进行个性化旅行 Vlog 脚本设计 

 2025-07-28

了解您产品搜索量及市场趋势,制定营销计划

同行竞争及网站分析保障您的广告效果

点击免费数据支持

提交您的需求,1小时内享受我们的专业解答。

南京市珐之弘网络技术有限公司


南京市珐之弘网络技术有限公司

南京市珐之弘网络技术有限公司专注海外推广十年,是谷歌推广.Facebook广告全球合作伙伴,我们精英化的技术团队为企业提供谷歌海外推广+外贸网站建设+网站维护运营+Google SEO优化+社交营销为您提供一站式海外营销服务。

 87067657

 13565296790

 87067657@qq.com

Notice

We and selected third parties use cookies or similar technologies for technical purposes and, with your consent, for other purposes as specified in the cookie policy.
You can consent to the use of such technologies by closing this notice, by interacting with any link or button outside of this notice or by continuing to browse otherwise.