See stable-diffusion-private/inference.py ⎗ ✓ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25# mix conditioning vectors for prompts # @aero def prompt_mixing(model, prompt_body, batch_size): if "|" in prompt_body: prompt_parts = prompt_body.split("|") prompt_total_power = 0 prompt_sum = None for prompt_part in prompt_parts: prompt_power = 1 if ":" in prompt_part: prompt_sub_parts = prompt_part.split(":") try: prompt_power = float(prompt_sub_parts[1]) prompt_part = prompt_sub_parts[0] except: print("Error parsing prompt power! Assuming 1") prompt_vector = model.get_learned_conditioning([prompt_part]) if prompt_sum is None: prompt_sum = prompt_vector * prompt_power else: prompt_sum = prompt_sum + (prompt_vector * prompt_power) prompt_total_power = prompt_total_power + prompt_power return fix_batch(prompt_sum / prompt_total_power, batch_size) else: return fix_batch(model.get_learned_conditioning([prompt_body]), batch_size)