[{"data":1,"prerenderedAt":473},["ShallowReactive",2],{"project-44281958":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":29,"sentiment":30,"stance_mix":31,"scored_comments":36,"aspects":37,"strip":48,"post_text":50,"what":51,"said":78,"maker_in_thread":210,"shape":218,"grid":223,"attempts":435,"same_week":436,"maker_shows":303,"maker_hidden":465,"reader_version":466,"card":467},"44281958","Meow","An Image File Format I made because PNGs and JPEGs suck for AI","title","Show HN: Meow – An Image File Format I made because PNGs and JPEGs suck for AI","https:\u002F\u002Fgithub.com\u002FKuberwastaken\u002Fmeow","github.com","kuberwastaken",1749990415,2025,98,78,746,3837,20,"notable","ai","image metadata format","library",[24,25,26,27,28],"image metadata","steganography","png","ai image datasets","lsb encoding","roasted",-0.604,{"positive":32,"neutral":33,"mixed":34,"critical":35},3,11,1,36,51,{"idea":38,"execution":40,"docs":43,"privacy":45,"performance":46,"design":47},{"positive":32,"critical":39},21,{"positive":41,"critical":42},0,4,{"positive":41,"critical":44},2,{"positive":41,"critical":32},{"positive":41,"critical":34},{"positive":41,"critical":42},[34,41,34,34,41,41,41,34,34,34,34,49,32,34,34,34,32,34,49,34,34,34,34,32,41,32,32,32,34,34,34,34,34,32,34,34,34,34,34,34],5,"One of the biggest context AI LLMs can get from images is their metadata, but it's extremely underutilized. and while PNG and JPEG both offer metadata, it gets stripped way too easily when sharing and is extremely limited for AI based workflows and offer minimal metadata entries for things that are actually useful. Plus, these formats are ancient (1995 and 1992) - it's about time we get an upgrade for our AI era. Meet MEOW (Metadata-Encoded Optimized Webfile) - an Open Source Image file format which is basically PNG on steroids and what I also like to call the purr-fect file format.\n\nInstead o",{"problem":52,"audience":58,"pricing":58,"motivation":59,"time_to_build":58,"stack":66,"openness":75,"stage":76,"team_size":77},{"value":53,"source":54,"evidence":55},"Image metadata gets stripped when shared, and existing formats carry little AI-useful metadata","maker",[56],{"id":57},"post",null,{"value":60,"source":54,"evidence":61},"PNG and JPEG metadata is stripped easily and is limited for AI workflows",[62,63],{"id":57},{"id":64,"by":11,"text":65},"44282804","True, it's probably the wording but I meant you could screenshot it and still have the data itself. > Maybe your format could have some use, but I don't find your motivation…",[67],{"value":68,"source":69,"evidence":70},"Python","commenter",[71],{"id":72,"by":73,"text":74},"44282603","daeken","> Python-based image file format This is one of the first lines of the readme. But this is PNG with some metadata encoded using the most naive steganographic technique (just…","open_source","prototype","unknown",{"praise":79,"objections":91,"requests":152,"questions":179,"alternatives":196},[80],{"value":81,"source":69,"evidence":82},"Embedding data alongside the image is a useful idea for pipelines",[83,87],{"id":84,"by":85,"text":86},"44282220","jpollock","Cool idea. I can see it being useful in a pipeline, where you mutate the image as you go. Losing referenced data can be a pain. Are you able to extract the original image?",{"id":88,"by":89,"text":90},"44283027","voxleone","Great idea and insight. If i understand, it will allow you to embed metadata such as bounding box coordinates and class names, something I have also been working on[0] --…",[92,111,130,141],{"value":93,"source":69,"evidence":94},"Steganographic metadata is fragile and lost on resizing, recompression or JPEG conversion",[95,99,103,107],{"id":96,"by":97,"text":98},"44282203","ahofmann","So converting the file to a lossy format, or resizing the image as png will destroy the encoded information? I see why one wants to use it, but I think it can be only useful in a…",{"id":100,"by":101,"text":102},"44282722","Dwedit","Metadata gets stripped by most websites. Embedding metadata into the pixels by using the least significant bits of RGB won't cut it, that stuff is gone when the file becomes a…",{"id":104,"by":105,"text":106},"44282766","hiccuphippo","Does this survive resizing images or converting from png to jpg? (or worse, taking jpg screenshots of resized pngs). Because that also happens a lot when sharing images.",{"id":108,"by":109,"text":110},"44282213","fao_","> Instead of storing metadata alongside the image where it can be lost, MEOW ENCODES it directly inside the image pixels using LSB steganography That makes the data much more…",{"value":112,"source":69,"evidence":113},"Existing formats and EXIF\u002Fsidecar JSON already solve this",[114,118,122,126],{"id":115,"by":116,"text":117},"44282413","ai_critic","Reality check: Your extra data is a big JSON blob. Okay, fine. File formats dating back to Targa (https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FTruevision_TGA) support arbitrary text blobs if…",{"id":119,"by":120,"text":121},"44282308","gavinray","Maybe I'm jaded, but I fail to see how a bespoke file format is a better solution than bundling a normal image and a JSON\u002FXML document containing metadata that adheres to a…",{"id":123,"by":124,"text":125},"44282666","kookamamie","This is not a good idea in practice. Why not bundle the metadata as JSON or Protobuf via an aux file?",{"id":127,"by":128,"text":129},"44282119","jbverschoor","Why not simply JXL? It has multiple channels, can store any metadata, is lossy\u002Flossless.",{"value":131,"source":69,"evidence":132},"LSB embedding introduces visible noise and degrades training data",[133,137],{"id":134,"by":135,"text":136},"44283023","bastawhiz","Modifying the image in any way (cropping, resizing, etc) destroys the metadata. This is necessary in basically every application that interacts with any kind of model that uses…",{"id":138,"by":139,"text":140},"44282736","can16358p","Nice work! Though I have one question: once 2 bits\u002Fchannel are used with Meow-specific data thus leaving 6bits\u002Fchannel, I doubt how it can still retain perfect image quality when…",{"value":142,"source":69,"evidence":143},"Precomputed features like edge maps become obsolete and are poorly motivated",[144,148],{"id":145,"by":146,"text":147},"44282306","a2128","You're adding metadata, but what problems does this added metadata solve exactly? If your converter can automatically compute these image features, then AI training and inference…",{"id":149,"by":150,"text":151},"44282179","kevingadd","I don't understand the purpose of effectively hard-coding things like edge detection and attention weight maps into the image. There are various ways to do edge detection and…",[153,162,168],{"value":154,"source":54,"evidence":155},"Add redundancy and error correction",[156,159],{"id":157,"by":11,"text":158},"44282931","Hi! Thanks for checking it out, means a lot :) Yes, it is a big JSON blob atm, haha and t's definitely still a POC, but the idea is to avoid having a separate JSON file that adds…",{"id":160,"by":11,"text":161},"44282878","That's fair and how it's traditionally done but the entire idea of this was to have everything you need on the image itself and reduce the complexity and extra files, no risk of…",{"value":163,"source":54,"evidence":164},"Test how much re-encoding the format survives",[165],{"id":166,"by":11,"text":167},"44282842","Great point, I like that idea too: I’ll definitely look into adding redundancy and testing how much re-encoding it can realistically handle without noticeable image damage.…",{"value":169,"source":69,"evidence":170},"Consider a sidecar-style naming like image.png.meow",[171,175],{"id":172,"by":173,"text":174},"44282474","zdw","It would be better to use this as an additional extension before the normal extension like other tools that embed additional metadata do. For example, Draw.io can embed original…",{"id":176,"by":177,"text":178},"44283901","moritzwarhier","Why not store metadata, along with a checksum of the png, in myPublicPhoto.png.meow? Labeling and metadata a separate concerns. \"Edge detection maps\" etc are implementation…",[180,185,192],{"value":181,"source":69,"evidence":182},"Does the metadata survive resizing or PNG to JPG conversion?",[183,184],{"id":104,"by":105,"text":106},{"id":96,"by":97,"text":98},{"value":186,"source":69,"evidence":187},"What happens when the metadata exceeds the pixel capacity?",[188],{"id":189,"by":190,"text":191},"44283486","vunderba","The amount of information you can encode using EXIF\u002FIPTC doesn't have an upper-bound the way that using stenography is inherently capped by the resolution of the image. What…",{"value":193,"source":69,"evidence":194},"Can the original image be extracted?",[195],{"id":84,"by":85,"text":86},[197,201,206],{"value":198,"source":69,"evidence":199},"EXIF and iTXt metadata chunks in PNG",[200],{"id":115,"by":116,"text":117},{"value":202,"source":69,"evidence":203},"JPEG XL, WebP, HEIF, JPEG 2000",[204,205],{"id":108,"by":109,"text":110},{"id":127,"by":128,"text":129},{"value":207,"source":69,"evidence":208},"Sidecar JSON bundled with the image",[209],{"id":119,"by":120,"text":121},{"comments":211,"answered":32,"key":212},12,[213,216,217],{"id":214,"text":215},"44282780","> You generated pretty much ~all of this with Claude Haha no, it was a reworked version of an older image format I found that I modified to fit this, yes, there was AI assisted…",{"id":157,"text":158},{"id":160,"text":161},{"commenters":219,"max_depth":220,"maker_replies":211,"first_comment_mins":221,"lifespan_hours":222},48,7,40,23,[224,226,230,233,235,238,242,246,248,250,252,254,256,258,259,262,264,266,268,270,271,275,279,280,282,285,288,289,291,293,296,299,302,304,306,308,311,313,315,317,320,321,323,328,332,336,339,342,344,347,352,354,357,359,361,364,367,369,371,372,375,378,381,383,388,390,394,397,399,402,407,412,416,420,423,425,427,431],[108,41,34,225,109,41],"project\u002Fcritical\u002Fidea",[227,41,41,228,229,41],"44282503","other\u002Fneutral\u002Fnone","thinkingQueen",[231,41,41,228,232,41],"44282709","magicalhippo",[234,41,34,225,109,41],"44286136",[236,41,34,225,237,41],"44283375","whoisyc",[239,34,34,240,241,41],"44282456","project\u002Fcritical\u002Fexecution","refulgentis",[243,34,41,244,245,41],"44282631","commenter\u002Fneutral\u002Fnone","gruez",[247,34,41,244,241,41],"44282663",[249,34,41,244,245,41],"44282698",[251,34,41,244,241,41],"44282757",[253,34,41,244,245,41],"44283063",[255,34,41,244,241,41],"44283437",[214,34,41,257,11,34],"maker\u002Fneutral\u002Fnone",[115,44,34,225,116,41],[260,44,32,261,116,41],"44282454","maker\u002Fneutral\u002Fdocs",[157,44,41,263,11,34],"maker\u002Fneutral\u002Fidea",[265,44,34,225,190,41],"44283450",[267,44,34,225,116,41],"44283541",[269,44,34,225,116,41],"44283536",[119,32,34,225,120,41],[272,32,32,273,274,41],"44282563","project\u002Fneutral\u002Fnone","CharlesW",[276,32,49,277,278,41],"44282844","project\u002Fpositive\u002Fidea","xhkkffbf",[160,32,41,263,11,34],[127,42,32,281,128,41],"project\u002Fneutral\u002Fidea",[283,42,32,273,284,41],"44282324","spookie",[286,49,34,225,287,41],"44282181","im3w1l",[64,49,41,257,11,34],[149,290,34,225,150,41],6,[292,290,41,263,11,34],"44282796",[294,220,34,225,295,41],"44282760","DanHulton",[297,220,34,298,237,41],"44283307","project\u002Fcritical\u002Fdocs",[300,220,41,301,109,41],"44286081","commenter\u002Fneutral\u002Fdocs",[172,303,32,281,173,41],8,[305,303,41,257,11,34],"44282848",[145,307,34,225,146,41],9,[309,307,49,277,310,41],"44282564","jtsylve",[312,307,41,244,11,34],"44282715",[314,307,34,225,116,41],"44283554",[96,316,34,225,97,41],10,[318,33,34,225,319,41],"44286285","csmantle",[134,211,34,240,135,41],[322,211,34,240,190,41],"44283413",[324,325,34,326,327,41],"44282197",13,"project\u002Fcritical\u002Fprivacy","RamblingCTO",[329,325,41,330,331,41],"44282277","commenter\u002Fneutral\u002Fprivacy","TeMPOraL",[333,325,32,334,335,41],"44282420","project\u002Fneutral\u002Fprivacy","michaelt",[337,325,41,244,338,41],"44283251","godelski",[340,325,41,341,11,34],"44282723","maker\u002Fneutral\u002Fprivacy",[343,325,41,330,327,41],"44287389",[138,345,32,346,139,41],14,"project\u002Fneutral\u002Fperformance",[348,349,32,350,351,41],"44282600",15,"project\u002Fmixed\u002Fidea","jfengel",[166,349,41,353,11,34],"maker\u002Fpositive\u002Fnone",[355,349,32,281,356,41],"44282887","techjamie",[88,358,49,277,89,41],16,[72,360,34,240,73,41],17,[362,360,41,363,11,34],"44282737","maker\u002Fneutral\u002Fexecution",[365,360,34,225,366,41],"44285706","NBJack",[176,368,34,225,177,41],18,[84,370,32,281,85,41],19,[189,18,34,225,190,41],[373,39,34,225,374,41],"44283587","nottorp",[123,376,34,377,124,41],22,"project\u002Fcritical\u002Fdesign",[379,376,41,380,11,34],"44282814","maker\u002Fneutral\u002Fdesign",[100,222,34,382,101,41],"project\u002Fcritical\u002Fperformance",[384,385,41,386,387,41],"44283121",24,"other\u002Fneutral\u002Fidea","efitz",[104,389,32,346,105,41],25,[391,392,32,346,393,41],"44282849",26,"b0a04gl",[395,392,34,326,396,41],"44283137","mousethatroared",[398,392,34,326,393,41],"44287234",[400,392,41,401,396,41],"44288501","commenter\u002Fcritical\u002Fprivacy",[403,404,34,405,406,41],"44283073",27,"maker\u002Fcritical\u002Fdocs","evertedsphere",[408,409,34,410,411,41],"44282518",28,"project\u002Fcritical\u002Fnone","layer8",[413,414,34,377,415,41],"44282598",29,"nnunley",[417,418,34,225,419,41],"44282380",30,"vrighter",[421,422,41,244,387,41],"44283604",31,[424,422,41,257,11,34],"44283694",[426,422,34,377,419,41],"44283812",[428,429,34,377,430,41],"44282783",32,"seebeen",[432,433,34,225,434,41],"44282778",33,"drivingmenuts",[],[437,442,447,451,456,461],{"id":438,"name":439,"points":440,"category":441},"44309320","Workout.cool",827,"consumer_social",{"id":443,"name":444,"points":445,"category":446},"44314085","Unregistry",726,"dev_tools",{"id":448,"name":449,"points":450,"category":446},"44293260","Chawan",387,{"id":452,"name":453,"points":454,"category":455},"44292103","Canine",320,"infrastructure",{"id":457,"name":458,"points":459,"category":460},"44256765","Tritium",312,"productivity",{"id":462,"name":463,"points":464,"category":446},"44306041","Lstr",227,false,"v2",{"id":468,"name":5,"line":6,"ai":465,"cat":20,"year":13,"points":14,"comments":15,"rec":29,"s":469,"top":18,"kw":470,"maker":11,"domain":10,"tier":19,"attempts":41,"strip":471,"url":9,"mix":472,"praise":81,"objection":93,"sub":21},44281958,-0.6,[24,25,26,27,28],"1011000111153111315111130333111113111111",[32,33,34,35],1794036676711]