InstantCharacter: una herramienta de código abierto para generar caracteres coherentes a partir de una sola imagen

Introducción general

InstantCharacter es un proyecto de código abierto desarrollado por Tencent Hunyuan y el equipo InstantX, alojado en GitHub. Utiliza una imagen de referencia y una descripción de texto para generar imágenes de personajes de aspecto coherente para una gran variedad de escenas y estilos. El proyecto se basa en la tecnología Diffusion Transformer, que rompe con las limitaciones de la arquitectura U-Net tradicional para ofrecer una mayor calidad de imagen y flexibilidad. Los usuarios pueden generar imágenes de personajes que coincidan con sus descripciones sin una parametrización compleja y con operaciones sencillas, que se utilizan ampliamente en animación, juegos y arte digital. Apoyo a proyectos Flux.1, y ofrece la adaptación del estilo LoRA para una generación estilizada de fácil manejo.

InstantCharacter:从单张图片生成一致性角色的开源工具

 

Lista de funciones

  • Generación coherente de personajes a partir de una sola imagen: genere imágenes de personajes para diferentes escenas, acciones y puntos de vista con una sola imagen de referencia.
  • Generación basada en texto: ajuste los movimientos de los personajes, las escenas y los estilos con indicaciones de texto, por ejemplo, "chica tocando la guitarra en la calle".
  • Compatibilidad con la migración de estilos: compatible con muchos estilos de LoRA, como el estilo Ghibli o el estilo Makoto Shinkai, para generar imágenes artísticas.
  • Salida de imágenes de alta calidad: genere imágenes de personajes detalladas y de alta resolución basadas en modelos Flux.1.
  • Compatibilidad con modelos de código abierto: compatibilidad con Flux y otros modelos de conversión de texto en imagen de código abierto; los desarrolladores pueden ampliar la función libremente.
  • Adaptadores ligeros: utilice módulos adaptadores escalables para reducir el consumo de recursos informáticos y mejorar la eficiencia de generación.
  • Optimización de conjuntos de datos a gran escala: formación basada en diez millones de conjuntos de datos de muestra para garantizar la coherencia de las funciones y la controlabilidad del texto.

 

Utilizar la ayuda

Proceso de instalación

InstantCharacter requiere un entorno habilitado para GPU, se recomienda una GPU NVIDIA (mínimo 48GB VRAM, optimizado para 24GB). A continuación se detallan los pasos de instalación:

  1. Preparación medioambiental::
    • Instale Python 3.8 o posterior.
    • Se recomienda instalar PyTorch (con soporte CUDA). pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu118.
    • Para instalar la biblioteca de dependencias, ejecute el siguiente comando:
      pip install transformers accelerate diffusers huggingface_cli
      
    • Asegúrate de tener Git y Git LFS instalados en tu sistema para descargar archivos grandes.
  2. almacén de clones::
    • Abre un terminal y ejecuta el siguiente comando para clonar el repositorio InstantCharacter:
      git clone https://github.com/Tencent/InstantCharacter.git
      cd InstantCharacter
      
  3. Descargar modelos de puntos de control::
    • Descarga el modelo de Hugging Face:
      huggingface-cli download --resume-download Tencent/InstantCharacter --local-dir checkpoints --local-dir-use-symlinks False
      
    • Si no puede acceder a la Cara Abrazadora, puede utilizar una dirección duplicada:
      export HF_ENDPOINT=https://hf-mirror.com
      huggingface-cli download --resume-download Tencent/InstantCharacter --local-dir checkpoints --local-dir-use-symlinks False
      
    • Una vez finalizada la descarga, compruebe que la estructura de carpetas contiene checkpointsyassetsymodels etc. catálogo.
  4. Configuración del entorno de ejecución::
    • Asegúrese de que el controlador de la GPU y la versión CUDA son compatibles con PyTorch.
    • Traslade el modelo y el código a un dispositivo compatible con CUDA, ejecute la aplicación pipe.to("cuda").

Utilización

La función principal de InstantCharacter es generar imágenes de caracteres a partir de imágenes de referencia e indicaciones de texto. A continuación se detalla el procedimiento:

1. Modelos de carga y adaptadores

  • Utilice el pipeline.py El script carga el modelo base y los adaptadores. El código de ejemplo es el siguiente:
    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)
    )
    
  • El código anterior carga el modelo Flux.1 y el adaptador IP de InstantCharacter, asegurando que el modelo se ejecuta en la GPU.

2. Preparación de imágenes de referencia

  • Seleccione una imagen que contenga un carácter (por ejemplo assets/girl.jpg), asegúrese de que el fondo es sencillo (por ejemplo, fondo blanco).
  • Carga la imagen y la convierte a formato RGB:
    ref_image_path = 'assets/girl.jpg'
    ref_image = Image.open(ref_image_path).convert('RGB')
    

3. Generación de imágenes de caracteres (sin migración de estilos)

  • Utilice indicaciones textuales para generar imágenes y establecer parámetros como el número de pasos de inferencia y la escala 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 Controla la coherencia del papel, con valores más bajos que favorecen la estilización (por ejemplo, 0,6 o 0,8).

4. Migración de estilos mediante Style LoRA

  • InstantCharacter admite LoRA estilizados (por ejemplo, estilo Ghibli o Makoto Shinkai). Carga archivos LoRA y genera imágenes estilizadas:
    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")
    
  • intercambiabilidad lora_file_path responder cantando trigger Conmutable entre diferentes estilos (p. ej. Makoto_Shinkai_style.safetensors).

5. Ejecute la interfaz de Gradio (opcional)

  • El proyecto proporciona una interfaz Gradio para facilitar la interacción. Ejecutar app.py::
    python app.py
    
  • Abra un navegador para acceder a la dirección local (por ejemplo http://127.0.0.1:7860), cargue la imagen e introduzca la palabra clave para generar la imagen.

advertencia

  • La generación de caracteres de animales puede ser inestable, se recomiendan imágenes de caracteres humanos.
  • La generación de mayor resolución requiere más memoria, se recomiendan las GPU de la serie A100 o RTX 5000.
  • Las descargas del modelo pueden interrumpirse debido a problemas de red, se recomienda utilizar la función --resume-download Parámetros.

 

escenario de aplicación

  1. Animación y producción cinematográfica
    • Genere rápidamente bocetos de personajes o storyboards para acortar el ciclo de prediseño. Los usuarios pueden cargar bocetos de personajes, introducir descripciones de escenas (por ejemplo, "personaje corriendo por el bosque") y generar imágenes coherentes para previsualizar animaciones o probar personajes.
  2. desarrollo de juegos
    • Genere imágenes multivista y multimovimiento para personajes de juegos. Los desarrolladores cargan diseños de personajes y generan sprites con distintas poses (por ejemplo, "personaje blandiendo una espada") para su uso en recursos de juegos 2D o 3D.
  3. Creación de arte digital
    • Los artistas utilizan la Style LoRA para generar imágenes artísticas de personajes, como personajes realistas transformados al estilo Ghibli, para su uso en ilustración o creación de NFT.
  4. Contenido de las redes sociales
    • Los usuarios suben selfies para generar avatares de estilo anime o escenas animadas (por ejemplo, "Bailando solo en una ciudad de ciencia ficción") para contenidos personalizados en las redes sociales.

 

CONTROL DE CALIDAD

  1. ¿Qué modelos admite InstantCharacter?
    • Actualmente se admite el modelo Flux.1 y es posible que en el futuro se amplíe a otros modelos de texto a imagen de código abierto.
  2. ¿Cuánta memoria de vídeo se necesita para ejecutarlo?
    • Memoria recomendada de 48 GB, optimizada para soportar 24 GB. Se están desarrollando técnicas de cuantificación para reducir los requisitos de memoria.
  3. ¿Cómo resolver el fallo de descarga del modelo?
    • Utilice la dirección del espejo Cara abrazada o --resume-download para garantizar la estabilidad de la red.
  4. ¿Por qué son inestables los personajes animales generados?
    • Los datos de entrenamiento del modelo están dominados por caracteres humanos, y las características de los animales están poco optimizadas, lo que sugiere el uso de imágenes de caracteres humanos.
  5. ¿Está disponible en el mercado?
    • La licencia actual es sólo para uso de investigación. El uso comercial requiere una licencia de Tencent.
© declaración de copyright

Artículos relacionados

Sin comentarios

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