Fundamentos de generación de imágenes con texto

1

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

2

Atención: Estamos actualizando este curso

3

¿Cómo funciona text-to-Image: difussion?

4

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

DALL·E 2

5

Generación de imágenes con DALL·E

6

Atención: Estamos actualizando este curso

7

Restricciones y limitantes de DALL·E

8

Prompt tuning: luces, detalles, sombras y perspectivas

9

Prompt tuning en DALL·E: práctica

10

Prompt tuning: estilos y artistas

11

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

12

Uso de API de DALL·E con Python

Midjourney

13

Atención: Estamos actualizando este curso

14

Generación de imágenes con Midjourney

15

Prompt tuning con Midjourney

16

Prompt tuning con Midjourney: práctica

17

Image-to-Image y Blend con Midjourney

Stable Diffusion

18

Stable Diffusion con Google Colab y DreamStudio

19

Atención: Estamos actualizando este curso

20

Instalación de AUTOMATIC 1111

21

AUTOMATIC 1111: interfaz web de Stable Diffusion

22

Prompt tuning con Stable Diffusion

23

Prompt tuning con Stable Diffusion: práctica

24

Qué es Control Net de Stable Difussion y cómo utilizarlo.

Inpainting y outpainting

25

Atención: Estamos actualizando este curso

26

DALL·E: Inpainting

27

Stable Diffusion: Inpainting

28

Inpainting en Midjourney: Vary (Region)

29

DALL·E : Outpainting

30

Zoom Out: La nueva herramienta de Midjourney

31

Instalación de PaintHua

32

Stable Diffusion: Outpainting con PaintHua

Stable Diffusion features

33

Atención: Estamos actualizando este curso

34

Upscale: escalado de imágenes

35

Image-to-Image

36

Depth-to-Image

37

¿Cómo funciona DreamBooth?

38

DreamBooth: fine-tuning

39

Merge models: combinar modelos de difussion

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

40

Atención: Estamos actualizando este curso

41

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

42

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

43

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

44

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

45

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

Conclusión

46

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

47

Comparte tu proyecto y certifícate

Stable Diffusion con Google Colab y DreamStudio

18/47
Recursos
Transcripción

Aportes 41

Preguntas 11

Ordenar por:

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

Hola Chic@s 😄!

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 😄

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

Me siento como niño en dulcería aprendiendo todo esto. Me sigue pareciendo impresionante la capacidad de hacer esto.

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.

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]
    

Aunque con un corte de grabado bastante extraño, 3 modelos, cuatro plataformas, 3 cuadernos, y muchos créditos consumidos después, la vieja confiable Stable Diffusion tomó el estilo de Goya:

Para los que tienen problemas con la memori.

agreguen esta codigo al colab, para limpiar la memoria manualmente

import gc
del prompt
gc.collect()

Información resumida de esta clase
#EstudiantesDePlatzi

  • Stable Difussion es un modelo gratis y libre

  • Se hacen 50 pasos por defecto para la eliminación de ruido al crear la imagen

  • El Prompt también puede ser muy declarativo}

  • Dentro de Google Colab podemos hacer transformaciones a las imágenes

  • Puedo definir el número de pasos que hace el modelo, entre más pasos mejor la calidad pero más tiempo toma

  • Con guidance scale puedo definir que tanto siga el modelo al pie de la letra al prompt

  • Podemos usar alguna interfaz para utilizar los modelos pero esta suele tener costo

Que realismo mas barbaro!!!

Blonde US girl in yellow raincoat, Canon 35mm, smiling, rain-soaked face, blurry background, realistic.

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]
    

Hola que tal a todos, aquí les dejo algunos demos que hice desde mi ordenador, solo que no me esta gustando mucho como quedan las imágenes a veces quedan descuartizadas

la primera prueba la hice con 720 a 1080 de resolución no me tarde en nada en hacer el render menos de 1 minuto.
(https://static.platzi.com/media/user_upload/prueba1-cff047ad-2453-49e0-8c11-1eb0b2a65e46.jpg)

Aqui esta la imagen completa

La segunda prueba es 1080 x 1920

Completa

Sinceramente me gusto esto para hacer la portada de mi libro, pero le falta aun más para desarrollar algo más profesional espero mejorar esto en un futuro e ir a prendiendo más.

En los recursos no hay enlaces, para que lo revisen…

Me pareció encantador

Hasta ahora no logro tener buenos resultados con Stable Difussion

Este curso cada vez se pone mejor 🏅🚀💚🔥

Prompt: a dream of a photo of a black husky jumping in the snow

Hola! a mi me da este error:
────────────────────────────────
OutOfMemoryError: CUDA out of memory. Tried to allocate 30.00 MiB (GPU 0; 14.75 GiB total capacity; 13.38 GiB
already allocated; 20.81 MiB free; 13.43 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

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

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.

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

Que interesante
Hola, en el paso del prompt me tira el siguiente error. Cómo se soluciona? \--------------------------------------------------------------------------- TypeError Traceback (most recent call last) [\<ipython-input-4-3e61bb7653ca>](https://localhost:8080/#) in \<cell line: 2>() 1 prompt = "a photo of a dog with a hat" \----> 2 image = pipe(prompt).images(0) TypeError: 'list' object is not callable ![](https://static.platzi.com/media/user_upload/image-20484b7f-e631-415a-976b-d48de21e4448.jpg)
![](https://static.platzi.com/media/user_upload/Untitled-dab220dd-5a3d-4eb3-bfd3-e2c22e58e7b0.jpg)
Me quede sin GPU
![](https://static.platzi.com/media/user_upload/Screenshot%20at%20Mar%2029%2015-07-40-7c7991d7-9723-426a-896b-01b4d059d3b4.jpg)
El template no me abre porque el archivo es .ipynb
![](https://static.platzi.com/media/user_upload/image-6eb8f940-1431-423c-a159-37466f02179c.jpg) Me sale este error y como nadie de Platzi responde acá me temo que hasta acá llegué. Que descepción Platzi.
![](https://static.platzi.com/media/user_upload/image-c694c7a6-321f-4aef-85cb-91d7b60728d1.jpg) Me sale este error y como nadie de Platzi responde acá me temo que hasta acá llegué. Que descepción Platzi.
Buenas equipo me sale error Como puedo solucionar esto? ![](https://static.platzi.com/media/user_upload/image-a1e1a078-3b4b-4c83-86e4-c175f2ecda97.jpg)
![](https://static.platzi.com/media/user_upload/download-ccaea1ff-517c-4349-85a3-9b3cf74550eb.jpg)
Buenas equipo, me sale esta imagen con errores? Alguna idea o solucion a esto? ![](https://static.platzi.com/media/user_upload/image-ba1f3171-ceb9-4941-a62e-d4c31fb5b22f.jpg)
Hace ya meses que termine de pagar Platzi para un año, pero siempre he tenido el problema de que es muy pesada la plataforma, en mi ciudad no es muy rapido el internet, y pues los videos de platzi no me cargan, pero los de YouTube si me cargan en su maxima calidad. Admiro mucho Platzi, pero es se enfocan tanto en la seguridad de sus videos que se olvidad del rendimiento
![](https://static.platzi.com/media/user_upload/rana%20ninja-28bdd6d3-abe7-4d2f-aa61-88e2c12c399b.jpg)rompt = 'a frog with a scepter'image = pipe(prompt, height=512, width=768, num\_inference\_steps=70, guidance\_scale=5).images\[0]

Excelente clase, gracias. Repasamos codificación, aprendemos modelos de difusión y transformers, etc. de forma amena y divertida.

Información resumida de esta clase
#EstudiantesDePlatzi

  • Hugging face es la mayor comunidad de IA

  • Es muy fácil descargar este modelo de GitHub

  • 50 pasos son los que vienen por defecto en este modelo, esto lo puedo modificar

  • Parece que tener mayor cantidad de pasos genera imágenes de mayor calidad

  • En el parametros guidance_scale debemos buscar un punto intermedio

Hola profe!! pero como llegas hasta alli, donde esta la clase de huggin face. estoy muy perdido.