Convertir le texte en image avec une appli partie 2



Mis à jour le Sept. 20, 2022, 7:06 p.m.

On attaque ici la suite de notre application

On a installé tout ce qui était nécessaire, verifions que cela fonctionne.

from torch import autocast
from diffusers import StableDiffusionPipeline

pipe = StableDiffusionPipeline.from_pretrained("./stable-diffusion-v1-4")
pipe = pipe.to("cuda")

prompt = "a photo of an astronaut riding a horse on mars"
with autocast("cuda"):
    image = pipe(prompt, guidance_scale=5.5).images[0]  
    
image.save("astronaut_rides_horse.png")

 

Erreur fréquente:

 

Comment régler cette erreur out of memory de cuda? Si vous êtes limité par la mémoire du GPU, vous pouvez envisager d'utiliser le modèle en fp16 (on est en fp32). Le code suivant devrait permettre d'utiliser moins de 4 Go de VRAM.

from torch import autocast
from diffusers import StableDiffusionPipeline
import torch  # nouvelle ligne

pipe = StableDiffusionPipeline.from_pretrained("./stable-diffusion-v1-4", 
	revision="fp16",  # nouvelle ligne
    torch_dtype=torch.float16,)  # nouvelle ligne

pipe = pipe.to("cuda")
pipe.enable_attention_slicing()  # nouvelle ligne


prompt = "a photo of an astronaut riding a horse on mars"
with autocast("cuda"):
    image = pipe(prompt).images[0]  
    
image.save("astronaut_rides_horse.png")

Super ça fonctionne!!!!

Est-ce que ça fonctionne avec le français?

 

from diffusers import StableDiffusionPipeline 
from torch import autocast
import torch  # nouvelle ligne

pipe = StableDiffusionPipeline.from_pretrained("./stable-diffusion-v1-4", 
	revision="fp16",  # nouvelle ligne
    torch_dtype=torch.float16,)  # nouvelle ligne

pipe = pipe.to("cuda")
pipe.enable_attention_slicing()  # nouvelle ligne


prompt = "un extraterrestre arrivant sur terre"
with autocast("cuda"):
    image = pipe(prompt).images[0]  
    
image.save("robot_lune.png")