scientific-schematics

Par mkurman · zorai

Créez des diagrammes scientifiques de qualité publication avec Nano Banana 2 AI et un raffinement itératif intelligent. Utilise Gemini 3.1 Pro Preview pour l'évaluation qualitative. Ne régénère que si la qualité est en dessous du seuil défini pour votre type de document. Spécialisé dans les architectures de réseaux de neurones, les diagrammes système, les organigrammes, les voies biologiques et les visualisations scientifiques complexes.

npx skills add https://github.com/mkurman/zorai --skill scientific-schematics

Mode Génération IA (Nano Banana 2 + Gemini 3.1 Pro Preview Review)

Workflow d'Affinement Itératif Intelligent

Le système de génération IA utilise l'itération intelligente - il ne régénère que si la qualité est en dessous du seuil pour votre type de document :

Fonctionnement de l'Itération Intelligente

┌─────────────────────────────────────────────────────┐
│  1. Générer image avec Nano Banana 2              │
│                    ↓                                │
│  2. Vérifier qualité avec Gemini 3.1 Pro Preview                │
│                    ↓                                │
│  3. Score >= seuil?                             │
│       OUI → TERMINÉ! (arrêt précoce)                      │
│       NON  → Améliorer prompt, aller à l'étape 1            │
│                    ↓                                │
│  4. Répéter jusqu'à qualité atteinte OU max itérations      │
└─────────────────────────────────────────────────────┘

Itération 1 : Génération Initiale

Construction du Prompt :

Directives de diagramme scientifique + Demande utilisateur

Résultat : diagram_v1.png

Vérification de Qualité par Gemini 3.1 Pro Preview

Gemini 3.1 Pro Preview évalue le diagramme sur :

  1. Exactitude Scientifique (0-2 points) - Concepts corrects, notation, relations
  2. Clarté et Lisibilité (0-2 points) - Facile à comprendre, hiérarchie claire
  3. Qualité des Étiquettes (0-2 points) - Étiquettes complètes, lisibles, cohérentes
  4. Mise en Page et Composition (0-2 points) - Flux logique, équilibré, pas de chevauchements
  5. Apparence Professionnelle (0-2 points) - Qualité prête pour publication

Exemple de Résultat de Vérification :

SCORE : 8,0

FORCES :
- Flux clair de haut en bas
- Toutes les phases correctement étiquetées
- Typographie professionnelle

PROBLÈMES :
- Nombres de participants légèrement petits
- Léger chevauchement sur boîte d'exclusion

VERDICT : ACCEPTABLE (pour affiche, seuil 7,0)

Point de Décision : Continuer ou Arrêter?

Si le Score... Action
>= seuil ARRÊTER - La qualité est suffisante pour ce type de document
< seuil Continuer à l'itération suivante avec prompt amélioré

Exemple :

  • Pour une affiche (seuil 7,0) : Score de 7,5 → TERMINÉ après 1 itération!
  • Pour un journal (seuil 8,5) : Score de 7,5 → Continuer à améliorer

Itérations Suivantes (Uniquement si Nécessaire)

Si la qualité est en dessous du seuil, le système :

  1. Extrait les problèmes spécifiques de la vérification de Gemini 3.1 Pro Preview
  2. Améliore le prompt avec les instructions d'amélioration
  3. Régénère avec Nano Banana 2
  4. Vérifie à nouveau avec Gemini 3.1 Pro Preview
  5. Répète jusqu'au seuil atteint ou max itérations

Journal de Vérification

Toutes les itérations sont sauvegardées avec un journal de vérification JSON qui inclut les informations d'arrêt précoce :

{
  "user_prompt": "Diagramme de flux de participants CONSORT...",
  "doc_type": "poster",
  "quality_threshold": 7.0,
  "iterations": [
    {
      "iteration": 1,
      "image_path": "figures/consort_v1.png",
      "score": 7.5,
      "needs_improvement": false,
      "critique": "SCORE : 7,5\nFORCES :..."
    }
  ],
  "final_score": 7.5,
  "early_stop": true,
  "early_stop_reason": "Score de qualité 7,5 atteint le seuil 7,0 pour affiche"
}

Remarque : Avec l'itération intelligente, vous ne voyez peut-être qu'une itération au lieu de 2 si la qualité est atteinte rapidement!

Utilisation Avancée de la Génération IA

API Python

from scripts.generate_schematic_ai import ScientificSchematicGenerator

# Initialiser le générateur
generator = ScientificSchematicGenerator(
    api_key="your_openrouter_key",
    verbose=True
)

# Générer avec affinement itératif (max 2 itérations)
results = generator.generate_iterative(
    user_prompt="Transformer architecture diagram",
    output_path="figures/transformer.png",
    iterations=2
)

# Accéder aux résultats
print(f"Score final : {results['final_score']}/10")
print(f"Image finale : {results['final_image']}")

# Vérifier les itérations individuelles
for iteration in results['iterations']:
    print(f"Itération {iteration['iteration']} : {iteration['score']}/10")
    print(f"Critique : {iteration['critique']}")

Options en Ligne de Commande

# Utilisation basique (seuil par défaut 7,5/10)
python scripts/generate_schematic.py "description du diagramme" -o output.png

# Spécifier le type de document pour le seuil de qualité approprié
python scripts/generate_schematic.py "diagramme" -o out.png --doc-type journal      # 8,5/10
python scripts/generate_schematic.py "diagramme" -o out.png --doc-type conference   # 8,0/10
python scripts/generate_schematic.py "diagramme" -o out.png --doc-type poster       # 7,0/10
python scripts/generate_schematic.py "diagramme" -o out.png --doc-type presentation # 6,5/10

# Itérations max personnalisées (1-2)
python scripts/generate_schematic.py "diagramme complexe" -o diagram.png --iterations 2

# Sortie détaillée (voir tous les appels API et vérifications)
python scripts/generate_schematic.py "organigramme" -o flow.png -v

# Fournir la clé API via flag
python scripts/generate_schematic.py "diagramme" -o out.png --api-key "sk-or-v1-..."

# Combiner les options
python scripts/generate_schematic.py "réseau de neurones" -o nn.png --doc-type journal --iterations 2 -v

Conseils d'Ingénierie de Prompt

1. Être Précis sur la Mise en Page :

✓ "Organigramme avec flux vertical, de haut en bas"
✓ "Diagramme d'architecture avec encodeur à gauche, décodeur à droite"
✓ "Diagramme de voie circulaire avec flux dans le sens horaire"

2. Inclure des Détails Quantitatifs :

✓ "Réseau de neurones avec couche d'entrée (784 nœuds), couche cachée (128 nœuds), sortie (10 nœuds)"
✓ "Organigramme montrant n=500 dépistés, n=150 exclus, n=350 randomisés"
✓ "Circuit avec résistance 1kΩ, condensateur 10µF, source 5V"

3. Spécifier le Style Visuel :

✓ "Diagramme en blocs minimaliste avec lignes nettes"
✓ "Voie biologique détaillée avec structures protéiques"
✓ "Schéma technique avec notation d'ingénierie"

4. Demander des Étiquettes Spécifiques :

✓ "Étiqueter toutes les flèches avec activation/inhibition"
✓ "Inclure les dimensions de couche dans chaque boîte"
✓ "Montrer la progression temporelle avec horodatages"

5. Mentionner les Exigences de Couleur :

✓ "Utiliser des couleurs adaptées aux daltoniens"
✓ "Conception compatible en niveaux de gris"
✓ "Code couleur par fonction : bleu pour entrée, vert pour traitement, rouge pour sortie"

Exemples de Génération IA

Exemple 1 : Diagramme de Flux CONSORT

python scripts/generate_schematic.py \
  "Diagramme de flux de participants CONSORT pour essai contrôlé randomisé. \
   Commencer par 'Évalué pour éligibilité (n=500)' en haut. \
   Afficher 'Exclus (n=150)' avec raisons : âge<18 (n=80), refus (n=50), autre (n=20). \
   Puis 'Randomisés (n=350)' se divise en deux groupes : \
   'Groupe traitement (n=175)' et 'Groupe contrôle (n=175)'. \
   Chaque groupe affiche 'Perdus de vue' (n=15 et n=10). \
   Se terminer par 'Analysés' (n=160 et n=165). \
   Utiliser des boîtes bleues pour étapes de traitement, orange pour exclusion, vert pour analyse finale." \
  -o figures/consort.png

Exemple 2 : Architecture Réseau de Neurones

python scripts/generate_schematic.py \
  "Diagramme d'architecture Transformer encodeur-décodeur. \
   Côté gauche : Pile encodeur avec embedding d'entrée, encodage positionnel, \
   auto-attention multi-têtes, ajouter & norme, feed-forward, ajouter & norme. \
   Côté droit : Pile décodeur avec embedding de sortie, encodage positionnel, \
   auto-attention masquée, ajouter & norme, attention croisée (recevant de l'encodeur), \
   ajouter & norme, feed-forward, ajouter & norme, linéaire & softmax. \
   Afficher la connexion d'attention croisée de l'encodeur au décodeur avec ligne pointillée. \
   Utiliser bleu clair pour encodeur, rouge clair pour décodeur. \
   Étiqueter tous les composants clairement." \
  -o figures/transformer.png --iterations 2

Exemple 3 : Voie Biologique

python scripts/generate_schematic.py \
  "Diagramme de voie de signalisation MAPK. \
   Commencer par récepteur EGFR à membrane cellulaire (haut). \
   Flèche vers RAS (avec étiquette GTP). \
   Flèche vers kinase RAF. \
   Flèche vers kinase MEK. \
   Flèche vers kinase ERK. \
   Flèche finale vers noyau affichant transcription génique. \
   Étiqueter chaque flèche avec 'phosphorylation' ou 'activation'. \
   Utiliser rectangles arrondis pour protéines, couleurs différentes pour chacune. \
   Inclure ligne de limite de membrane en haut." \
  -o figures/mapk_pathway.png

Exemple 4 : Architecture de Système

python scripts/generate_schematic.py \
  "Diagramme d'architecture de bloc système IoT. \
   Couche inférieure : Capteurs (température, humidité, mouvement) dans boîtes vertes. \
   Couche moyenne : Microcontrôleur (ESP32) dans boîte bleue. \
   Connexions au module WiFi (boîte orange) et Affichage (boîte violette). \
   Couche supérieure : Serveur cloud (boîte grise) connecté à application mobile (boîte bleu clair). \
   Afficher les flèches de flux de données entre tous les composants. \
   Étiqueter les connexions avec protocoles : I2C, UART, WiFi, HTTPS." \
  -o figures/iot_architecture.png

Utilisation en Ligne de Commande

Le point d'entrée principal pour générer des schémas scientifiques :

# Utilisation basique
python scripts/generate_schematic.py "description du diagramme" -o output.png

# Itérations personnalisées (max 2)
python scripts/generate_schematic.py "diagramme complexe" -o diagram.png --iterations 2

# Mode détaillé
python scripts/generate_schematic.py "diagramme" -o out.png -v

Remarque : Le système de génération IA Nano Banana 2 inclut une vérification de qualité automatique dans son processus d'affinement itératif. Chaque itération est évaluée pour exactitude scientifique, clarté et accessibilité.

Résumé des Bonnes Pratiques

Principes de Conception

  1. Clarté plutôt que complexité - Simplifier, retirer les éléments inutiles
  2. Style cohérent - Utiliser des modèles et fichiers de style
  3. Accessibilité pour daltoniens - Utiliser palette Okabe-Ito, encodage redondant
  4. Typographie appropriée - Polices sans-serif, minimum 7-8 pt
  5. Format vectoriel - Toujours utiliser PDF/SVG pour publication

Exigences Techniques

  1. Résolution - Vectoriel préféré, ou 300+ DPI pour raster
  2. Format de fichier - PDF pour LaTeX, SVG pour web, PNG en dernier recours
  3. Espace couleur - RGB pour numérique, CMYK pour impression (convertir si nécessaire)
  4. Épaisseurs de lignes - Minimum 0,5 pt, typiquement 1-2 pt
  5. Taille de texte - 7-8 pt minimum à taille finale

Directives d'Intégration

  1. Inclure dans LaTeX - Utiliser \includegraphics{} pour images générées
  2. Légende détaillée - Décrire tous les éléments et abréviations
  3. Référence dans le texte - Expliquer le diagramme dans le flux narratif
  4. Maintenir la cohérence - Même style sur toutes les figures du document
  5. Contrôle de version - Conserver prompts et images générées dans repository

Dépannage des Problèmes Courants

Problèmes de Génération IA

Problème : Texte ou éléments qui se chevauchent

  • Solution : La génération IA gère automatiquement l'espacement
  • Solution : Augmenter itérations : --iterations 2 pour meilleur affinement

Problème : Éléments ne se connectent pas correctement

  • Solution : Rendre votre prompt plus précis sur les connexions et mise en page
  • Solution : Augmenter itérations pour meilleur affinement

Problèmes de Qualité d'Image

Problème : Qualité d'export faible

  • Solution : La génération IA produit images haute qualité automatiquement
  • Solution : Augmenter itérations pour meilleurs résultats : --iterations 2

Problème : Éléments qui se chevauchent après génération

  • Solution : La génération IA gère automatiquement l'espacement
  • Solution : Augmenter itérations : --iterations 2 pour meilleur affinement
  • Solution : Rendre votre prompt plus spécifique sur mise en page et espacement

Problèmes de Vérification de Qualité

Problème : Faux positif de détection de chevauchement

  • Solution : Ajuster seuil : detect_overlaps(image_path, threshold=0.98)
  • Solution : Vérifier manuellement régions marquées dans rapport visuel

Problème : Qualité d'image générée faible

  • Solution : La génération IA produit images haute qualité par défaut
  • Solution : Augmenter itérations pour meilleurs résultats : --iterations 2

Problème : Simulation daltonien montre faible contraste

  • Solution : Basculer vers palette Okabe-Ito explicitement dans code
  • Solution : Ajouter encodage redondant (formes, motifs, styles de ligne)
  • Solution : Augmenter saturation et différences de luminosité

Problème : Chevauchements haute sévérité détectés

  • Solution : Vérifier overlap_report.json pour positions exactes
  • Solution : Augmenter espacement dans ces régions spécifiques
  • Solution : Relancer avec paramètres ajustés et vérifier à nouveau

Problème : Génération de rapport visuel échoue

  • Solution : Vérifier installations Pillow et matplotlib
  • Solution : Assurer fichier image lisible : Image.open(path).verify()
  • Solution : Vérifier suffisant espace disque pour génération de rapport

Problèmes d'Accessibilité

Problème : Couleurs indistinguibles en niveaux de gris

  • Solution : Lancer vérificateur d'accessibilité : verify_accessibility(image_path)
  • Solution : Ajouter motifs, formes, ou styles de ligne pour redondance
  • Solution : Augmenter contraste entre éléments adjacents

Problème : Texte trop petit à l'impression

  • Solution : Lancer validateur de résolution : validate_resolution(image_path)
  • Solution : Concevoir à taille finale, utiliser minimum polices 7-8 pt
  • Solution : Vérifier dimensions physiques dans rapport de résolution

Problème : Vérifications d'accessibilité échouent régulièrement

  • Solution : Vérifier accessibility_report.json pour défaillances spécifiques
  • Solution : Augmenter contraste couleur d'au moins 20%
  • Solution : Tester avec conversion niveaux de gris réelle avant finalisation

Ressources et Références

Références Détaillées

Charger ces fichiers pour informations complètes sur sujets spécifiques :

  • references/diagram_types.md - Catalogue de types de diagrammes scientifiques avec exemples
  • references/best_practices.md - Normes de publication et directives d'accessibilité

Ressources Externes

Bibliothèques Python

Normes de Publication

Intégration avec d'Autres Skills

Cette skill fonctionne en synergie avec :

  • Scientific Writing - Les diagrammes suivent les bonnes pratiques de figures
  • Scientific Visualization - Partage palettes couleurs et style
  • LaTeX Posters - Générer diagrammes pour présentations affiche
  • Research Grants - Diagrammes de méthodologie pour propositions
  • Peer Review - Évaluer clarté et accessibilité des diagrammes

Liste de Vérification de Référence Rapide

Avant de soumettre les diagrammes, vérifier :

Qualité Visuelle

  • [ ] Format d'image haute qualité (PNG depuis génération IA)
  • [ ] Aucun élément qui se chevauchent (IA gère automatiquement)
  • [ ] Espacement adéquat entre tous les composants (IA optimise)
  • [ ] Alignement clean et professionnel
  • [ ] Toutes les flèches se connectent correctement aux cibles prévues

Accessibilité

  • [ ] Palette adaptée aux daltoniens (Okabe-Ito) utilisée
  • [ ] Fonctionne en niveaux de gris (testé avec vérificateur d'accessibilité)
  • [ ] Contraste suffisant entre éléments (vérifié)
  • [ ] Encodage redondant où approprié (formes + couleurs)
  • [ ] Simulation daltonien passe toutes les vérifications

Typographie et Lisibilité

  • [ ] Texte minimum 7-8 pt à taille finale
  • [ ] Tous les éléments étiquetés clairement et complètement
  • [ ] Famille de police et taille cohérentes
  • [ ] Aucun chevauchement ou coupure de texte
  • [ ] Unités incluses où applicable

Normes de Publication

  • [ ] Style cohérent avec autres figures du manuscrit
  • [ ] Légende complète écrite avec toutes abréviations définies
  • [ ] Référencée appropriément dans texte du manuscrit
  • [ ] Répond aux exigences de dimensions spécifiques au journal
  • [ ] Exporté en format requis pour journal (PDF/EPS/TIFF)

Vérification de Qualité (Requise)

  • [ ] Exécuté run_quality_checks() et obtenu statut PASS
  • [ ] Vérifié rapport de détection de chevauchement (zéro chevauchement haute sévérité)
  • [ ] Passé vérification d'accessibilité (niveaux de gris et daltonisme)
  • [ ] Résolution validée au DPI cible (300+ pour impression)
  • [ ] Rapport de qualité visuelle généré et vérifié
  • [ ] Tous rapports de qualité sauvegardés avec fichiers de figure

Documentation et Contrôle de Version

  • [ ] Fichiers source (.tex, .py) sauvegardés pour révision future
  • [ ] Rapports de qualité archivés dans répertoire quality_reports/
  • [ ] Paramètres de configuration documentés (couleurs, espacement, tailles)
  • [ ] Commit git inclut source, résultat, et rapports de qualité
  • [ ] README ou commentaires expliquent comment régénérer la figure

Vérification d'Intégration Finale

  • [ ] Figure affichée correctement dans manuscrit compilé
  • [ ] Références croisées fonctionnent (\ref{} pointe vers bonne figure)
  • [ ] Numéro de figure correspond aux citations du texte
  • [ ] Légende apparaît sur page correcte relative à figure
  • [ ] Aucun avertissement ou erreur de compilation liés à figure

Configuration d'Environnement

# Requis
export OPENROUTER_API_KEY='your_api_key_here'

# Obtenir clé à : https://openrouter.ai/keys

Premiers Pas

Utilisation la plus simple possible :

python scripts/generate_schematic.py "votre description de diagramme" -o output.png

Utiliser cette skill pour créer des diagrammes clairs, accessibles, de qualité publication qui communiquent efficacement des concepts scientifiques complexes. Le workflow assisté par IA avec affinement itératif assure que les diagrammes respectent les normes professionnelles.

Skills similaires