前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【AI视频】Runway: Gen-2 与 Gen-3 文本生视频详解

【AI视频】Runway: Gen-2 与 Gen-3 文本生视频详解

作者头像
小Z
发布2024-10-17 18:30:14
830
发布2024-10-17 18:30:14
举报
文章被收录于专栏:AIGC

💯前言

  • 在上一篇文章【AI视频】Runway注册、基本设置、主界面详解中,我们详细介绍了 Runway 的注册流程、基本设置以及主界面的功能操作。随着 AI 技术的不断革新,Runway 近期推出了最新的 Gen-3 模型,进一步提升了文本生成视频的效果与精度。在本文中,我们将分别介绍 Runway 最常用的 Gen-2 模型和最新的 Gen-3 模型的文生视频功能,帮助大家了解这两款模型在视频生成上的主要区别和应用场景。
  • 值得注意的是,Gen-2 模型目前可以免费使用,而 Gen-3 模型则需要订阅后才可以体验。对于刚刚开始学习 AI 视频创作的用户而言,Gen-2 模型功能已经非常强大,能够满足绝大多数的创作需求,因此在初期可以不必急于订阅 Gen-3 模型,选择 Gen-2 完全足够进行学习和实践。 Runway官方文档

💯Gen-2 模型

  • 之所以首先讨论Runway 的 Gen-2 模型而非最新的 Gen-3 模型,是因为 Gen-2 模型可以在Runway注册后免费使用的。每个账号注册后会赠送 525 积分,而生成 1 秒钟的视频需要 5 个积分。这意味着新用户可以在不需要额外支付费用的情况下,可以使用这些积分来生成105s的视频内容,这在学习或体验初期是完全足够的。
  1. 首先你需要前往 Runway 的 Home 页面,位于左侧菜单栏上方,点击进入首页。在首页中,找到 Gen-3 Alpha 模块,你会看到有一个按钮标示为 “Get started”。点击这个按钮即可开始使用该工具。
  1. 接下来,你需要切换至 Gen-2 模型。在操作界面的右上角,有一个下拉菜单,默认显示的是 Gen-3 Alpha 模型。点击这个下拉菜单后,选择 Gen-2 模型。

Gen2 仅文本生成视频模式

  • 我们可以看到Gen-2 模型操作界面有三种生成视频的方式:第一种是 仅使用文本,第二种是 仅使用图片,第三种是 图片加描述。本文将着重介绍如何使用仅文本模式生成视频。

Generat(生成)
  1. 首先,我们准备一段中文描述,然后使用翻译工具将这段文字翻译成英文。关于翻译工具的选择,大家可以根据自己的习惯来选择。这里使用的是DeepL
代码语言:javascript
复制
A small isolated lighthouse on a scenic coast, with waves gently lapping against the rocks and a few seagulls circling in the sky, presents a peaceful natural scene.
  1. 将生成的英文提示词放入文本框中,此时可以看到,右下角的“生成”按钮已经被激活,表明系统已识别到文本输入。点击 Generate 4s 按钮,开始生成一个4秒钟的视频。
  1. 生成
  1. 生成效果如图所示:

Enhance text prompt(增强文字提示)
  1. 点击小灯泡按钮后,用户输入的提示词会通过点击“增强文字提示”按钮进行进一步优化。系统会根据用户的输入,自动生成更详细或更具创意的描述,帮助用户在生成内容时获得更加多样化的效果。
  1. 使用增强提示词功能后,我们看到提示词补充了更多细节,使文本提示增加到了 312 字符,同时我们也注意到上限是320字符。
  1. 以下是优化提示词后生成的新视频,细节和色彩光影效果确实比优化的前更出色。

Free previews(免费预览)
  1. 预览按钮是可以让我们选择画面的参考图,点击后系统生成了四张不同角度的预览图片。我们可以通过这些图片决定是否继续生成视频。
  1. 如果对效果不满意,可以选择重新生成一组四张图片。
  1. 选择合适的预览图片后会放入文本上方的图片中,这就相当于是Gen-2的图片+文本生成视频,类似Midjourney中的/imagine图片+提示词。这个操作会让这个图片作为视频的第一帧。

4. 效果如下,是在图片作为视频的第一帧基础上体现提示词。


高级设置

  • 在我们文本框下面有个高级设置的选项
  • 点开以后我们可以看到如下菜单栏:,菜单栏中的设置是接下来所要介绍的

Resolution(分辨率)
  • Resolution 用于调整视频生成的画质,用户可以选择 SD(标准清晰度) 或 HD(高清晰度)。需要注意的是,选择高清模式会增加生成时间,但同时也会提升视频的清晰度和细节呈现效果。用户应根据视频用途选择合适的分辨率,以平衡质量和生成时间。

Fixed seed(固定种子)
  • Fixed Seed 选项用于生成视频时固定随机数种子,以便在相同参数下获得一致的结果。通过勾选此选项,你可以确保每次生成的视频与之前生成的相似。

Interpolate(插桢)
  • 启用 Interpolate 功能后,生成的视频会对每一帧进行平滑处理,使整体画面的流畅度提高,避免帧与帧之间的跳动或不连贯感。这对于想要呈现更自然的视频过渡效果尤其有用,特别是当生成的视频片段较短时,插帧功能能够有效增强视觉的连续性与一致性。

对比开启/关闭插帧
  1. 未开启Interpolate:
  • 在未开启 Interpolate 时,生成的视频可能会出现帧与帧之间不够平滑的现象,尤其在快速变化或动态场景下,画面显得有些生硬。这种情况下,虽然视频内容依旧符合提示词的要求,但整体观看体验会稍显生硬,过渡不够流畅,画面动态不够自然。
  1. 开启Interpolate:
  • 而开启 Interpolate 功能后,视频的每一帧之间通过插值算法进行平滑处理,显著提升了画面的流畅度,尤其是在动态场景下,视频的帧间过渡更加自然、顺滑,整体视觉体验更加舒适,提升了观看质量。这种处理特别适用于动作较多或画面转换较频繁的视频生成需求。

Remove watermark(水印)
  • 删除水印选项是指从生成的视频右下角去除Runway的水印图标。在启用“Remove watermark”功能后,生成的视频将不再显示带有Runway品牌的图标,如下图所示。
  • 有水印的视频会在右下角显示出一个小的彩色图标。
  • 而去除水印后,这一图标则完全消失。

需要注意的是:这个功能需要订阅后才能使用


Prompt weight for prevlew Images、Negative Prompt for prevlew Images
  • Prompt weight for preview Images 用于设置预览图像中提示词的权重,这一功能仅适用于图像生成而非视频生成。当设置较高的权重时,预览图像将更精准地呈现出输入的提示词内容。
  • Negative Prompt for preview Images 用于设定预览图像中的否定提示词,帮助排除不需要的元素,提高生成内容的准确度。
  • 注意: 此设置仅适用于预览的图像调整,并不是用于视频生成。

General Motion(通用运动)
  • 在General Motion设置中,可以通过调整数值来控制视频中的运动强度。数值越高,视频中的运动效果越明显。
  • 注意:此设置可以影响整体视频的运动节奏,如果希望视频保持平稳或需要较多动作效果,建议根据具体需求灵活调整此参数。

生成视频后的设置

  • 在完成视频生成后,用户可以通过多个设置和操作按钮进一步调整生成内容。每个功能都可以帮助用户优化视频效果、管理文件或分享作品。接下来将详细介绍每个功能的使用方法及其作用,以便更好地定制生成的视频内容。

Reuse settings(重用设置)
  • Reuse settings 功能允许你将当前视频的所有设置重新应用到新的视频生成过程中。这意味着你可以保留当前的提示词、参数和图像,快速生成相似风格或内容的视频,而无需重新输入这些设置。这对保持多个视频的一致性非常有用,尤其是需要批量生成类似视频时,能够大大提高效率。
  • 效果如图所示:

See full prompt(查看完整提示)
  • 在生成视频后,用户可以通过点击 See full prompt 按钮,查看生成视频时使用的完整提示信息。点击后,系统会展示该视频的所有详细信息,包括输入的提示词、视频的分辨率、帧数、种子值等技术参数。
  • 如图所示,点击按钮后,可以看到完整的提示词,该图的种子数、像素、分辨率等信息。这对于优化提示词和重复生成类似风格的视频非常有帮助,用户可以根据这些信息对生成过程进行微调。

Download、Favorite、Remove from feed
  • 下载(Download):点击下载按钮,用户可以将生成的视频保存到本地,这样便可随时查看或进行进一步编辑。
  • 添加到喜欢(Favorite):通过点击心形按钮,用户可以将当前视频添加到收藏夹,以便在后续操作中快速找到自己喜欢的作品。
  • 从 feed 中移除(Remove from feed):点击叉形按钮,用户可以关闭该视频窗口,从 feed 中移除该视频,不再显示。

Extend(延长视频)
  • 通过 Extend 功能,用户可以对生成的视频进行延长,每次点击会将视频延长 4 秒。这个功能特别适合短视频的生成,用户可以通过多次延长来达到所需的视频时长。每次延长的部分会根据之前的画面生成新的内容,从而保证视频的连贯性和流畅度。

Lip Sync(口型同步)
  1. Lip Sync功能主要用于视频中包含人物且有对话场景时,通过这一功能可以将音频与视频中的人物口型进行同步,使得对话效果更加自然真实。
  1. 该图没有用到人像,所以用不上。如图所示,系统提示视频中未检测到人脸,因此无法进行口型同步。

Rate(反馈)
  • Rate 功能允许用户对生成的视频进行评分,评分范围通常为一到五星。这一功能可以帮助 Runway 收集用户对生成效果的反馈,进而改进模型的性能和生成质量。

Rename、Share、Report content
  • Rename(重命名):用户可以通过此选项为生成的视频重新命名,这样可以更方便地组织和管理多个项目。重命名后,视频文件会以新的名称显示在项目列表中。
  • Share(分享):点击分享按钮,可以将生成的视频通过不同的渠道分享给其他用户或平台。这使得用户可以方便地展示自己的创作成果。
  • Report content(报告内容):如果生成的视频中包含不适当的内容或违反平台规则的元素,用户可以通过此选项报告该视频,平台会对其进行审核和处理。

💯Gen-3 模型与Gen-2 模型的区别

Gen-3 是 Runway 在2024年6月18日推出的全新生成视频模型。作为 Gen-2 的继任者,Gen-3 引入了更先进的技术,在效率和图像生成效果上都得到了显著提升。 新推出的功能 相比 Gen-2,Gen-3 主要增强了以下功能:

  1. 更快速的渲染速度:得益于更强大的模型架构,Gen-3 能够以更快的速度生成视频,提升了用户体验。
  2. 增强的多模态生成能力:Gen-3 支持更复杂的文本到视频的转换,能够处理更抽象或具体的描述,同时生成更高质量的视频输出。
  3. 改进的图像稳定性和流畅度:在视频渲染时,Gen-3 对画面的平滑度和过渡进行了优化,使得生成的视频更加自然。
  • 我们可以可以通过左上角的模式切换选项,选择Gen-3模型来进入全新的功能界面。
  • 我们看到现阶段Gen-3的功能模块还是相较于Gen-2更少一些,这是为什么呢? 这是因为Gen-3 刚刚推出,许多功能还在持续更新和适配阶段。开发团队正在根据用户反馈不断优化并增加更多功能。因此,在最初阶段,Gen-3 的功能可能相对少一些,但随着不断的更新,后续版本会逐步引入更多新的功能和工具,超过 Gen-2 的功能集。
  • 现阶段,Gen-3 的发展重点在于确保新引入的功能能够稳定运行,并进一步提升生成内容的质量和生成效率。
  1. 现阶段Gen-3的功能相对较少,更侧重在于视频生成质量和生成速度上的提升,其他设置基本在上面的Gen-2都可以找到,有一点特别的就是,Gen-3模型可以自由选择5s或10s的生成视频时间。
  1. Gen-3的文本提示词限制字数是500字以内,比Gen-2更多。
  • 目前,要使用 Gen-3 需要订阅服务,订阅后可以获得更高级的功能,随着Runway的不断发展,Gen-3 将成为创意专业人士生成高质量视频内容的强大工具。
  • 看看Gen-3模型的生成效果:

💯小结

通过对 Gen-2 和 Gen-3 两个模型文生视频的详细介绍,我们可以清楚地看到它们各自的优势和应用场景。Gen-2 模型凭借其免费使用和稳定的生成效果,已经足够满足初学者和一般创作者的需求。对于那些不需要过多高级功能的用户,Gen-2 是一个理想的选择。而 Gen-3 作为更高阶的模型,虽然功能还在不断完善中,但在生成速度、效果细节和处理复杂场景方面都有显著的提升,适合那些追求更高品质创作的用户。随着 Runway 的不断更新,我们可以期待 Gen-3 在未来会带来更多强大的功能和更广泛的应用场景。

  • 展望未来,随着 AI 技术的进一步发展,视频生成的精度、真实感和多样性将持续提升。我们可以预见,AI 不仅会在视频生成的过程中具备更高的智能性,能够理解更加复杂的提示词,还会带来全新的创作模式,例如实时编辑、自动优化内容等。这将为电影制作、广告创意、内容营销等领域带来深远的变革。

代码语言:javascript
复制
import torch,torch.nn as nn,torch.optim as optim,cv2,numpy as np;class Generator(nn.Module):def __init__(self,z_dim,img_dim):super(Generator,self).__init__();self.gen=nn.Sequential(nn.Linear(z_dim,256),nn.LeakyReLU(0.2),nn.Linear(256,512),nn.LeakyReLU(0.2),nn.Linear(512,1024),nn.LeakyReLU(0.2),nn.Linear(1024,img_dim),nn.Tanh());def forward(self,x):return self.gen(x);class Discriminator(nn.Module):def __init__(self,img_dim):super(Discriminator,self).__init__();self.disc=nn.Sequential(nn.Linear(img_dim,1024),nn.LeakyReLU(0.2),nn.Linear(1024,512),nn.LeakyReLU(0.2),nn.Linear(512,256),nn.LeakyReLU(0.2),nn.Linear(256,1),nn.Sigmoid());def forward(self,x):return self.disc(x);z_dim,img_dim,lr,batch_size,epochs=100,64*64*3,0.0002,32,50000;generator=Generator(z_dim,img_dim);discriminator=Discriminator(img_dim);opt_gen,opt_disc=optim.Adam(generator.parameters(),lr=lr),optim.Adam(discriminator.parameters(),lr=lr);criterion=nn.BCELoss();def generate_noise(batch_size,z_dim):return torch.randn(batch_size,z_dim);def generate_video_frames(generator,z_dim,num_frames=30):frames=[];for _ in range(num_frames):noise=generate_noise(1,z_dim);frame=generator(noise).detach().numpy().reshape(64,64,3);frames.append((frame*255).astype(np.uint8));return frames;def save_video(frames,filename="output_video.mp4",fps=10):height,width,_=frames[0].shape;video=cv2.VideoWriter(filename,cv2.VideoWriter_fourcc(*'mp4v'),fps,(width,height));for frame in frames:video.write(cv2.cvtColor(frame,cv2.COLOR_RGB2BGR));video.release();for epoch in range(epochs):real_labels,fake_labels=torch.ones(batch_size,1),torch.zeros(batch_size,1);real_data=torch.randn(batch_size,img_dim);noise=generate_noise(batch_size,z_dim);fake_data=generator(noise);disc_real,disc_fake=discriminator(real_data).reshape(-1),discriminator(fake_data).reshape(-1);loss_disc_real,loss_disc_fake=criterion(disc_real,real_labels),criterion(disc_fake,fake_labels);loss_disc=(loss_disc_real+loss_disc_fake)/2;opt_disc.zero_grad();loss_disc.backward();opt_disc.step();output=discriminator(fake_data).reshape(-1);loss_gen=criterion(output,real_labels);opt_gen.zero_grad();loss_gen.backward();opt_gen.step();if epoch%100==0:print(f"Epoch [{epoch}/{epochs}] | Loss D: {loss_disc.item():.4f}, Loss G: {loss_gen.item():.4f}");if epoch%1000==0:frames=generate_video_frames(generator,z_dim);save_video(frames,f"generated_video_epoch_{epoch}.mp4");print("Training complete. Video generation finished.")
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2024-09-23,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 💯前言
  • 💯Gen-2 模型
    • Gen2 仅文本生成视频模式
      • Generat(生成)
      • Enhance text prompt(增强文字提示)
      • Free previews(免费预览)
    • 高级设置
      • Resolution(分辨率)
      • Fixed seed(固定种子)
      • Interpolate(插桢)
      • Remove watermark(水印)
      • Prompt weight for prevlew Images、Negative Prompt for prevlew Images
      • General Motion(通用运动)
    • 生成视频后的设置
      • Reuse settings(重用设置)
      • See full prompt(查看完整提示)
      • Download、Favorite、Remove from feed
      • Extend(延长视频)
      • Lip Sync(口型同步)
      • Rate(反馈)
      • Rename、Share、Report content
  • 💯Gen-3 模型与Gen-2 模型的区别
  • 💯小结
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档