--- license: mit --- Experimenting with Flux finetune on Glitch Images generated using this^ Processing script I had fun with recently. WIP and doesn't enforce the style consistently but it's pretty cool. Plays well with andreasjansson/flux-shapes (On Replicate) LoRA - also trained on synthetic data with a nice opinionated color palette. Check the examples for trigger words etc at https://replicate.com/janghaludu/kocchaga ^ ``` // GLITCHED Manoloide's Script int seed = int(random(999999)); void setup() { size(960, 960, P2D); smooth(8); pixelDensity(2); generate(); } void draw() { generate(); } void keyPressed() { if (key == 's') saveImage(); else { seed = int(random(999999)); generate(); } } //https://coolors.co/f2f2e8-ffe41c-ef3434-ed0076-3f9afc int colors[] = {#155263, #FF6F3C, #FF9A3C, #FFC93C}; int rcol() { return colors[int(random(colors.length))]; } int getColor(float v) { v = abs(v); v = v%(colors.length); int c1 = colors[int(v%colors.length)]; int c2 = colors[int((v+1)%colors.length)]; return lerpColor(c1, c2, v%1); } void shuffleArray(int[] array) { for (int i = array.length; i > 1; i--) { int j = int(random(i)); int tmp = array[j]; array[j] = array[i-1]; array[i-1] = tmp; } } void generate() { background(0); int cc = int(random(7, random(8, 160))); float ss = width*1./cc; /* noStroke(); fill(210); rectMode(CENTER); for (int j = 0; j < cc; j++) { for (int i = 0; i < cc; i++) { rect(i*ss, j*ss, 3, 3); } } */ stroke(30); noStroke(); int dx = int(random(-5, 5)); int dy = int(random(-5, 5)); for (int k = 0; k < 100; k++) { int lar = int(random(8, random(8, 50))); int ax = int(random(-4, cc+4)); int ay = int(random(-4, cc+4)); ArrayList points = new ArrayList(); for (int i = 0; i < lar; i++) { points.add(new PVector(ax, ay)); ax += int(random(-5, 5)); ay += int(random(-5, 5)); } int sub = int(random(1, 50)); int shw = 40; for (int j = 0; j < sub; j++) { beginShape(); int col = ((j%2)== 1)? 2 : (int(random(150, 250))-shw); fill(col); float d1 = map(j-2, 0, sub, 0, 12); float d2 = map(j+1, 0, sub, 0, 1); for (int i = 0; i < points.size(); i++) { PVector p1 = points.get(i); stroke(255-(col+(((i%2)== 0)? shw : 0))); fill(col+(((i%2)== 0)? shw : rcol())); vertex((p1.x+dx*d1)*ss, (p1.y+dy*d1)*ss); } for (int i = points.size()-1; i >=0; i--) { PVector p1 = points.get(i); stroke(255-(col+((((i+1)%2)== 0)? rcol() : 0))); fill(col+((((i+1)%2)== 0)? rcol() : 0)); vertex((p1.x+dx*d2)*ss, (p1.y+dy*d2)*ss); } endShape(CLOSE); } } } void saveImage() { String timestamp = year() + nf(month(), 2) + nf(day(), 2) + "-" + nf(hour(), 2) + nf(minute(), 2) + nf(second(), 2); saveFrame(timestamp+".png"); } ```