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()