disco-diffusion-1
disco-diffusion-1 copied to clipboard
Multipliers feature seems to have broken Modifiers feature
Replication:
python disco.py --config_file=./examples/configs/artstudy2.yml --width_height="[256, 256]"
Problem 1:
The first problem that shows up immediately is that split_prompts errors because it's always expecting a multi valued array for prompts for some reason, but this can be fixed by doing something that doesn't require the post-init assignment like
def split_prompts(prompts, max_frames=None):
prompt_series = pd.Series([v for k, v in prompts.items()])
prompt_series = prompt_series.ffill().bfill()
return prompt_series
Problem 2 (main one):
It seems as though after the multipliers feature went in, using modifiers on its own does not work.
multargs
is being passed as the first argument to processModifiers()
:
https://github.com/entmike/disco-diffusion-1/blob/da528b4e5f17cc1f6fc8d3224923ea9ae5e916e5/dd.py#L2218-L2219
However in the implementation, processModifiers has two args and only the second is iterated over, so this method is always only returning the 1 job. https://github.com/entmike/disco-diffusion-1/blob/da528b4e5f17cc1f6fc8d3224923ea9ae5e916e5/dd.py#L2123-L2125
I tried the simple workaround of changing this to
multargs = processMultipliers(args=pargs)
jobs = processModifiers(args=multargs)
but this wasn't enough, and the problem must run deeper than the more correct argument placement. The only workaround I got working locally was to comment out processMultipliers()
and revert processModifiers()
to the version from 1f5af86
Thanks I am going to look at this, this week. I've been on vacation and putting out other fires but this is not ignored.
In the meanwhile I've been using the reverted version and the multipliers feature has been extremely useful for doing parameter studies, thanks for your work on this 💯