How were the VAE latent mean/std values obtained, and why are they used for latent scaling?

Ouverte
#1,536 1 commentaire 0 réactions 0 personnes assignées Voir sur GitHub

Les mainteneurs répondent en général sous 1 jour

Personne n'a encore pris cette issue.

Évaluation

Difficulté
4/5
Temps estimé
3-5 jours
Accessibilité débutants
35/100
Type d'issue
Documentation
Clarté
À clarifier
Activité
Calme
Stack technique
python

Piste de recherche

Commencez par suivre les implémentations des pipelines Qwen-Image et Wan où la normalisation latente par canal est appliquée. Consultez la documentation disponible sur VAE et l’entraînement, ou le code de collecte des statistiques, afin de confirmer comment la moyenne et l’écart type ont été obtenus et pourquoi la mise à l’échelle est utilisée ; la tâche est terminée lorsqu’une explication claire et référencée est fournie.

Rédigé par le modèle d'indexation à partir du texte de l'issue.

Description

Hi DiffSynth-Studio team,

Thank you for open-sourcing this project.

I noticed that the Qwen-Image/Wan pipeline applies fixed channel-wise normalization to the VAE latent:

latents = (latents - mean) / std

Could you clarify:

How were these mean and std values calculated?
Were they computed by encoding the training data, taking the posterior mean for each sample, and then calculating channel-wise statistics over all samples and spatial-temporal positions?
Why is this scaling necessary?

My guess is that the raw latent channels have different means and variances, so this normalization makes their scales more balanced, better matches the scale of Gaussian noise, and prevents high-variance channels from dominating the flow-matching loss.

It would be very helpful if you could confirm this or share the statistics-collection method. Thanks!

Langage dominant
Python
Étoiles
13.3k
Forks
1.3k
Merge moyen
16 h 16 min
PR mergées (30 j)
45

Préparer son environnement

Ce projet ne fournit ni conteneur de développement, ni Dockerfile, ni guide de contribution : l'installation est à votre charge. Commencez par son README, et consultez notre guide de la première contribution pour les étapes générales.

Par où commencer

  1. Lisez l'issue en entier, puis le guide de contribution du projet.
  2. Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
  3. Forkez le dépôt et travaillez sur une branche.
  4. Ouvrez une pull request qui référence le numéro de l'issue.

Autres issues de modelscope/DiffSynth-Studio

Toutes les issues de modelscope/DiffSynth-Studio

Issues similaires

Plus d'issues Python

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.