InstantCharacter : un outil open source pour générer des personnages cohérents à partir d'une seule image
Introduction générale
InstantCharacter est un projet open source développé par Tencent Hunyuan et l'équipe InstantX, hébergé sur GitHub. Il utilise une image de référence et une description textuelle pour générer des images de personnages cohérentes pour une variété de scènes et de styles. Le projet est basé sur la technologie Diffusion Transformer, qui s'affranchit des limites de l'architecture U-Net traditionnelle pour offrir une meilleure qualité d'image et une plus grande flexibilité. Les utilisateurs peuvent générer des images de personnages qui correspondent à leurs descriptions sans paramétrage complexe et avec des opérations simples, qui sont largement utilisées dans l'animation, les jeux et l'art numérique. Soutien au projet Flux.1, et fournit une adaptation du style LoRA pour une génération stylisée conviviale.

Liste des fonctions
- Génération cohérente de personnages à partir d'une seule image : générez des images de personnages pour différentes scènes, actions et points de vue à partir d'une seule image de référence.
- Génération pilotée par le texte : Ajustez les mouvements des personnages, les scènes et les styles à l'aide d'invites textuelles, par exemple "fille jouant de la guitare dans la rue".
- Prise en charge de la migration des styles : compatible avec de nombreux styles de LoRA, tels que le style Ghibli ou le style Makoto Shinkai, pour générer des images artistiques.
- Production d'images de haute qualité : générez des images de personnages détaillées et de haute résolution basées sur les modèles Flux.1.
- Prise en charge des modèles open source : prise en charge de Flux et d'autres modèles texte-image open source, les développeurs peuvent librement étendre la fonction.
- Adaptateurs légers : utiliser des modules adaptateurs évolutifs pour réduire la consommation de ressources informatiques et améliorer l'efficacité de la génération.
- Optimisation des ensembles de données à grande échelle : formation basée sur dix millions d'ensembles de données d'échantillons afin de garantir la cohérence des rôles et la contrôlabilité des textes.
Utiliser l'aide
Processus d'installation
InstantCharacter nécessite un environnement avec GPU, un GPU NVIDIA est recommandé (minimum 48GB VRAM, optimisé pour 24GB). Vous trouverez ci-dessous les étapes détaillées de l'installation :
- Préparation de l'environnement: :
- Installez Python 3.8 ou une version ultérieure.
- Il est recommandé d'installer PyTorch (avec prise en charge de CUDA).
pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu118
. - Pour installer la bibliothèque de dépendances, exécutez la commande suivante :
pip install transformers accelerate diffusers huggingface_cli
- Assurez-vous que Git et Git LFS sont installés sur votre système pour télécharger des fichiers volumineux.
- entrepôt de clones: :
- Ouvrez un terminal et exécutez la commande suivante pour cloner le dépôt InstantCharacter :
git clone https://github.com/Tencent/InstantCharacter.git cd InstantCharacter
- Ouvrez un terminal et exécutez la commande suivante pour cloner le dépôt InstantCharacter :
- Télécharger les points de contrôle du modèle: :
- Téléchargez le modèle de Hugging Face :
huggingface-cli download --resume-download Tencent/InstantCharacter --local-dir checkpoints --local-dir-use-symlinks False
- Si vous ne pouvez pas accéder au visage étreignant, vous pouvez utiliser une adresse miroir :
export HF_ENDPOINT=https://hf-mirror.com huggingface-cli download --resume-download Tencent/InstantCharacter --local-dir checkpoints --local-dir-use-symlinks False
- Une fois le téléchargement terminé, vérifiez que la structure du dossier contient
checkpoints
,assets
,models
etc.
- Téléchargez le modèle de Hugging Face :
- Mise en place de l'environnement d'exécution: :
- Assurez-vous que le pilote du GPU et la version CUDA sont compatibles avec PyTorch.
- Déplacez le modèle et le code sur un appareil compatible avec CUDA, exécutez le programme
pipe.to("cuda")
.
Utilisation
La fonction principale d'InstantCharacter est de générer des images de caractères à partir d'images de référence et d'invites de texte. La procédure détaillée est décrite ci-dessous :
1. modèles de chargement et adaptateurs
- Utiliser le formulaire fourni
pipeline.py
Le script charge le modèle de base et les adaptateurs. L'exemple de code est le suivant :import torch from PIL import Image from pipeline import InstantCharacterFluxPipeline # 设置种子以确保可重复性 seed = 123456 # 加载基础模型 base_model = 'black-forest-labs/FLUX.1-dev' ip_adapter_path = 'checkpoints/instantcharacter_ip-adapter.bin' image_encoder_path = 'google/siglip-so400m-patch14-384' image_encoder_2_path = 'facebook/dinov2-giant' # 初始化管道 pipe = InstantCharacterFluxPipeline.from_pretrained(base_model, torch_dtype=torch.bfloat16) pipe.to("cuda") pipe.init_adapter( image_encoder_path=image_encoder_path, image_encoder_2_path=image_encoder_2_path, subject_ipadapter_cfg=dict(subject_ip_adapter_path=ip_adapter_path, nb_token=1024) )
- Le code ci-dessus charge le modèle Flux.1 et l'adaptateur IP d'InstantCharacter, garantissant ainsi l'exécution du modèle sur le GPU.
2. préparation des images de référence
- Sélectionnez une image contenant un caractère (par ex.
assets/girl.jpg
), veillez à ce que l'arrière-plan soit simple (blanc, par exemple). - Charge l'image et la convertit au format RVB :
ref_image_path = 'assets/girl.jpg' ref_image = Image.open(ref_image_path).convert('RGB')
3. génération d'images de caractères (pas de migration de style)
- Utilisez des invites textuelles pour générer des images et définir des paramètres tels que le nombre d'étapes d'inférence et l'échelle de bootstrap :
prompt = "A girl is playing a guitar in street" image = pipe( prompt=prompt, num_inference_steps=28, guidance_scale=3.5, subject_image=ref_image, subject_scale=0.9, generator=torch.manual_seed(seed) ).images[0] image.save("flux_instantcharacter.png")
subject_scale
Contrôle la cohérence des rôles, les valeurs les plus faibles favorisant la stylisation (par exemple 0,6 ou 0,8).
4. migration des styles à l'aide de Style LoRA
- InstantCharacter prend en charge les images LoRA stylisées (par exemple, le style Ghibli ou Makoto Shinkai). Chargez des fichiers LoRA et générez des images stylisées :
lora_file_path = 'checkpoints/style_lora/ghibli_style.safetensors' trigger = 'ghibli style' prompt = "A girl is playing a guitar in street" image = pipe.with_style_lora( lora_file_path=lora_file_path, trigger=trigger, prompt=prompt, num_inference_steps=28, guidance_scale=3.5, subject_image=ref_image, subject_scale=0.9, generator=torch.manual_seed(seed) ).images[0] image.save("flux_instantcharacter_style_ghibli.png")
- l'interchangeabilité
lora_file_path
répondre en chantanttrigger
Il est possible de passer d'un style à l'autre (par ex.Makoto_Shinkai_style.safetensors
).
5. lancer l'interface Gradio (optionnel)
- Le projet fournit une interface Gradio pour une interaction facile. Exécuter
app.py
: :python app.py
- Ouvrez un navigateur pour accéder à l'adresse locale (par ex.
http://127.0.0.1:7860
), téléchargez l'image et saisissez le mot-clé pour générer l'image.
mise en garde
- La génération de caractères animaux peut être instable, il est recommandé d'utiliser des images de caractères humains.
- La génération de résolutions plus élevées nécessite plus de mémoire, les GPU de la série A100 ou RTX 5000 sont recommandés.
- Les téléchargements de modèles peuvent être interrompus en raison de problèmes de réseau.
--resume-download
Paramètres.
scénario d'application
- Animation et production cinématographique
- Générer rapidement des concepts de personnages ou des story-boards pour raccourcir le cycle de pré-conception. Les utilisateurs peuvent télécharger des croquis de personnages, saisir des descriptions de scènes (par exemple, "personnage courant dans la forêt") et générer des images cohérentes pour la prévisualisation de l'animation ou le test des personnages.
- développement de jeux
- Générer des images multi-vues et multi-mouvements pour les personnages de jeux. Les développeurs téléchargent des dessins de personnages et génèrent des sprites avec différentes poses (par exemple, "personnage brandissant une épée") à utiliser dans des ressources de jeux en 2D ou en 3D.
- Création d'art numérique
- Les artistes utilisent le Style LoRA pour générer des images de personnages artistiques, tels que des personnages réalistes transformés dans un style Ghibli, à des fins d'illustration ou de création de NFT.
- Contenu des médias sociaux
- Les utilisateurs téléchargent des selfies pour générer des avatars de style animé ou des scènes animées (par exemple, "Danser tout seul dans une ville de science-fiction") pour un contenu personnalisé sur les médias sociaux.
QA
- Quels sont les modèles pris en charge par InstantCharacter ?
- Le modèle Flux.1 est actuellement pris en charge et pourrait être étendu à d'autres modèles texte-image open source à l'avenir.
- Quelle est la quantité de mémoire vidéo nécessaire pour le faire fonctionner ?
- Mémoire recommandée de 48 Go, optimisée pour 24 Go. Des techniques de quantification sont en cours de développement pour réduire les besoins en mémoire.
- Comment résoudre l'échec du téléchargement du modèle ?
- Utiliser l'adresse du miroir Hugging Face ou
--resume-download
afin de garantir la stabilité du réseau.
- Utiliser l'adresse du miroir Hugging Face ou
- Pourquoi les personnages animaux générés sont-ils instables ?
- Les données d'apprentissage du modèle sont dominées par les caractères humains, et les caractéristiques animales sont sous-optimisées, ce qui suggère l'utilisation d'images de caractères humains.
- Est-il disponible dans le commerce ?
- La licence actuelle est réservée à la recherche et l'utilisation commerciale nécessite une licence de Tencent.
© déclaration de droits d'auteur
L'article est protégé par le droit d'auteur et ne doit pas être reproduit sans autorisation.
Articles connexes
Pas de commentaires...