生成式 AI 在泛娱乐行业的应用场景实践 – 助力风格化视频内容创作

news2024/11/24 21:00:15

6d78244c93669055d0ee5ba690e36cf1.gif

感谢大家阅读《生成式 AI 行业解决方案指南》系列博客,全系列分为 4 篇,将为大家系统地介绍生成式 AI 解决方案指南及其在电商、游戏、泛娱乐行业中的典型场景及应用实践。目录如下:

  • 《生成式 AI 行业解决方案指南与部署指南》

  • 《生成式 AI 在电商行业的应用场景实践 – 赋能营销物料高效生产》

  • 《生成式 AI 在游戏行业的应用场景实践 – 加速游戏美术内容生产》

  • 《生成式 AI 在泛娱乐行业的应用场景实践 – 助力风格化视频内容创作》(本篇)

背景介绍

从 2022 年以来生成式 AI 发展迅猛,特别是在文生图领域,在扩散模型为主、其他模型的加持下,新的文生图、图生图技术层出不穷。在媒体与娱乐领域已经被广泛应用,主要的场景有:1. 分镜头剧本插图;2. 漫画创作;3. 概念图生成。并随着技术的进步,形成比较完善的工具链。

尽管扩散模型和其应用在生成图片方面的能力出众,但是视频生成领域发展依然是滞后的。其原因主要有:没有高质量的训练集;没有很好描述视频的方式;生成式视频模型的训练需要极高的算力。

所以现在主流的利用扩散模型生成视频的方式是: 利用模版视频,拆解为视频帧图片,利用各种插件逐帧按照提示词和图片特征进行风格化,最后组合成风格化视频。

在本篇文章中,我们基于生成式 AI 行业解决方案指南,针对泛娱乐行业的风格化视频生成,介绍生成式 AI 的使用和参数配置,以及配合传统工具,以协助内容创作,达到一定的创意效果。

生成式 AI 在泛娱乐行业中视频创作

在泛娱乐行业,短视频是最流行的一种内容表达形式,其特点是制作成本较低,传播率高。传统的生成短视频的方式既有 UGC 模式,也有 PGC 模式,虽然他们的制作周期和制作成本远低于传统媒体,但是还是脱离不了“策划-剧本-台词-选角-排练-正式演出-录制-校验-剪辑-后期-审核-发布”这些基本的步骤。综合来说,一个 5 分钟左右的短视频制作平均时长大概 2-3 天左右。生成式 AI 的出现可以大大提高制作效率,缩短制作周期,甚至可以简化制作步骤。 

现在有生成风格化图片和生成风格化视频的生成方式,根据一些现有的图片和视频,或者初期拍摄的视频直接进入后期步骤。进行风格化是现在短视频生成的一种尝试,虽然现在这类视频依然有闪烁跳跃等问题,通过社区的不断进步,效果正越来越好。当然这类视频本身因为自由度较高,创意属性强,本身就具有较强的话题性和传播度。

主流的风格化视频的生产的方法是利用连续风格化图片作为序列帧串联起来的视频。包括:

1)通过原视频提取每一帧,逐帧通过提示词进行图生图,最后将图片重新组装起来生成风格化视频;

2)生成数张创意图片,作为关键帧,相似图片作为过渡帧,组装成风格化视频。

这两种风格化视频,都可以通过 Stable Diffusion WebUI 的插件来实现。但是这两种风格化视频生产方式依然具有一定需要解决的问题,各自分别是:

1) 模版视频拍摄依然需要一定投入,包括编排,表演,以及原始视频的版权问题等;

2 )风格化视频的主题难以定义。

本文给出了两种风格化视频的组合生成方式,可以充分利用目前风格化视频的插件,又可以部分解决风格化视频生产的上述问题:

  1. 利用 3D 模型的动态画面作为蓝本,生成风格化视频的方法

  2. 利用短暂的普通视频作为起点(或者中间节点)生成具有一定主题的风格化视频的方法

架构与工作原理

本篇以生成式 AI 行业解决方案指南为基础,其工作原理如下图:

70faf008a89094d69d432c7b8e9d092b.jpeg

生成式 AI 行业解决方案指南,将前端 Stable Diffusion WebUI 部署在容器服务 Amazon ECS 上,后端使用无服务器服务 Amazon Lambda 进行处理,前后端通过 Amazon API Gateway 调用进行通信。模型训练及部署均通过 Amazon SageMaker 进行。同时使用 Amazon S3、Amazon EFS、Amazon DynamoDB 分别进行模型数据、临时文件、使用数据的存储。快速部署流程可参考该系列博客的第一篇,本篇不再赘述。

3D 模型为蓝本生产风格化视频

首先我们先了解一下由原视频转换为风格化视频的基本原理,如下图所示:

15ba437fd5539400dc35cccc63aeea9f.jpeg

参考步骤为:

  1. 原始视频拆解为视频帧序列

  2. 针对每一帧通过 Stable Diffusion 进行风格化,并用 ControlNet 对人物轮廓和姿态进行控制

  3. 将生成的新的序列帧重新组合成为视频

从视频生成视频的角度,原视频只是用于风格化视频的轮廓或者动作,使用真人或者实景拍摄的原视频成本还是比较高的;我们不妨使用一些低成本的 3D 模型,比如只有轮廓,没有贴图,调色器,面数很低的模型,作为蓝本进行视频生成。这里采用一个例子:生成一个具有 cyberpunk 风的女孩跳桑巴舞,和一般的视频风格化不同,这个例子中舞蹈动作比较复杂,并且没有版权的原视频作为模版,那么我们可以采用具体步骤如下:

1. 将低成本人物模型导入 Blender 或者 Unity3D,并生成桑巴舞蹈动画。这里我们选择从 mixamo.com 网站上下载一个人物跳舞的模型组件,并转换为原视频如下:

a84e2eaa02a219bbc978dc0be97b4b64.gif

搭建基础 WebUI 环境并导入模型,按照根据生成式 AI 解决方案指南部署后,操作即可:

32180f9dd44c6eb27e5edd0d32cebd2d.jpeg

2. 导入视频,并输入提示词

使用提示词

Hyper realistic painting of a beautiful girl in a cyberpunk plugsuit, hyper detaled ,anime trending on artstation with mask (masterpiece:1.4), (best quality:1.2), (ultra highres:1.2) ,(8k resolution:1.0)

反向提示词

text, letters, logo, brand, close up, cropped, out of frame, worst quality, low quality, jpeg artifacts, ugly, duplicate, morbid, mutilated, extra fingers, mutated hands, poorly drawn hands, poorly drawn face, mutation, deformed, blurry, dehydrated, bad anatomy, bad proportions, extra limbs, cloned face, disfigured, gross proportions, malformed limbs, missing arms, missing legs, extra arms, extra legs, fused fingers, too many fingers, long neck

3. 进行视频风格化生成,打开 Mov2Mov 插件,这里的参数推荐如下:

Sample steps=20-30,
Generate movie mode=XVID,
CFG scale=7-10,
Denoising strength=0.2-0.3,
Movie frames=30,
Maxframe=60-90,
Controlnet 选择enabled,
Control weight 0.2-0.25。

点击生成后,得到的视频和原视频比较如下:

251d4cc2f2ab367b4976df71439c3776.gif

f0c5c7747291e004f6a89ae83f3e77cf.gif

20d0514201f989d53311e80d41541833.gif

具有主题的风格化视频

Stable Diffusion 社区具有丰富的风格化视频生成插件,其中 Deforum 是热度最高的插件之一,其原理是确定时间轴上的关键帧使用明确 Prompt 生成的创意图片,关键帧之间的过渡视频帧采用渐进的方式,并配合一定的 2D,3D 空间旋转,产生独特的效果,这种方式的提示词一般都是剧本的形式,原理如图所示:

f3885c85d68da948521cb8ed12fe5c20.jpeg

从风格化视频或者创意视频的角度,通过一定剧本转换为 prompt,再经过 Deforum 的串联,能达到表达一定主题的创意视频的效果,从制作角度这里还是有两个难点:

  1. 凭空写剧本很难将现实主题和创意视频进行关联;

  2. 创意视频/风格化视频效果本身还是由创意图片连接而成,很难把控其效果,并且视频生成消耗算力远大于图片生成,造成废片会导致算力浪费。

所以这里我们不妨在用简单的现实视频与创意视频交叉呼应的方式进行创作,这里的现实视频可能只需 2-3 秒的手机拍摄视频,并作为起始视频即可。这里采用一个例子:笔者参观某省级博物馆叙利亚文物展,突发感慨,想制作一个几十秒的风格化短视频,表达自己观看文物时感受的千年时代变迁,我们可以采用具体步骤如下:

1. 拍摄一段 3-5 分钟的自拍视频,表示初始主题,作为初始视频。由于目标是创意视频要发在社交媒体上,需要适配手机的尺寸,所以视频分辨率为 540*960

2. 准备 Web UI 的基本环境,包括模型和插件

3. 设置初始视频的某帧为初始帧,我们这里截取最后一帧为初始帧, 图像分辨率为 540*960,并在 Deforum 里设置初始帧,在 init tab 里选择 Use init,并填入文件地址

f84d9f7cede31942991a732c7c0d19fb.jpeg

4. 设置提示词,并设置旋转参数。这里有参数列表和推荐值如下表

864b9f7baef03088b86c97281b528e45.png

5. 编排适当的风格化提示词,并生成视频,这里提示词必须按照 JSON 格式,在这个规则的基础上,编排视频的情节

提示词如下:

{
“0”: “A Warrior in desolate landscape in Syria, with cracked earth, under a dark and stormy sky, Picasso style”,
“50”: ”  sunshine from the earth, ancient relics and mysterious symbols in Syria, Picasso style “,
“150”: “Egypt style building in Syria , Picasso style “,
“200”: “Rome style city with people from different races and cultures mingle and trade in the streets, markets in Syria, Picasso style “,
“250”: ” war between nations east and west of Syria,  the kings are seeking to preserve the balance of nature and magic, the other wanting to exploit it for power and profit, Picasso style “,
“300”: “gun smoke and flowers ,generals speech, Picasso style  “,
“450”: “bomb explosion on the sky, fires ,flames and smoke, blood and ashes , Picasso style -neg magnificent”,
“500”: “fate of people in the nation, peaceful hope, Picasso style”
}

反向提示词:

NSFW, worst quality, low quality, ugly, duplicate, morbid, mutilated, extra fingers, mutated hands, poorly drawn hands, poorly drawn face, mutation, deformed, blurry, dehydrated, bad anatomy, bad proportions, extra limbs, cloned face, disfigured, gross proportions, malformed limbs, missing arms, missing legs, extra arms, extra legs, fused fingers, too many fingers, long neck

6. 通过剪辑软件将现实视频与创意视频首尾呼应进行连接,得到完整视频,参考如下:

总结

在本文中,我们大致介绍了泛娱乐行业的视频内容制作场景中,通过不同插件和工具的配合,可以达到生成风格化视频和创意视频的目标。当然这只是冰山一角,在泛娱乐行业应用中,我们通过不断跟踪新的插件和模型,可以根据技术上的迭代达到泛娱乐内容的不断创新,同时和一些标准的媒体制作工具相结合,通过步骤的不断优化,达到可以高效生产创意内容的目的。

参考资料

1. 生成式 AI 行业解决方案指南:

https://aws.amazon.com/cn/campaigns/aigc/

2. 生成式 AI 行业解决方案指南 Workshop:

https://catalog.us-east-1.prod.workshops.aws/workshops/bae25a1f-1a1d-4f3e-996e-6402a9ab8faa

3. Stable-diffusion-webui:

https://github.com/AUTOMATIC1111/stable-diffusion-webui

4. Hugging Face:

https://huggingface.co/

本篇作者

3cdef00920e38cace3b177f3027bc00b.jpeg

明琦

亚马逊云科技行业解决方案架构师,主要负责媒体行业相关技术方案,并致力于泛娱乐行业中创新技术和客户体验相关解决方案的构建和推广,包括,虚拟现实,混合现实,生成式 AI,数字人等方向,具有多年的架构设计和产品开发经验。

a2083992d513a02363f951e78349a4d7.jpeg

白鹤

教授级高级工程师,亚马逊云科技媒体行业资深解决方案架构师,重点从事融合媒体系统、内容制作平台、超高清编码云原生能力等方面架构设计工作,在围绕媒体数字化转型的多个领域有丰富的实践经验。

6ce66ca10b750d3dcfe15440272ab45a.jpeg

汤哲

亚马逊云科技行业解决方案架构师,负责基于 Amazon Website Service 的云计算方案的咨询与架构设计,同时致力于亚马逊云服务知识体系的传播与普及。在软件开发、安全防护等领域有实践经验,目前关注电商、直播领域。

b0b0b6c3b1da8d345f58ba0edb261db1.gif

00cb5bf1f713102fb4066c393a2d9b9b.gif

听说,点完下面4个按钮

就不会碰到bug了!

aa0cc73952ec849b22fa855b2f462538.gif

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/879312.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

ios swift5 collectionView 瀑布流(两列)

文章目录 1.瀑布流1.1 demo地址1.2 记得把部署的最低版本由8改成11,13甚至更高。不然编译会报错 2.动态计算图片和文字的高度 1.瀑布流 1.1 demo地址 CollectionViewWaterfallLayout - github 1.2 记得把部署的最低版本由8改成11,13甚至更高。不然编译会报错 2.动态计算图片和…

Fiddler模拟请求发送和修改响应数据

fiddler模拟伪造请求 方法一:打断点模拟HTTP请求 1、浏览器页面填好内容后(不要操作提交),打开fiddler,设置请求前断点,点击菜单fiddler,”Rules”\”Automatic Breakpoints”\”Before Requests” 2、在…

3.文件目录

第四章 文件管理 3.文件目录 ​   对于D盘这个根目录来说它对应的目录文件就是图中的样子,其实就是用一个所谓的目录表来表示这个目录下面存放了哪些东西。在D盘中的每一个文件,每一个文件夹都会对应这个目录表中的一个表项,所以其实这些一…

魔改 axuanup 的 aardio和python 猜拳游戏 代码

根据 axuanup 的 aardio和python 猜拳游戏 代码,魔改了一个风格不一样的代码。 争取做到代码尽量“简”,但还没到“变态简”的程度,因为还能看懂。 原文:aardio和python 猜拳游戏-自由交流乐园-Aardio资源网 代码如下&#xff…

Java课题笔记~ 过滤器

概念 过滤器:顾名思义,就是在源数据和目的数据之间起过滤作用的中间组件。 过滤器可以动态地拦截请求和响应,以变换或使用包含在请求或响应中的信息。 filter是对客户端访问资源的过滤,符合条件放行,不符合条件不放…

使用VLC轻松体验本地视频推流、拉流、播放功能

VLC 前言一、VLC是什么?二、VLC推流(服务器推流)VLC客户端拉流参考 前言 本章主要讲解如何通过VLC开源免费工具对本地视频实现推流、拉流、播放演示。 一、VLC是什么? VLC 是一款自由、开源的跨平台多媒体播放器及框架&#xf…

.netcore grpc双向流方法详解

一、双向流处理概述 简单来讲客户端可以向服务端发送消息流,服务端也可以向客户端传输响应流,即客户端和服务端可以互相通讯客户端无需发送消息即可开始双向流式处理调用 。 客户端可选择使用 RequestStream.WriteAsync 发送消息。 使用 ResponseStream…

new BigDecimal(double val)注意事项 / JWT解析BigDecimal类型数据

前言: 公司项目中有一个板块需要解析JWT令牌获取载荷里面封装的数据,遇到要解析一个BigDecimal类型的数据 问题发现过程: 正常来说,我们解析一个JWT令牌的步骤如下: public static Claims getDataFromToken(String tok…

python 多个字符替换为一个字符(简洁代码)

在windows系统当中的文件命名&#xff0c;有些特殊字符是不能存在&#xff0c;下面我们来看一下哪些字符不能存在。 文件名称中不能包含\ / : * ? " < > |一共9个特殊字符 一开始想用replace()替换&#xff0c;但是要处理多个字符&#xff0c;写起来代码不整洁 每次…

k8s认证详解 k8s证书详解 2023推荐

推荐阅读 https://www.yii666.com/blog/478731.html?actiononAll 在 Kube-apiserver 中提供了很多认证方式&#xff0c;其中最常用的就是 TLS 认证&#xff0c;当然也有 BootstrapToken&#xff0c;BasicAuth 认证等&#xff0c;只要有一个认证通过&#xff0c;那么 Kube-api…

Jupyter并发测试以后出现EOFError marshal data too short

Jupyter 并发测试以后出现EOFError: marshal data too short 背景 由于项目需求需要用户能进行网页在线运行python代码程序&#xff0c;调研后决定使用Jupyter的服务接口实现此功能&#xff0c;目前使用docker进行容器化部署&#xff0c;测试针对次服务进行并发测试。测试并发…

tkinter的Frame控件

文章目录 Frame和LabelFrame控件Frame参数LabelFrame参数 tkinter系列&#xff1a; GUI初步&#x1f48e;布局&#x1f48e;绑定变量&#x1f48e;绑定事件&#x1f48e;消息框&#x1f48e;文件对话框Frame控件&#x1f48e;PanedWindow和notebook控件扫雷小游戏&#x1f48e…

K8S系列二:实战入门

I. 配置kubectl 1.1 什么是kubectl&#xff1f; 官方文档中介绍kubectl是&#xff1a; Kubectl 是一个命令行接口&#xff0c;用于对 Kubernetes 集群运行命令。Kubectl的配置文件在$HOME/.kube目录。我们可以通过设置KUBECONFIG环境变量或设置命令参数–kubeconfig来指定其他…

Android布局【LinearLayout】

文章目录 常见属性orientation的选择项解释项目结构主要代码 常见属性 orientation&#xff1a;布局中组件的排列方式gravity&#xff1a;控制组件所包含的子元素的对齐方式&#xff0c;可多个组合layout_gravity&#xff1a;控制该组件在父容器里的对齐方式background&#x…

Verdi_如何dump信号的驱动强度

Verdi_如何dump信号的驱动强度 需求背景 在Verilog语法标准中&#xff0c;0和1各自被分成了8个强度等级&#xff1b; Strength NameStrength NameStrength Levelsupply 0supply 17strong 0strong 16pull 0pull 15large 0large 14weak 0weak 13medium 0medium 12small 0small…

k8s 自身原理 5

我们知道容器是通过 pod 来承载的&#xff0c;我们在 k8s 中&#xff0c;服务都是跑在 pod 里面的&#xff0c;pod 里面可以跑 1 个容器&#xff0c;或者跑多个容器&#xff0c;那么咱们 pod 里面跑 1 个服务容器&#xff0c;咱真的就以为里面就只有这样个容器吗&#xff1f; …

替代阿托斯DLKZOR-T/DLHZO-TES直动式伺服阀比例阀

DLKZOR-T/DLKZOR-TES直动式伺服阀比例阀结构&#xff1a; 1&#xff0c;LVDT传感器 2&#xff0c;比例电磁铁 3&#xff0c;阀体 4&#xff0c;阀套 5&#xff0c;阀芯 6&#xff0c;复位弹簧 7&#xff0c;集成数字放大器 8&#xff0c;七芯插头 9&#xff0c;RS232通…

Python学习笔记_基础篇(二)_数据类型之字符串

一.基本数据类型 整数&#xff1a;int 字符串&#xff1a;str(注&#xff1a;\t等于一个tab键) 布尔值&#xff1a; bool 列表&#xff1a;list 列表用[] 元祖&#xff1a;tuple 元祖用&#xff08;&#xff09; 字典&#xff1a;dict 注&#xff1a;所有的数据类型都存在想对应…

synchronized锁膨胀、锁升级、锁优化的过程

参考文章 Java中的偏向锁&#xff0c;轻量级锁&#xff0c; 重量级锁解析_萧萧九宸的博客-CSDN博客 本文是本人对以上文章的整理&#xff0c;建议先去看以上文章。 在Java中&#xff0c;一个锁对象的四种状态: 无锁偏向锁轻量级锁重量级锁 在Java中&#xff0c;一个锁就是一…

推断统计方法(假设检验)

统计方法除了描述统计方法之外还有推断统计&#xff0c;推断统计包括参数估计和假设检验&#xff0c;假设检验的概念就是先假设后检验&#xff0c;运用的是数学上的反证法&#xff1b;假设检验是利用样本数据提供的信息&#xff0c;对未知总体分布的某些方面&#xff08;如总体…