结合concurrent.futures.ThreadPoolExecutor 实现并行生成1: with ThreadPoolExecutor(max_workers=4) as executor: futures = [executor.submit(pipe, prompt) for prompt in prompts] results = [f.result() for f in as_completed(futures)]
中断规复机制
记录已生成的使命ID到暂时文件,重启时跳过已完成使命: if task_id not in processed_ids: generate_image() append_to_file("processed.txt", task_id)
记录使命进度至Redis或文件,崩溃后自动规复未完成批次[]: import redis r = redis.Redis() def resume_pipeline(): progress = r.get("current_batch") or 0 for i in range(progress, total_batches): generate_batch(i) r.set("current_batch", i+1)
接纳ThreadPoolExecutor并发处置惩罚,单GPU下实现每秒生成2-3张图像: from itertools import product from concurrent.futures import ThreadPoolExecutor def batch_generate(config): variables = config["variables"] combinations = product(*variables.values()) with ThreadPoolExecutor(max_workers=4) as executor: futures = [executor.submit(generate, config, combo) for combo in combinations] return [f.result() for f in futures]
利用prompt_weighting控制风格强度(如(cyberpunk:0.7)+(watercolor:0.3)): def blend_styles(base_prompt, styles): weighted_prompt = " + ".join([f"({s}:{w})" for s, w in styles.items()]) return f"{base_prompt} in style of {weighted_prompt}"