if args.gamma: g.gamma = args.gamma if args.zoom: g.ifs.d = args.zoom if args.colour or palette: g.ifs.transforms = [(p, t.get_mutated_colour(palette=palette) ) for (p,t) in g.ifs.transforms] if args.saturation: adjust_saturation(g, args.saturation) f = open(ifs_file, 'w') f.write(repr(g)) f.truncate() f.close() if __name__ == '__main__': parser = argparse.ArgumentParser() parser.add_argument("gen", help="Directory or file to regenerate.") parser.add_argument("--iterations", help="Number of iterations.", type=int) parser.add_argument("--points", help="Number of points.", type=int) parser.add_argument("--scale", help="Lighting scale adjustment.", type=float) parser.add_argument("--gamma", help="Gamma adjustment.", type = float) parser.add_argument("--zoom", help="Camera zoom - bigger numbers zoom out, default is 0.5.", type=float) parser.add_argument("--colour", help="Mutate colours.", action="store_true") parser.add_argument("--palette", help="Palette file.", type=file) parser.add_argument("--saturation", help="Saturation adjustment.", type=float) args = parser.parse_args() ifs_files = get_ifs_files(args.gen) update_files( ifs_files, args) run_jobs(('pypy pyifs.py --gen %s --desc %s' % (f, f) for f in ifs_files))
g1 = pyifs.Generator.from_file(f1) g1.ifs.transforms = [(p, t.get_mutated_transform(args.percent) ) for (p,t) in g1.ifs.transforms] if args.before: g1.before = [pyifs.Linear()] else: g1.before = [t.get_mutated_transform(args.percent) for t in g1.before] if args.after: g1.after = [pyifs.Linear(params={'c':0.0, 'f':0.0})] else: g1.after = [t.get_mutated_transform(args.percent) for t in g1.after] mutant_name = get_mutant_name(f1, args.suffix, i) g1.img_name = os.path.join(args.output_dir, mutant_name + '.png') child_file = open(os.path.join(args.output_dir, mutant_name + '.ifs'), 'w') child_file.write(repr(g1)) child_file.close() if __name__ == '__main__': parser = argparse.ArgumentParser() parser.add_argument("source", help="File or directory of files to mutate.") parser.add_argument("--percent", help="Percent of parameters to mutate out of 100.", default=50, type=int) parser.add_argument("--variants", help="Number of mutations per file.", default=4, type=int) parser.add_argument("--output_dir", help="Output directory for offspring specifications.", default=".") parser.add_argument("--suffix", help="Suffix to add to file name.", default="m") parser.add_argument("--before", help="Transform to put in before.") parser.add_argument("--after", help="Transform to put in after.") args = parser.parse_args() l1 = get_ifs_files(args.source) mutate(l1, args)
g = [pyifs.Generator.from_file(f) for f in c] tx = [x.ifs.transforms for x in g] child_name = "%s" % i t = [] counts = [random.randint(1,len(x)-1) for x in tx] max_count = max([len(x) for x in tx]) counts[-1] = max_count - sum(counts[:-1]) if max_count - sum(counts[:-1]) > 0 else 0 t = [] for x,count in zip(tx, counts): t += get_slice(x,count) ifs = pyifs.IFS( t ) random.shuffle(ifs.transforms) params = g[0].get_parameters() params['img_name'] = os.path.join(args.output_dir, child_name + '.png') child = pyifs.Generator(ifs, **params) child_file = open(os.path.join(args.output_dir, child_name + '.ifs'), 'w') child_file.write(repr(child)) child_file.close() if __name__ == '__main__': parser = argparse.ArgumentParser() parser.add_argument("breed", help="Directory or file to breed.") parser.add_argument("--output_dir", help="Output directory for offspring specifications [.].", default=".") parser.add_argument("--variants", help="Number of variations to create [8].", type=int, default=8) parser.add_argument("--parents", help="Number of variations to create [2].", type=int, default=2) args = parser.parse_args() l = get_ifs_files(args.breed) cross(l, args)