FastStableDifussion / src /frontend /gui /image_variations_widget.py
YoBatM's picture
Upload folder using huggingface_hub
99b955f verified
from PyQt5.QtWidgets import (
QWidget,
QPushButton,
QHBoxLayout,
QVBoxLayout,
QLabel,
QLineEdit,
QMainWindow,
QSlider,
QTabWidget,
QSpacerItem,
QSizePolicy,
QComboBox,
QCheckBox,
QTextEdit,
QToolButton,
QFileDialog,
QApplication,
)
from PyQt5 import QtWidgets, QtCore
from PyQt5.QtGui import QPixmap, QDesktopServices, QDragEnterEvent, QDropEvent
from PyQt5.QtCore import QSize, QThreadPool, Qt, QUrl, QBuffer
import io
from PIL import Image
from constants import DEVICE
from PIL.ImageQt import ImageQt
from app_settings import AppSettings
from urllib.parse import urlparse, unquote
from frontend.gui.img2img_widget import Img2ImgWidget
from backend.models.lcmdiffusion_setting import DiffusionTask
from frontend.gui.image_generator_worker import ImageGeneratorWorker
from frontend.webui.image_variations_ui import generate_image_variations
class ImageVariationsWidget(Img2ImgWidget):
def __init__(self, config: AppSettings, parent):
super().__init__(config, parent)
# Hide prompt and negative prompt widgets
self.prompt.hide()
self.neg_prompt_label.hide()
self.neg_prompt.setEnabled(False)
def generate_image(self):
self.parent.prepare_generation_settings(self.config)
self.config.settings.lcm_diffusion_setting.diffusion_task = (
DiffusionTask.image_to_image.value
)
self.config.settings.lcm_diffusion_setting.prompt = ""
self.config.settings.lcm_diffusion_setting.negative_prompt = ""
self.config.settings.lcm_diffusion_setting.init_image = Image.open(
self.img_path.text()
)
self.config.settings.lcm_diffusion_setting.strength = self.strength.value() / 10
images = generate_image_variations(
self.config.settings.lcm_diffusion_setting.init_image,
self.config.settings.lcm_diffusion_setting.strength,
)
self.prepare_images(images)
self.after_generation()
# Test the widget
if __name__ == "__main__":
import sys
app = QApplication(sys.argv)
widget = ImageVariationsWidget(None, None)
widget.show()
app.exec()