fix: 🚑️ thread font loading

This created a huge lag on first opening of the browser.
The small drawback is that the webpage needs a reload
for fonts to be available
This commit is contained in:
melMass
2023-11-14 20:53:44 +01:00
parent 14ee9e23c0
commit e4da832b99
+13 -7
View File
@@ -1,9 +1,11 @@
import qrcode
from ..utils import pil2tensor
from ..utils import comfy_dir
import threading
from typing import cast
import qrcode
from PIL import Image
from ..log import log
from ..utils import comfy_dir, pil2tensor
# class MtbExamples:
# """MTB Example Images"""
@@ -74,9 +76,10 @@ class UnsplashImage:
CATEGORY = "mtb/generate"
def do_unsplash_image(self, width, height, random_seed, keyword=None):
import requests
import io
import requests
base_url = "https://source.unsplash.com/random/"
if width and height:
@@ -201,12 +204,14 @@ class TextToImage:
for font in fonts:
log.debug(f"Adding font {font}")
cls.fonts[font.stem] = font.as_posix()
TextToImage.fonts[font.stem] = font.as_posix()
@classmethod
def INPUT_TYPES(cls):
if not cls.fonts:
cls.CACHE_FONTS()
# cls.CACHE_FONTS()
thread = threading.Thread(target=cls.CACHE_FONTS)
thread.start()
else:
log.debug(f"Using cached fonts (count: {len(cls.fonts)})")
return {
@@ -252,9 +257,10 @@ class TextToImage:
def text_to_image(
self, text, font, wrap, font_size, width, height, color, background
):
from PIL import Image, ImageDraw, ImageFont
import textwrap
from PIL import Image, ImageDraw, ImageFont
font = self.fonts[font]
font = cast(ImageFont.FreeTypeFont, ImageFont.truetype(font, font_size))
if wrap == 0: