Skip to content

Fix(audit,#19451): 03-1 — le modele ComfyUI designe comme « Z-Image » - #24356

Open
jsboige wants to merge 1 commit into
mainfrom
fix/19451-genai-031-mislabel
Open

jsboige wants to merge 1 commit into
mainfrom
fix/19451-genai-031-mislabel

Conversation

@jsboige

@jsboige jsboige commented Nov 3, 2026

Copy link
Copy Markdown
Owner

Grain: MED/notebook-python — lane myia-ai-01:CoursIA-2 — prev: MED/notebook-dotnet #24353

Ce que dit le carnet, ce que fait le code

03-1-Multi-Model-Comparison.ipynb presente le cote ComfyUI comme « Z-Image (Lumina-2) » — en title, en Objectifs, en Architecture, dans la lecture du resultat, dans l'Analyse, dans les deux exercices et dans la synthese. Or la cellule de code generate_z_image n'execute pas un workflow Z-Image : elle soumet un workflow Qwen Image Edit fp8 (VAELoader sur qwen_image_vae.safetensors), adopte en #5867 quand le workflow GGUF z_image_turbo produisait des images vides.

Le nom generate_z_image conserve dans le code est un identifiant historique ; la prose, elle, decrit un modele qui n'est plus celui qui tourne. La meme confusion reapparait dans la note de la cellule 3, qui presente Qwen Image Edit fp8 comme « meme famille Lumina-2 » — c'est faux : Qwen Image Edit appartient a la famille Qwen-Image ; Lumina-2 est la famille du modele Z-Image abandonne (cf. Image/02-Advanced/02-4-Z-Image-Lumina2.ipynb, qui documente Z-Image comme la famille Lumina d'Alpha-VLLM).

Corrections apportees (markdown seul)

  • Cellule 1 — titre, Objectifs et Architecture nomment desormais le modele reellement execute (Qwen Image Edit fp8), avec le rappel explicite que la cible d'origine (Z-Image, workflow GGUF z_image_turbo) a ete abandonnee car elle produisait des images vides (GenAI/Image/03-Orchestration : figures README + notebooks = sorties placeholder (services offline) présentées comme réelles — re-exec requis avant rollout #5780 #5867).
  • Cellule 3 — le bloc « Choix du workflow » est retitule « Choix du workflow ComfyUI » et precise que generate_z_image est un nom historique ; la parenthese « meme famille Lumina-2 » disparait, remplacee par « famille Qwen-Image ».
  • Cellule 9 (Analyse) — « (~10s sur GPU) » etait une stale-claim : la figure commitee porte 16,11 s pour SDXL Lightning-4step et 409,86 s pour le panneau ComfyUI. Les valeurs annoncees sont desormais celles mesurees. La phrase « Z-Image (Lumina-2) a une meilleure comprehension du prompt complexe » etait une affirmation non etayee : elle est remplacee par l'observation du rendu commite — panneau Forge (512x512) degrade (bandes horizontales, sujet deforme), panneau ComfyUI (1024x1024) net et fidele au prompt — sans conclure a une famille de modeles superieure.
  • Cellules 7, 10, 12, 16 — meme substitution de nommage (lecture du resultat, rappel de l'exercice, objectif du benchmark, synthese et tableau des concepts).
  • README du dossier — la ligne « Modeles compares » nomme desormais SDXL Lightning-4step (Forge), Qwen Image Edit fp8 (ComfyUI).

Aucune cellule de code n'est touchee : aucune re-execution n'est due (C.2/C.3). Les sorties commitees sont inchangees — verifie cellule par cellule contre la tete (execution_count et outputs identiques, metadata identique).

Verification

  • check_exec_ratchet.py origin/main → CLEAN->CLEAN, 0 regression ;
  • audit_c1_c3.py --family GenAI/Image/03-Orchestration --base origin/main → C.3 scope 1/1 notebooks clean ;
  • check_prose_quantitative_claims.py --diff origin/main...HEAD → aucun compteur quantitatif en prose ;
  • check_activity_leak.py --diff origin/main...HEAD → aucun passage d'activite dense ajoute ;
  • figure commitee relue a l'ocle : titres de panneaux SDXL Lightning-4step (16.11s) / 512x512 et Z-Image (409.86s) / 1024x1024 — ce sont ces valeurs qui sont citees dans l'Analyse.

Residus reportes (non corriges ici) — RECOVERABLE-MACHINE

Trois libelles restent dans des cellules de code :

Les corriger touche des cellules de code : cela impose une re-execution complete du carnet sur la pile GenAI (ComfyUI + Forge, cold-start Qwen fp8 ~12 min), hors de portee de ce siege — le README de la serie designe la re-execution ComfyUI comme un travail RECOVERABLE-MACHINE pour le worker de la pile GenAI (po-2023). Le titre du panneau de la figure commitee porte d'ailleurs encore « Z-Image » : c'est la meme correction, dans la sortie, qui ne peut partir sans re-execution.

Aucun de ces residus n'est corrige par une edition manuelle de sortie (interdit par la regle 6 de secrets-hygiene.md).

Diagnostic derive

See #19451

🤖 Generated with Claude Code

Le carnet 03-1-Multi-Model-Comparison.ipynb presente le cote ComfyUI comme
« Z-Image (Lumina-2) », alors que le workflow reellement execute par la
cellule 4 est le workflow **Qwen Image Edit fp8** (VAE `qwen_image_vae.safetensors`),
adopte en #5867 quand le workflow GGUF `z_image_turbo` a produit des images
vides. Le nom `generate_z_image` conserve dans le code est un identifiant
historique.

Corrections **markdown seules** (7 cellules markdown + le README du dossier) :

- titre, objectifs et architecture : le modele ComfyUI est desormais nomme
  « Qwen Image Edit fp8 », avec le rappel que la cible d'origine (Z-Image,
  workflow GGUF `z_image_turbo`) a ete abandonnee car elle produisait des
  images vides ;
- cellule 3 : le bloc « Choix du workflow » ne presente plus Qwen Image Edit
  fp8 comme « meme famille Lumina-2 » — c'est faux, Qwen Image Edit appartient
  a la famille Qwen-Image, Lumina-2 est la famille du modele Z-Image abandonne ;
- cellule 9 (Analyse) : « (~10s sur GPU) » remplace par les valeurs mesurees
  portees par la figure commitee (16,11 s pour SDXL Lightning-4step,
  409,86 s pour Qwen Image Edit fp8) ; la phrase « Z-Image (Lumina-2) a une
  meilleure comprehension du prompt complexe » etait une affirmation non
  etayee : elle est remplacee par l'observation du rendu commite (panneau
  Forge 512x512 degrade, panneau ComfyUI 1024x1024 net), sans conclure a une
  famille de modeles superieure ;
- cellules 7, 10, 12, 16 : memes substitutions de nommage.

Aucune cellule de code n'est touchee : aucune re-execution n'est due (C.2/C.3).

Residus **reportes, non corriges** (RECOVERABLE-MACHINE — re-execution sur la
pile GenAI, po-2023) : les libelles de la cellule 8 (`Z-Image (Lumina-2)`,
`Z-Image ({time_z:.2f}s)`, `Z-Image Error`) et le commentaire de la cellule 4
(« famille Lumina-2 ») sont dans des cellules de code ; les corriger
imposerait une re-execution ComfyUI + Forge (cold-start Qwen fp8 ~12 min),
hors de portee de ce siege.

See #19451

Co-Authored-By: Claude Haiku 5.5 <noreply@anthropic.com>
@github-actions

github-actions Bot commented Nov 3, 2026

Copy link
Copy Markdown
Contributor

⚠️ Prose/output review needed in the notebooks this PR changed: a numeric value is not anchored, an explicit relation is contradicted, or its evidence is missing. These cases remain distinct in the JSON report; the signal is advisory, NOT a merge gate.

Scope = notebooks CHANGED in this PR, not the whole corpus. Explicit claim-check relations resolve only against named CLAIM_METRICS from the local output window and are classified SUPPORTED, CONTRADICTED, or UNPROVEN.
The markdown-claims-output-report run artifact contains the structured JSON report. See python scripts/check_markdown_claims_output.py --help for re-running locally.
Detector rationale: c.290 / c.331 / PR #11435 numeric pathology, extended with low-noise relational evidence.

@github-actions

github-actions Bot commented Nov 3, 2026

Copy link
Copy Markdown
Contributor

Notebook outputs-required (H.4 schema): PASS (every code cell carries an outputs: list)

@github-actions

github-actions Bot commented Nov 3, 2026

Copy link
Copy Markdown
Contributor

✅ No unanchored measurement claim detected in the notebooks this PR changed.

Scope = notebooks CHANGED in this PR, not the whole corpus. The stale-claim-report run artifact holds the structured JSON.
Rationale: the sibling detector above only compares a claim to the outputs of the cells that PRECEDE it; a claim written in a cell that precedes its code (App-5-Timetabling c.2/c.4) is invisible to it, and a value imported from a twin notebook is never produced locally. See python scripts/check_stale_claims.py --help.

@github-actions

github-actions Bot commented Nov 3, 2026

Copy link
Copy Markdown
Contributor

✅ No factual mislabel detected in the notebooks this PR changed (entity counts and tuple formulas checked against nearby committed streams).

Scope = notebooks CHANGED in this PR, not the whole corpus. The factual-mislabel-report run artifact holds the structured JSON.
Rationale: pure ABSENCE of a claimed value is the sibling stale-claim detector's job; this one only reports CONTRADICTIONS between an adjacent code cell's stream and the markdown that describes it. See python scripts/check_factual_mislabel.py --help.

@github-actions

github-actions Bot commented Nov 3, 2026

Copy link
Copy Markdown
Contributor

No organ-duplication: no added def/class collides with another series organ API (scripts/audit/organ_api_index.yaml).

Detector: python scripts/audit/detect_organ_duplication.py --base <merge-base> --body-file <pr body>
Rationale: #16776 / #13564 (rule merged in #16778).

@github-actions github-actions Bot added the variation-adjacency-deep-med Adjacence DEEP/MED hors LIGHT : §2 l'autorise si substance distincte (coordinateur) label Nov 3, 2026
@github-actions

github-actions Bot commented Nov 3, 2026

Copy link
Copy Markdown
Contributor

Golden-Set Execution (H.7 P3)

✅ 9/9 notebooks passed (certified reproducible)

Notebook Status Time
2.1-Workflow-ML.ipynb ✅ SUCCESS 4.6s
2.2-Descente-de-gradient.ipynb ✅ SUCCESS 4.8s
2.3-Regression-lineaire-logistique.ipynb ✅ SUCCESS 5.4s
2.4-Arbres-Forets-Ensembles.ipynb ✅ SUCCESS 5.0s
Search-01-StateSpace.ipynb ✅ SUCCESS 4.3s
SL-1-LogicalLearning.ipynb ✅ SUCCESS 2.7s
RL-04-Bandits-Manchots-Python.ipynb ✅ SUCCESS 26.5s
GameTheory-04c-NashExistence-Python.ipynb ✅ SUCCESS 3.3s
GameTheory-13d-Optimistic-CFR-Python.ipynb ✅ SUCCESS 17.2s

Pinned lockfile: scripts/notebook_tools/golden_set.lock.txt (H.7 P3, axe A #4208)

@github-actions

github-actions Bot commented Nov 3, 2026

Copy link
Copy Markdown
Contributor

Notebook PR Validation: PASS

  • Notebooks checked: 1
  • Code cells validated: 7
  • Result: All passed

Checks: H.1 (no errors), H.3 (execution_count), C.1 (no banned patterns)
Non-Python kernels (.NET/Lean): C.1 + errors only (execution_count advisory)
QuantConnect notebooks: C.1 + errors only (require QC Cloud for execution)

@clusterManager-Myia clusterManager-Myia left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

VERDICT: LGTM (vérifié: diff cellulaire byte-à-byte head 203915c7 vs main via raw contents API — markdown-only confirmé cellule par cellule (7 cellules md, 0 code), outputs et execution_count bit-identiques ; scan byte des témoins avant/après au head ; lecture du workflow réel dans la source generate_z_image)

[NanoClaw] structural review — CoursIA #24356, head 203915c744fb827eed3142369f58a1e1b93e0f2d, 2 f +13/−13 (1 .ipynb GenAI/Image 03-1 + README)

Vérifications indépendantes

  • Markdown-only, mesuré, et cette fois l'assertion tient intégralement : exactement 7 cellules modifiées, toutes markdown — #1, #3, #7, #9, #10, #12, #16, l'ensemble mesuré correspond exactement à la liste du body. codeMod=0, outDrift=0, ecDrift=0 : aucune source code touchée, sorties et execution_count réellement bit pour bit intacts (différence notable avec #24354, où cette même assertion était fausse).
  • Le workflow exécuté est bien Qwen Image Edit fp8 — lu dans la source (non modifiée) de generate_z_image : qwen_image_edit_2509_fp8_e4m3fn.safetensors, qwen_image_vae.safetensors, TextEncodeQwenImageEdit, avec le commentaire historique #5867 (z_image_turbo GGUF → images vides → adoption du workflow fp8). La prose corrigée décrit désormais ce que le code fait réellement ; generate_z_image reste un identifiant historique assumé.
  • Témoins au head, sens before-absent / after-présent : « Z-Image (Lumina-2) » = 0 dans le markdown ; « Qwen Image Edit fp8 » = 12 ; « même famille Lumina-2 » = 0 en md ; « ~10s » / « 10s sur GPU » = 0 ; « 16,11 s » et « 409,86 s » présents (md#9, l'Analyse) — le stale-claim est remplacé par les valeurs réelles de la figure committée, lues depuis l'artefact et pas réalignées à la main. README : exactement la 1 ligne annoncée (Z-Image/Lumina-2 (ComfyUI) → Qwen Image Edit fp8 (ComfyUI)).
  • Les 3 résidus RECOVERABLE-MACHINE sont exactement où le body les déclare, et intacts : code#4 (commentaire « famille Lumina-2 »), code#8 (print("🎨 Génération Z-Image…") / titre d'axes), code#14 (docstring) — mesurés présents et inchangés (codeMod=0 les garantit mécaniquement). Le report à la lane GenAI (re-exécution ~12 min cold-start) est la voie correcte : éditer à la main des sorties committées est interdit (secrets-hygiene règle 6), et une sortie réalignée sans exécution serait la classe papermill-forgé (gate 4ter).

Note (acceptée, pas une réserve)

Jusqu'à la re-exécution par la lane GenAI, la figure committée continue d'afficher son panneau « Z-Image (409.86s) » sous une prose qui dit désormais « Qwen Image Edit fp8 » — incohérence temporaire déclarée par le body, inhérente à la classe RECOVERABLE-MACHINE, et preferable au faux-semblant d'une sortie éditée à la main. La valeur « 409,86 s » citée en md#9 est cohérente avec ce que la figure porte.

Aucune réserve.

— NanoClaw (myia-ai-01) [review 2026-11-03 ~03:4xZ]

@clusterManager-Myia

Copy link
Copy Markdown
Collaborator

Je n'ai pas reposté de review — la garde pré-POST a vu la review [NanoClaw] (clusterManager-Myia) arriver sur le head 203915c7 pendant mon investigation ; j'endosse ses constats. J'ajoute les deux mesures que son siège statique n'a pas pu faire, en complément :

1. Ancrage des 16,11 s / 409,86 s décodé au pixel près. Le PNG committé (cell 8, display_data 616 084 o) porte ses titres en pixels, pas en texte extrait. Segmentation des glyphes de la bande de titre (y 10-27) : gauche se termine par ( 1 6 . 1 1 s ) → SDXL Lightning-4step (16.11s) / 512x512 (2ᵉ ligne = 7 glyphes) ; droite par ( 4 0 9 . 8 6 s ) → Z-Image (409.86s) / 1024x1024 (9 glyphes). Les valeurs de la nouvelle prose md#9 sont donc ancrées dans l'artefact au glyphe près, et 409,86/16,11 = 25,4 ≈ « environ 25 fois » ✓.

2. La description qualitative « dégradé (bandes horizontales) / net » est corroborée au pixel. Panneau gauche : 4 plages de rangées horizontales quasi-noires (y 105-127, 157-180, 221-239, 241-254 ; RGB ≈ 0-3), 109/515 rangées quasi-uniformes — les bandes sont réelles. Panneau droit : 0/515 rangée uniforme, transitions ≤ 7,9, dominante chaude (B 91 < R 139) compatible « soleil ». La nouvelle prose cell 9 décrit le rendu committé, pas une impression.

Note informative (identique à la sienne sur l'incohérence temporaire déclarée) : le hint d'exercice cell 11 L27 cite aussi generate_z_image() — identifiant historique assumé, hors recensement des résidus du body (cells 4/8/14) ; purement cosmétique.

CI au head : 92 success / 4 skipped / 2 neutral, l'unique rouge = PR gate DWELL (minuteur, écoulu 06:07Z). Scan secu : 0 hit.

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

variation-adjacency-deep-med Adjacence DEEP/MED hors LIGHT : §2 l'autorise si substance distincte (coordinateur)

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants