MOSS-Image-heal : un finetune complet qui rend la fp16 sûre

ComfyUI Wikinews

MOSS-Image-heal de KohakuBlueleaf réentraîne MOSS-Image-Base pour dompter son flux résiduel : le fp16 ne frôle plus la limite et ComfyUI reçoit des fichiers bf16, fp16 et int8.

<strong>MOSS-Image-heal</strong> est un finetune complet de MOSS-Image-Base par KohakuBlueleaf, l'auteur de LyCORIS et KohakuMoss. Il ne cherche pas un nouveau rendu : il réentraîne le flux résiduel pour le ramener dans les limites, si bien que la plus grande valeur d'activation passe de 58 411 à 3 083 et que l'inférence fp16 cesse de vivre 6 % sous son propre plafond. Les sorties restent proches du modèle de base, et la publication fournit des fichiers uniques bf16, fp16 et int8 ConvRot dans la disposition de clés de ComfyUI.
MOSS-Image-Base et MOSS-Image-heal sur les mêmes prompts et la même graine

Base et heal avec le même prompt, la même graine, 16 étapes, CFG 3 et shift 5, d'après la carte de modèle officielle.

Le problème que l'entraînement élimine

MOSS-Image est un transformer de diffusion single-stream de 5,08B, et son flux résiduel transporte une poignée de canaux très grands. Sur la sonde de six échantillons de l'auteur, la plus grande valeur de flux du modèle de base est de 58 411 contre un maximum fp16 de 65 504, soit 1,12x de marge. Tout ce qui pousse un peu plus fort les activations, ou tout noyau qui calcule un intermédiaire légèrement plus large, déborde vers inf, et l'image revient noire ou corrompue. C'est pourquoi le repack de Comfy-Org livre des fichiers bf16 et int8 ConvRot plutôt qu'un fichier fp16.

La plus grande valeur du flux résiduel par bloc, base contre heal

Plus grande valeur absolue du flux par bloc sur six échantillons texte-image pour une surface de 1024². Graphique issu de la carte de modèle.

MesureMOSS-Image-BaseMOSS-Image-heal
Plus grande valeur de flux58 4113 083
Marge jusqu'au maximum fp161,12x21,2x
RMS du flux, moyenne sur les blocs27,753,70
RMS du flux, dernier bloc65,612,0
Part d'énergie des 32 plus grands canaux0,8370,708

La marge vient du même changement : le modèle a appris à répartir sur davantage de canaux ce qui tenait auparavant dans 32 d'entre eux. La concentration d'énergie qui passe de 0,837 à 0,708 en est la face visible, et c'est elle qui achète l'espace fp16.

Comment il a été entraîné

L'entraînement est un finetune complet de chaque poids du transformer, à l'exception du text refiner qui reste gelé ; l'encodeur de texte, le tokenizer, le VAE, le scheduler et le code du pipeline sont ceux officiels de MOSS-Image-Base. Les pertes sont le flow matching plus un terme de distillation vers la base gelée, une perte de concentration d'écriture du flux qui pénalise l'attention et les écritures FFN s'accumulant dans peu de canaux, et une perte de RMS du flux. Les poids sont décroissés séparément dès qu'ils dépassent un multiple plafond de leur RMS de départ, le plafond se resserrant de 64 à 16 sur les 10 000 premiers pas.

Pas50 000 x 64 échantillons, 3,2M échantillons
Résolutionsurface de 1024², chaque image à son propre ratio d'aspect
OptimiseurAdamW, lr 1e-5 en cosinus vers 1e-7
CalculEnviron 200 heures GPU sur B300, fp16 avec une copie maître fp32
Données999 294 posts Danbooru, Graph-Based Captioning de Qwen3.8-27B et Qwen3.5-9B
Éléments au-dessus d'un multiple de leur RMS de tenseur, base contre heal

Valeurs aberrantes des poids par tenseur 2-D : 349 éléments se situaient au-dessus de 64x le RMS dans le transformer de base, et aucun dans heal. Graphique issu de la carte de modèle.

Les sorties restent là où était le modèle de base

Dompter le flux n'est utile que si le modèle dessine toujours comme la base, et la carte rapporte les deux chiffres. La perte de flow passe de 0,4280 à 0,4289, et le cosinus des vélocités par rapport à la base sur les lignes de la sonde est de 0,9983. C'est une réparation numérique, pas un réentraînement de style.

Deuxième grille de comparaison, même prompt et même graine

La deuxième grille de la carte, en format portrait, imprimée avec le prompt de légende et le prompt de mise en page GBC.

Fichiers pour ComfyUI

Les trois fichiers sont des checkpoints single-file dans la disposition de clés de Comfy-Org, ils se chargent donc via le même nœud Charger Modèle Diffusion que le repack officiel MOSS-Image. Rien d'autre ne change : vous conservez l'encodeur de texte qwen3.5_9b et le VAE MOSS que vous utilisez déjà.

FichierPoidsTaille
moss_image_heal_bf16.safetensorsbf1610,2 GB
moss_image_heal_fp16.safetensorsfp1610,2 GB
moss_image_heal_int8_convrot.safetensorsint8 ConvRot, groupe 2565,4 GB

Le fichier int8 est écrit pour correspondre exactement à la disposition moss_image_base_int8_convrot de Comfy-Org : mêmes 757 clés, chaque tenseur non quantifié identique, et 5e-8 des codes de quantification décalés d'un. Il se glisse donc dans le même emplacement que le checkpoint int8 officiel, pour la moitié du disque.

Sur les mêmes lignes de sonde, heal en fp16 atteint une erreur de vélocité de 2,1e-3 avec un cosinus de 0,999996, et culmine à 3 278 dans le flux, 20x sous le maximum fp16. Le modèle de base sur ces lignes culmine à 61 696, soit 6 % en dessous.

Disponibilité

Commentaires

Connectez-vous avec GitHub pour rejoindre la discussion.

Chargement des commentaires…
MOSS-Image-heal : un finetune complet qui rend la fp16 sûre | ComfyUI Wiki