InstantCharacter: una herramienta de código abierto para generar caracteres coherentes a partir de una sola imagen
Últimos recursos sobre IAPublicado hace 3 meses Círculo de intercambio de inteligencia artificial 2.6K 00
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.

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:
- 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.
- 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
- Abre un terminal y ejecuta el siguiente comando para clonar el repositorio InstantCharacter:
- 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
checkpoints
yassets
ymodels
etc. catálogo.
- Descarga el modelo de Hugging Face:
- 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 cantandotrigger
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
- 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.
- 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.
- 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.
- 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
- ¿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.
- ¿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.
- ¿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.
- Utilice la dirección del espejo Cara abrazada o
- ¿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.
- ¿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
Derechos de autor del artículo Círculo de intercambio de inteligencia artificial Todos, por favor no reproducir sin permiso.
Artículos relacionados
Sin comentarios...