Table des matières
Solution d'adaptation complète de LoRA, ControlNet, T2I-Adapter aux diffuseurs
Maison Périphériques technologiques IA Un ensemble complet de tutoriels pour adapter le framework Diffusers est ici ! De l'adaptateur T2I au populaire ControlNet

Un ensemble complet de tutoriels pour adapter le framework Diffusers est ici ! De l'adaptateur T2I au populaire ControlNet

Apr 12, 2023 pm 06:16 PM
开发 代码

Peu de temps après que ChatGPT soit sorti du cercle, l'émergence de ControlNet a rapidement attiré de nombreux développeurs et utilisateurs ordinaires sur l'Internet anglais et chinois. Certains utilisateurs ont même affirmé que l'émergence de ControlNet avait fait entrer la création d'IA dans l'ère de la marche droite. Il n'est pas exagéré de dire que, y compris ControlNet, les techniques de formation T2I-Adapter, Composer et LoRA de la même période, la génération contrôlable, en tant que dernier mur de création d'IA, est très susceptible de connaître de nouvelles percées dans un délai prévisible. , réduisant ainsi considérablement les coûts de création de l'utilisateur et améliorant la jouabilité de la création. En seulement deux semaines depuis que ControlNet est devenu open source, son nombre officiel d'étoiles a dépassé les 10 000. Cette popularité est sans aucun doute sans précédent.

Dans le même temps, la communauté open source a également considérablement abaissé le seuil d'utilisation. Par exemple, la plate-forme Hugging Face fournit des poids de modèle de base et des diffuseurs de cadres de formation de modèles généraux, et stable-diffusion-webui a développé un ensemble complet. des plates-formes de démonstration, Civitai a fourni un grand nombre de poids LoRA stylisés.

Un ensemble complet de tutoriels pour adapter le framework Diffusers est ici ! De ladaptateur T2I au populaire ControlNet

Un ensemble complet de tutoriels pour adapter le framework Diffusers est ici ! De ladaptateur T2I au populaire ControlNet

Bien que webui soit actuellement l'outil de visualisation le plus populaire, il a rapidement pris en charge divers modèles de génération récemment lancés et prend en charge de nombreuses options que les utilisateurs peuvent définir. Parce qu'il se concentre sur la facilité d'utilisation de l'interface frontale, la structure du code derrière celle-ci est en réalité très complexe et pas assez conviviale pour les développeurs. Par exemple, bien que webui prenne en charge plusieurs types de chargement et d'inférence, il ne peut pas prendre en charge la conversion sous différents frameworks, ni prendre en charge la formation flexible de modèles. Lors des discussions de la communauté, nous avons découvert de nombreux problèmes qui n'ont pas encore été résolus par le code open source existant.

Tout d'abord, le cadre de code est incompatible Les modèles actuellement populaires, tels que ControlNet et T2I-Adapter, sont incompatibles avec les diffuseurs de bibliothèques de formation Stable Diffusion grand public. Les modèles pré-entraînés ControlNet ne peuvent pas être directement utilisés. dans le cadre de l'utilisation des diffuseurs.

Deuxièmement, le chargement des modèles est limité Actuellement, les modèles sont enregistrés dans différents formats, tels que .bin, .ckpt, .pth, .satetensors, etc. En plus de webui, le framework des diffuseurs dispose actuellement. prise en charge limitée de ces formats de modèles. Étant donné que la plupart des modèles LoRA sont principalement enregistrés dans des tenseurs de sécurité, il est difficile pour les utilisateurs de charger directement des modèles LoRA dans des modèles existants formés sur la base du cadre des diffuseurs.

Troisièmement, Le modèle de base est limité Actuellement, ControlNet et T2I-Adapter sont formés sur la base de Stable-Diffusion-1.5, et seuls les poids du modèle sous SD1.5 sont open source. il existe des modèles d'animation de haute qualité tels que any-v4, ChilloutMix, etc. Même si des informations contrôlables sont introduites, les résultats finaux générés sont toujours limités par les capacités d'UNet dans SD1.5.

Enfin, la formation des modèles est limitée LoRA a été largement vérifiée comme étant l'une des méthodes les plus efficaces pour la migration de style et le maintien d'une adresse IP d'image spécifique. Cependant, le cadre des diffuseurs ne prend actuellement en charge que l'intégration et l'intégration LoRA d'UNet. ne peut pas prendre en charge le texte. L'intégration de l'encodeur limitera la formation de LoRA.

Après avoir discuté avec la communauté open source, nous avons appris que le framework diffusers, en tant que bibliothèque de code générale, envisage de s'adapter en même temps aux modèles de génération récemment lancés car cela implique de réécrire de nombreuses interfaces sous-jacentes, cela reste toujours le cas. a besoin d'un certain temps pour se mettre à jour. À cette fin, nous sommes partis des problèmes réels ci-dessus et avons pris les devants en proposant des solutions auto-développées pour chaque problème afin d'aider rapidement les développeurs à développer plus facilement.

Solution d'adaptation complète de LoRA, ControlNet, T2I-Adapter aux diffuseurs

LoRA pour diffuseurs

Cette solution consiste à intégrer de manière flexible différents types de modèles dans le cadre des diffuseurs, c'est-à-dire en fonction du modèle enregistré par la formation des diffuseurs. Format des poids LoRA. Étant donné que la formation de LoRA gèle généralement le modèle de base, il peut être facilement intégré dans les modèles existants en tant que modules enfichables en tant que contraintes de style ou de condition IP. LoRA lui-même est une technique de formation générale. Son principe de base est que grâce à une décomposition de bas rang, le nombre de paramètres du module peut être considérablement réduit. Actuellement, dans la génération d'images, il est généralement utilisé pour former des modules enfichables indépendants du module. modèle de base. , l'utilisation réelle est de le fusionner avec la sortie du modèle de base sous forme de résidus.

Le premier est l'intégration des poids LoRA Actuellement, les poids fournis sur la plateforme Civitai sont principalement stockés au format ckpt ou safetensors, qui peuvent être répartis dans les deux situations suivantes.

(1) Modèle complet (modèle de base + module LoRA)

Si le modèle complet est au format safetensors, il peut être converti par le script diffuseurs suivant

python ./scripts/convert_original_stable_diffusion_to_diffusers.py --checkpoint_path xxx.safetensors--dump_path save_dir --from_safetensors
Copier après la connexion

Si le modèle complet est en ckpt format, il peut être converti par le script de diffuseurs suivant Conversion

python ./scripts/convert_original_stable_diffusion_to_diffusers.py --checkpoint_path xxx.ckpt--dump_path save_dir
Copier après la connexion

Une fois la conversion terminée, vous pouvez directement utiliser l'API des diffuseurs pour charger le modèle

from diffusers import StableDiffusionPipeline
pipeline = StableDiffusionPipeline.from_pretrained (save_dir,torch_dtype=torch.float32)
Copier après la connexion

(2) LoRA uniquement (inclut uniquement le module LoRA )

Actuellement, les diffuseurs ne peuvent officiellement pas prendre en charge le chargement uniquement des poids LoRA, et les poids LoRA sur les plates-formes open source sont essentiellement stockés sous cette forme. Essentiellement, il complète le remappage de la valeur-clé dans les poids LoRA et l'adapte au modèle des diffuseurs. C'est pour cette raison que nous prenons nous-mêmes en charge cette fonctionnalité et fournissons des scripts de conversion.

pipeline = StableDiffusionPipeline.from_pretrained (model_id,torch_dtype=torch.float32)
model_path = "onePieceWanoSagaStyle_v2Offset.safetensors"
state_dict = load_file (model_path)
Copier après la connexion

Précisez simplement le modèle au format diffuseurs, et les poids LoRA stockés au format safetensors. Nous fournissons un exemple de conversion.

# the default mergering ratio is 0.75, you can manually set it 
python convert_lora_safetensor_to_diffusers.py
Copier après la connexion

De plus, en raison de sa légèreté, LoRA lui-même peut effectuer rapidement une formation avec de petites données et peut être intégré à d'autres réseaux. Afin de ne pas être limités aux poids LoRA existants, nous prenons en charge la formation multi-modules (UNet + encodeur de texte) de LoRA dans le cadre des diffuseurs, et avons soumis un PR dans la base de code officielle (https://github.com/ huggingface/diffusers/pull /2479), et prend en charge la formation LoRA dans ColossalAI.

Le code est open source à: https://github.com/haofanwang/lora-for-diffusers

Controlnet pour les diffuseurs

Un ensemble complet de tutoriels pour adapter le framework Diffusers est ici ! De ladaptateur T2I au populaire ControlNet

diffuseurs dans le cadre , ControlNet est utilisé. Sur la base de certaines tentatives de la communauté open source, nous fournissons un cas d'utilisation complet de ControlNet+Anything-V3, prenant en charge le remplacement du modèle de base du SD1.5 d'origine par le modèle any-v3, afin que ControlNet dispose d'une meilleure génération d'animations. capacités.

De plus, nous prenons également en charge ControlNet+Inpainting et fournissons un pipeline adapté aux diffuseurs,

Un ensemble complet de tutoriels pour adapter le framework Diffusers est ici ! De ladaptateur T2I au populaire ControlNet

Un ensemble complet de tutoriels pour adapter le framework Diffusers est ici ! De ladaptateur T2I au populaire ControlNet

et Multi-ControlNet pour un contrôle multi-conditions.

Un ensemble complet de tutoriels pour adapter le framework Diffusers est ici ! De ladaptateur T2I au populaire ControlNet

Le code est open source sur : https://github.com/haofanwang/ControlNet-for-Diffusers

T2I-Adaptateur pour diffuseurs

Un ensemble complet de tutoriels pour adapter le framework Diffusers est ici ! De ladaptateur T2I au populaire ControlNet

Semblable à ControlNet, nous prenons également en charge l'adaptation de l'adaptateur open source T2I aux diffuseurs en même temps.

Le code est open source sur : https://github.com/haofanwang/T2I-Adapter-for-Diffusers

Actuellement, les trois solutions d'adaptation ci-dessus sont open source pour la communauté et ont été officiellement reconnues respectivement dans ControlNet et T2I-Adapter. Elles ont également reçu les remerciements de l'auteur de stable-diffusion-webui-colab. Nous maintenons des discussions avec les responsables des diffuseurs et achèverons prochainement l'intégration de la solution ci-dessus dans la base de code officielle. Vous êtes également invités à essayer notre travail à l'avance. Si vous avez des questions, vous pouvez directement soulever un problème et nous vous répondrons dans les plus brefs délais.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
1 Il y a quelques mois By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Meilleurs paramètres graphiques
1 Il y a quelques mois By 尊渡假赌尊渡假赌尊渡假赌
Will R.E.P.O. Vous avez un jeu croisé?
1 Il y a quelques mois By 尊渡假赌尊渡假赌尊渡假赌

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Quatre outils de programmation assistés par IA recommandés Quatre outils de programmation assistés par IA recommandés Apr 22, 2024 pm 05:34 PM

Cet outil de programmation assistée par l'IA a mis au jour un grand nombre d'outils de programmation assistée par l'IA utiles à cette étape de développement rapide de l'IA. Les outils de programmation assistés par l'IA peuvent améliorer l'efficacité du développement, améliorer la qualité du code et réduire les taux de bogues. Ils constituent des assistants importants dans le processus de développement logiciel moderne. Aujourd'hui, Dayao partagera avec vous 4 outils de programmation assistés par l'IA (et tous prennent en charge le langage C#). J'espère que cela sera utile à tout le monde. https://github.com/YSGStudyHards/DotNetGuide1.GitHubCopilotGitHubCopilot est un assistant de codage IA qui vous aide à écrire du code plus rapidement et avec moins d'effort, afin que vous puissiez vous concentrer davantage sur la résolution de problèmes et la collaboration. Git

Programme de codes à distance universels GE sur n'importe quel appareil Programme de codes à distance universels GE sur n'importe quel appareil Mar 02, 2024 pm 01:58 PM

Si vous devez programmer un appareil à distance, cet article vous aidera. Nous partagerons les meilleurs codes de télécommande universelle GE pour programmer n’importe quel appareil. Qu'est-ce qu'une télécommande GE ? GEUniversalRemote est une télécommande qui peut être utilisée pour contrôler plusieurs appareils tels que les téléviseurs intelligents, LG, Vizio, Sony, Blu-ray, DVD, DVR, Roku, AppleTV, lecteurs multimédias en streaming et plus encore. Les télécommandes GEUniversal sont disponibles en différents modèles avec différentes caractéristiques et fonctions. GEUniversalRemote peut contrôler jusqu'à quatre appareils. Les meilleurs codes de télécommande universels à programmer sur n'importe quel appareil. Les télécommandes GE sont livrées avec un ensemble de codes qui leur permettent de fonctionner avec différents appareils. vous pouvez

Quel programmeur IA est le meilleur ? Explorez le potentiel de Devin, Tongyi Lingma et de l'agent SWE Quel programmeur IA est le meilleur ? Explorez le potentiel de Devin, Tongyi Lingma et de l'agent SWE Apr 07, 2024 am 09:10 AM

Le 3 mars 2022, moins d'un mois après la naissance de Devin, le premier programmeur d'IA au monde, l'équipe NLP de l'Université de Princeton a développé un agent SWE pour programmeur d'IA open source. Il exploite le modèle GPT-4 pour résoudre automatiquement les problèmes dans les référentiels GitHub. Les performances de l'agent SWE sur l'ensemble de tests du banc SWE sont similaires à celles de Devin, prenant en moyenne 93 secondes et résolvant 12,29 % des problèmes. En interagissant avec un terminal dédié, SWE-agent peut ouvrir et rechercher le contenu des fichiers, utiliser la vérification automatique de la syntaxe, modifier des lignes spécifiques et écrire et exécuter des tests. (Remarque : le contenu ci-dessus est un léger ajustement du contenu original, mais les informations clés du texte original sont conservées et ne dépassent pas la limite de mots spécifiée.) SWE-A

Apprenez à développer des applications mobiles en utilisant le langage Go Apprenez à développer des applications mobiles en utilisant le langage Go Mar 28, 2024 pm 10:00 PM

Didacticiel d'application mobile de développement du langage Go Alors que le marché des applications mobiles continue de croître, de plus en plus de développeurs commencent à explorer comment utiliser le langage Go pour développer des applications mobiles. En tant que langage de programmation simple et efficace, le langage Go a également montré un fort potentiel dans le développement d'applications mobiles. Cet article présentera en détail comment utiliser le langage Go pour développer des applications mobiles et joindra des exemples de code spécifiques pour aider les lecteurs à démarrer rapidement et à commencer à développer leurs propres applications mobiles. 1. Préparation Avant de commencer, nous devons préparer l'environnement et les outils de développement. tête

Comment utiliser Copilot pour générer du code Comment utiliser Copilot pour générer du code Mar 23, 2024 am 10:41 AM

En tant que programmeur, je suis enthousiasmé par les outils qui simplifient l'expérience de codage. À l'aide d'outils d'intelligence artificielle, nous pouvons générer du code de démonstration et apporter les modifications nécessaires selon les exigences. Le nouvel outil Copilot dans Visual Studio Code nous permet de créer du code généré par l'IA avec des interactions de chat en langage naturel. En expliquant les fonctionnalités, nous pouvons mieux comprendre la signification du code existant. Comment utiliser Copilot pour générer du code ? Pour commencer, nous devons d’abord obtenir la dernière extension PowerPlatformTools. Pour y parvenir, vous devez vous rendre sur la page de l'extension, rechercher "PowerPlatformTool" et cliquer sur le bouton Installer.

Quelle distribution Linux est la meilleure pour le développement Android ? Quelle distribution Linux est la meilleure pour le développement Android ? Mar 14, 2024 pm 12:30 PM

Le développement d'Android est un travail chargé et passionnant, et le choix d'une distribution Linux adaptée au développement est particulièrement important. Parmi les nombreuses distributions Linux, laquelle est la plus adaptée au développement Android ? Cet article explorera ce problème sous plusieurs aspects et donnera des exemples de code spécifiques. Tout d’abord, jetons un coup d’œil à plusieurs distributions Linux actuellement populaires : Ubuntu, Fedora, Debian, CentOS, etc. Elles ont toutes leurs propres avantages et caractéristiques.

Créer et exécuter des fichiers Linux '.a' Créer et exécuter des fichiers Linux '.a' Mar 20, 2024 pm 04:46 PM

Travailler avec des fichiers dans le système d'exploitation Linux nécessite l'utilisation de diverses commandes et techniques qui permettent aux développeurs de créer et d'exécuter efficacement des fichiers, du code, des programmes, des scripts et d'autres éléments. Dans l'environnement Linux, les fichiers portant l'extension « .a » sont d'une grande importance en tant que bibliothèques statiques. Ces bibliothèques jouent un rôle important dans le développement de logiciels, permettant aux développeurs de gérer et de partager efficacement des fonctionnalités communes sur plusieurs programmes. Pour un développement logiciel efficace dans un environnement Linux, il est crucial de comprendre comment créer et exécuter des fichiers « .a ». Cet article explique comment installer et configurer de manière complète le fichier Linux « .a ». Explorons la définition, l'objectif, la structure et les méthodes de création et d'exécution du fichier Linux « .a ». Qu'est-ce que L

L'Université Tsinghua et Zhipu AI open source GLM-4 : lancent une nouvelle révolution dans le traitement du langage naturel L'Université Tsinghua et Zhipu AI open source GLM-4 : lancent une nouvelle révolution dans le traitement du langage naturel Jun 12, 2024 pm 08:38 PM

Depuis le lancement du ChatGLM-6B le 14 mars 2023, les modèles de la série GLM ont reçu une large attention et une grande reconnaissance. Surtout après que ChatGLM3-6B soit open source, les développeurs sont pleins d'attentes pour le modèle de quatrième génération lancé par Zhipu AI. Cette attente a finalement été pleinement satisfaite avec la sortie du GLM-4-9B. La naissance du GLM-4-9B Afin de donner aux petits modèles (10B et moins) des capacités plus puissantes, l'équipe technique de GLM a lancé ce nouveau modèle open source de la série GLM de quatrième génération : GLM-4-9B après près de six mois de exploration. Ce modèle compresse considérablement la taille du modèle tout en garantissant la précision, et offre une vitesse d'inférence plus rapide et une efficacité plus élevée. L’exploration de l’équipe technique du GLM n’a pas

See all articles