Доброго времени суток. Некоторое время назад увлекался Stable diffusion, картинки разные генерировал. Недавно пришла мысль, там же можно через python автоматизировать процесс. Да и тема написания бота тоже интересна. Нашёл, что через библиотеку "diffusers" можно это сделать. Просто беру код из примера, а оно генерирует максимально некачественные картинки с различными искажениями. И так и сяк пытался найти причину, аргументы менял, но не проканало. В интернете пока не нашёл ответ. Но ведь же в web ui генерация идёт вполне нормально и получаются хорошие картинки, а тут совсем всё плохо.
вот самый простейший код:
import torch
from diffusers import StableDiffusionPipeline
text2img = StableDiffusionPipeline.from_pretrained("CompVis/stable-diffusion-v1-4", use_safetensors = True, safety_checker = None, torch_dtype=torch.float16)
text2img.to("cuda")
# Генерация изображения
def Generate_Image(prmt, negprmt):
image = text2img(
prompt = prmt,
negative_prompt = negprmt,
width = 512,
height = 512,
samples = 1,
num_inference_steps = 25,
guidance_scale = 6.5,
).images[0]
image.save("./Output/output.png")
prmt = "a girl, brown eyes, black hair, red skirt, white shirt"
negprmt = ""
Generate_Image(prmt, negprmt)
Не претендую на звание программиста, знаю очень немного, увлекаюсь так для интереса.
Выдаёт ужасные результаты, хоть негативный промт правь, хоть обычный. gfc если поменьше поставить, то лучше становиться с генерацией человека, но тогда фон страдает. Пробовал разные модели использовать так же.
Вот пример генерации:
В общем не понимаю пока как решить эту проблему. Ведь в webui даже если просто ввести одно слово с такими же значениями gfc, размером и т.д. он сделает хорошо.