vllm_omni.diffusion.models.soulx_singer.modules.flow_matching ¶
diff_loss module-attribute ¶
diff_loss = F.l1_loss(
flow_pred, flow_gt, reduction="none"
).float() * final_mask.unsqueeze(-1)
generated module-attribute ¶
generated = model.reverse_diffusion(
diffusion_cond_emb,
diffusion_prompt,
n_timesteps=n_timesteps,
)
model_cfg module-attribute ¶
model_cfg = {
"mel_dim": 128,
"hidden_size": 256,
"num_layers": 8,
"num_heads": 8,
"cfg_drop_prob": 0.2,
"use_embedding": False,
"cond_codebook_size": 256,
"cond_scale_factor": 1,
"sigma": 1e-05,
"time_scheduler": "cos",
}
FlowMatchingTransformer ¶
Bases: Module
ctc_mlp_layer instance-attribute ¶
ctc_mlp_layer = nn.Sequential(
nn.Linear(hidden_size, hidden_size * 4),
nn.SiLU(),
nn.Linear(hidden_size * 4, cfg.ctc.output_dim),
)
diff_estimator instance-attribute ¶
diff_estimator = DiffLlama(
mel_dim=mel_dim,
hidden_size=hidden_size,
num_heads=num_heads,
num_layers=num_layers,
config=llama_config,
)
repa_mlp_layer instance-attribute ¶
repa_mlp_layer = nn.Sequential(
nn.Linear(hidden_size, hidden_size * 4),
nn.SiLU(),
nn.Linear(hidden_size * 4, cfg.repa.output_dim),
)
forward ¶
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
x | Tensor | (B, T, mel_dim) | required |
x_mask | Tensor | (B, T) | required |
cond_code | Tensor | (B, T), Note that cond_code might be not at 50Hz! | required |
reverse_diffusion ¶
reverse_diffusion(
cond,
prompt,
x_mask=None,
prompt_mask=None,
n_timesteps=10,
cfg=1.0,
rescale_cfg=0.75,
)
reverse_diffusion_v2 ¶
reverse_diffusion_v2(
cond,
prompt,
x_mask=None,
prompt_mask=None,
n_timesteps=10,
cfg=1.0,
rescale_cfg=0.75,
)