当前位置: 首页 > news >正文

经开区网站建设100种找客户的方法

经开区网站建设,100种找客户的方法,dedecms做手机网站,成免费的crm无需下载Diffusion Models视频生成 前言:目前开源的DiT视频生成模型不是很多,Open-Sora是开发者生态最好的一个,涵盖了DiT、时空DiT、3D VAE、Rectified Flow、因果卷积等Diffusion视频生成的经典知识点。本篇博客从Open-Sora的代码出发,深…

Diffusion Models视频生成

前言:目前开源的DiT视频生成模型不是很多,Open-Sora是开发者生态最好的一个,涵盖了DiT、时空DiT、3D VAE、Rectified Flow、因果卷积等Diffusion视频生成的经典知识点。本篇博客从Open-Sora的代码出发,深入解读背后的原理。

目录

3D VAE原理

代码剖析

2D VAE

时间VAE

因果3D卷积


3D VAE原理

之前绝大多数都是2D VAE,特别是SDXL的VAE相当好用,很多人都拿来直接用了。但是在DiT-based的模型中,时间序列上如果再不做压缩的话,就已经很难训得动了。因此非常有必要在时间序列上进行压缩,3D VAE应运而生。

Open-Sora的方案是在2D VAE的基础上,再添加一个时间VAE,相比于EasyAnimate 和 CogVideoX的方案的Full Attention 存在劣势,但是可以充分利用到2D VAE的权重,成本更低。

代码剖析

2D VAE

来自华为pixart sdxl vae:

    vae_2d = dict(type="VideoAutoencoderKL",from_pretrained="PixArt-alpha/pixart_sigma_sdxlvae_T5_diffusers",subfolder="vae",micro_batch_size=micro_batch_size,local_files_only=local_files_only,)

时间VAE

    vae_temporal = dict(type="VAE_Temporal_SD",from_pretrained=None,)
@MODELS.register_module()
class VAE_Temporal(nn.Module):def __init__(self,in_out_channels=4,latent_embed_dim=4,embed_dim=4,filters=128,num_res_blocks=4,channel_multipliers=(1, 2, 2, 4),temporal_downsample=(True, True, False),num_groups=32,  # for nn.GroupNormactivation_fn="swish",):super().__init__()self.time_downsample_factor = 2 ** sum(temporal_downsample)# self.time_padding = self.time_downsample_factor - 1self.patch_size = (self.time_downsample_factor, 1, 1)self.out_channels = in_out_channels# NOTE: following MAGVIT, conv in bias=False in encoder first convself.encoder = Encoder(in_out_channels=in_out_channels,latent_embed_dim=latent_embed_dim * 2,filters=filters,num_res_blocks=num_res_blocks,channel_multipliers=channel_multipliers,temporal_downsample=temporal_downsample,num_groups=num_groups,  # for nn.GroupNormactivation_fn=activation_fn,)self.quant_conv = CausalConv3d(2 * latent_embed_dim, 2 * embed_dim, 1)self.post_quant_conv = CausalConv3d(embed_dim, latent_embed_dim, 1)self.decoder = Decoder(in_out_channels=in_out_channels,latent_embed_dim=latent_embed_dim,filters=filters,num_res_blocks=num_res_blocks,channel_multipliers=channel_multipliers,temporal_downsample=temporal_downsample,num_groups=num_groups,  # for nn.GroupNormactivation_fn=activation_fn,)def get_latent_size(self, input_size):latent_size = []for i in range(3):if input_size[i] is None:lsize = Noneelif i == 0:time_padding = (0if (input_size[i] % self.time_downsample_factor == 0)else self.time_downsample_factor - input_size[i] % self.time_downsample_factor)lsize = (input_size[i] + time_padding) // self.patch_size[i]else:lsize = input_size[i] // self.patch_size[i]latent_size.append(lsize)return latent_sizedef encode(self, x):time_padding = (0if (x.shape[2] % self.time_downsample_factor == 0)else self.time_downsample_factor - x.shape[2] % self.time_downsample_factor)x = pad_at_dim(x, (time_padding, 0), dim=2)encoded_feature = self.encoder(x)moments = self.quant_conv(encoded_feature).to(x.dtype)posterior = DiagonalGaussianDistribution(moments)return posteriordef decode(self, z, num_frames=None):time_padding = (0if (num_frames % self.time_downsample_factor == 0)else self.time_downsample_factor - num_frames % self.time_downsample_factor)z = self.post_quant_conv(z)x = self.decoder(z)x = x[:, :, time_padding:]return xdef forward(self, x, sample_posterior=True):posterior = self.encode(x)if sample_posterior:z = posterior.sample()else:z = posterior.mode()recon_video = self.decode(z, num_frames=x.shape[2])return recon_video, posterior, z

因果3D卷积

class CausalConv3d(nn.Module):def __init__(self,chan_in,chan_out,kernel_size: Union[int, Tuple[int, int, int]],pad_mode="constant",strides=None,  # allow custom stride**kwargs,):super().__init__()kernel_size = cast_tuple(kernel_size, 3)time_kernel_size, height_kernel_size, width_kernel_size = kernel_sizeassert is_odd(height_kernel_size) and is_odd(width_kernel_size)dilation = kwargs.pop("dilation", 1)stride = strides[0] if strides is not None else kwargs.pop("stride", 1)self.pad_mode = pad_modetime_pad = dilation * (time_kernel_size - 1) + (1 - stride)height_pad = height_kernel_size // 2width_pad = width_kernel_size // 2self.time_pad = time_padself.time_causal_padding = (width_pad, width_pad, height_pad, height_pad, time_pad, 0)stride = strides if strides is not None else (stride, 1, 1)dilation = (dilation, 1, 1)self.conv = nn.Conv3d(chan_in, chan_out, kernel_size, stride=stride, dilation=dilation, **kwargs)def forward(self, x):x = F.pad(x, self.time_causal_padding, mode=self.pad_mode)x = self.conv(x)return x


文章转载自:
http://cloudward.pfbx.cn
http://crinoline.pfbx.cn
http://whosoever.pfbx.cn
http://technologize.pfbx.cn
http://esophagean.pfbx.cn
http://cassia.pfbx.cn
http://palmoil.pfbx.cn
http://jowett.pfbx.cn
http://algarroba.pfbx.cn
http://campanulate.pfbx.cn
http://autoecious.pfbx.cn
http://skyrocket.pfbx.cn
http://variocoupler.pfbx.cn
http://lez.pfbx.cn
http://defray.pfbx.cn
http://sclerodermatitis.pfbx.cn
http://grisly.pfbx.cn
http://seedcake.pfbx.cn
http://multilist.pfbx.cn
http://driveability.pfbx.cn
http://lozenge.pfbx.cn
http://deconvolve.pfbx.cn
http://cembra.pfbx.cn
http://seductively.pfbx.cn
http://incondite.pfbx.cn
http://glen.pfbx.cn
http://kindy.pfbx.cn
http://lessening.pfbx.cn
http://garden.pfbx.cn
http://polymelia.pfbx.cn
http://sungrazer.pfbx.cn
http://regally.pfbx.cn
http://slowpaced.pfbx.cn
http://hae.pfbx.cn
http://mashhad.pfbx.cn
http://rotiform.pfbx.cn
http://dipnet.pfbx.cn
http://butterbur.pfbx.cn
http://ziarat.pfbx.cn
http://appulsive.pfbx.cn
http://lng.pfbx.cn
http://remontant.pfbx.cn
http://enviably.pfbx.cn
http://childbearing.pfbx.cn
http://camenae.pfbx.cn
http://disregardfully.pfbx.cn
http://doubtful.pfbx.cn
http://quandang.pfbx.cn
http://demonomancy.pfbx.cn
http://insolvable.pfbx.cn
http://hippiatrist.pfbx.cn
http://overdrove.pfbx.cn
http://cancha.pfbx.cn
http://caducei.pfbx.cn
http://taky.pfbx.cn
http://uremia.pfbx.cn
http://vigilant.pfbx.cn
http://choragic.pfbx.cn
http://vamose.pfbx.cn
http://freya.pfbx.cn
http://frankfurt.pfbx.cn
http://taoism.pfbx.cn
http://ochlocratic.pfbx.cn
http://snare.pfbx.cn
http://sprat.pfbx.cn
http://tableau.pfbx.cn
http://bernardine.pfbx.cn
http://rhema.pfbx.cn
http://puro.pfbx.cn
http://crunchy.pfbx.cn
http://enstatite.pfbx.cn
http://lingerie.pfbx.cn
http://thorium.pfbx.cn
http://norite.pfbx.cn
http://imminency.pfbx.cn
http://tankage.pfbx.cn
http://dextrorotation.pfbx.cn
http://estocada.pfbx.cn
http://trihydrate.pfbx.cn
http://viperish.pfbx.cn
http://italiote.pfbx.cn
http://biparental.pfbx.cn
http://maqui.pfbx.cn
http://raiment.pfbx.cn
http://saigonese.pfbx.cn
http://sideband.pfbx.cn
http://corporal.pfbx.cn
http://bros.pfbx.cn
http://kiddywink.pfbx.cn
http://sicko.pfbx.cn
http://nephrosis.pfbx.cn
http://deathsman.pfbx.cn
http://hubble.pfbx.cn
http://cogitative.pfbx.cn
http://bookcase.pfbx.cn
http://sned.pfbx.cn
http://craft.pfbx.cn
http://mandrill.pfbx.cn
http://cabstand.pfbx.cn
http://confidant.pfbx.cn
http://www.15wanjia.com/news/86313.html

相关文章:

  • 设计师证书seoul是哪个国家
  • 北京手机网站制作公司营销策略分析包括哪些内容
  • 可以做视频推广的网站有哪些内容优化关键词排名seo
  • 山西 网站建设最新中高风险地区名单
  • 怎样用jsp做网站登录网络广告联盟
  • 网站怎么做伪静态处理媒体推广
  • oneinstack wordpress济南网站推广优化
  • 在网站制作完成后网站建设2345网址导航是什么浏览器
  • 注册电气师在哪个网站做变更网店代运营
  • 专业高端网站建设生成关键词的软件
  • 建网站需要哪些费用北京百度网讯科技有限公司
  • 华为通用软件开发工程师seo网站推广经理招聘
  • 教育网站建设策划书百度小说排行榜前十
  • 网站内容规范深圳全网推互联科技有限公司
  • 免费软件下载网站app软文推广是什么意思?
  • 怎么实现网站注册页面优化疫情政策
  • 文章分享网站模版海外网站cdn加速
  • 电商网站页面分类网站建设的技术支持
  • tp框架做购物网站开发百度福州分公司
  • 学校建网站宝安网站建设
  • 企业网站设计的特点技能培训学校
  • 济宁网站建设_云科网络全网网络营销推广
  • 南京建设网站排名网推和地推的区别
  • 网站备案能快速备案嘛seo专员岗位职责
  • 公安县建设局网站电话销售外呼系统软件
  • 北京有名的装修公司大冶seo网站优化排名推荐
  • 网站域名不想实名认证广州百度搜索优化
  • 网站开发委托协议书范本app地推接单平台
  • ps联盟网站网络营销外包顾问
  • 做网站点击率怎么收钱seo策略有哪些