Générateur d'images intranet
Je voulais montrer à ma famille ce que je fais dans la vie et quelle meilleure façon de rendre la vision informatique intéressante que les modèles de diffusion?
J'aurais pu leur montrer Dall-E 2, MidJourney ou les millions d'applications mobiles construites sur SD déjà là-bas, mais si je l'ai construit moi-même, je peux l'exécuter gratuitement et conserver un contrôle de bout en bout sur tous les aspects, par exemple quel modèle j'utilise, la possibilité d'ajouter des contrôles parentaux aux invites, etc.
Alors, j'ai construit:
- Une simple application mobile native React en tant que frontend, qui prend une invite en entrée et affiche les images générées
- Un backend Python, avec une API basée sur un flacon et un modèle de diffusion exécutant l'inférence sur un GPU RTX 3090, avec des plans de conteneriser à l'aide de Docker
Travail en cours!
Comment ça marche:



Installation:
- Variables d'environnement sur le backend (par exemple dans un fichier .env)
- HF_KEY: Votre clé API Face Hugging Face
- IMG_DIR_WIN et IMG_DIR_DOCKER: Emplacement pour stocker les images générées
- Inside_prefix et prompt_suffix: facultatif, si vous souhaitez préfixer ou suffix
- Négatif_prompt: facultatif, mais doit être utilisé pour les contrôles parentaux (par exemple, ajoutez "effrayant" pour éviter la convergence sur les images effrayantes, la même avec les concepts NSFW, etc.)
- Model_id: ID de modèle de visage étreint en option, en utilisant SD 2.1 s'il n'est pas défini
Définissez une adresse IP LAN fixe sur la machine exécutant le backend et exposez le port 5000 à votre intra net
Configurez l'adresse IP du backend sur l'application mobile sous le menu Kebab (recherchez ⋮ dans le coin supérieur droit)
Pour l'instant, pour faire fonctionner l'application mobile, vous devez configurer un environnement de développement natif React, compiler l'application à partir de la source et charger le .APK sur un appareil Android à l'aide du mode développeur.
Voici un guide pratique: https://reactnative.dev/docs/environment-setup?guide=native
Problèmes et avertissements connus:
- Il s'agit d'un prototype de passe-temps qui prend pas mal de compétences technologiques pour se rendre au travail et n'est pas prêt à la production. Vous ne devriez pas l'utiliser si vous ne comprenez pas la technologie impliquée.
Lisez les conditions de licence, en particulier la section 5 - Avertissement des garanties et limitation de responsabilité. - Je ne pouvais pas tester si Docker fonctionne du tout, car mes pilotes Nvidia ne veulent pas jouer avec Docker dans mon sous-système Windows Linux
- L'application mobile a toujours l'icône Android par défaut et est nommée "mobile_client"
- Sécurité minimale (sans tenter de désinfecter les entrées ou d'authentifier les clients), le backend est uniquement destiné à être utilisé derrière un routeur NAT à des fins de démonstration, non prête à être exposée à Internet.
- Je recommande de mettre en place une invite négative étendue en tant que contrôles parentaux, en plus d'utiliser le filtre de sécurité de stabilité, et de ne pas laisser les enfants jouer avec des modèles de diffusion sans supervision adulte, car la plupart de ces modèles produiront un contenu inapproprié avec un minimum d'effort et une curiosité.
Licence:
Copyright 2023, Jozsef Szalma
Creative Commons Attribution-NonCommercial 4.0 Licence publique internationale
https://creativecommons.org/licenses/by-nc/4.0/legalcode