mirror of
https://github.com/invoke-ai/InvokeAI
synced 2024-08-30 20:32:17 +00:00
9ad4c03277
1) Downgrade numpy to avoid dependency conflict with numba 2) Move all non ldm/invoke files into `invokeai`. This includes assets, backend, frontend, and configs. 3) Fix up way that the backend finds the frontend and the generator finds the NSFW caution.png icon.
48 lines
1.2 KiB
Python
48 lines
1.2 KiB
Python
def parse_seed_weights(seed_weights):
|
|
"""
|
|
Accepts seed weights as string in "12345:0.1,23456:0.2,3456:0.3" format
|
|
Validates them
|
|
If valid: returns as [[12345, 0.1], [23456, 0.2], [3456, 0.3]]
|
|
If invalid: returns False
|
|
"""
|
|
|
|
# Must be a string
|
|
if not isinstance(seed_weights, str):
|
|
return False
|
|
# String must not be empty
|
|
if len(seed_weights) == 0:
|
|
return False
|
|
|
|
pairs = []
|
|
|
|
for pair in seed_weights.split(","):
|
|
split_values = pair.split(":")
|
|
|
|
# Seed and weight are required
|
|
if len(split_values) != 2:
|
|
return False
|
|
|
|
if len(split_values[0]) == 0 or len(split_values[1]) == 1:
|
|
return False
|
|
|
|
# Try casting the seed to int and weight to float
|
|
try:
|
|
seed = int(split_values[0])
|
|
weight = float(split_values[1])
|
|
except ValueError:
|
|
return False
|
|
|
|
# Seed must be 0 or above
|
|
if not seed >= 0:
|
|
return False
|
|
|
|
# Weight must be between 0 and 1
|
|
if not (weight >= 0 and weight <= 1):
|
|
return False
|
|
|
|
# This pair is valid
|
|
pairs.append([seed, weight])
|
|
|
|
# All pairs are valid
|
|
return pairs
|