Создание изображений предварительного просмотра с помощью конвейера Stable Diffusion XL приводит к появлению черных изоб ⇐ Python
Создание изображений предварительного просмотра с помощью конвейера Stable Diffusion XL приводит к появлению черных изоб
Я работаю с моделью Stable Diffusion XL (SDXL) из библиотеки диффузоров Hugging Face и столкнулся с проблемой, из-за которой моя функция обратного вызова, предназначенная для создания изображений предварительного просмотра в процессе диффузии, создает только черные изображения. Эта установка раньше работала со Stable Diffusion 1.5, но, похоже, имеет проблемы с SDXL.
Основное отличие, которое я заметил, заключается в обработке обратных вызовов в SDXL, где скрытые данные теперь хранятся в callback_kwargs. Я попытался соответствующим образом адаптировать свой код, но предварительный просмотр по-прежнему генерируется неправильно.
Вот минимальный пример моей текущей реализации:
из диффузоров импортировать StableDiffusionXLPipeline импортный фонарь труба = StableDiffusionXLPipeline.from_pretrained( "stabilityai/stable-diffusion-xl-base-1.0", torch_dtype=torch.float16, вариант="fp16", use_safetensors=True ).to("куда") подсказка = "Астронавт в джунглях, холодная цветовая палитра, приглушенные цвета, детализация, 8к" обратный вызов def (pipe, Step_index, timestep, callback_kwargs): скрытые = callback_kwargs.get("латенты") с torch.no_grad(): скрытые = 1/0,18215 * скрытые изображение = Pipe.vae.decode(latents).sample изображение = (изображение / 2 + 0,5).clamp(0, 1) изображение = image.cpu().permute(0, 2, 3, 1).float().numpy() изображение = Pipe.numpy_to_pil(изображение)[0] image.save(f"./imgs/{step_index}.png") вернуть callback_kwargs изображение = канал (подсказка = подсказка, callback_on_step_end = обратный вызов).images[0] Полученные изображения, сохраненные в ./imgs/, просто черные. Я подозреваю, что проблема может быть связана с обработкой скрытых данных или процессом преобразования изображений, но я не уверен, что именно происходит не так.
Кто-нибудь сталкивался с подобной проблемой или может объяснить, почему это может происходить с моделью SDXL?
Я работаю с моделью Stable Diffusion XL (SDXL) из библиотеки диффузоров Hugging Face и столкнулся с проблемой, из-за которой моя функция обратного вызова, предназначенная для создания изображений предварительного просмотра в процессе диффузии, создает только черные изображения. Эта установка раньше работала со Stable Diffusion 1.5, но, похоже, имеет проблемы с SDXL.
Основное отличие, которое я заметил, заключается в обработке обратных вызовов в SDXL, где скрытые данные теперь хранятся в callback_kwargs. Я попытался соответствующим образом адаптировать свой код, но предварительный просмотр по-прежнему генерируется неправильно.
Вот минимальный пример моей текущей реализации:
из диффузоров импортировать StableDiffusionXLPipeline импортный фонарь труба = StableDiffusionXLPipeline.from_pretrained( "stabilityai/stable-diffusion-xl-base-1.0", torch_dtype=torch.float16, вариант="fp16", use_safetensors=True ).to("куда") подсказка = "Астронавт в джунглях, холодная цветовая палитра, приглушенные цвета, детализация, 8к" обратный вызов def (pipe, Step_index, timestep, callback_kwargs): скрытые = callback_kwargs.get("латенты") с torch.no_grad(): скрытые = 1/0,18215 * скрытые изображение = Pipe.vae.decode(latents).sample изображение = (изображение / 2 + 0,5).clamp(0, 1) изображение = image.cpu().permute(0, 2, 3, 1).float().numpy() изображение = Pipe.numpy_to_pil(изображение)[0] image.save(f"./imgs/{step_index}.png") вернуть callback_kwargs изображение = канал (подсказка = подсказка, callback_on_step_end = обратный вызов).images[0] Полученные изображения, сохраненные в ./imgs/, просто черные. Я подозреваю, что проблема может быть связана с обработкой скрытых данных или процессом преобразования изображений, но я не уверен, что именно происходит не так.
Кто-нибудь сталкивался с подобной проблемой или может объяснить, почему это может происходить с моделью SDXL?
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение