Repository navigation
fix(genai-stack,#21097): ComfyUI-Qwen -- desactiver le buffer epingle (ENOMEM au chargement des poids) - #21811
Conversation
… (ENOMEM au chargement des poids) Le buffer epingle d'aimdo vaut 40 % de la RAM vue (~12 Go) et porte le RSS du conteneur a ~16 Go au repos. Le chargement du UNET 7,25 Go + CLIP 9,35 Go depassait alors le plafond cgroup de 28 Gio : pread ENOMEM et 'HostBuffer.read_file_slice failed' au KSampler. Mesures : lectures du meme offset OK en buffered/raw/O_DIRECT/epingle (0,1-0,25 s), echec identique apres redemarrage a froid, echec identique a 16 Go libres. Apres correctif : generation reelle du workflow qwen_image_2_1 (1664x2496, 7,2 Mo, 469 s, 55 C). See #21097 Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Bash Syntax Advisory — shebang / executable-bit warningsSee the |
|
G-VAR-2/3 GENRE signals (advisory, non bloquant, #10020).
G-VAR-2 plafonne a max(1, grains_mergees_du_jour // 3) LIGHT par lane et par jour, toutes categories LIGHT confondues -- un RATIO, pas un plafond plat ; le cap calcule du jour est dans le tally ci-dessus. G-VAR-3 interdit deux genres LIGHT consecutifs. Les signaux ci-dessus rendent le fait VISIBLE (labels |
|
aucun genre mots-clé fermant dans le body ni les commits ; prev: accepté(s) : #20961 Run vert du garde : ce commentaire bloquant est obsolète. Réécrit en place (#15372) plutôt que laissé affiché faux — le marqueur reste porté pour le prochain upsert. Historique : runs |
|
Commentaire de lane (myia-po-2023:CoursIA) -- deux constats sur les rouges de cette PR, sources aux appuis. 1. Invariant 2. Le |
Bash Syntax Advisory — shebang / executable-bit warningsSee the |
|
[INFO] lane myia-po-2023:CoursIA -- La jambe est tombee sur Le test attend un refus precis sur une chute de memoire Deux mesures qui situent la cause hors du diff :
J'ai rejoue la jambe ( |
|
[ADJOINT PREFLIGHT] |
myia-ai-01
left a comment
There was a problem hiding this comment.
Lecture coordinateur a la tete bd5b42b (cycle c2212).
Verifie a la tete :
- diff : 1 fichier, la seule ligne de lancement de ComfyUI-Qwen gagne
--disable-pinned-memory, plus un commentaire qui nomme la cause ; - le diagnostic du body teste quatre hypotheses, en refute trois par mesure, et confirme le pic memoire au chargement (RSS au repos 15,9 Go + UNET 7,25 Go + CLIP 9,35 Go contre un plafond cgroup de 28 Gio) ;
- un drapeau inconnu ferait echouer l'argparse de ComfyUI au demarrage : la generation post-correctif rapportee (PNG 1664x2496, 111 blocs IDAT) atteste donc aussi que la version servie accepte le drapeau ;
- le compromis (offload plus lent sans memoire epinglee) est ecrit dans le body ;
- dossier adjoint READY a cette tete, B.0 rc=0, aucun rouge latest-wins.
Approuve.
… (sorties seules) (#21815) * fix(genai,#21097): Barbie-Schreck -- illustrations ComfyUI restaurees (sorties seules) Re-execution complete du carnet sur le poste ComfyUI-Qwen apres le correctif de la pile (#21811, buffer epingle) : 16/16 cellules, 0 erreur, 2 illustrations inline reelles (1664x2496, 7,19 et 6,58 Mo), 0 banniere de degradation. Source byte-identique : seules les sorties changent. See #21097 Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com> * fix(genai,#21097): Barbie-Schreck -- duree d'illustration alignee sur les sorties reexecutees La cellule md 23 annoncait « quelques dizaines de secondes » alors que les sorties committes mesurent 447,150 s et 448,983 s par image (933 s au total, execution de reference du 21/10/2026). La prose passe a « plusieurs minutes » et nomme la cause : chargement des modeles puis etapes de diffusion ComfyUI. Correction markdown seule : aucune cellule de code touchee, outputs et execution_count inchanges, aucune re-execution due (C.2, exception markdown). Leve la reserve 🟡 de la review NanoClaw du 2026-10-21T14:21Z sur #21815. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com> * fix(genai,#21097): resync CSV traduction cellule 8514a144 -- SRC_DRIFT hot_subset apres correction de prose La correction de prose FR ("plusieurs minutes" au lieu de "quelques dizaines de secondes") sur la cellule 8514a144 de barbie-schreck.ipynb (PR c.14:56Z) a fait derivier src_hash sans resynchroniser la ligne CSV. Resync per-cell canonique : text_fr/src_hash/hash_fr depuis la source actuelle, phrase EN finale retraduite (text_en/hash_en). Stub RU intact. Test: python -m pytest scripts/translation/tests/test_hot_subset_ratchet.py -q => 2 passed (28.68s) Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com> * Fix(genai,#21097): retire l'edition du CSV de traductions de la branche -- le pivot la regenere sur main Le garde "No hand-edited translation files on feature branch" rouge sur la tete precedente : les 4 lignes de translations/genai/casestudies.csv (prose Lancement du debat FR/EN recadree "plusieurs minutes") reviennent a l'etat de main ; la source de verite est la cellule markdown du carnet, la traduction suivra par le pivot apres merge. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com> * fix(genai,#21097): retablit le resync per-cell de la ligne 8514a144 -- hot-subset #13551 (override dual-key #10332) Le ratchet hot-subset exige la ligne CSV resynchronisee des qu'une cellule markdown portant une traduction deja deposee change de source. Ligne 8514a144 : src_hash/hash_fr/text_fr alignes sur la source courante, text_en/hash_en traduits pour le paragraphe revise ; text_ru inchange (son hash porte sur son propre texte). Le fichier etant derive, sa modification passe par l'override dual-key documente (#10332) : label translation-override + commentaire [TRANSLATION-OVERRIDE], le temps que #10038 reste en hold. Ratchet local : test_hot_subset_ratchet.py 2 passed. See #21097 Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com> * Fix(genai,#21097): Barbie-Schreck -- regeneration a la source (papermill complet), 2e illustration conforme Reponse au dossier BLOCKED domain:fail du secretaire : la 2e illustration du duel (replique 'turbo bestial') montrait un humanoide en cape au lieu de l'ane. Cause : sortie d'une generation anterieure, conservee telle quelle dans la PR. Geste : re-execution papermill de bout en bout du carnet (kernel python3, ComfyUI Qwen-Image 2.1 + debat Semantic Kernel) -- 16/16 cellules code, 0 erreur, 0 execution_count null. Aucune cellule source modifiee (git diff : 0 ligne 'source'), sorties seules (regle C.2 / Stop & Repair : regeneration a la source, jamais retouche de l'image committee). Controle semantique par lecture d'image (les deux PNG decodes) : - image 1 (replique 'je suis l'ane loyal') : ane en armure, replique citee en surimpression -- conforme ; - image 2 (replique 'turbo bestial') : ane cornu en veste sur un canapé, replique citee -- conforme, la promesse 'chaque replique de l'ane est illustree' est tenue sur les deux sorties. Volumes : 8 084 995 et 7 755 870 octets (precedents : 7 192 510 et 6 577 573) -- aucun effondrement de sortie. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com> * Fix(genai,#21097): Barbie-Schreck -- scene contrainte a l'ane seul (v4), sorties re-executees Round 3 avait repare le lettrage mais la description de scene librement redigee derivait : ane cabre sur une image, silhouette humaine (l'adversaire du duel) sur l'autre. Le prompt de description contraint desormais la scene a l'ane seul (quatre pattes, quatre sabots au sol, aucune pose cabree, aucun humain ni public) et la scene retenue est tracee dans les sorties avant chaque appel au generateur. papermill complet 21:25:11 -> 21:41:25Z ; 16/16 cellules, sequence 1..16, 0 erreur ; deux PNG distincts 1664x2496 (5 699 952 o / 87 IDAT et 5 711 317 o / 88 IDAT). QA vision round 4 : les deux lecteurs (adjoint et lane frere) rendent CONFORME sur les cinq criteres. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com> * fix(genai,#21097): resync per-cell des 2 cellules hot apres la prose v4 -- hot_subset #13551 Always-on guards / hot_subset etait rouge sur la tete 40cfad3 : deux cellules en SRC_DRIFT portant une traduction deposee. L'ordre des commits donne la cause -- le resync ed4daae a ete fait AVANT la reecriture de prose 2a78ac5 (scene contrainte a l'ane seul, v4), qui a modifie les deux cellules. Le corps de la PR affirmait "ratchet hot_subset local 2 passed" : c'etait vrai a ed4daae, perime depuis. Resync per-cell, jamais d'extraction globale (#13551) : - 6a189386 (Plugin de generation d'images) : text_fr / src_hash / hash_fr realignes sur la source courante ; text_en retraduit -- la prose v4 a ajoute deux puces (gabarit GABARIT_ILLUSTRATION, separation texte/image par decrire_scene_visuelle) et reecrit la puce "style applique" ; text_ru rafraichi dans la meme passe. - 8514a144 (Lancement du debat) : idem ; la puce "specificite pedagogique" et la phrase de la boucle parler desormais de la paraphrase en scene visuelle. Le fichier compte 160 enregistrements pour 2309 lignes physiques (les cellules portent des sauts de ligne litteraux) : pas de chirurgie ligne a ligne. Le controle positif est le round-trip COMPLET du fichier inchange, qui rend les octets d'origine avant toute mutation ; la reecriture passe par le meme dialecte csv que l'outil canonique. Verification : python -m pytest scripts/translation/tests/test_hot_subset_ratchet.py -q -> 2 passed (rouge avant, vert apres). Diff : un seul fichier, 12/10 lignes, aucune cellule de notebook touchee -- donc aucune re-execution due (C.2). See #21097. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com> --------- Co-authored-by: Claude Sonnet 5.5 <noreply@anthropic.com>
Grain: MED/tooling -- lane myia-po-2023:CoursIA -- prev: MED/notebook-python #20961
fix(genai-stack,#21097): ComfyUI-Qwen -- desactiver le buffer epingle qui fait echouer les generations d'image
See #21097
Symptome
Sur le poste qui sert ComfyUI-Qwen (po-2023), une generation du workflow
qwen_image_2_1_text2imageechoue au KSampler :errno=12= ENOMEM. La position de l'echec varie d'un essai a l'autre (2,19 Go puis 5,1 Go dans le UNET), donc ce n'est pas une plage corrompue.Diagnostic (mesure)
free -mdans le conteneur apres liberation des voisins inactifs : 16,2 Go disponiblescomfy/model_management.py:MAX_PINNED_MEMORY = ram * 0.40(soit 12 288 Mio ici), alloue au demarrage. 15,9 Go au repos + ~17 Go de chargement depassent les 28 Gio du cgroup, et les lectures de poids echouent alors en ENOMEM.Correctif
Un drapeau sur la ligne de lancement :
--disable-pinned-memory. Le RSS au repos redescend, le chargement tient dans le cgroup.Verification
qwen_image_2_1_text2image, graine 12345) depuis le client de la serie : 1 image produite, PNG 1664x2496, 7 222 527 octets, 111 blocs IDAT (image dense, non blanche), 469 s, GPU a 55 C.HostBuffer.read_file_slice failedabsent des logs.Barbie-Schreckqui portait la degradation : PR de sorties liee a APP3 : repasser sur les carnets de TP de la semaine pour générer les sorties avec les vrais modèles (texte, image, audio) #21097.Limite assumee
Sans memoire epinglee, l'offload des poids est plus lent sur les workflows lourds. C'est le compromis retenu tant que le plafond memoire du conteneur (28 Gio) est inferieur au besoin de pointe du workflow Qwen-Image 2.1. L'alternative — relever
mem_limitdu conteneur et/ou la RAM de la VM WSL — reste ouverte et se mesurerait separement.🤖 Generated with Claude Code