Задать вопрос
@GoldeNKingMiDaS

Как генерировать качественные изображения в stable diffusion используя python?

Доброго времени суток. Некоторое время назад увлекался 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 если поменьше поставить, то лучше становиться с генерацией человека, но тогда фон страдает. Пробовал разные модели использовать так же.

Вот пример генерации:
6869639380573553254502.png

В общем не понимаю пока как решить эту проблему. Ведь в webui даже если просто ввести одно слово с такими же значениями gfc, размером и т.д. он сделает хорошо.
  • Вопрос задан
  • 210 просмотров
Подписаться 2 Средний 4 комментария
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы