- Complete Modularization of
Pycnaptiq-AI.py:- The main script has been drastically reduced, focusing now almost exclusively on UI layout.
- New Core Layer (
core/):core/sdxl_logic.py: Isolated the entire SDXL generation and pipeline execution logic.core/model_loaders.py: Centralized model loading and management.core/config.py: Unified configuration loading, global constants, and translation management.core/ui_handlers.py: Acts as a bridge between Gradio UI components and backend logic.
- Enhanced Utilities (
Utils/):Utils/preset_handlers.py: Modularized preset loading, saving, rendering, and deletion. Improved stability and error handling for image formats and samplers.
- Preset Loading:
- Resolved "Unknown sampler: None" error by adding robust fallbacks for missing sampler keys.
- Fixed Gradio
UserWarningregarding format dictionary choices by standardizing on string formats and implementing flexible matching.
- Generation Logic:
- Fixed
AttributeErrorwhen passing selected formats as dictionaries instead of strings. - Improved robustness for LoRA loading and cancellation events.
- Fixed
- Modernized Test Module Squelette:
- Updated
modules/test_module_mod.pywith a robust class-based structure. - Integrated AI-powered prompt enhancement boilerplate.
- Implemented thread-safe cancellation and asynchronous progress bar examples.
- Updated
- New Module: Image Prompt Builder (
ImagePromptBuilder_mod.py):- Introduced a dedicated tab for generating detailed image prompts using a wide range of categories.
- Allows users to build prompts by selecting from predefined lists of:
- Main Subject & Actions: Character types, creatures, clothing styles, physical/supernatural attributes, actions/verbs.
- Visual & Artistic Style: Medium/technique, artistic movements, visual effects.
- Environment & Atmosphere: Locations, time of day, weather conditions, mood/emotions.
- Composition & Perspective: Composition/arrangement, perspectives.
- Technical Details & Quality: Resolutions/quality, rendering engines, lighting options.
- Universe & References: Franchises/universes, artist references.
- Negative Prompts: Undesired elements.
- Includes a "Clear All Selections" button to reset the prompt builder.
- Features a "Random Prompt" button to generate a prompt by randomly selecting from available categories, offering creative inspiration.
- Automatically updates the final prompt textbox as selections are made.
- New Module: RealEdit Image Editor (
RealEdit_mod.py):- Introduced a new tab for realistic image editing based on user instructions (prompts).
- Utilizes the
peter-sushko/RealEditmodel, which is trained on a large-scale dataset (REALEDIT) of authentic user requests and human-made edits. - Allows users to upload an image, provide an editing instruction (e.g., "give him a crown"), and generate the edited image.
- Includes an option to translate the editing prompt to English for potentially better model performance.
- Features controls for inference steps and image guidance scale.
- The module checks image conformity and saves the generated image with relevant metadata.
- This module aims to address real-world image editing demands where existing models often fall short due to training on artificial edits.
- New Module: StarVector (Image to SVG) (
StarVector_mod.py):- Introduced a new tab for converting raster images (PNG, JPG, etc.) to Scalable Vector Graphics (SVG) using the
starvector/starvector-8b-im2svgmodel. - Provides the raw SVG code output and a rasterized preview of the generated SVG.
- Managed by
ModelManagerfor model loading and device management.
- Introduced a new tab for converting raster images (PNG, JPG, etc.) to Scalable Vector Graphics (SVG) using the
- New Module: FLUX.1-Schnell Generator (
FluxSchnell_mod.py):- Introduced a new tab for ultra-fast image generation using FLUX.1-Schnell models (e.g.,
black-forest-labs/FLUX.1-schnell). - Supports both Text-to-Image and Image-to-Image generation modes.
- Utilizes
FluxPipelineandFluxImg2ImgPipelinefor efficient processing. - Offers a selection of specific resolutions optimized for FLUX models.
- Integrates LoRA support (up to 2 LoRAs) with weight adjustment.
- Includes style selection to influence image aesthetics.
- Features Image-to-Prompt capability using Florence-2 for generating prompts from uploaded images.
- Incorpore l'Amélioration de Prompt par LLM (ex: Qwen) pour enrichir les prompts utilisateurs.
- Managed by
ModelManagerfor model loading, unloading, and device management. - Saves generated images with comprehensive metadata.
- User interface includes controls for prompt, translation, styles, image-to-prompt, img2img mode (with strength), resolution, steps, guidance scale, seed, number of images, and LoRA configuration.
- Introduced a new tab for ultra-fast image generation using FLUX.1-Schnell models (e.g.,
- General:
- Version bump to 2.0.2.
-
ImageToText (
ImageToText_mod.py):- Improved log management: the log list and the maximum number of entries are now managed at the instance level for better encapsulation.
- Added a "Unload Model" button to free up Florence-2 model resources.
- Generation of a detailed JSON report at the end of processing, including the status of each image, the method used, processing time, etc.
- Direct use of
FLORENCE2_TASKSand module translations for task mapping, enhancing robustness.
-
LoRA Training (
LoRATraining_mod.py):- Major UI and Logic Overhaul:
- Clear separation of data preparation and training steps with dedicated buttons ("Prepare Data", "Start Training").
- Internal logic divided into
_actual_preparation_logicand_actual_training_logicfor better organization. - Use of
queue.Queuefor non-blocking log communication from background threads to the user interface.
- Enhanced Data Preparation:
- Optional automatic captioning toggle via a checkbox.
- If automatic captioning is disabled, existing
.txtfiles in the source folder are copied. - Sequential renaming of images and associated
.txtfiles in the prepared data folder (e.g.,concept_0001.png,concept_0001.txt).
- Dataset Management (
DreamBoothDataset):- Now stores and returns the original image sizes (
original_size_hw) and crop coordinates (crop_coords_top_left_yx).
- Now stores and returns the original image sizes (
- Training Logic (SDXL):
- Calculation and passing of
add_time_ids(including original size and crop coordinates) to the UNet model, as required by SDXL. - VAE encoding is performed outside the
autocastcontext if the VAE is in fp32 and training is in fp16/bf16. - Added gradient clipping during training for better convergence stability.
- Final saving of LoRA as a single
.safetensorsfile containing UNet weights and optionally text encoders. - Use of
unet.add_adapter()andtext_encoder.add_adapter()for modern PEFT configuration. - Use of
cast_training_params()to convert LoRA parameters to fp32 when training in fp16.
- Calculation and passing of
- User Interface (UI):
- Learning rate selection is now a dropdown menu with descriptions for each value.
- Base model selection is a dropdown menu.
- Optimizer, learning rate scheduler, and mixed precision options are dropdown menus.
- Advanced network and optimizer settings are grouped into accordion sections.
- Major UI and Logic Overhaul:
-
Memory Management (
Utils/gest_mem.py):- New utility module for monitoring system resource usage (RAM, CPU, VRAM, GPU Usage).
- Uses
psutilfor RAM and CPU statistics. - Uses
pynvml(if available) for detailed VRAM statistics and GPU usage for NVIDIA cards. - Falls back to
torch.cudafor basic VRAM information ifpynvmlis unavailable. - Displays statistics via circular progress bars in the UI.
- Provides a "Memory Management" accordion in the UI with:
- Optional live display of statistics.
- A "Unload All Models" button interacting with
ModelManager. - Explicit memory cleanup (
gc.collect(),torch.cuda.empty_cache()) after unloading.
-
CogView3-Plus (
CogView3Plus_mod.py):- Improved logic for determining allowed resolutions, falling back to
FORMATSifCOGVIEW3PLUS_ALLOWED_RESOLUTIONSis undefined. - Model loading now indicates that configurations (offload, slicing, tiling) are handled by
ModelManager. - Uses
execute_pipeline_task_asyncfor image generation, enabling a more responsive UI. - Explicit memory cleanup (
del,gc.collect(),torch.cuda.empty_cache()) after generating each batch. - Saved image metadata includes
Module: "CogView3-Plus"andModel: THUDM/CogView3-Plus-3B.
- Improved logic for determining allowed resolutions, falling back to
-
CogView4 (
CogView4_mod.py):- Similar resolution determination logic as CogView3Plus, using
COGVIEW4_ALLOWED_RESOLUTIONS. - Model loading applies specific configurations (CPU offload, VAE slicing/tiling) after loading the
CogView4Pipeline. - Uses
execute_pipeline_task_asyncfor generation. - Saved image metadata includes
Module: "CogView4"andModel: THUDM/CogView4-6B.
- Similar resolution determination logic as CogView3Plus, using
- LoRA Training (
LoRATraining_mod.py):- Fixed a potential bug where
is_preparingwas not properly used, replaced withself.is_preparing. - Ensures
is_preparingis set toFalsewhen training starts.
- Fixed a potential bug where
-
General:
- Modules now use
self.module_translations, initialized with merged translations (global + module-specific) during module initialization viaGestionModule.
- Modules now use
-
Model Manager (
Utils/model_manager.py):- The
load_modelmethod now handlessana_sprint,cogview4,cogview3plusmodel types and applies specific configurations (dtype, offload) for these models. - Improved
unload_modelmethod for explicit pipeline component removal. - The
apply_lorasmethod has been revised to useunload_lora_weightsandset_adaptersmore robustly.
- The
-
LLM Prompter (
Utils/llm_prompter_util.py):- Uses
AutoModelForCausalLMandAutoTokenizerfor broader Hugging Face model compatibility. - Model is loaded on CPU (
device_map="cpu") to avoid VRAM conflicts. - Tokenizer
pad_tokenis set toeos_tokenif absent, necessary for models like Qwen. - Improved parsing of LLM output to extract the prompt, handling
<think>tags and common preambles.
- Uses
- Nouveau Module : Générateur FLUX.1-Schnell (
FluxSchnell_mod.py):- Introduction d'un nouvel onglet pour la génération d'images ultra-rapide utilisant les modèles FLUX.1-Schnell (ex:
black-forest-labs/FLUX.1-schnell). - Supporte les modes de génération Texte-vers-Image et Image-vers-Image.
- Utilise
FluxPipelineetFluxImg2ImgPipelinepour un traitement efficace. - Offre une sélection de résolutions spécifiques optimisées pour les modèles FLUX.
- Intègre le support des LoRAs (jusqu'à 2 LoRAs) avec ajustement des poids.
- Inclut la sélection de styles pour influencer l'esthétique des images.
- Dispose de la capacité Image-vers-Prompt utilisant Florence-2 pour générer des prompts à partir d'images téléversées.
- Incorpore l'Amélioration de Prompt par LLM (ex: Qwen) pour enrichir les prompts utilisateurs.
- Géré par
ModelManagerpour le chargement, le déchargement des modèles et la gestion des dispositifs. - Sauvegarde les images générées avec des métadonnées complètes.
- L'interface utilisateur comprend des contrôles pour le prompt, la traduction, les styles, l'image-vers-prompt, le mode img2img (avec force), la résolution, les étapes, l'échelle de guidage, le seed, le nombre d'images et la configuration des LoRAs.
- Introduction d'un nouvel onglet pour la génération d'images ultra-rapide utilisant les modèles FLUX.1-Schnell (ex:
- Général:
- Montée de version à 2.0.2.
-
ImageToText (
ImageToText_mod.py):- Amélioration de la gestion des logs : la liste des logs et le nombre maximum d'entrées sont désormais gérés au niveau de l'instance pour une meilleure encapsulation.
- Ajout d'un bouton "Décharger le modèle" permettant de libérer les ressources du modèle Florence-2.
- Génération d'un rapport JSON détaillé à la fin du traitement, incluant le statut de chaque image, la méthode utilisée, le temps de traitement, etc.
- Utilisation directe de
FLORENCE2_TASKSet des traductions du module pour le mappage des tâches, améliorant la robustesse.
-
Entraînement LoRA (
LoRATraining_mod.py):- Refonte Majeure de l'Interface et de la Logique:
- Séparation claire des étapes de préparation des données et d'entraînement avec des boutons dédiés ("Préparer les Données", "Démarrer l'Entraînement").
- La logique interne a été divisée en
_actual_preparation_logicet_actual_training_logicpour une meilleure organisation. - Utilisation de
queue.Queuepour une communication non bloquante des logs depuis les threads d'arrière-plan vers l'interface utilisateur.
- Préparation des Données Améliorée:
- Option de captioning automatique désactivable via une case à cocher.
- Si le captioning automatique est désactivé, les fichiers
.txtexistants dans le dossier source sont copiés. - Renommage séquentiel des images et des fichiers
.txtassociés dans le dossier de données préparé (ex:concept_0001.png,concept_0001.txt).
- Gestion du Dataset (
DreamBoothDataset):- Stocke et retourne maintenant les tailles originales des images (
original_size_hw) et les coordonnées de recadrage (crop_coords_top_left_yx).
- Stocke et retourne maintenant les tailles originales des images (
- Logique d'Entraînement (SDXL):
- Calcul et passage des
add_time_ids(incluant taille originale et coordonnées de recadrage) au modèle UNet, conformément aux exigences de SDXL. - L'encodage VAE est effectué en dehors du contexte
autocastsi le VAE est en fp32 et l'entraînement en fp16/bf16. - Ajout du gradient clipping pendant l'entraînement pour stabiliser la convergence.
- Sauvegarde finale du LoRA en un unique fichier
.safetensorscontenant les poids de l'UNet et optionnellement des encodeurs de texte. - Utilisation de
unet.add_adapter()ettext_encoder.add_adapter()pour une configuration PEFT plus moderne. - Utilisation de
cast_training_params()pour convertir les paramètres LoRA en fp32 lors de l'entraînement en fp16.
- Calcul et passage des
- Interface Utilisateur (UI):
- Le taux d'apprentissage (learning rate) est maintenant sélectionnable via un menu déroulant avec des descriptions pour chaque valeur.
- La sélection du modèle de base est un menu déroulant.
- Les options d'optimiseur, de planificateur de taux d'apprentissage et de précision mixte sont des menus déroulants.
- Les options avancées de réseau et d'optimiseur sont groupées dans des accordéons.
- Refonte Majeure de l'Interface et de la Logique:
-
Gestion de la Mémoire (
Utils/gest_mem.py):- Nouveau module utilitaire pour surveiller l'utilisation des ressources système (RAM, CPU, VRAM, Utilisation GPU).
- Utilise
psutilpour les statistiques RAM et CPU. - Utilise
pynvml(si disponible) pour des statistiques VRAM détaillées et l'utilisation GPU pour les cartes NVIDIA. - Fallback sur
torch.cudapour les informations VRAM de base sipynvmln'est pas disponible. - Affiche les statistiques via des barres de progression circulaires SVG dans l'interface utilisateur.
- Fournit un accordéon "Gestion de la Mémoire" dans l'interface utilisateur avec :
- Affichage en direct (optionnel) des statistiques.
- Un bouton "Décharger Tous les Modèles" qui interagit avec
ModelManager. - Nettoyage explicite de la mémoire (
gc.collect(),torch.cuda.empty_cache()) après le déchargement.
-
CogView3-Plus (
CogView3Plus_mod.py):- Logique de détermination des résolutions autorisées améliorée, avec fallback sur la configuration
FORMATSsiCOGVIEW3PLUS_ALLOWED_RESOLUTIONSn'est pas définie. - Le chargement du modèle indique maintenant que les configurations (offload, slicing, tiling) sont gérées par le
ModelManager. - Utilisation de
execute_pipeline_task_asyncpour la génération d'images, permettant une interface utilisateur plus réactive. - Nettoyage explicite de la mémoire (
del,gc.collect(),torch.cuda.empty_cache()) après la génération de chaque image dans un lot. - Les métadonnées des images sauvegardées incluent
Module: "CogView3-Plus"etModel: THUDM/CogView3-Plus-3B.
- Logique de détermination des résolutions autorisées améliorée, avec fallback sur la configuration
-
CogView4 (
CogView4_mod.py):- Logique de détermination des résolutions autorisées similaire à CogView3Plus, utilisant
COGVIEW4_ALLOWED_RESOLUTIONS. - Le chargement du modèle applique les configurations spécifiques (CPU offload, VAE slicing/tiling) après le chargement du pipeline
CogView4Pipeline. - Utilisation de
execute_pipeline_task_asyncpour la génération. - Les métadonnées des images sauvegardées incluent
Module: "CogView4"etModel: THUDM/CogView4-6B.
- Logique de détermination des résolutions autorisées similaire à CogView3Plus, utilisant
- LoRATraining (
LoRATraining_mod.py):- Correction d'un bug potentiel où
is_preparingn'était pas correctement utilisé, remplacé parself.is_preparing. - Assure que
is_preparingest mis àFalselorsque l'entraînement démarre.
- Correction d'un bug potentiel où
- Général:
- Les modules utilisent maintenant
self.module_translationsqui est initialisé avec les traductions fusionnées (globales + spécifiques au module) lors de l'initialisation du module parGestionModule.
- Les modules utilisent maintenant
- ModelManager (
Utils/model_manager.py):- La méthode
load_modelgère maintenant les types de modèlessana_sprint,cogview4,cogview3pluset applique des configurations spécifiques (dtype, offload) pour ces modèles. - La méthode
unload_modela été améliorée pour une suppression plus explicite des composants du pipeline. - La méthode
apply_lorasa été revue pour utiliserunload_lora_weightsetset_adaptersde manière plus robuste.
- La méthode
- LLM Prompter (
Utils/llm_prompter_util.py):- Utilise
AutoModelForCausalLMetAutoTokenizerpour une compatibilité plus large avec les modèles Hugging Face. - Le modèle est chargé sur CPU (
device_map="cpu") pour éviter les conflits de VRAM. - Le
pad_tokendu tokenizer est défini sureos_tokensi non présent, ce qui est nécessaire pour certains modèles comme Qwen. - Amélioration du parsing de la sortie du LLM pour extraire le prompt, en gérant les balises
<think>et les préambules courants.
- Utilise
Date: 2025-05-29
- New Module: Image ReLighting (
reLighting_mod.py)- Introduced a new tab for advanced image relighting using IC-Light models. This module is based on the excellent work by lllyasviel/IC-Light.
- Supports two main modes:
- FC (Foreground Conditioned): Relights a subject based on the foreground image and a chosen light direction (e.g., left, right, top, bottom, or none).
- FBC (Foreground-Background Conditioned): Relights a subject considering both a foreground image and a background. The background can be uploaded, flipped, or generated as a directional light source or ambient grey.
- Integrates automatic background removal for the foreground subject using BriaRMBG.
- Offers comprehensive controls: prompt, negative prompt, seed, steps, CFG scale, high-resolution upscaling with denoising, and mode-specific parameters.
- Saves relighted images with detailed generation metadata.
- Nouveau Module : Re-Éclairage d'Image (
reLighting_mod.py)- Introduction d'un nouvel onglet pour le re-éclairage avancé d'images utilisant les modèles IC-Light. Ce module est basé sur l'excellent travail de lllyasviel/IC-Light.
- Supporte deux modes principaux :
- FC (Conditionné par l'Avant-plan) : Ré-éclaire un sujet en se basant sur l'image d'avant-plan et une direction de lumière choisie (ex: gauche, droite, haut, bas, ou aucune).
- FBC (Conditionné par l'Avant-plan et l'Arrière-plan) : Ré-éclaire un sujet en considérant à la fois une image d'avant-plan et un arrière-plan. L'arrière-plan peut être téléversé, inversé, ou généré comme une source de lumière directionnelle ou un gris ambiant.
- Intègre la suppression automatique de l'arrière-plan pour le sujet d'avant-plan en utilisant BriaRMBG.
- Offre des contrôles complets : prompt, prompt négatif, seed, étapes, échelle CFG, mise à l'échelle haute résolution avec débruitage, et paramètres spécifiques au mode.
- Sauvegarde les images ré-éclairées avec des métadonnées de génération détaillées.
- AI Prompt Enhancement (LLM): Added an optional feature to automatically enrich user prompts using a local Language Model (default:
Qwen/Qwen3-0.6B). The LLM generates more detailed and imaginative prompts in English, optimized for image generators. This feature is configurable via theLLM_PROMPTER_MODEL_PATHkey inconfig.jsonand runs on the CPU to preserve GPU resources.- Amélioration des Prompts par IA (LLM) : Ajout d'une fonctionnalité optionnelle pour enrichir automatiquement les prompts utilisateurs en utilisant un Modèle de Langage local (par défaut :
Qwen/Qwen3-0.6B). Le LLM génère des prompts plus détaillés et imaginatifs en anglais, optimisés pour les générateurs d'images. Cette fonctionnalité est configurable via la cléLLM_PROMPTER_MODEL_PATHdansconfig.jsonet s'exécute sur le CPU pour préserver les ressources GPU.
- Amélioration des Prompts par IA (LLM) : Ajout d'une fonctionnalité optionnelle pour enrichir automatiquement les prompts utilisateurs en utilisant un Modèle de Langage local (par défaut :
- Module Translation: Fixed a major bug where the selected language in
config.json(e.g., English) was not correctly passed during module initialization, leading to UI translation issues within modules.GestionModulenow correctly receives and applies the global language and translations.- Traduction des Modules : Correction d'un bug majeur où la langue sélectionnée dans
config.json(par exemple, l'anglais) n'était pas correctement transmise lors de l'initialisation des modules, entraînant des problèmes de traduction de l'interface des modules.GestionModulereçoit et applique maintenant correctement la langue et les traductions globales.
- Traduction des Modules : Correction d'un bug majeur où la langue sélectionnée dans
Date: 2025-05-14
- UI/UX - LoRA Loading: LoRA dropdown menus are now populated with available LoRAs upon application startup, improving initial usability by removing the need to manually refresh the list.
- Gradio Update: The application has been updated to be compatible with Gradio
5.29.1.
- Preset Loading - VAE: Corrected an issue where the VAE specified in a loaded preset was not properly selected in the VAE dropdown menu on the image generation interface.
- UI/UX - Chargement des LoRAs : Les menus déroulants des LoRAs sont désormais remplis avec les LoRAs disponibles dès le démarrage de l'application, améliorant l'utilisabilité initiale en supprimant le besoin de rafraîchir manuellement la liste.
- Mise à Jour Gradio : L'application a été mise à jour pour être compatible avec Gradio
5.29.1.
- Chargement des Presets - VAE : Correction d'un problème où le VAE spécifié dans un preset chargé n'était pas correctement sélectionné dans le menu déroulant VAE de l'interface de génération d'images.
Date: 2025-05-13
- New Module: Civitai Downloader (
civitai_downloader_mod.py)- Added a dedicated tab to search and download models, LoRAs, VAEs, etc., directly from Civitai.
- Supports filtering by model type, sort order, period, and NSFW content.
- Includes an interface to view model details, select specific versions and files for download.
- Option to use a Civitai API key for extended access.
- New Module: Image Watermark (
ImageWatermark_mod.py)- Added a new tab for applying text or image watermarks to your generated images.
- Supports single image processing and batch processing of images from a folder.
- Customizable options for watermark content (text/image), font, size, color, scale, opacity, position (including tiling), margin, and rotation.
- Gradio Update: The application has been updated to be compatible with Gradio
5.29.0.
- HTML Report Generation: Improved HTML report generation to ensure it's correctly created or updated even if the image generation process is stopped prematurely.
- General Bug Fixes: Addressed various minor bugs and improved overall stability.
- Nouveau Module : Téléchargeur Civitai (
civitai_downloader_mod.py)- Ajout d'un onglet dédié pour rechercher et télécharger des modèles, LoRAs, VAEs, etc., directement depuis Civitai.
- Supporte le filtrage par type de modèle, ordre de tri, période et contenu NSFW.
- Inclut une interface pour voir les détails du modèle, sélectionner des versions spécifiques et des fichiers à télécharger.
- Option d'utiliser une clé API Civitai pour un accès étendu.
- Nouveau Module : Filigrane d'Image (
ImageWatermark_mod.py)- Ajout d'un nouvel onglet pour appliquer des filigranes textuels ou graphiques sur vos images générées.
- Supporte le traitement d'image unique et le traitement par lot d'images depuis un dossier.
- Options personnalisables pour le contenu du filigrane (texte/image), police, taille, couleur, échelle, opacité, position (y compris en mosaïque), marge et rotation.
- Mise à Jour Gradio : L'application a été mise à jour pour être compatible avec Gradio
5.29.0.
- Génération du Rapport HTML : Amélioration de la génération du rapport HTML pour s'assurer qu'il est correctement créé ou mis à jour même si le processus de génération d'images est arrêté prématurément.
- Corrections de Bugs Générales : Résolution de divers bugs mineurs et amélioration de la stabilité générale.
Date: 2025-05-02
- New Module: Sana Sprint (
sana_sprint_mod.py)- Added a dedicated tab for image generation using the
Efficient-Large-Model/Sana_Sprint_0.6B_1024px_diffusersmodel. - Supports text-to-image generation with style mixing.
- Includes image-to-prompt functionality: generate a prompt directly from an uploaded image within the Sana Sprint tab.
- Optimized for speed with fixed steps (2) and output size (1024x1024).
- Added a dedicated tab for image generation using the
- Image-to-Prompt Refactoring:
- Isolated the image-to-prompt generation logic (using
MiaoshouAI/Florence-2-base-PromptGen-v2.0) into a reusable module:core/image_prompter.py. - This functionality is now used by both the main generation tab and the Sana Sprint module.
- Model loading is handled centrally and initialized at application startup.
- Isolated the image-to-prompt generation logic (using
- Gradio Dropdown Warnings: Resolved persistent
UserWarning: The value passed into gr.Dropdown() is not in the list of choices...by:- Adding
allow_custom_value=Trueto relevant dropdown components (model,VAE,sampler,format,LoRA,preset filters, etc.) across the application. - Improving the logic in
ModelManager.list_modelsto filter out the placeholderyour_default_modele.safetensorsfrom the choices list.
- Adding
- Module Stop Button: Corrected
UserWarningrelated to argument mismatch when calling thestop_generationmethod in modules likeimage_to_image_mod.pyby passing necessary arguments (like translations) viagr.State.
- Nouveau Module : Sana Sprint (
sana_sprint_mod.py)- Ajout d'un onglet dédié pour la génération d'images avec le modèle
Efficient-Large-Model/Sana_Sprint_0.6B_1024px_diffusers. - Supporte la génération texte-vers-image avec mélange de styles.
- Inclut la fonctionnalité image-vers-prompt : générer un prompt directement depuis une image téléversée dans l'onglet Sana Sprint.
- Optimisé pour la vitesse avec des étapes fixes (2) et une taille de sortie fixe (1024x1024).
- Ajout d'un onglet dédié pour la génération d'images avec le modèle
- Refactorisation Image-vers-Prompt :
- Isolation de la logique de génération de prompt depuis une image (utilisant
MiaoshouAI/Florence-2-base-PromptGen-v2.0) dans un module réutilisable :core/image_prompter.py. - Cette fonctionnalité est maintenant utilisée par l'onglet de génération principal et le module Sana Sprint.
- Le chargement du modèle est géré de manière centralisée et initialisé au démarrage de l'application.
- Isolation de la logique de génération de prompt depuis une image (utilisant
- Avertissements Dropdown Gradio : Résolution des avertissements persistants
UserWarning: The value passed into gr.Dropdown() is not in the list of choices...en :- Ajoutant
allow_custom_value=Trueaux composants dropdown concernés (modèle,VAE,sampler,format,LoRA,filtres presets, etc.) dans toute l'application. - Améliorant la logique dans
ModelManager.list_modelspour filtrer la valeur placeholderyour_default_modele.safetensorsde la liste des choix.
- Ajoutant
- Bouton Stop des Modules : Correction du
UserWarninglié à une incohérence d'arguments lors de l'appel de la méthodestop_generationdans les modules (ex:image_to_image_mod.py) en passant les arguments nécessaires (comme les traductions) viagr.State.
Date: 2025-05-02
- New Module: Image Enhancement (
ImageEnhancement_mod.py)- Added a dedicated tab replacing previous Upscaling (SDXL) and Enhancement (AuraSR) functionalities.
- Colorization: Integrated ModelScope's
damo/cv_ddcolor_image-colorizationmodel to colorize black and white images. - Upscale (4x): Integrated Diffusers'
CompVis/ldm-super-resolution-4x-openimagesmodel for 4x image upscaling. - Restoration: Integrated the OneRestore model (
onerestore_real.tar+embedder_model.tar) for automatic image degradation detection and restoration (e.g., fixing blur, noise). Models are included inmodules/ImageEnhancement_models/. - Auto Retouch: Added a simple automatic retouching option using PIL enhancements (Contrast, Sharpness, Saturation).
- Model Management: Enhancement models are loaded on demand and unloaded after use to save VRAM, including automatic unloading of the main generation model if loaded.
- Helper Functions: Created
ImageEnhancement_helper.pyfor loading OneRestore checkpoints.
- Auto Retouch Enhancement: Added saturation adjustment to the existing "Auto Retouch" feature within the Image Enhancement module.
- Dependencies: Updated and pinned requirements in
requirements.txtfor better stability and reproducibility. Switcheddiffusersfrom a Git commit to the stable PyPI version (0.33.1) to support future features (like SANA). Correctedopencv-python-headlessversion. Removed unnecessaryfuturespackage. - Module Cleanup: Removed obsolete AuraSR enhancement and SDXL Upscaling modules/features, now superseded by the new Image Enhancement module.
- Code Quality: Minor internal code adjustments and cleanup in various modules.
- XMP Metadata: Images are now saved with XMP metadata, enriching PNG, JPEG, and WEBP files with comprehensive information about their generation. For example:
- PNG: Metadata is stored using
pnginfo. - JPEG: Metadata is stored in
exif.UserComment. - WEBP: Metadata is stored in
xmpformat.
- PNG: Metadata is stored using
- Image to Image Batch Mode: Image to Image module now allows you to select a folder containing multiple images for processing in batch mode.
- Nouveau Module : Amélioration d'Image (
ImageEnhancement_mod.py)- Ajout d'un onglet dédié remplaçant les fonctionnalités précédentes d'Upscaling (SDXL) et d'Amélioration (AuraSR).
- Colorisation : Intégration du modèle ModelScope
damo/cv_ddcolor_image-colorizationpour coloriser les images en noir et blanc. - Upscale (4x) : Intégration du modèle Diffusers
CompVis/ldm-super-resolution-4x-openimagespour l'agrandissement d'image 4x. - Restauration : Intégration du modèle OneRestore (
onerestore_real.tar+embedder_model.tar) pour la détection automatique de la dégradation et la restauration d'image (ex: correction du flou, bruit). Modèles inclus dansmodules/ImageEnhancement_models/. - Retouche Auto : Ajout d'une option de retouche automatique simple utilisant les améliorations PIL (Contraste, Netteté, Saturation).
- Gestion des Modèles : Les modèles d'amélioration sont chargés à la demande et déchargés après utilisation pour économiser la VRAM, incluant le déchargement automatique du modèle de génération principal s'il est chargé.
- Fonctions Utilitaires : Création de
ImageEnhancement_helper.pypour le chargement des checkpoints OneRestore.
- Amélioration Retouche Auto : Ajout de l'ajustement de la saturation à la fonctionnalité "Retouche Auto" existante dans le module d'Amélioration d'Image.
- Dépendances : Mise à jour et épinglage des dépendances dans
requirements.txtpour une meilleure stabilité et reproductibilité. Remplacement dediffusersd'un commit Git vers la version stable PyPI (0.33.1) pour supporter les fonctionnalités futures (comme SANA). Correction de la version deopencv-python-headless. Suppression du paquetfuturesinutile. - Nettoyage Modules : Suppression des modules/fonctionnalités obsolètes d'amélioration AuraSR et d'Upscaling SDXL, désormais remplacés par le nouveau module d'Amélioration d'Image.
- Qualité du Code : Ajustements mineurs du code interne et nettoyage dans divers modules.
- Métadonnées XMP : Les images sont désormais sauvegardées avec des métadonnées XMP, enrichissant les fichiers PNG, JPEG et WEBP avec des informations complètes sur leur génération. Par exemple :
- PNG : Les métadonnées sont stockées en utilisant
pnginfo. - JPEG : Les métadonnées sont stockées dans
exif.UserComment. - WEBP : Les métadonnées sont stockées au format
xmp.
- PNG : Les métadonnées sont stockées en utilisant
- Mode Batch Image to Image : Le module Image to Image vous permet maintenant de sélectionner un dossier contenant plusieurs images pour un traitement en mode batch.
Date: 2025-04-29
- Batch Generator Tab:
- Added a new dedicated tab to easily create lists of image generation tasks (batches).
- Configure model, VAE, prompts, negative prompts, styles, sampler, steps, guidance, seed, dimensions, LoRAs (up to 4), and optional output filename for each task.
- Includes an option to automatically translate the positive prompt to English before adding it to the task.
- Displays the list of tasks in a table for review.
- Generates a JSON file containing the batch definition.
- Automatic Saving: The generated JSON is automatically saved to a predefined directory (
Output\json_batch_filesby default, configurable inconfig.jsonviaSAVE_BATCH_JSON_PATH) with an incremental filename (e.g.,batch_001.json,batch_002.json).
- Batch Runner Integration:
- Added functionality within the main generation tab (under an accordion) to load and execute batch tasks defined in a JSON file.
- Loads the JSON file (ideally from the configured save path, e.g., using
gr.FileExplorerif applicable). - Processes tasks sequentially, automatically handling model/VAE/sampler loading and unloading to optimize performance.
- Applies LoRAs specified for each task.
- Displays overall batch progress, individual task progress, and generated images in a gallery.
- Includes a button to stop the entire batch process.
- Saves generated images and creates the HTML report similar to single image generation.
- Configuration: Added
SAVE_BATCH_JSON_PATHtoconfig.jsonto define the default save location for batch JSON files. - UI: Integrated batch generation creation into its own tab and batch execution controls into the main generation tab.
- Core Logic: Implemented
batch_runner.pyto handle the execution logic for batch files, including model management and task processing. Standardized module JSON structure for translations (languagekey). - Pipeline Execution Refactoring: Refactored the core pipeline execution logic into
pipeline_executor.pyfor better separation of concerns and asynchronous handling, improving UI responsiveness during generation. - Dependency Update: Tested and confirmed compatibility with PyTorch 2.7 and CUDA 12.8, potentially offering performance improvements. The installation script (
install.bat) has been updated accordingly.
- Preset Loading: Corrected an issue where loading a preset with the default VAE ("Défaut VAE") would incorrectly display a "VAE not found" warning.
- Translation Loading: Fixed issues related to loading translations for module-specific UI elements by standardizing the JSON structure (
languagekey) and correcting translation function calls (.format()usage). - Callback Errors: Resolved
'NoneType' object has no attribute 'append'errors in the progress callback when running in batch mode. - JSON Parsing: Corrected
TypeErrorwhen handlingstylesandlorasdata already parsed from JSON in the batch runner.
- Onglet Générateur de Batch:
- Ajout d'un nouvel onglet dédié pour créer facilement des listes de tâches de génération d'images (batches).
- Permet de configurer le modèle, VAE, prompts, prompt négatif, styles, sampler, étapes, guidage, seed, dimensions, LoRAs (jusqu'à 4), et un nom de fichier de sortie optionnel pour chaque tâche.
- Inclut une option pour traduire automatiquement le prompt positif en anglais avant de l'ajouter à la tâche.
- Affiche la liste des tâches dans un tableau pour vérification.
- Génère un fichier JSON contenant la définition du batch.
- Sauvegarde Automatique: Le JSON généré est automatiquement sauvegardé dans un répertoire prédéfini (
Output\json_batch_filespar défaut, configurable dansconfig.jsonviaSAVE_BATCH_JSON_PATH) avec un nom de fichier incrémentiel (ex:batch_001.json,batch_002.json).
- Intégration de l'Exécuteur de Batch:
- Ajout d'une fonctionnalité dans l'onglet de génération principal (sous un accordéon) pour charger et exécuter les tâches de batch définies dans un fichier JSON.
- Charge le fichier JSON (idéalement depuis le chemin de sauvegarde configuré).
- Traite les tâches séquentiellement, gérant automatiquement le chargement/déchargement des modèles/VAE/samplers pour optimiser les performances.
- Applique les LoRAs spécifiés pour chaque tâche.
- Affiche la progression globale du batch, la progression de la tâche individuelle, et les images générées dans une galerie.
- Inclut un bouton pour arrêter l'ensemble du processus de batch.
- Sauvegarde les images générées et crée le rapport HTML de manière similaire à la génération d'image unique.
- Configuration: Ajout de
SAVE_BATCH_JSON_PATHdansconfig.jsonpour définir l'emplacement de sauvegarde par défaut des fichiers JSON de batch. - UI: Intégration de la création de batch dans son propre onglet et des contrôles d'exécution de batch dans l'onglet de génération principal.
- Logique Principale: Implémentation de
batch_runner.pypour gérer la logique d'exécution des fichiers batch, y compris la gestion des modèles et le traitement des tâches. Standardisation de la structure JSON des modules pour les traductions (clélanguage). - Refactorisation Exécution Pipeline: Refactorisation de la logique principale d'exécution du pipeline dans
pipeline_executor.pypour une meilleure séparation des responsabilités et une gestion asynchrone, améliorant la réactivité de l'interface pendant la génération. - Mise à Jour Dépendances: Testé et confirmé compatible avec PyTorch 2.7 et CUDA 12.8, offrant potentiellement des améliorations de performance. Le script d'installation (
install.bat) a été mis à jour en conséquence.
- Chargement des Presets: Correction d'un problème où le chargement d'un preset avec le VAE par défaut ("Défaut VAE") affichait incorrectement un avertissement "VAE introuvable".
- Chargement des Traductions: Correction de problèmes liés au chargement des traductions pour les éléments d'interface spécifiques aux modules en standardisant la structure JSON (clé
language) et en corrigeant les appels à la fonction de traduction (usage de.format()). - Erreurs Callback: Résolution des erreurs
'NoneType' object has no attribute 'append'dans le callback de progression lors de l'exécution en mode batch. - Analyse JSON: Correction du
TypeErrorlors de la manipulation des donnéesstylesetlorasdéjà analysées depuis le JSON dans l'exécuteur de batch.