Projet open source
Zeyi-Lin/HivisionIDPhotos avatar
Zeyi-Lin/HivisionIDPhotos

HivisionIDPhotos : un outil IA léger pour générer des photos d'identité

HivisionIDPhotos : un outil de photos d'identification IA léger et efficace. IA.

21 528 étoiles2 497 forksPythonApache-2.0

En bref

De quoi s’agit-il ?
Un projet open source basé sur Python qui utilise des modèles d'IA pour le détourage de portraits, l'ajustement des dimensions et la génération de layouts, avec prise en charge de l'inférence hors ligne sur CPU.
À qui s’adresse-t-il ?
HivisionIDPhotos est publié sous licence Apache-2.0, permettant une utilisation et une modification libres du code principal, mais le projet lui-même n'offre pas de support commercial ni de garanties de sécurité ; le déploiement et les performances réels dépendent de l'environnement et de la documentation officielle. Avant adoption, exécutez le contrôle propre à HivisionIDPhotos, relevez la sortie et vérifiez la limite qui concerne vos données.
Puis-je l’utiliser commercialement ?
Oui. Apache-2.0 est une licence permissive : vous pouvez utiliser, modifier et vendre un logiciel qui en dépend, à condition de conserver les mentions de droit d’auteur et de licence.
Est-il encore maintenu ?
Oui. Les derniers commits datent d’il y a 75 jours.
En quel langage est-il écrit ?
Principalement Python, d’après les statistiques de langage de GitHub.

Ces réponses reposent sur les données GitHub du projet (dernière synchronisation le 15 septembre 2026) et sur notre analyse. Elles ne constituent pas un avis juridique.

ANALYSE OPEN SOURCE APPROFONDIE

Positionnement du projet : un workflow IA pour les photos d'identité

HivisionIDPhotos est un outil d'intelligence artificielle écrit en Python, conçu pour reconnaître la situation de prise de vue de l'utilisateur, effectuer le détourage du portrait et générer des photos d'identité conformes à des exigences de taille spécifiques. La description du dépôt le définit comme un algorithme de photo d'identité IA léger et efficace. Le dépôt compte actuellement plus de 20 000 étoiles et plus de 2 000 forks, mais le projet est toujours en développement actif et n'est pas archivé. Le README énumère quatre capacités principales : détourage léger, génération de photos d'identité standard et de photos de layout six pouces basées sur différentes spécifications de taille, prise en charge de l'inférence entièrement hors ligne ou edge-cloud, et des effets de beauté et un changement intelligent de tenue formelle qui sont encore en attente. Ces deux dernières sont marquées comme en attente dans le README et n'ont pas été implémentées.

Modèles et poids : trois modèles de détourage optionnels

Le projet s'appuie sur des modèles pré-entraînés externes pour le détourage. Le README liste trois fichiers de poids optionnels. Les poids de détourage de portrait MODNet et une variante MODNet entraînée par le projet, optimisée pour le remplacement de fond uni, font tous deux 24,7 Mo et peuvent être téléchargés directement depuis la page des versions GitHub du projet. Le troisième modèle est basé sur RMBG-1.4 de BRIA AI, qui pèse 176,2 Mo et doit être téléchargé depuis Hugging Face puis renommé. Ces fichiers de poids doivent être placés manuellement dans le répertoire hivision/creator/weights ; le projet ne fournit pas de script pour télécharger automatiquement tous les poids, seulement une commande pour télécharger des modèles spécifiques.

Flux d'inférence : de la photo d'entrée à la photo d'identité

Le point d'entrée de l'inférence Python est le script inference.py, avec des paramètres principaux incluant les chemins d'entrée et de sortie, le type d'inférence et la sélection du modèle. Il existe quatre types d'inférence : idphoto, human_matting, add_background et generate_layout_photos, correspondant respectivement à la génération de photos d'identité, au détourage de portrait, à l'ajout de fond et à la génération de layout. La génération de photo d'identité produit une photo d'identité standard et un PNG transparent haute définition à quatre canaux. Le mode détourage produit un PNG transparent à quatre canaux, le mode ajout de fond accepte un PNG transparent et produit une image à trois canaux avec un fond coloré, et le mode layout génère une photo de layout six pouces. Le README mentionne également un type idphoto_crop, mais il n'est pas listé dans les paramètres principaux et doit être vérifié. Tous les exemples de commandes utilisent python inference.py, mais les combinaisons exactes de paramètres doivent être vérifiées dans la documentation.

Modèles de détection de visage : trois options

Le projet prend en charge trois modèles de détection de visage pour localiser le visage et faciliter le détourage et l'ajustement des dimensions. MTCNN est le modèle par défaut, fonctionne hors ligne, offre des performances CPU élevées mais une précision relativement inférieure. RetinaFace est également hors ligne, a des temps d'inférence CPU de l'ordre de la seconde, offre une précision supérieure et nécessite le téléchargement d'un fichier de poids supplémentaire. Face++ est une API en ligne fournie par Megvii, avec une précision de détection plus élevée mais nécessite une clé API et une connexion réseau. Le README fournit un lien vers la documentation de Face++ mais n'explique pas comment configurer la clé ; la section déploiement Docker mentionne les variables d'environnement FACE_PLUS_API_KEY et FACE_PLUS_API_SECRET. Le choix d'un modèle de détection de visage différent affecte la vitesse et la précision de l'inférence, avec des différences de performances exactes documentées dans le tableau de performances du README.

Déploiement : local, Docker et service API

Le projet offre plusieurs chemins de déploiement. L'exécution locale nécessite Python 3.7 ou supérieur, avec Python 3.10 recommandé, et prend en charge Linux, Windows et macOS. Après l'installation des dépendances et le téléchargement des fichiers de poids, l'exécution de python app.py démarre l'interface de démo Gradio, ou python deploy_api.py démarre le service backend API. Le déploiement Docker prend en charge le tirage de l'image linzeyi/hivision_idphotos depuis Docker Hub, la construction à partir du Dockerfile, ou l'utilisation de Docker Compose. Les exécutions Docker peuvent spécifier des mappages de ports, par exemple le port 7860 pour le service Gradio et le port 8080 pour l'API. Le README mentionne également la variable d'environnement RUN_MODE ; lorsqu'elle est définie sur beast, les modèles de détection de visage et de détourage ne libèrent pas la mémoire, accélérant l'inférence suivante mais nécessitant au moins 16 Go de RAM.

Démo Gradio et personnalisation

L'interface de démo Gradio est le point d'entrée interactif du projet ; l'exécution de python app.py génère une page web locale. Le journal des modifications du README montre qu'entre septembre et novembre 2024, l'interface a gagné des fonctionnalités telles que les options de mise en page d'impression, les paramètres de beauté, l'entrée d'image base64, les lignes de recadrage de mise en page, le mode bête, les paramètres DPI, le partage de photos de modèles, les arrière-plans de style américain, la couleur d'arrière-plan personnalisée en HEX, l'alignement par rotation du visage, la saisie de taille en millimètres et les ajustements de luminosité, de contraste et de netteté. La plupart de ces fonctionnalités sont intégrées directement dans l'interface Gradio sans nécessiter de modifications de code. Les tailles et couleurs personnalisées peuvent être définies en modifiant des fichiers CSV, avec les chemins exacts expliqués dans la section FAQ du README.

Écosystème communautaire et licence

La page du projet liste plusieurs extensions contribuées par la communauté, notamment un workflow ComfyUI, un mini-programme WeChat, un frontend Uniapp, une version C++, une interface graphique Windows et un tutoriel de déploiement sur Synology NAS, tous hébergés dans des dépôts GitHub séparés. Le projet lui-même est sous licence Apache-2.0. Selon le texte de la licence, les utilisateurs bénéficient d'une licence de droit d'auteur perpétuelle, mondiale, non exclusive, gratuite, sans redevance et irrévocable pour reproduire, préparer des œuvres dérivées, afficher publiquement, exécuter, sous-licencier et distribuer le code. La licence inclut également une concession de brevet, mais elle stipule que si un utilisateur intente une action en contrefaçon de brevet contre le projet, la licence de brevet prend fin. La licence ne fournit aucune garantie ni engagement de support, et le README ne mentionne pas de mises à jour de sécurité ni de processus de traitement des vulnérabilités.

Pour HivisionIDPhotos, créez un environnement Python 3.10, lancez `pip install -r requirements.txt` puis `pip install -r requirements-app.txt`. Exécutez `python scripts/download_model.py --models all` et observez les fichiers placés dans `hivision/creator/weights`. Comparez ensuite MODNet avec MTCNN et, séparément, RetinaFace; relevez la mémoire et le temps sur une image de 512x715. Le modèle birefnet-v1-lite demande un contrôle distinct de la mémoire GPU et du répertoire de poids. Vérifiez enfin la sortie JPEG, le DPI et la mise en page six pouces annoncés dans le README, sans conclure à une conformité administrative universelle.

Conclusion éditoriale

HivisionIDPhotos est publié sous licence Apache-2.0, permettant une utilisation et une modification libres du code principal, mais le projet lui-même n'offre pas de support commercial ni de garanties de sécurité ; le déploiement et les performances réels dépendent de l'environnement et de la documentation officielle. Avant adoption, exécutez le contrôle propre à HivisionIDPhotos, relevez la sortie et vérifiez la limite qui concerne vos données.

Sources officielles

  1. Official documentation
  2. Official README
  3. Project repository
  4. Release notes
Notes de la communauté

Notes de la communauté