Generador de imágenes de intranet
Quería mostrarle a mi familia a qué me ganas la vida y qué mejor manera de hacer que la visión por computadora sea interesante que los modelos de difusión.
Podría haberles mostrado Dall-E 2, MidJourney o las millones de aplicaciones móviles basadas en SD ya existentes, sin embargo, si lo construyo yo mismo, puedo ejecutarlo de forma gratuita y retener el control de extremo a extremo sobre todos los aspectos, por ejemplo, qué modelo uso, posibilidad de agregar controles parentales a las indicaciones, etc.
Entonces, construí:
- Una simple aplicación móvil React Native como frontend, que toma un aviso como entrada y muestra las imágenes generadas
- Un backend de Python, con una API basada en frascos y un modelo de difusión que ejecuta una inferencia en una GPU RTX 3090, con planes de contenedores usando Docker
¡Trabajo en progreso!
Cómo funciona:



Configuración:
- Variables de entorno en el backend (por ejemplo, en un archivo .env)
- HF_KEY: tu tecla API de la cara abrazada
- Img_dir_win e img_dir_docker: ubicación para almacenar las imágenes generadas
- ARD_PREFIX y ARD_SUFFIX: Opcional, si desea prefijar o sufijar el mensaje con cualquier cosa (por ejemplo, dibujos animados, amigables para los niños)
- Negativo_prompt: opcional, pero debe usarse para controles parentales (por ejemplo, agregue "aterrador" para evitar la convergencia en las imágenes de miedo, lo mismo con los conceptos NSFW, etc.)
- Model_id: ID de modelo de cara opcional, abrazando, usando SD 2.1 si no se define
Establezca una dirección IP de LAN fija en la máquina que ejecuta el backend y expone el puerto 5000 a su red intra
Configure la dirección IP del backend en la aplicación móvil en el menú Kebab (busque ⋮ en la esquina superior derecha)
A partir de ahora, para ejecutar la aplicación móvil, debe configurar un entorno de desarrollo nativo React, compilar la aplicación desde la fuente y cargar el .apk en un dispositivo Android utilizando el modo de desarrollador.
Aquí hay una guía útil: https://reactnative.dev/docs/environment-setup?guide=native
Problemas y renuncias conocidas:
- Este es un prototipo de pasatiempo que requiere bastante habilidades tecnológicas para llegar al trabajo y no está listo para la producción. No debe usarlo si no comprende la tecnología involucrada.
Lea los términos de la licencia, especialmente la Sección 5 - Descargo de responsabilidad de las garantías y limitación de responsabilidad. - No podría probar si Docker funciona en absoluto, ya que mis controladores NVIDIA no quieren jugar con Docker en mi subsistema de Windows Linux
- La aplicación móvil todavía tiene el icono de Android predeterminado y se llama "mobile_client"
- Seguridad mínima (sin hacer ningún intento de desinfectar entradas o clientes autenticados), el backend solo está destinado a ser utilizado detrás de un enrutador NAT para fines de demostración, no está listo para ser expuesto a Internet.
- Recomiendo establecer un indicador negativo extenso como controles parentales, además de usar el filtro de seguridad de estabilidad, y no dejar que los niños jueguen con modelos de difusión sin supervisión de adultos, ya que la mayoría de estos modelos producirán contenido inapropiado de edad con un esfuerzo y curiosidad mínimas.
Licencia:
Copyright 2023, Jozsef Szalma
Creative Commons Attribution-No Commercial 4.0 Licencia pública internacional
https://creativecommons.org/licenses/by-nc/4.0/legalcode