mirror of
https://github.com/vladmandic/automatic
synced 2026-09-19 09:14:35 +02:00
update stable cascade pipeline
This commit is contained in:
+5
-10
@@ -1,18 +1,18 @@
|
||||
#!/usr/bin/env python
|
||||
import os
|
||||
import io
|
||||
import time
|
||||
import base64
|
||||
import logging
|
||||
import argparse
|
||||
import requests
|
||||
import urllib3
|
||||
from PIL import Image
|
||||
|
||||
|
||||
sd_url = os.environ.get('SDAPI_URL', "http://127.0.0.1:7860")
|
||||
sd_username = os.environ.get('SDAPI_USR', None)
|
||||
sd_password = os.environ.get('SDAPI_PWD', None)
|
||||
|
||||
|
||||
logging.basicConfig(level = logging.INFO, format = '%(asctime)s %(levelname)s: %(message)s')
|
||||
log = logging.getLogger(__name__)
|
||||
urllib3.disable_warnings(urllib3.exceptions.InsecureRequestWarning)
|
||||
@@ -40,16 +40,11 @@ def post(endpoint: str, dct: dict = None):
|
||||
return req.json()
|
||||
|
||||
|
||||
def encode(fn):
|
||||
with open(fn, 'rb') as f:
|
||||
content = f.read()
|
||||
encoded = base64.b64encode(content).decode()
|
||||
return encoded
|
||||
|
||||
|
||||
def info(args): # pylint: disable=redefined-outer-name
|
||||
t0 = time.time()
|
||||
data = post('/sdapi/v1/png-info', { 'image': encode(args.input) })
|
||||
with open(args.input, 'rb') as f:
|
||||
content = f.read()
|
||||
data = post('/sdapi/v1/png-info', { 'image': base64.b64encode(content).decode() })
|
||||
t1 = time.time()
|
||||
log.info(f'received: {data} time={t1-t0:.2f}')
|
||||
|
||||
|
||||
@@ -856,10 +856,13 @@ def load_diffuser(checkpoint_info=None, already_loaded_state_dict=None, timer=No
|
||||
if model_type in ['Stable Cascade']: # forced pipeline
|
||||
# TODO experimental stable cascade
|
||||
try:
|
||||
shared.log.debug(f'StableCascade experimental: args={diffusers_load_config} device={devices.device} dtype={devices.dtype}')
|
||||
diffusers_load_config.pop("vae", None)
|
||||
diffusers_load_config.pop("variant", None)
|
||||
decoder = diffusers.StableCascadeDecoderPipeline.from_pretrained("stabilityai/stable-cascade", cache_dir=shared.opts.diffusers_dir, revision="refs/pr/17", **diffusers_load_config)
|
||||
shared.log.debug(f'StableCascade decoder: scale={decoder.latent_dim_scale}')
|
||||
prior = diffusers.StableCascadePriorPipeline.from_pretrained("stabilityai/stable-cascade-prior", cache_dir=shared.opts.diffusers_dir, **diffusers_load_config)
|
||||
shared.log.debug(f'StableCascade prior: scale={prior.resolution_multiple}')
|
||||
sd_model = diffusers.StableCascadeCombinedPipeline(
|
||||
tokenizer=decoder.tokenizer,
|
||||
text_encoder=decoder.text_encoder,
|
||||
@@ -869,9 +872,11 @@ def load_diffuser(checkpoint_info=None, already_loaded_state_dict=None, timer=No
|
||||
prior_prior=prior.prior,
|
||||
prior_text_encoder=prior.text_encoder,
|
||||
prior_tokenizer=prior.tokenizer,
|
||||
prior_tokenizer=prior.tokenizer,
|
||||
prior_scheduler=prior.scheduler,
|
||||
prior_feature_extractor=prior.feature_extractor,
|
||||
prior_image_encoder=prior.image_encoder)
|
||||
prior_prior_feature_extractor=prior.feature_extractor,
|
||||
prior_prior_image_encoder=prior.image_encoder)
|
||||
shared.log.debug(f'StableCascade combined: {sd_model.__class__.__name__}')
|
||||
except Exception as e:
|
||||
shared.log.error(f'Diffusers Failed loading {op}: {checkpoint_info.path} {e}')
|
||||
if debug_load:
|
||||
|
||||
Reference in New Issue
Block a user