Commit a680d5ab authored by Your Name's avatar Your Name

Add --image-seed CLI argument for default image generation seed

- Added --image-seed argument to set default seed for image generation
- Updated diffusers and sd.cpp code to use request seed or CLI default seed
- Priority: request seed > CLI default seed > random
parent 7f60e0df
...@@ -3177,9 +3177,11 @@ async def create_image_generation(request: ImageGenerationRequest): ...@@ -3177,9 +3177,11 @@ async def create_image_generation(request: ImageGenerationRequest):
multi_model_manager.add_model(model_key, pipeline) multi_model_manager.add_model(model_key, pipeline)
# Generate images # Generate images
# Use request seed if provided, otherwise use CLI default seed
seed = request.seed if request.seed is not None else getattr(global_args, 'image_seed', None)
generator = None generator = None
if request.seed is not None: if seed is not None:
generator = torch.Generator(device=pipeline.device).manual_seed(request.seed) generator = torch.Generator(device=pipeline.device).manual_seed(seed)
# Quality: "standard" or "hd" # Quality: "standard" or "hd"
quality = request.quality or "standard" quality = request.quality or "standard"
...@@ -3268,6 +3270,9 @@ async def create_image_generation(request: ImageGenerationRequest): ...@@ -3268,6 +3270,9 @@ async def create_image_generation(request: ImageGenerationRequest):
steps = 4 # Default for fast generation steps = 4 # Default for fast generation
# Generate images using sd.cpp (run in thread to not block event loop) # Generate images using sd.cpp (run in thread to not block event loop)
# Use request seed if provided, otherwise use CLI default seed
seed = request.seed if request.seed is not None else getattr(global_args, 'image_seed', None)
result = await asyncio.to_thread( result = await asyncio.to_thread(
sd_model.generate_image, sd_model.generate_image,
prompt=request.prompt, prompt=request.prompt,
...@@ -3276,7 +3281,7 @@ async def create_image_generation(request: ImageGenerationRequest): ...@@ -3276,7 +3281,7 @@ async def create_image_generation(request: ImageGenerationRequest):
height=height, height=height,
cfg_scale=7.0, cfg_scale=7.0,
sample_steps=steps, sample_steps=steps,
seed=42, seed=seed if seed is not None else 42,
batch_count=request.n if request.n else 1, batch_count=request.n if request.n else 1,
) )
...@@ -3353,6 +3358,9 @@ async def create_image_generation(request: ImageGenerationRequest): ...@@ -3353,6 +3358,9 @@ async def create_image_generation(request: ImageGenerationRequest):
steps = 4 steps = 4
# Use request seed if provided, otherwise use CLI default seed
seed = request.seed if request.seed is not None else getattr(global_args, 'image_seed', None)
result = await asyncio.to_thread( result = await asyncio.to_thread(
sd_model.generate_image, sd_model.generate_image,
prompt=request.prompt, prompt=request.prompt,
...@@ -3361,7 +3369,7 @@ async def create_image_generation(request: ImageGenerationRequest): ...@@ -3361,7 +3369,7 @@ async def create_image_generation(request: ImageGenerationRequest):
height=height, height=height,
cfg_scale=7.0, cfg_scale=7.0,
sample_steps=steps, sample_steps=steps,
seed=42, seed=seed if seed is not None else 42,
batch_count=request.n if request.n else 1, batch_count=request.n if request.n else 1,
) )
...@@ -4306,6 +4314,12 @@ def parse_args(): ...@@ -4306,6 +4314,12 @@ def parse_args():
default=1.0, default=1.0,
help="CFG scale for image generation (default: 1.0 for Z-Image Turbo).", help="CFG scale for image generation (default: 1.0 for Z-Image Turbo).",
) )
parser.add_argument(
"--image-seed",
type=int,
default=None,
help="Default seed for image generation (default: random).",
)
parser.add_argument( parser.add_argument(
"--loadall", "--loadall",
action="store_true", action="store_true",
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment