Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions ai_diffusion/backend/workflow.py
Original file line number Diff line number Diff line change
Expand Up @@ -61,6 +61,8 @@ def generate_seed():
# Currently only using 32 bit because Qt widgets don't support int64
return random.randint(0, 2**32 - 1)

def iterate_seed(old_seed):
return (old_seed + 1) % (2**32 - 1)

def sampling_from_style(style: Style, strength: float, is_live: bool):
sampler_name = style.live_sampler if is_live else style.sampler
Expand Down
8 changes: 7 additions & 1 deletion ai_diffusion/model/model.py
Original file line number Diff line number Diff line change
Expand Up @@ -928,6 +928,9 @@
def generate_seed(self):
self.seed = workflow.generate_seed()

def iterate_seed(self):
self.seed = workflow.iterate_seed(self.seed)

def save_result(self, job_id: str, index: int):
_save_job_result(self, self.jobs.find(job_id), index)

Expand Down Expand Up @@ -1322,9 +1325,12 @@
region_behavior = ApplyRegionBehavior.layer_group
self.model.apply_result(self.result, params, behavior, region_behavior)

if settings.new_seed_after_apply:
if settings.new_seed_after_apply == random:

Check failure on line 1328 in ai_diffusion/model/model.py

View workflow job for this annotation

GitHub Actions / check

ruff (undefined-name)

ai_diffusion/model/model.py:1328:45: undefined-name: Undefined name `random`

Check failure on line 1328 in ai_diffusion/model/model.py

View workflow job for this annotation

GitHub Actions / check

"random" is not defined (reportUndefinedVariable)
self.model.generate_seed()

if settings.new_seed_after_apply == iterate:

Check failure on line 1331 in ai_diffusion/model/model.py

View workflow job for this annotation

GitHub Actions / check

ruff (undefined-name)

ai_diffusion/model/model.py:1331:45: undefined-name: Undefined name `iterate`

Check failure on line 1331 in ai_diffusion/model/model.py

View workflow job for this annotation

GitHub Actions / check

"iterate" is not defined (reportUndefinedVariable)
self.model.iterate_seed()

@property
def result(self):
return self._result
Expand Down
9 changes: 7 additions & 2 deletions ai_diffusion/settings.py
Original file line number Diff line number Diff line change
Expand Up @@ -122,6 +122,11 @@
return ImageFileFormat.jpeg
return self

class NewSeedMode(Enum):
disabled = (_("Disabled"), 0)
random = (_("Random"), 1)
iterate = (_("Iterate"), 2)


class PerformancePresetSettings(NamedTuple):
batch_size: int = 4
Expand Down Expand Up @@ -256,10 +261,10 @@
_("NSFW Filter"), 0.0, _("Attempt to filter out images with explicit content")
)

new_seed_after_apply: bool
new_seed_after_apply: NewSeedMode
_new_seed_after_apply = Setting(
_("Live: New Seed after Apply"),
False,
undefined,

Check failure on line 267 in ai_diffusion/settings.py

View workflow job for this annotation

GitHub Actions / check

ruff (undefined-name)

ai_diffusion/settings.py:267:9: undefined-name: Undefined name `undefined`

Check failure on line 267 in ai_diffusion/settings.py

View workflow job for this annotation

GitHub Actions / check

"undefined" is not defined (reportUndefinedVariable)
_("Pick a new seed after copying the result to the canvas in Live mode"),
)

Expand Down
Loading