Skip to content

Commit

Permalink
0.8.3 (#246)
Browse files Browse the repository at this point in the history
* Increase animation timeout for SDXL v0.9 model 
* Add support for specifying style preset in CLI and StabilityInference.generate
* Update demo notebook
  • Loading branch information
pharmapsychotic authored Jun 30, 2023
1 parent 6d19f09 commit 0c8e81b
Show file tree
Hide file tree
Showing 5 changed files with 66 additions and 119 deletions.
17 changes: 11 additions & 6 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -48,12 +48,13 @@ Be sure to check out [Platform](https://platform.stability.ai) for comprehensive
## Command line usage

```
usage: python -m stability_sdk generate [-h] [--height HEIGHT] [--width WIDTH] [--start_schedule START_SCHEDULE]
[--end_schedule END_SCHEDULE] [--cfg_scale CFG_SCALE] [--sampler SAMPLER]
[--steps STEPS] [--seed SEED] [--prefix PREFIX] [--engine ENGINE]
[--num_samples NUM_SAMPLES] [--artifact_types ARTIFACT_TYPES]
[--no-store] [--show] [--init_image INIT_IMAGE] [--mask_image MASK_IMAGE]
[prompt ...]
usage: python -m stability_sdk generate [-h] [--height HEIGHT] [--width WIDTH]
[--start_schedule START_SCHEDULE] [--end_schedule END_SCHEDULE]
[--cfg_scale CFG_SCALE] [--sampler SAMPLER] [--steps STEPS]
[--style_preset STYLE_PRESET] [--seed SEED] [--prefix PREFIX] [--engine ENGINE]
[--num_samples NUM_SAMPLES] [--artifact_types ARTIFACT_TYPES]
[--no-store] [--show] [--init_image INIT_IMAGE] [--mask_image MASK_IMAGE]
[prompt ...]
positional arguments:
prompt
Expand All @@ -76,6 +77,10 @@ options:
k_dpm_2_ancestral, k_lms, k_dpmpp_2m, k_dpmpp_2s_ancestral)
--steps STEPS, -s STEPS
[auto] number of steps
--style_preset STYLE_PRESET
[none] (3d-model, analog-film, anime, cinematic, comic-book, digital-art, enhance,
fantasy-art, isometric, line-art, low-poly, modeling-compound, neon-punk, origami,
photographic, pixel-art, tile-texture)
--seed SEED, -S SEED random seed to use
--prefix PREFIX, -p PREFIX
output prefixes for artifacts
Expand Down
143 changes: 35 additions & 108 deletions nbs/demo_colab.ipynb

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion setup.py
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@

setup(
name='stability-sdk',
version='0.8.2',
version='0.8.3',
author='Stability AI',
author_email='[email protected]',
maintainer='Stability AI',
Expand Down
4 changes: 4 additions & 0 deletions src/stability_sdk/animation.py
Original file line number Diff line number Diff line change
Expand Up @@ -332,6 +332,10 @@ def __init__(
# configure Api to retry on classifier obfuscations
self.api._retry_obfuscation = True

# two stage 1024 model requires longer timeout
if self.args.model.startswith('stable-diffusion-xl-1024'):
self.api._request_timeout = 120.0

# create output directory
if self.out_dir is not None:
os.makedirs(self.out_dir, exist_ok=True)
Expand Down
19 changes: 15 additions & 4 deletions src/stability_sdk/client.py
Original file line number Diff line number Diff line change
Expand Up @@ -171,6 +171,7 @@ def generate(
guidance_strength: Optional[float] = None,
guidance_prompt: Union[str, generation.Prompt] = None,
guidance_models: List[str] = None,
style_preset: Optional[str] = None
) -> Generator[generation.Answer, None, None]:
"""
Generate images from a prompt.
Expand All @@ -194,6 +195,7 @@ def generate(
:param guidance_strength: Strength of the guidance. We recommend values in range [0.0,1.0]. A good default is 0.25
:param guidance_prompt: Prompt to use for guidance, defaults to `prompt` argument (above) if not specified.
:param guidance_models: Models to use for guidance.
:param style_preset: Style preset name to use (see https://platform.stability.ai/rest-api#tag/v1generation)
:return: Generator of Answer objects.
"""
if (prompt is None) and (init_image is None):
Expand Down Expand Up @@ -288,7 +290,13 @@ def generate(
parameters=[generation.StepParameter(**step_parameters)],
)

return self.emit_request(prompt=prompts, image_parameters=image_parameters)
if style_preset and style_preset.lower() != 'none':
extras = Struct()
extras.update({ '$IPC': { "preset": style_preset } })
else:
extras = None

return self.emit_request(prompt=prompts, image_parameters=image_parameters, extra_parameters=extras)

def upscale(
self,
Expand Down Expand Up @@ -391,9 +399,10 @@ def emit_request(
yield answer
start = time.time()

def process_cli(logger: logging.Logger = None,
warn_client_call_deprecated: bool = True,
):
def process_cli(
logger: logging.Logger = None,
warn_client_call_deprecated: bool = True,
):
if not logger:
logger = logging.getLogger(__name__)
logger.setLevel(level=logging.INFO)
Expand Down Expand Up @@ -524,6 +533,7 @@ def process_cli(logger: logging.Logger = None,
)
parser_generate.add_argument(
"--seed", "-S", type=int, default=0, help="random seed to use")
parser_generate.add_argument("--style_preset", type=str, help="style preset name")
parser_generate.add_argument(
"--prefix",
"-p",
Expand Down Expand Up @@ -631,6 +641,7 @@ def process_cli(logger: logging.Logger = None,
"samples": args.num_samples,
"init_image": args.init_image,
"mask_image": args.mask_image,
"style_preset": args.style_preset,
}

if args.sampler:
Expand Down

0 comments on commit 0c8e81b

Please sign in to comment.