UNO: compatibilidad con herramientas de generación de imágenes personalizadas mono y multisujeto (adecuadas para gráficos de comercio electrónico).

Introducción general

UNO es un marco de generación de imágenes de código abierto desarrollado por el equipo de creación inteligente ByteDance. Se basa en FLUX.1, centrado en la generación de imágenes personalizadas de una y varias asignaturas mediante un enfoque de generalización de "menos a más", UNO resuelve los problemas de ampliación de datos y coherencia de asignaturas en escenarios de varias asignaturas aprovechando la capacidad de generación de contexto del transformador de difusión (DiT) junto con un proceso de síntesis de datos de gran coherencia. Permite a los usuarios generar imágenes de alta calidad a partir de descripciones textuales e imágenes de referencia, lo que es ampliamente aplicable a la creación de imágenes personalizadas, el diseño de personajes virtuales y otros escenarios. El código del proyecto está licenciado bajo Apache 2.0 y los pesos del modelo bajo CC BY-NC 4.0, aptos para la investigación académica y el uso no comercial.

UNO:支持单主体和多主体定制化图像生成工具(适合电商配图)

 

Lista de funciones

  • Generación de imágenes de un único sujeto: genera una imagen coherente con la descripción a partir de una única imagen de referencia, preservando las características del sujeto.
  • Generación de imágenes multisujeto: genera múltiples sujetos específicos en la misma escena, manteniendo sus respectivas características sin alterar.
  • Generación de contextos: explotación de la capacidad de aprendizaje de contextos del transformador de difusión para generar imágenes de gran coherencia.
  • Optimización de memoria baja: admite el modo fp8 con una huella de memoria máxima de ~16 GB para GPU de consumo.
  • Ajuste del modelo: proporciona estrategias de preentrenamiento y entrenamiento en varias fases para apoyar la optimización iterativa de los modelos de texto a imagen.
  • Soporte de código abierto: se proporciona el código de entrenamiento, el código de inferencia y los pesos del modelo para facilitar a los investigadores la ampliación de la aplicación.

 

Utilizar la ayuda

Proceso de instalación

Para utilizar UNO, necesitas instalar y configurar las dependencias en tu entorno local. A continuación se detallan los pasos de instalación para entornos Python 3.10 a 3.12.

  1. Creación de un entorno virtual
    En primer lugar, cree un entorno virtual Python independiente para evitar conflictos de dependencias. Puede utilizar el siguiente comando:

    python -m venv uno_env
    source uno_env/bin/activate  # Linux/MacOS
    uno_env\Scripts\activate  # Windows
    

    O utiliza Conda para crear un entorno:

    conda create -n uno_env python=3.10 -y
    conda activate uno_env
    
  2. Instalación de PyTorch
    Si utilizas una GPU AMD, NVIDIA RTX serie 50 o macOS MPS, tendrás que instalar manualmente la versión adecuada de PyTorch. Consulte el sitio web de PyTorch (https://pytorch.org/) Seleccione la versión correcta. Por ejemplo:

    pip install torch torchvision torchaudio
    
  3. Instalación de las dependencias de UNO
    Clona el repositorio UNO e instala las dependencias:

    git clone https://github.com/bytedance/UNO.git
    cd UNO
    pip install -e .  # 仅用于推理
    pip install -e .[train]  # 用于推理和训练
    

    Nota: Asegúrese de que requirements.txt se han instalado correctamente. Si tiene problemas, compruebe si faltan bibliotecas del sistema (como la biblioteca ffmpeg) y a través de conda install -c conda-forge ffmpeg Instalación.

  4. Descargar modelos de puntos de control
    UNO se basa en el modelo FLUX.1-dev y los puntos de control asociados. Puede descargarse de las siguientes formas:

    • descarga automáticaCuando se ejecutan scripts de inferencia, los puntos de control se pasan automáticamente a través de la función hf_hub_download Descargar a la ruta por defecto (~/.cache/huggingface).
    • descarga de manuales: Utiliza la CLI de Hugging Face para descargar modelos:
      huggingface-cli download black-forest-labs/FLUX.1-dev
      huggingface-cli download xlabs-ai/xflux_text_encoders
      huggingface-cli download openai/clip-vit-large-patch14
      huggingface-cli download bytedance-research/UNO
      

    Tras la descarga, coloque el modelo en el directorio especificado (p. ej. models/unet responder cantando models/loras).

  5. Verificar la instalación
    Una vez finalizada la instalación, ejecute el siguiente comando para comprobar que el entorno está configurado correctamente:

    python -c "import torch; print(torch.cuda.is_available())"
    

    Si la devolución TrueA continuación se muestra un ejemplo de configuración correcta de un entorno GPU.

Utilización

UNO proporciona una interfaz Gradio (app.py) para la generación interactiva de imágenes, o puede ejecutar scripts de inferencia desde la línea de comandos (inference.py). A continuación se describen los principales procedimientos operativos.

Generación de imágenes a través de la interfaz de Gradio

  1. Iniciar la aplicación Gradio
    Asegúrese de que Gradio está instalado (incluido en el archivo requirements.txt (en). Ejecute el siguiente comando para iniciar la interfaz:

    python app.py
    

    Al iniciarse, el navegador abre una página local (normalmente la página http://127.0.0.1:7860).

  2. parámetro de entrada
    En la interfaz de Gradio:

    • Introduzca un texto (prompt), describa la escena de imagen que desea generar, por ejemplo, "un gato y un perro jugando en un parque".
    • Cargue de 1 a 4 imágenes de referencia (image_ref1 hasta image_ref4), estas imágenes definen la apariencia del sujeto.
    • Establezca el valor de la semilla (seed) para controlar la aleatoriedad de los resultados generados, el valor por defecto es 3407.
    • Seleccione el tipo de modelo (flux-devyflux-dev-fp8 tal vez flux-schnell), recomendado flux-dev-fp8 para reducir los requisitos de memoria gráfica.
  3. Generación de imágenes
    Haz clic en el botón Generar y UNO generará los resultados basándose en las indicaciones y la imagen de referencia. El tiempo de generación depende del rendimiento del hardware y suele tardar entre unos segundos y unos minutos en GPU de consumo como la RTX 3090.

Ejecutar el razonamiento desde la línea de comandos

  1. Prepárese para entrar
    Cree un archivo de configuración que contenga las rutas de la imagen de consulta y de referencia, o especifique los parámetros directamente en la línea de comandos. Ejemplo:

    python inference.py --prompt "A man in a suit, standing in a city" --image_paths "./assets/examples/man.jpg" --model_type "flux-dev-fp8" --save_path "./output"
    
  2. Descripción de los parámetros comunes
    • --promptDescripción textual que define el contenido de la imagen generada.
    • --image_paths: Ruta de imagen de referencia con soporte de múltiples imágenes.
    • --model_type: Tipo de modelo, Recomendado flux-dev-fp8.
    • --offloadHabilita la descarga de memoria de vídeo para reducir el uso de memoria de vídeo.
    • --num_steps: El número de pasos de difusión, por defecto 25, afecta a la calidad de la generación.
    • --guidanceFactor de orientación, por defecto 4, controla la concordancia del texto con la imagen.
  3. Ver resultados
    La imagen generada se guarda en la carpeta --save_path El directorio especificado (por ejemplo output/inference).

Función destacada Operación

Generación de un único sujeto

  • procedimiento::
    1. Cargue una imagen del sujeto (por ejemplo, una foto de una persona).
    2. Introduzca un texto que describa la escena objetivo (por ejemplo, "Esta persona está paseando por la playa").
    3. Establezca la resolución de la imagen de referencia en 512 (por defecto).
    4. Para generar una imagen, UNO mantiene la apariencia de los rasgos del sujeto (por ejemplo, cara, ropa).
  • advertenciaLa imagen de referencia debe ser nítida y el motivo bien caracterizado, evitando las imágenes borrosas o de baja calidad.

Generación multisujeto

  • procedimiento::
    1. Cargue varias imágenes de referencia (por ejemplo, una foto de un gato y otra de un perro).
    2. Introduzca indicaciones de texto para describir escenas con varios temas (por ejemplo, "El gato y el perro están jugando en la hierba").
    3. Ajuste la resolución de la imagen de referencia a 320 (multi-sujeto por defecto).
    4. Para generar la imagen, UNO evita la confusión de las características del sujeto mediante la técnica UnoPE (Universal Rotation Position Embedding).
  • advertenciaEl número de imágenes de referencia no debe ser superior a 4 y cada sujeto debe distinguirse claramente en la imagen.

Optimización de memoria baja

  • utilizar flux-dev-fp8 la huella de memoria se reduce a unos 16 GB.
  • comisión --offload para descargar parte del cálculo a la CPU y reducir aún más los requisitos de memoria gráfica.
  • Para usuarios de GPU de consumo como RTX 3090 o RTX 4090.

Preguntas frecuentes

  • memoria de vídeo insuficiente: Intentar reducir la resolución (--width responder cantando --height) a 512x512, o utilice la función flux-dev-fp8 Modelos.
  • fallo de instalaciónComprobar que la versión de PyTorch es compatible con la GPU e instalar manualmente una versión específica si es necesario.
  • Generación insatisfactoria de resultados: Ajustes --guidance(aumentado a 5 ó 6) o --num_steps(aumentado a 50) para mejorar la calidad de la imagen.

 

escenario de aplicación

  1. Creación de imágenes personalizadas
    Los usuarios pueden subir sus propias fotos y combinarlas con descripciones de texto para generar imágenes de escenarios concretos. Por ejemplo, subir un selfie genera una imagen de "uno mismo paseando por la ciudad del futuro", idónea para crear contenidos en las redes sociales.
  2. Diseño de personajes virtuales
    Los desarrolladores de juegos o animadores pueden cargar bocetos de personajes para generar imágenes de personajes para distintos escenarios y mantener una apariencia coherente de los personajes, adecuada para el desarrollo de manga, animación o juegos.
  3. Publicidad y marketing
    Los equipos de marketing pueden cargar imágenes de productos o mascotas de marca para generar diversos escenarios publicitarios (por ejemplo, productos expuestos en distintas estaciones) y aumentar la diversidad de contenidos visuales.
  4. investigación académica
    Los investigadores pueden utilizar el código fuente abierto y el flujo de entrenamiento de UNO para explorar la aplicación de modelos de difusión a la generación multisujeto, validar nuevos algoritmos u optimizar modelos existentes.

 

CONTROL DE CALIDAD

  1. ¿Qué hardware admite UNO?
    UNO recomienda GPUs NVIDIA (como RTX 3090 o 4090) con un mínimo de 16 GB de memoria de vídeo. Las GPUs AMD y macOS MPS son compatibles, pero PyTorch debe configurarse manualmente.
  2. ¿Cómo mejorar la calidad de las imágenes generadas?
    Adición de un paso de difusión (--num_steps fijado en 50) o ajustar el factor bootstrap (--guidance (ajustado a 5-6). Asegúrate de que la imagen de referencia es clara y las indicaciones de texto son específicas.
  3. ¿Se comercializa UNO?
    Los pesos del modelo están bajo licencia CC BY-NC 4.0 para uso no comercial. El uso comercial está sujeto a los términos de la licencia original FLUX.1-dev.
  4. ¿Cómo hacer frente a la confusión de rasgos en la generación multisujeto?
    UNO Reduzca la confusión utilizando la técnica UnoPE. Asegúrese de que las características del sujeto de cada imagen de referencia son claras y de que la resolución se reduce adecuadamente (por ejemplo, 320) para optimizar el efecto.
© declaración de copyright

Artículos relacionados

Sin comentarios

Debe iniciar sesión para participar en los comentarios.
Acceder ahora
ninguno
Sin comentarios...