Fundamentos de generación de imágenes con texto

1

¿Qué es text-to-Image en inteligencia artificial?

2

Cómo funciona text-to-Image: difussion

3

Exponentes de IA generativa: DALL·E 2, Midjourney y Stable Difussion

DALL·E 2

4

Generación de imágenes con DALL·E 2

5

Restricciones y limitantes de DALL·E 2

6

Prompt tuning: luces, detalles, sombras y perspectivas

7

Prompt tuning en DALL·E 2: práctica

8

Prompt tuning: estilos y artistas

9

Prompt tuning en DALL·E 2: práctica de estilos y artistas

10

Uso de API de DALL·E 2 con Python

Midjourney

11

Generación de imágenes con Midjourney

12

Prompt tuning con Midjourney

13

Prompt tuning con Midjourney: práctica

14

Image-to-Image y Blend con Midjourney

Stable Diffusion

15

Stable Diffusion con Google Colab y DreamStudio

16

Instalación de AUTOMATIC 1111

17

AUTOMATIC 1111: interfaz web de Stable Diffusion

18

Prompt tuning con Stable Diffusion

19

Prompt tuning con Stable Diffusion: práctica

Inpainting y outpainting

20

DALL·E 2: Inpainting

21

Stable Diffusion: Inpainting

22

DALL·E 2: Outpainting

23

Instalación de PaintHua

24

Stable Diffusion: Outpainting con PaintHua

Stable Diffusion features

25

Upscale: escalado de imágenes

26

Image-to-Image

27

Depth-to-Image

28

¿Cómo funciona DreamBooth?

29

DreamBooth: fine-tuning

30

Merge models: combinar modelos de difussion

Implicaciones éticas y económicas de imágenes con inteligencia artificial

31

Sesgos y bias en modelos de generación de imágenes

32

¿Cómo afecta la generación de imágenes con IA a otras profesiones?

33

Impacto de arte y diseño con IA: entrevista con Daniel Torres Buriel

34

Perspectiva de artistas y diseñadoras: entrevista con Juan Dávila

35

Perspectiva de artistas y diseñadoras: entrevista con Amelia Amórtegui

Conclusión

36

¿Qué nos deparará el futuro de la IA generativa?

No tienes acceso a esta clase

¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera

Aprende todo un fin de semana sin pagar una suscripción 🔥

Aprende todo un fin de semana sin pagar una suscripción 🔥

Regístrate

Comienza en:

4D
0H
54M
17S

Stable Diffusion con Google Colab y DreamStudio

15/36
Recursos

Aportes 13

Preguntas 5

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad?

o inicia sesión.

Hola [email protected] 😄!

Tuve un ERROR generando la primera imagen OutOfMemoryError

Se soluciona recargando lo que se habia ejecutado y reduciendo el height y el width de la siguiente manera

image = pipe(prompt, height=512, width=512).images[0

Asi pude continuar con mi actividad hasta el final

DreamStudio
Practicando lo aprendido

Si al ejecutar el comando de estructura de Huggin Face les sale el error que adjunto en la imagen, solo es que carguen asi la importación de torch

import torch
import gc
gc.collect()
torch.cuda.empty_cache()

Y les va a correr sanos y salvos 😄

Si tienen un buen pc y quieren ejecutarlo localmente (o estan usando otro servicio apare de Colab), es posible que les salga este error *Found no NVIDIA driver on your system. Please check that you have an NVIDIA GPU and installed a driver from

Ahi van a tener que instalar el driver de NVIDIA, les dejo la solución.

Tuve unos problemas, con el modelo para ejecutarlo en mi plantilla, ya los resolví.
En la pagina de Hugging Face nos abajo del codigo aparece este mensaje por si les salta el mismo eeror que el mio, por si nos asignan una RAM con poca capacidad ya que estamos usando el Colab gratuito y no tenemos tanta potencia.


Se copia y pega debajo de donde pegamos el código de cuda, ejecutamos el block de código y volvemos a probar con el prompt.

Si nos sigue molestando también hay algunas soluciones en Stack overflow que se ejecutan debajo de import torch.

Cualquiera de las dos alternativas sirve.


Ejecutamos nuevamente todos los bloques y hacemos el prompt.

Y huala!!Te sale un mono en una playa.

Anime style of Tokyo high school sakura walking in the sunrise, near a lake

width: 512

height: 512

steps: 49

sampler: automatic

seed: 3012571380

cfgScale: 7

model: Stable Diffusion v2.1

CLIP enabled: true

Que miedo xd

tuve que cambiar el tamaño de la imagen a 400 x 400 para que funcionara , casi que no funciona , vamos bien :3

Hasta ahora no logro tener buenos resultados con Stable Difussion

Stability AI es una organización que desarrolla IA open source.

Lo podemos ejecutar de forma gratis, en google colab o en la app creada por stability AI - DreamStudio, pero esta opción consume créditos y después es de pago.

Hugging Face es la mayor organización de desarrollo de IA open source, muchas personas y orgs suben constantemente sus modelos y datasets.

  • Los spaces son las aplicaciones que crearon
  • el modelo que vamos a usar es → stabilityai/stable-diffusion-2-1
    • Use in diffusers: para implementar el modelo en python, desde esta libreria

      import os
      os.environ["HF_ENDPOINT"] = "https://huggingface.co"
      
      from diffusers import DiffusionPipeline
      
      pipeline = DiffusionPipeline.from_pretrained("stabilityai/stable-diffusion-2-1")
      
    • o github:

      git lfs install
      git clone https://huggingface.co/stabilityai/stable-diffusion-2-1
      

Ejecutar desde google colab:

  • entorno de ejecución → cambiar tipo de entorno de ejecucion → GPU

  • Instalación de transformers

    pip install --upgrade git+https://github.com/huggingface/diffusers.git transformers accelerate scipy
    
  • Importar librerias → import torch
    Es el que usa huggingface en sus backend

  • Estructura de Hugging Face
    Para inicializar el enviroment

    # sampler para eliminar el ruido y asi crear las imagenes
    from diffusers import StableDiffusionPipeline, DPMSolverMultistepScheduler
    model_id = "stabilityai/stable-diffusion-2-1"
    
    # Use the Euler scheduler here instead
    pipe = StableDiffusionPipeline.from_pretrained(model_id, torch_dtype=torch.float16)
    pipe.scheduler = DPMSolverMultistepScheduler.from_config(pipe.scheduler.config)
    pipe = pipe.to("cuda")
    
  • Generando imagenes
    Por default itera 50 veces (en la iunet) sobre la imagen, eliminando el ruido.

    prompt = 'teutonic soldier in the future'
    image = pipe(prompt).images[0] # ejecutamos el prompt
    
    • En este paso podemos tener problemas con la memoria de googel colab, ya que es la opcion free y limitada. para eso tenemos 2 opciones, ademas de bajar la dimension y steps

      • Esto limpia la memoria
      import gc
      del variables
      gc.collect()
      
      • limpiamos el cache
      import torch
      torch.cuda.empty_cache()
      
  • Vemos ver la imagen generada con → image
    Podemo guardar esta imagen → image.save('perrito.png')

  • Tamaño de imagen

    prompt = 'a photo of a dog with a hat'
    # ajustamos las dimenciones
    image = pipe(prompt, height=512, width=768).images[0]
    
  • Pasos de iteracion o steps
    podmeos cambiar que en lugar de hacer 50 por default, bajarlo a 10. Tener mas pasos garantiza mayor calidad de la imagen

    prompt = 'a photo of a dog with a hat'
    image = pipe(prompt, height=512, width=768, num_inference_steps= 10).images[0]
    
  • Guidance scale → que tanto va a interpretar el prompt, esto puede quitarle algo de creatividad al modelo, por lo general se deja en 7

    prompt = 'a photo of a dog with a hat'
    image = pipe(prompt, height=512, width=768, num_inference_steps= 30, guidance_scale=12).images[0]
    
OutOfMemoryError                          Traceback (most recent call last)
<ipython-input-4-e743cdeba9cf> in <module>
      1 prompt = "a photo of an astronaut riding a horse on mars"
----> 2 image = pipe(prompt).images[0]

13 frames
/usr/local/lib/python3.8/dist-packages/diffusers/models/cross_attention.py in get_attention_scores(self, query, key, attention_mask)
    252 
    253         attention_probs = attention_scores.softmax(dim=-1)
--> 254         attention_probs = attention_probs.to(dtype)
    255 
    256         return attention_probs

OutOfMemoryError: CUDA out of memory. Tried to allocate 1.58 GiB (GPU 0; 14.75 GiB total capacity; 12.04 GiB already allocated; 1.39 GiB free; 12.10 GiB reserved in total by PyTorch) If reserved memory is >> allocated memory try setting max_split_size_mb to avoid fragmentation.  See documentation for Memory Management and PYTORCH_CUDA_ALLOC_CONF

Stability AI es una organización que desarrolla IA open source.

Lo podemos ejecutar de forma gratis, en google colab y en una app creada por stability AI - [DreamStudio], pero esta opcion consume creditos y despues es de pago.

Hugging Face es la mayor organización de desarrollo de IA open source, muchas personas y orgs suben constantemente sus modelos, datasets

Ejecutar desde google colab:

  • entorno de ejecución → cambiar tipo de entorno de ejecucion → GPU

  • Instalación de transformers

    pip install --upgrade git+https://github.com/huggingface/diffusers.git transformers accelerate scipy
    
  • Importar librerias → import torch
    Es el que usa huggingface en sus backend

  • Estructura de Hugging Face
    Para inicializar el enviroment

    # sampler para eliminar el ruido y asi crear las imagenes
    from diffusers import StableDiffusionPipeline, DPMSolverMultistepScheduler
    model_id = "stabilityai/stable-diffusion-2-1"
    
    # Use the Euler scheduler here instead
    pipe = StableDiffusionPipeline.from_pretrained(model_id, torch_dtype=torch.float16)
    pipe.scheduler = DPMSolverMultistepScheduler.from_config(pipe.scheduler.config)
    pipe = pipe.to("cuda")
    
  • Generando imagenes
    Por default itera 50 veces (en la iunet) sobre la imagen, eliminando el ruido.

    prompt = 'teutonic soldier in the future'
    image = pipe(prompt).images[0] # ejecutamos el prompt
    
    • En este paso podemos tener problemas con la memoria de googel colab, ya que es la opcion free y limitada. para eso tenemos 2 opciones, ademas de bajar la dimension y steps

      • Esto limpia la memoria
      import gc
      del variables
      gc.collect()
      
      • limpiamos el cache
      import torch
      torch.cuda.empty_cache()
      
  • Vemos ver la imagen generada con → image
    Podemo guardar esta imagen → image.save('perrito.png')

  • Tamaño de imagen

    prompt = 'a photo of a dog with a hat'
    # ajustamos las dimenciones
    image = pipe(prompt, height=512, width=768).images[0]
    
  • Pasos de iteracion o steps
    podmeos cambiar que en lugar de hacer 50 por default, bajarlo a 10. Tener mas pasos garantiza mayor calidad de la imagen

    prompt = 'a photo of a dog with a hat'
    image = pipe(prompt, height=512, width=768, num_inference_steps= 10).images[0]
    
  • Guidance scale → que tanto va a interpretar el prompt, esto puede quitarle algo de creatividad al modelo, por lo general se deja en 7

    prompt = 'a photo of a dog with a hat'
    image = pipe(prompt, height=512, width=768, num_inference_steps= 30, guidance_scale=12).images[0]
    

Para los que tienen problemas con la memori.

agreguen esta codigo al colab, para limpiar la memoria manualmente

import gc
del prompt
gc.collect()