为什么保存之后找不到ppt了呢(保存的ppt找不到)
645
2022-05-29
前言
最近几天,某音和朋友圈都在秀“蚂蚁牙黑”,加上特效和魔性的音乐纷纷被人模仿!这里,看了胡琦大大的教程之后,咱用 ModelArts 来制作实践跑一遍,我将重新从头到尾,简单操作实现生成“蚂蚁牙黑“魔性洗脑小视频。
整体流程
步骤一
创建桶,并将数据集导入到自己的OBS桶中
步骤二
进入ModelArts的控制台,找到开发环境->NoteBook,然后新建一个NoteBook,名称:任意;设置参数:python3;资源池:公共资源池;类型:GPU存储;配置:云硬盘EVS;规格:[限时免费]体验规格GPU版。
步骤三
新建Pytorch 1.0的.ipynb文件,利用 Moxing 拷贝文件到 JupyterLab,然后进行解压
步骤四
准备工作完成之后,切换到first-order-model目录,然后将 source_image_path中的路径替换为”素材脸”所在的路径,脸的照片可以直接通过 Notebook 的文件上传功能上传。当然您还可以将默认的“蚂蚁牙黑”视频替换为您自定义的视频,格式为 mp4。
步骤五
保存结果视频,然后下载安装剪辑神器软件moviepy,然后导入音频,最后加以合成到出成result.mp4
步骤六
最后,可以上传任意图片做水印,生成加水印后的视频,自此,单人版的”蚂蚁牙黑“全部完成
步骤一
首先,创建一个新的桶并命名。
然后创建一个文件夹data,用来存放AI Gallery胡琦大大提供的数据集,然后点击确认下载。(数据集-:点击 https://marketplace.huaweicloud.com/markets/aihub/datasets/detail/?content_id=00bc20c3-2a00-4231-bdfd-dfa3eb62a46d )
耐心等待2分钟左右,就会显示下载完成。
步骤二
登陆ModelArts控制台 https://console.huaweicloud.com/modelarts/?region=cn-north-4&locale=zh-cn#/dashboard
然后选择开发环境->Notebook->创建Notebook
名称:任意
设置参数:python3
资源池:公共资源池
类型:GPU
存储配置:云硬盘EVS
规格:[限时免费]体验规格GPU版
最后再确认一下参数
步骤三
新建Pytorch 1.0的.ipynb文件,利用 Moxing 拷贝文件到 JupyterLab,然后进行解压
简单测试一下是否可以运行代码
利用 Moxing 拷贝文件到 JupyterLab
将之前下载到 OBS 中的模型和素材通过 Moxing 拷贝过来,此处注意替换为您的 OBS 路径。02.mp4是“蚂蚁呀嘿”的模版视频,
# 用 Moxing 下载文件 import moxing as mox # 此处需要替换您的 OBS 地址 mox.file.copy_parallel('obs://mayiyahei88/data/first-order-motion-model/first-order-motion-model-20210226T075740Z-001.zip' , 'first-order-motion-model.zip') mox.file.copy_parallel('obs://mayiyahei88/data/first-order-motion-model/02.mp4' , '02.mp4')
# 解压 !unzip first-order-motion-model.zip # 模版视频 !mv 02.mp4 first-order-motion-model/
步骤四
准备工作完成之后,切换到first-order-model目录,然后将 source_image_path中的路径替换为”您的脸”所在的路径,脸的照片可以直接通过 Notebook 的文件上传功能上传。
当然您还可以将默认的“蚂蚁牙黑”视频替换为您自定义的视频,格式为 mp4。一路执行可以查看到合成前的预览。
cd first-order-model
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
import imageio
import numpy as np
import matplotlib.pyplot as plt
import matplotlib.Animation as animation
from skimage.transform import resize
from IPython.display import HTML
import warnings
warnings.filterwarnings("ignore")
# 此处替换为您的图片路径,图片最好为 256*256,这里默认为普京大帝
source_image_path = '/home/ma-user/work/first-order-motion-model/02.png'
source_image = imageio.imread(source_image_path)
# 此处可替换为您的视频路径,这里默认为“蚂蚁牙黑”
reader_path = '/home/ma-user/work/first-order-motion-model/02.mp4'
reader = imageio.get_reader(reader_path)
# 调整图片和视频大小为 256x256
source_image = resize(source_image, (256, 256))[..., :3]
fps = reader.get_meta_data()['fps']
driving_video = []
try:
for im in reader:
driving_video.append(im)
except RuntimeError:
pass
reader.()
driving_video = [resize(frame, (256, 256))[..., :3] for frame in driving_video]
def display(source, driving, generated=None):
fig = plt.figure(figsize=(8 + 4 * (generated is not None), 6))
ims = []
for i in range(len(driving)):
cols = [source]
cols.append(driving)
if generated is not None:
cols.append(generated)
im = plt.imshow(np.concatenate(cols, axis=1), animated=True)
plt.axis('off')
ims.append([im])
ani = animation.ArtistAnimation(fig, ims, interval=50, repeat_delay=1000)
plt.()
return ani
HTML(display(source_image, driving_video).to_html5_video())
步骤五
保存结果视频
from demo import load_checkpoints generator, kp_detector = load_checkpoints(config_path='config/vox-256.yaml', checkpoint_path='/home/ma-user/work/first-order-motion-model/vox-cpk.pth.tar')
from demo import make_animation from skimage import img_as_ubyte predictions = make_animation(source_image, driving_video, generator, kp_detector, relative=True) # 保存结果视频 imageio.mimsave('../generated.mp4', [img_as_ubyte(frame) for frame in predictions], fps=fps) # 在 Notebook 根目录能找,/home/ma-user/work/ HTML(display(source_image, driving_video, predictions).to_html5_video())
给视频配音,安装剪辑合成软件
# 安装视频剪辑神器 moviepy !pip install moviepy
小tips:当*号变成了步骤数字代码才执行完毕了
为视频添加蚂蚁牙黑背景音乐
# 为生成的视频加上源视频声音 from moviepy.editor import * videoclip_1 = VideoFileClip(reader_path) videoclip_2 = VideoFileClip("../generated.mp4") audio_1 = videoclip_1.audio videoclip_3 = videoclip_2.set_audio(audio_1) videoclip_3.write_videofile("../result.mp4", audio_codec="aac")
步骤六
给视频添加水印
# 还可以给视频加水印 video = VideoFileClip("../result.mp4") # 水印图片请自行上传 logo = (ImageClip("/home/ma-user/work/first-order-motion-model/hw.png") .set_duration(video.duration) # 水印持续时间 .resize(height=50) # 水印的高度,会等比缩放 .margin(right=0, top=0, opacity=1) # 水印边距和透明度 .set_pos(("left","top"))) # 水印的位置 final = CompositeVideoClip([video, logo]) final.write_videofile("../result_water.mp4", audio_codec="aac") final_reader = imageio.get_reader("../result_water.mp4") fps = final_reader.get_meta_data()['fps'] result_water_video = [] try: for im in final_reader: result_water_video.append(im) except RuntimeError: pass reader.() result_water_video = [resize(frame, (256, 256))[..., :3] for frame in result_water_video] HTML(display(source_image, driving_video, result_water_video).to_html5_video())
自此,单人版的蚂蚁牙黑全程已经跑完了。
注意
本实验到此完成,需要请大家注意:
示例中我们建议大家选择的都是免费规格,如果大家开通了套餐或者有代金券的,可以尝试使用付费规格获得更好的体验,但记得及时关闭相应服务哦!
Tips:实验结束后请及时停止在线服务,不然在线服务会持续收费有可能导致欠费,致使华为云账号被冻结而影响使用。 我们在在线服务管理页面单击对应服务列表后的"停止"按钮即可停止本在线服务。
总结
OBS的路径很重要,填错了会下载不了数据集
脸部图片和视频存放的路径要与代码填写的路径一致,不然报错not found
找不到result.mp4的原因是当前的路径是在根目录,而../relust.mp4就会报错找不到,你在/home/ma-user/work/first-order-motion-model路径下,切换才会正常。
展望
这次的蚂蚁牙黑只实现了单人版的动效,多人版同屏的还有待研究,大家一起研究看看吧!!!!
AI开发平台ModelArts 视频
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。