[{"data":1,"prerenderedAt":464},["ShallowReactive",2],{"project-33561232":3},{"id":4,"name":5,"line":6,"line_source":7,"title":8,"url":9,"domain":10,"maker":11,"posted_at":12,"year":13,"points":14,"comments":15,"rank_in_year":16,"shown_in_year":17,"top":18,"tier":19,"category":20,"subcategory":21,"format":22,"keywords":23,"reception":28,"sentiment":29,"stance_mix":30,"scored_comments":35,"aspects":36,"strip":48,"post_text":49,"what":50,"said":95,"maker_in_thread":213,"shape":223,"grid":227,"attempts":426,"same_week":427,"maker_shows":38,"maker_hidden":456,"reader_version":457,"card":458},"33561232","A little side project","A watercolor art generator","title","Show HN: A little side project, a watercolor art generator","https:\u002F\u002Fbrushify.art\u002F?couponCode=HACKER-NEWS","brushify.art","nfriend",1668177131,2022,224,71,237,2570,10,"notable","creative","photo filter","web_app",[24,25,26,27],"watercolor filter","photo to watercolor","image effect","gimp","curious",-0.048,{"positive":31,"neutral":32,"mixed":33,"critical":34},5,23,3,8,39,{"idea":37,"execution":40,"performance":41,"design":43,"privacy":45,"pricing":46,"docs":47},{"positive":38,"critical":39},1,0,{"positive":39,"critical":38},{"positive":39,"critical":42},6,{"positive":44,"critical":39},2,{"positive":39,"critical":39},{"positive":39,"critical":39},{"positive":39,"critical":39},[33,38,33,39,39,39,39,39,39,39,39,39,33,33,39,33,39,39,33,33,33,33,33,31,33,33,38,33,31,33,31,33,31,38,38,38,38,38,39,39],"Hi HN - this is a little side project I threw together. Some implementation details: image processing is all done with headless GIMP (running inside a Docker container) through its built-in Python API. It's _very_ slow (about 50 seconds\u002Fimage), and currently it processes exactly one image at a time. The website is built with NextJS; payments are processed by Stripe.\n\nI've had the best results with pictures of houses, although certain photos of people or nature can look neat, too. (For example: https:\u002F\u002Fbrushify.art\u002Fs\u002FruYmQWk, original photo from https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FPillars_of_Creation",{"problem":51,"audience":57,"pricing":58,"motivation":66,"time_to_build":57,"stack":70,"openness":92,"stage":93,"team_size":94},{"value":52,"source":53,"evidence":54},"Turning photos into watercolor-style images","maker",[55],{"id":56},"post",null,{"value":59,"source":60,"evidence":61},"Paid option, about $5.99 per image","commenter",[62],{"id":63,"by":64,"text":65},"33561536","hollowdene","Can't see myself paying $5.99 for one of these, but it's nice. I appreciated the fun messages in the progress bar. PS: Congrats on the little one. :D",{"value":67,"source":53,"evidence":68},"Side project for fun",[69],{"id":56},[71,75,79,83],{"value":72,"source":53,"evidence":73},"NextJS",[74],{"id":56},{"value":76,"source":53,"evidence":77},"Stripe",[78],{"id":56},{"value":80,"source":53,"evidence":81},"GIMP Python API (headless, in Docker)",[82],{"id":56},{"value":84,"source":53,"evidence":85},"AWS EC2 t3.xlarge",[86,89],{"id":87,"by":11,"text":88},"33563854","Currently running on a t3.medium AWS EC2 instance! (My max budget is currently $50\u002Fmonth since I get that much in AWS credits each month for building an Alexa skill a few years…",{"id":90,"by":11,"text":91},"33565595","Done - upgraded to a t3.xlarge. Now it can process 4 images in parallel. Still not enough to keep up with HN demand, but it should chew through the queue a _bit_ faster.","unknown","launched","solo",{"praise":96,"objections":120,"requests":144,"questions":172,"alternatives":191},[97,112],{"value":98,"source":60,"evidence":99},"Results look cool",[100,104,108],{"id":101,"by":102,"text":103},"33561510","Kaotique","Looks really nice!",{"id":105,"by":106,"text":107},"33561535","tristanbvk","Very vool",{"id":109,"by":110,"text":111},"33567803","wingworks","The results are pretty cool, though it's a shame it cropped the edges. https:\u002F\u002Fbrushify.art\u002Fresult\u002Faa4e68ae-d9de-4673-830e-f88032ec50ac?couponCode=HACKER-NEWS",{"value":113,"source":60,"evidence":114},"Fun progress messages",[115,116],{"id":63,"by":64,"text":65},{"id":117,"by":118,"text":119},"33567571","diego_moita","I just loved the messages while it is processing!",[121,136,140],{"value":122,"source":60,"evidence":123},"Very long queue and wait times",[124,128,132],{"id":125,"by":126,"text":127},"33562221","pknerd","The message on the page: It's a busy day! There are currently 512 people in front of you. Please keep this tab open! Estimated wait time: 7 hours, 7 minutes",{"id":129,"by":130,"text":131},"33563267","notyourav","14h wait time",{"id":133,"by":134,"text":135},"33561668","moffkalast","> Estimated wait time: 2 hours, 35 minutes Bruh moment. I suppose it would make more sense to WASM the implementation and run it clientside?",{"value":137,"source":60,"evidence":138},"Output cropping edges",[139],{"id":109,"by":110,"text":111},{"value":141,"source":53,"evidence":142},"Slow processing",[143],{"id":56},[145,157,165],{"value":146,"source":60,"evidence":147},"Run processing in the browser via WASM",[148,152,156],{"id":149,"by":150,"text":151},"33562827","tfsh","The example looks cool, but I'm currently in an 11 hour queue :( Any chance of porting this to the web using WASM? I've used ImageMagick in the browser before, I've never used…",{"id":153,"by":154,"text":155},"33565762","andai","Here's a suggestion, port it to run in the browser. Free parallelism, because every user brings their own hardware :) So it scales infinitely, for free.",{"id":133,"by":134,"text":135},{"value":158,"source":60,"evidence":159},"Remove queued jobs when users leave",[160,164],{"id":161,"by":162,"text":163},"33561591","iruoy","It's not exactly a hug of death, but a wait time of 90m is a bit long. I hope that people that leave the queue won't be processed.",{"id":149,"by":150,"text":151},{"value":166,"source":60,"evidence":167},"Add example images on main page",[168],{"id":169,"by":170,"text":171},"33561921","kuu","My recommendation: Add examples on the main page, so the new users don't need to overload your site. Otherwise the process is the following: I enter the page -> Upload image ->…",[173,180],{"value":174,"source":60,"evidence":175},"What happens to uploaded images after processing?",[176],{"id":177,"by":178,"text":179},"33568531","seshagiric","I understand it's a side project but you do have a paid offering. So I am curious what are you doing with the images after they are processed?",{"value":181,"source":60,"evidence":182},"How is the GIMP processing implemented?",[183,187],{"id":184,"by":185,"text":186},"33563156","wishinghand","How is the image processing being done? In broad strokes, what're you doing with the Python API?",{"id":188,"by":189,"text":190},"33572152","ikkjo","Would you be willing to share some details on the GIMP implementation? Are you actually generating brush strokes and \"paint\" the image or is it more filter based? The background…",[192,199,206],{"value":193,"source":60,"evidence":194},"Stable Diffusion with dreambooth",[195],{"id":196,"by":197,"text":198},"33562884","synapticpaint","It sounds like your app turns photos into a watercolor style image? You can definitely do this faster with Stable Diffusion (~6s per image before optimization). Here's how I…",{"value":200,"source":60,"evidence":201},"Photopea watercolor filter",[202],{"id":203,"by":204,"text":205},"33562738","bambax","> I'd like to play around with is swapping the GIMP script for an AI-based process Dall-e offers an API with some limitations (max 4MB square PNG, content filtering):…",{"value":207,"source":60,"evidence":208},"Instapainting watercolor filter",[209],{"id":210,"by":211,"text":212},"33568519","chrischen","Our watercolor filter produces pretty good results (the Flower Market filter which also happens to be the example shown): https:\u002F\u002Fwww.instapainting.com\u002Fassets You can implement…",{"comments":214,"answered":33,"key":215},9,[216,217,220],{"id":87,"text":88},{"id":218,"text":219},"33563820","Very interesting, I will look into this! Thanks!",{"id":221,"text":222},"33561710","Sorry all for the long wait times! Was not expecting much interest. At the very least, I need to look into removing photos from the queue when people exit the page.",{"commenters":224,"max_depth":214,"maker_replies":214,"first_comment_mins":225,"lifespan_hours":226},52,16,87,[228,232,235,237,239,243,245,248,252,255,258,260,263,266,268,271,273,275,277,280,282,284,288,291,292,295,298,301,303,305,307,308,310,312,313,315,317,318,321,323,328,333,338,341,344,347,350,355,357,360,365,369,372,375,379,381,383,385,389,393,396,399,401,405,407,412,415,417,420,423],[229,39,33,230,231,39],"33563585","project\u002Fneutral\u002Fidea","rikroots",[233,39,39,234,189,39],"33572209","commenter\u002Fneutral\u002Fnone",[169,38,38,236,170,39],"project\u002Fcritical\u002Fexecution",[196,44,33,238,197,39],"project\u002Fneutral\u002Fperformance",[240,44,39,241,242,39],"33563061","commenter\u002Fneutral\u002Fperformance","wongarsu",[87,44,39,244,11,38],"maker\u002Fneutral\u002Fperformance",[246,44,39,247,197,39],"33565436","commenter\u002Fneutral\u002Fidea",[249,44,39,250,251,39],"33563219","other\u002Fneutral\u002Fnone","rlv-dan",[253,44,39,234,254,39],"33563484","adammarples",[256,44,39,250,257,39],"33565204","jamesgreenleaf",[259,44,39,250,197,39],"33565543",[261,44,39,250,262,39],"33565560","JoeAltmaier",[264,44,39,250,265,39],"33568408","UncleEntity",[267,44,39,250,262,39],"33572591",[269,44,39,250,270,39],"33574438","jasonjmcghee",[272,44,39,250,262,39],"33583377",[274,44,39,250,270,39],"33605737",[276,44,39,250,262,39],"33565576",[278,44,39,250,279,39],"33570171","conductr",[218,44,39,281,11,38],"maker\u002Fpositive\u002Fnone",[221,33,39,283,11,38],"maker\u002Fneutral\u002Fexecution",[285,33,33,286,287,39],"33562139","project\u002Fneutral\u002Fexecution","selcuka",[289,33,39,290,11,38],"33564194","maker\u002Fpositive\u002Fexecution",[184,33,33,286,185,39],[293,33,39,250,294,39],"33564108","dylan604",[296,33,39,250,297,39],"33564436","gilleain",[299,33,33,286,300,39],"33563839","jansan",[302,33,39,283,11,38],"33563871",[304,33,39,290,11,38],"33564278",[306,33,39,244,11,38],"33564648",[90,33,39,244,11,38],[149,309,33,238,150,39],4,[109,31,33,311,110,39],"project\u002Fmixed\u002Fdesign",[210,42,39,250,211,39],[153,314,33,286,154,39],7,[316,34,33,230,270,39],"33562825",[203,214,33,230,204,39],[319,18,33,238,320,39],"33562006","gregoriol",[188,322,33,286,189,39],11,[324,325,33,326,327,39],"33561826",12,"project\u002Fmixed\u002Fperformance","justchad",[329,330,33,331,332,39],"33561878",13,"project\u002Fneutral\u002Fdesign","_448",[334,335,31,336,337,39],"33561522",14,"project\u002Fpositive\u002Fnone","yuvalkarmi",[177,339,33,340,178,39],15,"project\u002Fneutral\u002Fprivacy",[342,225,33,286,343,39],"33565910","asmosoinio",[63,345,33,346,64,39],17,"project\u002Fmixed\u002Fpricing",[161,348,38,349,162,39],18,"project\u002Fcritical\u002Fperformance",[351,352,33,353,354,39],"33562709",19,"project\u002Fneutral\u002Fdocs","_dan",[125,356,33,238,126,39],20,[358,356,33,238,359,39],"33563329","thih9",[361,362,31,363,364,39],"33569519",21,"project\u002Fpositive\u002Fidea","keizo",[366,367,33,238,368,39],"33562130",22,"stoobs",[370,32,33,230,371,39],"33566305","the_arun",[117,373,31,374,118,39],24,"project\u002Fpositive\u002Fdesign",[376,377,33,286,378,39],"33565323",25,"Kiro",[101,380,31,374,102,39],26,[129,382,38,349,130,39],27,[105,384,31,336,106,39],28,[386,387,38,349,388,39],"33563093",29,"hackmiester",[390,391,33,238,392,39],"33563320",30,"XCSme",[394,391,33,238,395,39],"33563644","calibas",[397,391,38,349,398,39],"33563958","TT-392",[133,400,33,238,134,39],31,[402,403,38,349,404,39],"33562560",32,"ale42",[406,403,38,349,231,39],"33563291",[408,409,38,410,411,39],"33561454",33,"maker\u002Fcritical\u002Fnone","xchip",[413,409,39,234,414,39],"33561498","KraxKrokat",[416,409,39,234,337,39],"33561516",[418,409,39,234,419,39],"33561583","quest88",[421,409,39,422,11,38],"33561606","maker\u002Fneutral\u002Fnone",[424,409,39,234,425,39],"33561754","pvg",[],[428,433,438,443,447,452],{"id":429,"name":430,"points":431,"category":432},"33582264","Upbase",632,"productivity",{"id":434,"name":435,"points":436,"category":437},"33568994","Wa-tunnel",453,"infrastructure",{"id":439,"name":440,"points":441,"category":442},"33592990","Openblocks",420,"dev_tools",{"id":444,"name":445,"points":446,"category":437},"33599095","DivestOS",334,{"id":448,"name":449,"points":450,"category":451},"33608892","Campus FM",212,"consumer_social",{"id":453,"name":454,"points":455,"category":442},"33575524","GitHub business card",210,false,"v2",{"id":459,"name":5,"line":6,"ai":456,"cat":20,"year":13,"points":14,"comments":15,"rec":28,"s":460,"top":18,"kw":461,"maker":11,"domain":10,"tier":19,"attempts":39,"strip":462,"url":9,"mix":463,"praise":98,"objection":122,"sub":21},33561232,-0.05,[24,25,26,27],"3130000000003303003333353313535351111100",[31,32,33,34],1794036627148]