from diffusers import StableDiffusionInpaintPipeline
import torch
from PIL import Image
# Configurazione dispositivo
device = torch.device("cuda" if torch.cuda.is_available() else "cpu")
# Configurazione modello
model_path = "D:/ai/stable-diffusion-xl/stable-diffusion-xl-1.0-inpainting-0.1"
pipe = StableDiffusionInpaintPipeline.from_pretrained(
model_path,
torch_dtype=torch.float16,
use_safetensors=True,
variant="fp16",
safety_checker=None
).to(device)
# Crea un'immagine vuota e una maschera per il test
init_image = Image.new("RGB", (768, 768), (255, 255, 255)) # Immagine bianca
mask = Image.new("L", (768, 768), 255) # Maschera tutta bianca (genera tutto)
# Parametri
prompt = "donna realistica che guarda la luna riflessa in uno stagno, scena notturna, atmosfera onirica"
negative_prompt = "bassa qualità, sfocato, artefatti, distorsioni"
# Test generazione senza embedding personalizzati
image = pipe(
prompt=prompt,
negative_prompt=negative_prompt,
image=init_image,
mask_image=mask,
height=768,
width=768,
num_inference_steps=30,
guidance_scale=7.5,
generator=torch.Generator(device=device).manual_seed(42)
).images[0]
image.save("test.png")
# Libera memoria
torch.cuda.empty_cache()
Traceback (most recent call last):
File "D:\ai\stable-diffusion-xl\outpaint\test.py", line 118, in <module>
image = pipe(
File "c:\program files\python310\lib\site-packages\torch\utils\_contextlib.py", line 116, in decorate_context
return func(*args, **kwargs)
File "c:\program files\python310\lib\site-packages\diffusers\pipelines\stable_diffusion\pipeline_stable_diffusion_inpaint.py", line 1384, in __call__
noise_pred = self.unet(
File "c:\program files\python310\lib\site-packages\torch\nn\modules\module.py", line 1739, in _wrapped_call_impl
return self._call_impl(*args, **kwargs)
File "c:\program files\python310\lib\site-packages\torch\nn\modules\module.py", line 1750, in _call_impl
return forward_call(*args, **kwargs)
File "c:\program files\python310\lib\site-packages\diffusers\models\unets\unet_2d_condition.py", line 1145, in forward
aug_emb = self.get_aug_embed(
File "c:\program files\python310\lib\site-packages\diffusers\models\unets\unet_2d_condition.py", line 966, in get_aug_embed
if "text_embeds" not in added_cond_kwargs:
TypeError: argument of type 'NoneType' is not iterable