Shitao/OmniGen-v1

Shitao
Texto a imagen

OmniGen-v1 es un modelo unificado de generación de imágenes capaz de producir y editar imágenes a partir de instrucciones multimodales. Está diseñado para cubrir tareas como texto a imagen, generación guiada por sujeto, preservación de identidad, edición de imagen y generación condicionada por imagen sin depender de módulos externos como ControlNet, IP-Adapter o Reference-Net ni de pasos previos como detección de pose, recorte o detección facial.

Como usar

Instalación y uso con Diffusers:

pip install -U diffusers transformers accelerate

import torch
from diffusers import DiffusionPipeline

# switch to "mps" for apple devices
pipe = DiffusionPipeline.from_pretrained("Shitao/OmniGen-v1", dtype=torch.bfloat16, device_map="cuda")

prompt = "Astronaut in a jungle, cold color palette, muted colors, detailed, 8k"
image = pipe(prompt).images[0]

Instalación desde GitHub:

git clone https://github.com/staoxiao/OmniGen.git
cd OmniGen
pip install -e .

Ejemplo de texto a imagen con OmniGen:

from OmniGen import OmniGenPipeline

pipe = OmniGenPipeline.from_pretrained("Shitao/OmniGen-v1")

images = pipe(
    prompt="A curly-haired man in a red shirt is drinking tea.",
    height=1024,
    width=1024,
    guidance_scale=2.5,
    seed=0,
)
images[0].save("example_t2i.png")

Ejemplo multimodal a imagen:

images = pipe(
    prompt="A man in a black shirt is reading a book. The man is the right man in <img><|image_1|></img>.",
    input_images=["./imgs/test_cases/two_man.jpg"],
    height=1024,
    width=1024,
    guidance_scale=2.5,
    img_guidance_scale=1.6,
    seed=0
)
images[0].save("example_ti2i.png")

Demo local con Gradio:

pip install gradio spaces
python app.py

Uso en Google Colab:

!git clone https://github.com/staoxiao/OmniGen.git
%cd OmniGen
!pip install -e .
!pip install gradio spaces
!python app.py --share

Ejemplo de fine-tuning LoRA:

accelerate launch --num_processes=1 train.py \
  --model_name_or_path Shitao/OmniGen-v1 \
  --batch_size_per_device 2 \
  --condition_dropout_prob 0.01 \
  --lr 1e-3 \
  --use_lora \
  --lora_rank 8 \
  --json_file ./toy_data/toy_subject_data.jsonl \
  --image_path ./toy_data/images \
  --max_input_length_limit 18000 \
  --keep_raw_resolution \
  --max_image_size 1024 \
  --gradient_accumulation_steps 1 \
  --ckpt_every 10 \
  --epochs 200 \
  --log_every 1 \
  --results_dir ./results/toy_finetune_lora

Funcionalidades

Modelo de generación de imágenes unificado para prompts de texto e imagen.
Soporta texto a imagen, imagen a imagen, edición, generación condicionada por imagen y generación con preservación de identidad.
Puede interpretar rasgos de imágenes de entrada según el prompt, como objeto requerido, pose humana o mapa de profundidad.
No requiere plugins adicionales para muchas tareas multimodales habituales.
Disponible en formato Safetensors con aproximadamente 4B de parámetros F32.
Compatible con Diffusers y con el paquete OmniGen del repositorio oficial.
Permite fine-tuning, incluido un ejemplo de ajuste LoRA.
Licencia MIT.

Casos de uso

Generación de imágenes a partir de texto.
Edición de imágenes mediante instrucciones multimodales.
Generación de imágenes condicionada por una o varias imágenes de entrada.
Creación de variaciones manteniendo identidad o sujeto de referencia.
Experimentación con pipelines de generación y modificación de imágenes.
Fine-tuning para añadir capacidades o tareas visuales específicas.