Enregistrer sous JXL, AVIF, WebP, JPEG, JPEG2K, personnalisez le dossier, les sous-reproches et les noms de fichiers de vos images!
Prend en charge ces extensions: jxl avif webp jpg jpeg j2k jp2 png gif tiff bmp

json (texte), dans chaque dossier.
| Attribut | Description |
|---|---|
filename_prefix | Préfixe de chaîne ajouté aux fichiers. |
filename_keys | String séparée par la virgule avec les paramètres d'échantillonneur à ajouter au nom de fichier. EG: sampler_name, scheduler, cfg, denoise ajouté au nom de fichier dans l'ordre écrit. resolution fonctionne également. vae_name model_name (modèle haut de gamme), ckpt_name (Checkpoint) en sont d'autres qui devraient fonctionner. Ici, vous pouvez essayer n'importe quel nom de paramètre de n'importe quel nœud. Tant que le paramètre a le même nom de variable défini dans l'objet prompt , ils doivent fonctionner. Il en va de même pour foldername_keys . |
foldername_prefix | Préfixe de chaîne ajouté aux dossiers. |
foldername_keys | Chaîne séparée par la virgule avec paramètres d'échantillonneur à ajouter à FolderName. Ajoutez plus de sous-dossiers en écrivant un "./" séparé avec des virgules. Par exemple: sampler_name, ./, ckpt_name |
delimiter | Maintenant, un caractère de champ gratuit = 1 caractère peut être tout ce que votre système de fichiers prend en charge. Les utilisateurs de Windows doivent toujours utiliser "/" pour les sous-dossiers. |
save_job_data | Si vous êtes activé, enregistre des informations sur chaque travail en tant qu'entrées dans un fichier texte jobs.json , à l'intérieur du dossier généré. Mulitple Options pour enregistrer prompt , basic data , sampler settings , loaded models . |
job_data_per_image | Lorsqu'il est activé, enregistre les fichiers de données de travail individuels pour chaque image. |
job_custom_text | Chaîne personnalisée pour enregistrer avec les données du travail. Cliquez avec le bouton droit sur le nœud et convertissez pour entrer pour connecter avec un autre nœud. |
save_metadata | Économise les métadonnées dans l'image. |
counter_digits | Nombre de chiffres utilisés pour le compteur d'image. 3 = image_001.png. Ajustera le compteur si les fichiers sont supprimés. Recherche le nombre le plus élevé du dossier, ne comble pas les lacunes. |
counter_position | Counter d'image premier ou dernier du nom de fichier. |
one_counter_per_folder | Bascule le comptoir. Soit un compteur par dossier, soit réinitialise lorsqu'un paramètre / invite change. |
image_preview | Activation et désactivation de l'image. |
output_ext | Extension de fichier: PNG par défaut ou WebP (à venir bientôt). |
quality | Qualité pour les formats JPEG / JXL / WebP / AVIF / J2K; par défaut 90 (AVIF n'a besoin que de 60 pour les mêmes résultats). |
named_keys | Préfixe chaque valeur par son nom de clé: Prefix-Seed = 123456-Width = 1024-ETC-0001.AVIF |
filename_keys et foldername_keys sont traités comme des chaînes personnaliséeswrongNumber.attribute , vous obtiendrez attribute dans votre nom de fichier.%Y-%m-%d ou %F , etc.ckpt_name et control_net_nameckpt_path ou control_net_path en cas de sous-dossiers pour ceux-ci et que vous souhaitez les utiliser comme sous-dossiers.custom_string empêchera le délimiteur d'ajout, le point sera le délimiteur images - Les images générées.Facultatif:
positive_text_opt - Entrée de chaîne facultative pour utiliser les nœuds personnalisés pour le texte de l'invite positif.negative_text_opt - Entrée de chaîne facultative pour utiliser des nœuds personnalisés pour le texte de l'invite négatif. Convertit les formats UNIX DateTime:
| Unix Datetime | Exemple | Commentaire |
|---|---|---|
| % F ou% y-% m-% d | 2024-05-22 | |
| %D | 05/22/24 | Cela crée efficacement les sous-dossiers |
| % F% h-% m-% s | 2024-05-22 09-13-58 | |
| % Y /% V | 2024/21 | Sous-dossier de l'année / numéro de numéro de semaine ISO |

Il y a des exigences.txt qui s'occupera de cela, mais juste au cas où:
pip install piexif pillow pillow-avif-plugin
Pour JPEG XL / JXL, c'est plus compliqué. Vous ne pouvez pas compiler la roue jxlpy sur Windows. Par conséquent, nous utilisons une alternative: ImageCodecs
pip install -U imagecodecs
git clone pour cloner le repo Save-Image-étendu-comfyui sous Comfyui Custom_Nodes git clone https://github.com/audioscavenger/save-image-extended-comfyui
JPEG XL est un débat houleux sur le forum Chromium et si c'est vrai que Google travaille sur WebP2, JXL ne décollera probablement pas bientôt. Les partisans déclarent sans doute sans preuve que JXL est meilleur et plus rapide que le meilleur codec actuel: AVIF. Mais encore une fois, sans le soutien de l'industrie, cela ne va nulle part.
J'ai testé avec Compression 90 et c'est bon, avec une mise en garde. La compression offerte par Pillow est 3X plus bas, puis la magie de l'image pour le même niveau. Aucune idée pourquoi.
L'oreiller ne peut pas enregistrer les données EXIF dans JPEG2000, et il ne peut en aucun cas le comprimer. Qui diable utilise JPEG2000 en 2024 de toute façon?
Avertissement: ne vérifie pas les caractères illégaux entrés dans les noms de fichiers ou de dossiers. Peut ne pas être compatible avec tous les autres nœuds personnalisés, en fonction des modifications de l'objet prompt . Testé et travaillant avec des échantillonneurs par défaut, des nœuds d'efficacité, UltimatesDupScale, Comfyroll, Composer, Negitools et 45 autres nœuds.
Paramètres de qualité et de compression: la valeur par défaut est 90, 100 activeront sans perte pour AVIF et WebP uniquement.
Comparaison rapide de la taille par extension, pour la même image 512x512, avec une qualité visuelle similaire:
| Ext | Compression | Fabricant | Taille | Compression |
|---|---|---|---|---|
| PNG | max 9 | Pilote | 413111 | 0% |
| j2k | n / A | Pilote | 395028 | 4% |
| jxl | sans perte | Pilote | 301310 | 27% |
| jxl | 90 | Pilote | 179210 | 57% |
| jpeg | 90 | Pilote | 88554 | 79% |
| avif | 90 | Imaginaire | 67272 | 84% |
| webp | 90 | Imaginaire | 64416 | 84% |
| webp | 90 | Pilote | 64356 | 84% |
| avif | 60 | Pilote | 47353 | 89% |
| avif | 60 | Imaginaire | 33691 | 92% |
À propos des extensions webp avif jpeg jxl: Comfyui ne peut que charger PNG et webp atm ... n'hésitez pas à demander à l'équipe Comfyui d'ajouter la prise en charge de AVIF / JPEG / JXL!
Les métadonnées sont incluses sous les balises EXIF IFD ci-dessous, comme le défini ici était également utilisé ces balises. Ils doivent être les uns à côté les uns des autres afin de pouvoir les charger avec glisser-déposer.
| Données | Exif | Nom | La corde ressemble |
|---|---|---|---|
| rapide | 0x010f | Faire | Invite: {"5" ...} |
| flux de travail | 0x010e | IMageDescription | Workflow: {"5" ...} |
Vous pouvez récupérer l'invite manuellement avec Exiftool, voici quelques exemples de commandes:
exiftool -Parameters -Prompt -Workflow image.pngexiftool -Parameters -UserComment -ImageDescription image.{jpg|jpeg|webp|avif|jxl} Comfyui ne peut pas charger webp atm sans perte. N'hésitez pas à essayer de réparer pnginfo.js
Incompatible avec étendue-saveimage-comfyui - Ce nœud peut être jeté en toute sécurité, car il n'offre que la sortie WebP. Mon nœud ajoute déjà jpeg et webp.
Vous l'avez demandé ... Vous pouvez maintenant sélectionner le nœud pour obtenir les valeurs du widget! Autrefois, ce nœud personnalisé renvoie simplement la dernière valeur trouvée: inutile si vous avez plusieurs mêmes nœuds ... pour voir les numéros de nœud dans l'interface utilisateur, activez les ID de badge :

Jobs.json Exemple: toujours généré et annexé, je ne sais pas pour quoi il peut être utilisé.

Bonne économie!
Redémarrez par Audioscavenger depuis 2024-05-05, idée originale de @thedyze
Je ne vous promets pas la lune, mais comme j'utilise ce nœud moi-même, je le maintiendrai autant que possible. Je fournis un moyen de me contacter et j'accepterai les relations publiques et les collaborations. Une fois que j'ai l'impression de ne pas avoir le temps de travailler dessus, je vais volontiers transférer la propriété ou laisser les collaborations la maintenir.
FAIRE:
steps_total comme entrée pour un KSampler, émettra l'index de la sortie, au lieu de la valeur des étapes ("[Nodenum, 0]" au lieu de la valeur des étapes). Correction: utilisez steps_total au lieu steps !__all__ non en commun dans init.pylen(splitKey) = 2 pour identifier le format réel "Node.Widget"/name dans FolderName_Keys, Comfy pense que vous voulez enregistrer en dehors du dossier de sortiepnginfo.js and app.js`GPL 3.0
Comme mon travail? Cet outil vous a aidé? Vous voulez parrainer plus de génialité comme celle-ci?
