JPEG XL

Info

rules 57
github 35276
reddit 647

JPEG XL

tools 4225
website 1655
adoption 20712
image-compression-forum 0

General chat

welcome 3810
introduce-yourself 291
color 1414
photography 3435
other-codecs 23765
on-topic 24923
off-topic 22701

Voice Channels

General 2147

Archived

bot-spam 4380

jxl-art

_wb_
2024-09-16 02:23:20
so one thing you could do is just ignore sections that are corrupt, and render something like a progressive preview from the ones that are not corrupt
2024-09-16 02:23:59
as long as the DC is intact, that basically gives you a picture that is blurry where corruption happened and sharp in the rest of the image
AccessViolation_
2024-09-16 02:24:12
That'd be cool
2024-09-16 02:25:17
I don't know exactly how the predictor works, but I imagine you could do something for modular mode images where if you're missing data you just assume the predictor is right all the time? Probably wouldn't look good at all on large missing patches, but might work well if you're missing a byte or two?
_wb_
2024-09-16 02:25:46
you could also ignore the corruption completely and show whatever the corrupt section decoded to, which should lead to basically 256x256 regions where the top is OK and the bottom is complete garbage in the high frequencies but somewhat recognizable if you squint
jonnyawsom3
Tirr ~~aka fuzzer inputs~~
2024-09-16 02:44:29
You do wanna be a bit careful with the header though https://github.com/libjxl/libjxl/issues/3793
_wb_ but still, you should be able to take some small jxlart file and randomly flip bits, not everything will decode but some of it will
2024-09-16 02:46:14
Reminds me of when you talked about error resilience in libjxl, skipping corrupted LF/HF groups and using the rest to get at least color or texture in that area
_wb_
2024-09-16 02:50:43
https://github.com/libjxl/libjxl/issues/3712
jonnyawsom3
AccessViolation_ I might see if I can do something like that at least for JXL, I bet there's already software designed to simulate bit rot on files
2024-09-16 02:53:32
I used this briefly on a few JXL files a long time ago, can't remember the results though https://github.com/Akascape/Pure-Glitch
_wb_ https://github.com/libjxl/libjxl/issues/3712
2024-09-16 02:58:02
Thanks, and I see <@386612331288723469> found it too haha
Qon
veluca I assume it was from <@265247121261854722>
2024-09-16 09:04:40
Yep!
lonjil
2024-09-16 09:07:18
heya! been a while
Qon
2024-09-16 09:08:19
Yup
2024-09-16 09:10:39
I used my fork's gh-pages to share a piece before <@179701849576833024> If you want to try https://discord.com/channels/794206087879852103/824000991891554375/1216826286266253503
2024-09-16 09:12:32
I really should add dynamic horizontal/vertical split layout based on screen aspect ratio :o
CrushedAsian255
2024-09-16 09:13:19
Great logo design from Jonny
veluca
Qon I used my fork's gh-pages to share a piece before <@179701849576833024> If you want to try https://discord.com/channels/794206087879852103/824000991891554375/1216826286266253503
2024-09-16 09:14:05
it's very different, I am not sure I have the bandwidth to figure out if I should merge it or not xD
Qon
veluca it's very different, I am not sure I have the bandwidth to figure out if I should merge it or not xD
2024-09-16 09:16:10
Well, if it wasn't different then there wouldn't be much point to it? It's an improvement :)
veluca
2024-09-16 09:19:16
yeah you're probably right 😛 I'll try to find the time to review the changes - but to begin with, can you include ace etc as submodules instead?
Qon
veluca yeah you're probably right 😛 I'll try to find the time to review the changes - but to begin with, can you include ace etc as submodules instead?
2024-09-16 09:26:38
I tried before, but I couldn't get the build system to find and include the necessary config files then. The color palette, keybinds and language syntax definitions then aren't included and the editor becomes ugly, useless and not really an improvement.
2024-09-16 09:28:57
And having access to ejs is a massive improvement, but without syntax highlighting and a reasonable editor that feature won't really be used much except as a way to share code for generating jxl.
veluca
2024-09-16 09:29:52
I'm sure there's a way to make that work... I have some memory of having succeeded at it for another project, but then again I was not using npm
Qon
2024-09-16 09:29:57
And without the editor theme the whole color theme across the page isn't coherent and nice looking.
veluca I'm sure there's a way to make that work... I have some memory of having succeeded at it for another project, but then again I was not using npm
2024-09-16 09:31:33
It's not just npm, it's the bundler used which is the tricky part
2024-09-16 09:31:56
It renames and moves all the files.
veluca
2024-09-16 09:33:33
did I already say I dislike most JS environments?
2024-09-16 09:34:18
anyway I am not so sure I'd like to include a copy of ace in the jxl-art repo... when I have some time I'll try and see if I can make submodules work
Qon
2024-09-16 09:38:12
I like JS when I can just click the file and have it open in my browser to test it locally. No build step or complications. Now for security reasons some bigger projects need a local server program running to connect to localhost, which is doable since there's no build or compile nonsense. But it is a step away from just being a trivial open file on any computer with no extra installs which I can send to anyone and have it work under any OS, no install, no tech knowledge etc.
2024-09-16 09:50:09
The bundler makes changes extremely complicated, slow and inefficient. A trivial npm dependency include becomes an unsolvable nightmare like in this case. Any change takes several seconds to complete when it is just instant without the bundler. And a single bit changed means all bundled files are discarded, all files are parsed again and the entire project is duplicated. I just want to update a color code? 20 MB of just the code is pointlessly parsed and written to disk every time I Ctrl+S and then I have to wait for it all to complete to see the change.
2024-09-16 09:52:50
Since I didn't complete my jxl art before I guess I'll share the WIP code now, as a demo of why I like having ejs right there on the jxl art page:
2024-09-16 09:54:43
Line 346: `let flag = (x, y)=>(200 <= x && x < 300 || 200 <= y && y < 300 ? 15 : 36)` defines the shape and colors if you want a clue to what all that other code is for.
2024-09-16 09:55:55
And look at the second code tab "jxl_1" to see the output jxl language
JXL Art Bot
2024-09-22 11:21:44
**\_wb\_** _“Directions”_ 2024 image/jxl 27 bytes [source tree](https://jxl-art.lucaversari.it/?zcode=43LKLElJLSjJUDA04gotKE7MLchJVTDkcknNKUkMSMxJLSlJ5eLiykxT8AvX9VOwU9A14tJVcCxL99P2C1dAsF1BElwA)
2024-09-22 11:22:03
**\_wb\_** _“Melting”_ 2024 image/jxl 27 bytes [source tree](https://jxl-art.lucaversari.it/?zcode=43LKLElJLSjJUDA04nJJzSlJDEjMSS0pSeUKLShOzC3ISVUw5OLKTFMId%2FdQsFMw4NJVcCxL99P2C1cwgrNdFXSNuAA%3D)
2024-09-22 11:23:56
**\_wb\_** _“Untitled curly stuff”_ 2024 image/jxl 36 bytes [source tree](https://jxl-art.lucaversari.it/?zcode=HcexCoAgEADQ%2Fb7i9nDILJoaoqhJWsJZ8MoDC6n7f5K291biMwrqtgPHQeKvkSVQLulhoiR%2B84lECPb8%2BisnQgPAB7rKKutwQNVoULg8PjDdgqouszNqbeAD)
Dejay
2024-10-01 11:50:53
Does JXL Art support patches? To copy rectangles of the frame to create repeating patterns?
lonjil
2024-10-01 11:53:46
the `jxl_from_tree` tool doesn't support patches yet
Dejay
2024-10-01 11:54:48
Thanks, I was just looking for a simple example, don't really need it in jxl art
2024-10-01 11:56:51
Has anyone tried to make spline based text font yet?
lonjil
2024-10-01 11:57:21
that'd be fun
Dejay
2024-10-01 11:58:23
I posted an idea for a DjVu to JXL converter for scanned documents, but vector based fonts would be cool too
2024-10-01 11:59:42
I guess something like a cursive or elvish font?
2024-10-01 12:01:09
One image format to rule them, and in the pixels bind them!
_wb_
2024-10-01 12:20:19
a patch frame with a spline-based font would be nice — adding that to jxl_from_tree can be done in principle, though perhaps at some point we should consider just creating a new jxl encoder from scratch that just does "vectory" stuff using splines, patches, and simple modular image data to do filled polygons, or something. Basically a drawing app with primitives that are based directly on the coding tools available in jxl.
Dejay
2024-10-01 12:21:40
Well just some crazy ideas 🙂
lonjil
2024-10-01 12:22:27
That is exactly something I want to create, a jxl-art focused encoder. I'm behind in school after being sick for two weeks though, so I don't know when I will possibly be able to justify the time expense 😅
Dejay
2024-10-01 12:24:06
From what I understand you can also do simple animations with transformations of previous frames, like maybe candlelight flickering
lonjil
lonjil That is exactly something I want to create, a jxl-art focused encoder. I'm behind in school after being sick for two weeks though, so I don't know when I will possibly be able to justify the time expense 😅
2024-10-01 12:24:54
The most annoying part early on will probably be porting libjxl's entropy encoding code, since I think most things you might want to put in a jxl-art file are entropy coded?
Dejay From what I understand you can also do simple animations with transformations of previous frames, like maybe candlelight flickering
2024-10-01 12:25:28
yeah, you could have a background frame and put smaller animations on top of it
Dejay
2024-10-01 12:25:49
Can jxl also do things like drop shadows?
2024-10-01 12:26:09
This could be cool for small animated logos, or something like my profile picture
lonjil
2024-10-01 12:26:47
Any kind of image can be encoded into a JXL file, but I don't think JXL has any method of generating drop shadows..
Dejay
2024-10-01 12:33:12
Maybe something like a snow animation over your profile pic... particle effects?
lonjil
2024-10-01 12:40:18
that's just patches
Dejay
2024-10-01 12:41:12
Patches everywhere!
2024-10-01 12:41:55
Has anybody tried to make like procedurally generated textures? Something like paper texture?
2024-10-01 12:42:09
I'm thinking something like this without the text: https://archive.org/details/aliceinwonderlan0000unse_f1r9/page/6/mode/2up
2024-10-01 12:44:22
Basically something like the synthetic film grain for av1
jonnyawsom3
Dejay I posted an idea for a DjVu to JXL converter for scanned documents, but vector based fonts would be cool too
2024-10-01 12:52:42
Ahh, so you made the reddit post I replied to. Was just about to correct a few things in your comment
Dejay
2024-10-01 12:54:37
Yes, please feel free to correct me 🙂
JXL Art Bot
2024-10-01 01:09:33
**\_wb\_** _“something like this, Dejay?”_ 2024 image/jxl 44 bytes [source tree](https://jxl-art.lucaversari.it/?zcode=88vPLE5VMNAzAWJjIDYyBRFAbKhgAIJcTpklKakFJRkKhkZcEZFOXFxcmWkKyQp2QCkow5BLVyE4tURB19TAAMoEsYDMcAUjAA%3D%3D)
Dejay
2024-10-01 01:14:34
Noice
2024-10-01 01:38:07
Can I find any more documentation for example the noise parameters in the source code?
_wb_
2024-10-01 01:53:21
they are amplitudes (higher value is more noise) and go from dark to bright
oneiroi
2024-10-02 05:07:31
stumbled upon this and am curious-not sure if this is the right channel. someone implemented rule 110 in JXL. that means JPEG XL is boundedly turing complete. does anyone know of existing work that has gone further? i'm really fascinated
2024-10-02 05:07:54
in the future we'll be able to run linux in a jpeg
A homosapien
2024-10-02 05:20:48
It's extremely limited, only within a max group size of 1024x1024 px.
2024-10-02 05:20:52
Relevant discussion: https://discord.com/channels/794206087879852103/803645746661425173/1287083527464292503
2024-10-02 05:22:48
It's hard limited by the jpeg xl format itself, so anything further is just a pipe dream
_wb_
2024-10-02 06:01:21
We definitely designed jxl to be NOT Turing complete. An image that can make a decoder go in an infinite loop is a security problem. Some formats do allow that, like PostScript and full SVG, and that basically implies you have to use a sandboxed, time/memory limited environment to render such formats...
oneiroi
2024-10-02 06:20:05
i read about this. definitely good design decision. i just want to push it as far as it can possibly go bcs its fun
_wb_
2024-10-02 06:25:26
I guess the farthest you can go in terms of chain compute, is using a 4099-channel image with 1024x1024 groups, where each channel can in principle access all previous channels.
jonnyawsom3
2024-10-02 10:43:55
Maybe some basic operations between layers too? Like inputs and outputs based on pixel values. But this would need a complete understanding of the format to pull off
CrushedAsian255
Maybe some basic operations between layers too? Like inputs and outputs based on pixel values. But this would need a complete understanding of the format to pull off
2024-10-02 11:21:12
You can’t loop though
_wb_
2024-10-02 02:24:36
``` _____ _____ ____ ___ ___ ___ ___ \ | | __ \ / __/ / _/__ \_ \/ _/ | | /\_) | | ___// __)_( (__) ) _) (_ | |_/\ \____/ |_\ (_____/ \____/ (__/\__) |____/ ```
2024-10-02 02:25:32
hm, that looked nicer in the monospace font I used for editing
lonjil
2024-10-02 02:25:42
Rip
_wb_
2024-10-02 02:25:50
lonjil
2024-10-02 02:26:04
Here's an idea: font atlas reference frame, then patches to do "ASCII art"
_wb_
2024-10-02 02:29:15
``` \ \/ / (_/ /\ \_) ```
2024-10-02 02:33:53
yeah it would be nice if you could just pass some image to jxl_from_tree to be used as reference frame, and then have some syntax to define patches and to blit them — possibly with some syntactic sugar to do grids in a compact way where you assign characters to each patch and then use lines of ascii text to fill the grid
lonjil
2024-10-02 02:36:24
How about being able to provide some kind of "atlas map" file? So you could get convenient predefined patches to use and reuse in many jxl tree files without having to copy paste.
CrushedAsian255
2024-10-02 02:36:36
Are patch coordinates entropy coded?
2024-10-02 02:37:41
These advanced features feel more like something that should be added in that jxl art program that everyone agrees should exist
lonjil
2024-10-02 02:38:24
Yea
_wb_ ``` \ \/ / (_/ /\ \_) ```
2024-10-02 02:39:22
That one is nice
DZgas Ж
2024-10-02 06:16:53
``` _____ ______ `####= _####* )# *####_ #####`)# ###,*####=##### ### #### `#######* #### #### _#######_ ####, _____=####`_####^##### #####_____ ########* #####* #####_*######## ******` _##### *####= ``***** ***** `***** ####_ =###* ,_*###_ _####`_ ##_`####_####_## ###,`######* ### _###`_######= ###_ ########`#####*####`######## ######*_####` ####_`*##### #### *###= ```
2024-10-02 06:22:39
``` _=## ##* ~+~ === ## ####[ `##_ ### ]#} *## *#### ## ## ####_ ## ##, ##/`##= ##### ]## ##* `##- )## _### `` ```
_wb_
2024-10-02 07:09:41
I recognize those
AccessViolation_
2024-10-02 07:10:51
Has anyone tried to recreate this? I wonder how small it could get
2024-10-02 07:14:15
The SVG is 4.1 kB, so quite a lot of room to work with. Getting something that looks pretty close and replacing the SVG on the website with the JXL would be such a power move <:KekDog:805390049033191445>
_wb_
2024-10-02 07:20:01
JXL is not a vector format though, so it wouldn't quite look as crisp...
AccessViolation_
2024-10-02 07:21:38
That's true. This was more one of those "whether you could" ideas rather than a "whether you should" idea
Qon
AccessViolation_ Has anyone tried to recreate this? I wonder how small it could get
2024-10-03 08:04:27
If you didn't want curves then it would be much simpler https://discord.com/channels/794206087879852103/824000991891554375/1216826286266253503
Dejay
_wb_ JXL is not a vector format though, so it wouldn't quite look as crisp...
2024-10-03 11:08:05
How crisp can you get curves? With boosing line color to something like RGB(1000,1000,1000) they get thicker but very crisp. So for white or black or primary colors this should work
CrushedAsian255
2024-10-03 11:11:07
the problem is that since jxl is a raster format, eventually it will become pixelated
_wb_
2024-10-04 05:05:48
You'll usually get browser upscaling or downscaling if you replace an SVG by a rasterized version of it.
JXL Art Bot
2024-10-04 09:04:15
**Anonymous** _“Unnamed piece”_ 2024 image/jxl 77 bytes https://jxl-art.surma.technology/?zcode=bVLBTsMwDL3nK57EcYqUtM3ogSGxgbZTDwyp57FmXbSqQiUg%2BHuctOnSlZv98pznZ7s0lT1DiiRjO23qs%2B3jtbGV%2FqCXnL1u3rBkzJzwi0dIJRhAyZESFwIcxRAR%2FEOwEn3qgXK7c9AAOPbTd10sihILJGIGv1CUROXuv%2Bz%2Bhle6ci6v6KhzhSZKUv2DOyn%2FEKyly%2BDiGH01pDIWm7rsP91rC57NsVzMK%2BWERV6gZnWJuBlDLOhmTvNTE4AjVcFBSQVchQLS8MvVFYEsVkmpY9186rDU1Wrcat8EcIfnQ3dB3WndRjQZ0WTueevOi3QzbhJxM6ISd9%2F4a3tvvjSsaa2%2FMGczFyLs5GEcAse2O1RGt5Zsq7hDOsg%2F
2024-10-05 07:11:16
**juliobbv** _“freshly baked tray of neoncookieli”_ 2024 image/jxl 45 bytes [source tree](https://jxl-art.lucaversari.it/?zcode=C0pNNjI0MFAICOQKLixNTa1K5eLKTFNIVrBTMOBSUIAyDYFMMKcSKg4Cugp%2BCrpGCF5waomCiYGlKUxtBYracAVDVKW6QLVmXBBjDLkA)
CrushedAsian255
2024-10-05 07:25:33
argh why is it so bright
Tirr
2024-10-05 07:29:44
it's missing `Bitdepth 12` I think
juliobbv
2024-10-05 07:30:22
I think it's because it's a PQ HDR image
Tirr
2024-10-05 07:30:25
and still it has peak intensity of 10000 nits, so...
juliobbv
2024-10-05 07:33:08
these neon cookies are powerful 😛
CrushedAsian255
2024-10-05 07:39:19
squeeze does some weird things
JXL Art Bot
2024-10-05 07:40:11
**\_wb\_** _“More neon cookies”_ 2024 image/jxl 32 bytes [source tree](https://jxl-art.lucaversari.it/?zcode=C0pNNjI0MFAICOQKLixNTa1K5QpyDlGw4NJVCE4tUQBKcQEA)
2024-10-05 07:42:31
**CrushedAsian255** _“neon fractal”_ 2024 image/jxl 36 bytes [source tree](https://jxl-art.lucaversari.it/?zcode=C0pNNjI0MFAICOQKLixNTa1K5QpyDlEw4spMU%2FBTsFMAynHpKgSnliiAaD8FbZAAAA%3D%3D)
2024-10-05 08:08:51
**\_wb\_** _“Sierpinski's shadow”_ 2024 image/jxl 35 bytes [source tree](https://jxl-art.lucaversari.it/?zcode=C0pNNjI0MFAICOQKLixNTa1K5QpyDlGw5HLKLElJLSjJUDDm4spMUwhXsFMw4NJVCE4tUdA1AjLCFQy5AA%3D%3D)
Qon
Dejay How crisp can you get curves? With boosing line color to something like RGB(1000,1000,1000) they get thicker but very crisp. So for white or black or primary colors this should work
2024-10-05 12:04:43
Please show me what that looks like
2024-10-05 12:05:14
And define "crisp curves"
Dejay
Qon Please show me what that looks like
2024-10-05 07:51:20
Something like this <https://jxl-art.surma.technology/?zcode=zZAxCsMwFEP3fwpdICB_27ieQ6FzXMgFbGJDCRl8f1qc3CBLpeVND6G15V7hjcqrtK32gcv8BkUkHZ-2F8EvhiRu9Q81iklvSyK8O0eZB6yPJ8cAtQOtIcI1OxBW_WCnhCPluefrZpmQSge_>, to have curves with sharp and not blurry edges
TheBigBadBoy - 𝙸𝚛
2024-10-14 11:51:44
I was wondering which image formats/codecs allow to have something like what jxl_from_tree create ?
CrushedAsian255
TheBigBadBoy - 𝙸𝚛 I was wondering which image formats/codecs allow to have something like what jxl_from_tree create ?
2024-10-14 12:58:42
JPEG XL
2024-10-14 12:58:56
Maybe FLIF (which is part of what jpeg xl was based on)
TheBigBadBoy - 𝙸𝚛
2024-10-14 01:01:42
oh, I thought it was a more common use case aka only predictor tree without correction
CrushedAsian255
2024-10-14 01:02:58
Not sure how common predictor trees are in any formats other than JXL and some general data compressors
2024-10-14 01:03:14
Most formats just use either block based transforms or static predictors
2024-10-14 01:03:34
All I can think of is lossless WebP’s predictor image but that’s kinda granular and not the same thing really
2024-10-14 01:03:41
It’s a sub image that defines the predictors used
2024-10-14 01:03:48
Not really a prediction “tree” it’s more of a prediction “grid”
2024-10-14 01:04:13
I’m thinking something similar to JXL modular could be made with audio A mix of LPC and ADPCM maybe
2024-10-14 01:04:25
<@532010383041363969> could this work?
2024-10-14 01:08:58
Or am I reinventing Opus
Dejay
2024-10-29 10:59:40
Can you use jxl art to generate speech or thought bubbles for comic / manga? Like a blurry blob generated with a wavelet and then use a filter to only use one outer band of the blob where the falloff of the color is inside a narrow band?
2024-10-29 11:00:01
Again, just asking out of curiosity
jonnyawsom3
2024-10-30 12:57:21
That might be better done with splines
Dejay
2024-10-30 02:18:44
Hmm. I was thinking of creating a filled polygon to cover over the background painting, but I guess it can be solved by just encoding the background to fit. And also probably not smart to create "overdraw" by painting over using some sort of fill.
_wb_
2024-11-01 02:08:34
Here's a blogpost from 2017 which does something kind of similar to jxl art but in FLIF: https://cloudinary.com/blog/compressing_cellular_automata
CrushedAsian255
_wb_ Here's a blogpost from 2017 which does something kind of similar to jxl art but in FLIF: https://cloudinary.com/blog/compressing_cellular_automata
2024-11-01 11:01:14
Can this sort of thing be translated into jxl?
_wb_
2024-11-01 11:01:29
Yes
CrushedAsian255
2024-11-01 11:01:32
Lossless FLIF transcoding <:Hypers:808826266060193874>
A homosapien
2024-11-02 12:31:10
JXL already does a lot of what FLIF does (and more!). For example the Rule 22 image in the article is 3.4 KB for the PNG, 83 bytes for FLIF, and I got 82 bytes for Jpeg XL.
jonnyawsom3
2024-11-02 12:32:10
Just by running `cjxl -d 0` on it?
A homosapien
2024-11-02 12:32:29
well, it was e11
2024-11-02 12:33:04
e7 was 188 bytes
jonnyawsom3
2024-11-02 12:34:31
2024-11-02 12:34:32
2024-11-02 12:34:38
🤨
2024-11-02 12:36:17
Ah wait, that was the example of the poor JPEG result xD
A homosapien
2024-11-02 12:36:28
I was about to say 😂
TheBigBadBoy - 𝙸𝚛
_wb_ Here's a blogpost from 2017 which does something kind of similar to jxl art but in FLIF: https://cloudinary.com/blog/compressing_cellular_automata
2024-11-02 08:05:14
I'm still waiting for ||a rule 34 image|| [⠀](https://cdn.discordapp.com/emojis/1059276598660059136.webp?size=48&quality=lossless&name=av1_trollhq)
Dejay
2024-11-03 04:32:56
Wasn't there some formula some mathematical pervert came up in antiquity already?
A homosapien
2024-11-03 05:18:21
Behold... rule 34
JXL Art Bot
2024-11-03 05:34:47
**CrushedAsian255** _“Rule 34”_ 2024 image/jxl 27 bytes https://jxl-art.surma.technology/?zcode=C89MKclQMDI14%2FJIzUzPKAEznTJLUlILgOKGXFyZaQqVCnYKBlwKCroKfq5gBlCsAihmaGQB5CBxLcFckMLg1BKgZmSeAReyDAA%3D
jonnyawsom3
2024-11-03 12:27:09
Google "Rule 34" to find out more
_wb_
2024-11-03 04:29:32
Cellular automaton porn?
jonnyawsom3
2024-11-03 09:02:08
I feel like that would be finding the most complex structure from the least amount of bytes
CrushedAsian255
I feel like that would be finding the most complex structure from the least amount of bytes
2024-11-03 09:27:00
So JXL art
juliobbv
A homosapien Behold... rule 34
2024-11-03 09:33:01
kinky
Dejay
2024-11-04 04:10:53
Splines would obviously be cheating
A homosapien
2024-11-04 05:28:53
Actually it would be more efficient to just use the predictors. This: https://discord.com/channels/794206087879852103/824000991891554375/1302506243692433408 was done only using the lossless part of jxl.
jonnyawsom3
2024-11-04 05:55:19
You say that as if there's any VarDCT based art :P
CrushedAsian255
2024-11-04 05:55:51
think that would be way harder
2024-11-04 05:56:02
you could probably intergrate VarDCT patches into jxl art though
_wb_
2024-11-04 08:47:00
VarDCT art could be fun. You could make singleton histograms for some coefficients that give them a nonzero value, and use regular jxl art for the modular parts like the LF and the block selection.
jonnyawsom3
2024-11-07 01:23:23
With my blue noise addiction lately I started wondering if an approximation is possible in an MA tree, since e11 only manages 1 KB less than raw image data
CrushedAsian255
With my blue noise addiction lately I started wondering if an approximation is possible in an MA tree, since e11 only manages 1 KB less than raw image data
2024-11-07 04:20:33
Noise is inherently almost uncompressible
_wb_ VarDCT art could be fun. You could make singleton histograms for some coefficients that give them a nonzero value, and use regular jxl art for the modular parts like the LF and the block selection.
2024-11-07 04:21:10
How does VarDCT use its distributions ?
Dejay
CrushedAsian255 Noise is inherently almost uncompressible
2024-11-08 08:57:59
If you could perfectly detect, classify, separate and remove and then generate noise, it would be perfectly compressible in lossy.
JXL Art Bot
2024-11-17 09:50:15
**\_wb\_** _“Pixelation, Interpolation”_ 2024 image/jxl 33 bytes [source tree](https://jxl-art.lucaversari.it/?zcode=43LKLElJLSjJULDgCi4sTU2tSuVyK0rMTQ3IL1bQNTU0AhNcXJlpCskKdgqGBnCWJZeuQnBqiYIBkA4HqgJThgYA)
_wb_
2024-11-22 01:36:26
veluca
2024-11-22 03:17:12
where's this from?
_wb_
2024-11-22 03:29:27
a jxl overview paper I'm working on — btw I'll want you to be a co-author 🙂
CrushedAsian255
_wb_ a jxl overview paper I'm working on — btw I'll want you to be a co-author 🙂
2024-11-22 08:59:14
Can I buy it when it comes out?
juliobbv
_wb_
2024-11-23 12:03:30
interesting illustrations, they're very informative
2024-11-23 12:03:43
what's the difference between the West and WestWest predictors?
2024-11-23 12:04:12
the resulting images look the same to me
CrushedAsian255
2024-11-23 12:04:18
WestWest uses the pixel 2 to the left
juliobbv
2024-11-23 12:04:49
oh, I can see the difference when I zoom in
CrushedAsian255
2024-11-23 12:04:59
Zoom in, there’s a slight zig zag
juliobbv
2024-11-23 12:05:08
yeah
CrushedAsian255
_wb_
2024-11-23 12:06:08
Maybe the images should be slightly lower resolution, to see the difference between West and WestWest easier
juliobbv
2024-11-23 12:06:10
maybe a zoomed-in view of WestWest of the zigzag region, and place it where the blank space is down below would help
2024-11-23 12:06:24
that should do it too
veluca
2024-11-23 12:55:36
if the last column before the predictor area is different from the second-to-last, it would be way more noticeable, fwiw 😄
_wb_
CrushedAsian255 Can I buy it when it comes out?
2024-11-23 07:11:40
It will be freely available
JXL Art Bot
2024-11-23 09:20:57
**\_wb\_** _“Improved predictor demo image”_ 2024 image/jxl 60 bytes [source tree](https://jxl-art.lucaversari.it/?zcode=fY89a8MwEIZ3%2FYp3DoRIBoeQoUO7ZPKQBjQL61If2JKRr6T995HifC3JontA791z98niaZQOG2XZ51rVa7Uj%2FunkgvuvA9ZK8RH%2F%2BECtC%2F3NtFpgTOS5lZggEZ6GGCZJTmiLxUotYS20Krkj9z0cpCNwYGHXw2iNFE8TXPBoY%2F87hAknzhtMcSCMToRSKHOysc1Gkwc2%2Bb2uYuZdClb6gjajzqFvknut6rq02bnvlrBYmkdCq2dF%2BbsdaR73Xh3NC8cs0W8kZw%3D%3D)
2024-11-23 09:38:06
**\_wb\_** _“Further improved predictor demo image”_ 2024 image/jxl 85 bytes [source tree](https://jxl-art.lucaversari.it/?zcode=fZC9bsMgFEZ3nuKbI0XBVhxVHTo0SycPSSVmZJP6SjZY%2BFahb1%2Bw45LFXbgHuD8H3olbM3KHF6GojbE8SfFh6KvjGS%2FnT5yEoBt%2B8IZjlSgsdNhh9Kalhp0HO7RmcHZir9m8YncQeygFKVLejfoeGtwZkCUm3aOQEt7dJ2jbonH992An3CkaTG4wGDWz8Tb1iRObOLGIDeu4PlSKSq5YyoxlxuMTzmV1RBm7XA3%2FxbKqkui8rzFXqM20Wi3z1wyFfZEzpHhWTXfrZz1cQ3YN2TVk15BdtyXWE7XYbj1q0ZX%2F6P4C)
_wb_
2024-11-23 09:39:03
Now the difference between WW and W is much clearer. Above one is WW
2024-11-23 09:39:59
This is W:
2024-11-23 10:06:32
Dejay
2024-11-23 09:13:26
Oh this is awesome thanks. So if you'd want something like South you'd need to rotate copy the frame?
jonnyawsom3
2024-11-23 09:16:03
I suppose that's a way to do it
CrushedAsian255
2024-11-24 12:43:57
Yes works way better
jonnyawsom3
_wb_
2024-11-27 03:15:18
What if you encoded using Weighted on the complete image, and then zeroed the residuals in the result? Assuming that's not what you already did
_wb_
2024-11-27 04:31:40
I just used jxl art to produce these, like this: https://jxl-art.lucaversari.it/?zcode=fZAxb8MgEIV3fsWbI0XBVhxVHTo0SycPSSVmZEiNZIOFrwr99wUclyzuwj3g3bsP3g0pPVGPFyaMirU-cfahzVdPWV7OnzgxZm74wRuOTVJhUYcdJq-V6ch5kIPSo7MzeUn6FbsD20PkHK3AWXLfzDBAgnoNYw0ZOaDiHN7dZ0ir0Lnhe7Qz7iZyzG7UmCSR9jalxbldnFvF2DauD6Cq4auseZF1kccnmdvaKHlMuWr6q3XTJNy8b5E7xKatFcv81SGwr4qDs2fUdLd-2YM1FNZQWENhDYV1G2I9EQvt1qMWXP4P7i8
juliobbv
_wb_
2024-11-27 05:05:16
yeah, this is way better now
jonnyawsom3
2024-11-27 05:09:46
Ah yeah, I was just thinking that since weighted uses the prediction error, only using JXL art might not be representative of what it actually does on a real image
JendaLinda
2024-11-27 05:42:54
cjxl could take advantage of zero residuals in `-d 0 --keep_invisible=0`
_wb_
Ah yeah, I was just thinking that since weighted uses the prediction error, only using JXL art might not be representative of what it actually does on a real image
2024-11-27 06:58:12
True, but it's a bit hard to illustrate that anyway with a large rectangle of zero residuals, since when doing real lossless, you would correct it constantly
jonnyawsom3
2024-11-27 07:27:01
Right
JendaLinda cjxl could take advantage of zero residuals in `-d 0 --keep_invisible=0`
2024-11-27 07:27:15
And isn't that what it does already?
_wb_
2024-11-27 07:44:23
Not really
JendaLinda
2024-11-27 08:18:47
It in fact just zeroes out invisible pixels so the color becomes black.
jonnyawsom3
2024-11-27 08:29:31
Ahh right
JXL Art Bot
2024-12-08 09:41:38
**\_wb\_** _“The Organ”_ 2024 image/jxl 24 bytes [source tree](https://jxl-art.lucaversari.it/?zcode=Hca9CoMwFAbQ%2FT7FN1uCuaFaunQQajexhZJ2TPXaBBSDyfvTn%2BHAaUIeJWYP1lQWdJPBsNbor1SUdHGvdQvJ07lvYejxbH5aN%2BR1S9jrY42KDUxV0z0mt8RZwERhgt11qrM4QROg8K3i%2F6yEt88ygs3hAw%3D%3D)
bonnibel
_wb_ To do downscaling without Moiré, best in my experience is to first do a Gaussian blur with a radius of half a downscaled pixel (so if you go from 20000 pixels wide to 1000 pixels wide, 1 downscaled pixel corresponds to 20x20 original pixels and you'd do a Gaussian blur with a radius of 10 pixels), and then do a simple pixel area downscale (INTER_AREA in OpenCV terms).
2024-12-09 08:04:27
question: afaik gaussian kernels have to be odd-sized, so when downscaling from e.g. 3,000px -> 1,000px vs 2,000px -> 1,000px, do you use a 3x3 gaussian blur for both but just with different sigmas?
_wb_
2024-12-09 08:17:28
Depends on the speed tradeoffs needed but I would probably use a 5x5 or even 7x7 kernel most of the time if it's just for downscaling a single still image. 3x3 is a bit small even for a small sigma like 0.25
AccessViolation_
**\_wb\_** _“Pixelation, Interpolation”_ 2024 image/jxl 33 bytes [source tree](https://jxl-art.lucaversari.it/?zcode=43LKLElJLSjJULDgCi4sTU2tSuVyK0rMTQ3IL1bQNTU0AhNcXJlpCskKdgqGBnCWJZeuQnBqiYIBkA4HqgJThgYA)
2024-12-11 10:38:52
Nice, this one kind of reminds me of those electron microscope pictures of CPU dies
_wb_
2024-12-11 10:39:17
These too, actually
JXL Art Bot
2024-12-24 10:41:45
**\_wb\_** _“Merry jXl-mas!”_ 2024 image/jxl 276 bytes [source tree](https://jxl-art.lucaversari.it/?zcode=3VXLitVAEN3XV9QPzFCP7q7qjQtBcKXgIK6Hua0TGO9cnbjx6z25yfUB7iIMSAh16pnuPqfJy2k%2BjNN8z0nvxp2pCL39Oo3jfDtPj0dWevM4PQ2Wa8dr27vgsmFloQ%2FTARO0m9DrMX26n1klhd6fnm4%2Fnx4GptDN6WE6DtLryrLn%2BQcTys5%2B4ytsve7bRens1shM2Qts76xeyYuwi5N3ge9UarDXQk07WzRYY%2FNG1Qtbwjc%2F5wPrsRoUAuvwG2zplOf6JW%2F4nlMk5lelzIb6Qhmos6BeMK8odazDHPne2LVSb1hnSQKf%2FVyo0hORQqqJkcVIEUbqHOlcOoC0XIEvY7CNV8fDJoBfStjNwvP2L3dgpwaqcaaSZnCWSgbOVGwJOEA1cjfuKtQiuUaCXVhtYLFxTbBXHH796TeopdiqgqoBlVQO5CvYD2mYJ4grhSt3M4paGMxT1s4BlSys56KCs%2B8gUoM7ZKmqawVsohU60FY4PVayE5JRrQtAl4muNZ6YD9UB1LXGoLO0voDAQFskUjiw6b9IxJ75ou%2Fv930CabitVjYQXX47pP%2FkiJJt%2FxF1uQCTP3X05dsY3wdNH%2FmOX7BdQNIV34yZr2wDVi8puQDdUrLZuIDlF0k%2FAA%3D%3D)
jonnyawsom3
2025-01-06 01:58:18
<@245794734788837387>
JXL Art Bot
2025-01-07 07:23:47
**Claude with help from ebfeebfe** _“Spectrum Falls”_ 2025 image/jxl 36 bytes [source tree](https://jxl-art.lucaversari.it/?zcode=VY0xC8IwFIT3%2FIrbJZDWBjs5iKBTEBwyB%2Fq0gSJS3lChP97XxKrZ7t7d%2B%2B5M8d4zbFUrHzvukzpE7ugpplVHGjhcwkDMpFS8YcIeRgEiXyIrsxhAw0O3q74So7Y219xSs2t0GkMX6cHQ9r9tEvxHFOMLvMOmKfApSbPb%2FDx77fwsT80HMBXDeeUL2xmVb9J4Aw%3D%3D)
Jyrki Alakuijala
_wb_
2025-01-22 01:46:52
is AvgAll the one I added with strange weights or is there still one more?
_wb_
2025-01-22 01:47:05
Yes that's yours
Jyrki Alakuijala
2025-01-22 01:49:18
I never analyzed it like this -- I just tried out things which worked best for delta palette prediction from butteraugli/human viewing/size perspective
2025-01-22 01:50:21
and only for compressing photographs with the delta palette, with dithering
2025-01-22 01:50:45
dithering makes averaging slightly more attractive than 2nd order prediction
_wb_
2025-01-22 06:57:18
I suspect AvgAll works well not just for delta palette but also for a non-palette near-lossless technique where you use quantized prediction residuals like what <@826537092669767691> did for PNG at some point using the avg(W,N) predictor.
CrushedAsian255
2025-01-23 12:19:12
Was Delta palette specifically <@532010383041363969> ‘s invention?
_wb_
2025-01-23 07:41:45
It was an experiment in lossless webp already but was too late to make it into the spec iirc
veluca
2025-01-23 09:17:05
the idea is not *too* hard to come up with, I believe I ended up adding something similar to the original DC compression setup in PIK before we replaced it all with Modular
CrushedAsian255
2025-01-23 11:09:39
So just making sure I’m fully understanding, delta palette is a palette of residuals from the global predictor, correct?
veluca
2025-01-23 11:49:01
yep
JXL Art Bot
2025-01-26 06:20:04
**CrushedAsian255** _“something”_ 2025 image/jxl 28 bytes [source tree](https://jxl-art.lucaversari.it/?zcode=80jNTM8oUTA1NOIKz0wpyQCznDJLUlILgBxLLgWFzDSFcAU7BUMjEEdXIRysITVFQdcIzA9OzUlNLlEwtjAAAA%3D%3D)
2025-01-26 08:44:32
**\_wb\_** _“Blue curtains”_ 2025 image/jxl 28 bytes [source tree](https://jxl-art.lucaversari.it/?zcode=80jNTM8oUTA0MDLhCs9MKcmAMIOcQxQMjbmcMktSUguAgpZcXJlpCuHafrp%2B4Qp2CgZcCgq6Co5l6X7afq4KusYwLlCBgrGxMRcA)
TPS
2025-02-09 02:24:41
2025-02-09 02:24:42
I was referred back here by <@226977230121598977> for this: Any insight how to best recreate this image?
DZgas Ж
TPS I was referred back here by <@226977230121598977> for this: Any insight how to best recreate this image?
2025-02-09 02:28:44
I referred you not here
jonnyawsom3
TPS I was referred back here by <@226977230121598977> for this: Any insight how to best recreate this image?
2025-02-09 02:50:43
You may want to look back at this https://discord.com/channels/794206087879852103/824000991891554375/1284112799999721564
2025-02-09 02:51:11
It's possible to arrange the colors, but far more work
TPS
It's possible to arrange the colors, but far more work
2025-02-09 06:54:25
Hmm. The order isn't necessarily so important, but having all 2²⁴ Truecolors is, & the square dimensions _would_ be nice. How simplest to do that?
jonnyawsom3
TPS Hmm. The order isn't necessarily so important, but having all 2²⁴ Truecolors is, & the square dimensions _would_ be nice. How simplest to do that?
2025-02-09 07:02:38
Scrolling up a bit from the last link, there's a tree here https://discord.com/channels/794206087879852103/824000991891554375/1284098812121710644
JXL Art Bot
2025-02-12 09:44:41
**\_wb\_** _“Interference”_ 2025 image/jxl 56 bytes [source tree](https://jxl-art.lucaversari.it/?zcode=jZCxDgIhEET7%2FYrpDcmCF7Wy0NhSnCZ8AGK8zoJC%2F%2F5AuAP17mI381hmJ9seL1BMh85f3cPfIZlaZ5VkBlF3wwt7MAFB2iBlkICAhkgycJ1HBmtEJPl9gEKfqrEUcnb%2Bi%2BjKz%2F3SCyll%2FVROVekdZLBabDT787d4JFueOJTBeKdnwOtdU6pGsGk%2B9tk%2FjhRJ6ZP8WDBbRT0%3D)
TPS
2025-02-22 05:15:29
Where did the bot get that from?
dogelition
TPS Where did the bot get that from?
2025-02-22 05:17:16
click source tree, on that site you can click publish to post it here
TPS
2025-02-22 05:19:27
No, I mean: Is the the author the <@794205442175402004> here? Amazing!
_wb_
2025-02-22 05:26:09
This channel contains the entire history of jxl art 🙂
jonnyawsom3
2025-02-22 05:48:41
A while ago I found an animated 'sunset' JXL art using multiply blend frames. Do we have any other examples of animated art?
_wb_
2025-02-22 06:10:52
There's an animation here: https://jpegxl.info/old/art/
monad
2025-02-22 06:41:17
I posted a few, but mostly spline stuff
A homosapien
2025-02-22 11:06:08
We should have a yearly jxl art contest in this server
jonnyawsom3
2025-02-22 11:25:44
There used to be, but we should continue it
2025-03-04 12:37:45
Strange... I was messing with the RGB art from a few months ago, but local jxl_from_tree outputs a black file around 70 bytes bigger than on https://jxl-art.lucaversari.it/
2025-03-04 12:38:01
2025-03-04 12:38:09
embed
2025-03-04 12:38:16
https://embed.moe/https://cdn.discordapp.com/attachments/824000991891554375/1346280489404858388/Website.jxl?ex=67c79ce9&is=67c64b69&hm=3964f6a0e036e77e56de19f60158f4f2016fd2ccd29ebdd4247570da63490acf&
2025-03-04 12:38:29
https://embed.moe/https://cdn.discordapp.com/attachments/824000991891554375/1346280522577481799/Local.jxl?ex=67c79cf1&is=67c64b71&hm=47567488e332aa7a9e6e5987c21fdc529f204c6d8d95fc9b194ae5641b1b27ae&
_wb_
2025-03-04 04:53:03
Sounds like something broke then...
Tirr
2025-03-04 05:28:57
uh, sounds familiar
2025-03-04 05:31:52
I once got similar blackout with jxl_from_tree, but can't find which one
_wb_
2025-03-04 08:22:22
must be related to the chunked encode
2025-03-04 08:31:13
there: https://github.com/libjxl/libjxl/pull/4141
jonnyawsom3
2025-03-04 02:09:01
While you're at it, this was never merged too https://github.com/libjxl/libjxl/pull/3824
2025-03-05 04:07:34
<@179701849576833024> when you have a moment, I don't suppose you could approve the above PRs?
2025-03-05 04:08:24
Though I forgot the modular flag needs a rebase....
veluca
2025-03-05 04:09:36
Once they are fixed, I can check them 🙂 but pls tag me on them
spider-mario
2025-03-05 04:15:00
you are the reviewer for that last one
2025-03-05 04:15:02
I’ve just merged
2025-03-05 04:15:21
I mean resolved the merge conflict (merged main into that branch)
2025-03-05 04:15:25
not merged that branch into main
veluca
2025-03-05 04:19:43
uuups
jonnyawsom3
2025-03-05 04:39:06
Thanks guys, now we can make the smallest jxl officially haha
JXL Art Bot
2025-03-16 03:32:47
**\_wb\_** _“A new phone wallpaper”_ 2025 image/jxl 52 bytes [source tree](https://jxl-art.lucaversari.it/?zcode=hVC7DsIwDNz9FfcDlpI%2BkFgYQAimDjyUuaKBRiooggzw9ySkFFpU4cV31p198maxg6C5cZW2rsaUlKl8zyaC1tqcagcpkoz29laebaMhicwRD8y8C%2FCwaGEkigNn%2BRrEERfLThKKsdWux1fXsjL64pD%2BsTX64D7Le1bOBxnEz66esVBIRiKNOIap2zgyj3%2B4e70U3ScCTcVbz1D4xhxvByjpCQ%3D%3D)
2025-03-16 08:55:34
**\_wb\_** _“MicroRough Surface”_ 2025 image/jxl 63 bytes [source tree](https://jxl-art.lucaversari.it/?zcode=jVHBCsIwDL33K3IfhXao9SSoiLcenJCzbFULQ0SK6N%2Bb2rWjusFuLy95L%2BHlsD1CqdjGusbc3RWkYMyeoYYVSAZA8EVQEATggMBlB3Xsv1OfCiw010jMUgTOj1bGkS4RNKaTJhLIPde59zTXu2w0GK6fF13QGvXD7x%2Bnxpqbm%2BpTmdbUNF2O%2BqiBI8Wgd7byGxD%2BGyPCYpraZzZyrpzFtP1rslw9MRe9zn9MZlU6KbQ%2B)
couleur
2025-03-16 09:36:37
you guys heard of any jxl art with this kinda pattern?
lonjil
couleur you guys heard of any jxl art with this kinda pattern?
2025-03-16 09:47:16
https://discord.com/channels/794206087879852103/824000991891554375/926775719709782067
username
2025-03-16 09:48:41
also these which I downloaded a few years ago
jonnyawsom3
2025-03-16 09:49:59
https://discord.com/channels/794206087879852103/824000991891554375/844164924527476757 24 bytes
2025-03-16 09:55:29
Found this one too, but Upsampling seems to be broken on the site https://jxl-art.lucaversari.it/?zcode=TY4xC8IwFIT39ytuL4FqW9FFUAedIlglczDPJlBrrM_FX28iIm733QfHrYM4juJR0WFzREkmuESLWUk7Dp0XNHVJp_iw19gz5rQfAw9iJdwGTKi9P5lfTKs-eksULjhjiYaAFE2hlTaJq8SAgoaqP_Fffqvst6N1eR3TX2VQZK_QsqR3bw
username
Found this one too, but Upsampling seems to be broken on the site https://jxl-art.lucaversari.it/?zcode=TY4xC8IwFIT39ytuL4FqW9FFUAedIlglczDPJlBrrM_FX28iIm733QfHrYM4juJR0WFzREkmuESLWUk7Dp0XNHVJp_iw19gz5rQfAw9iJdwGTKi9P5lfTKs-eksULjhjiYaAFE2hlTaJq8SAgoaqP_Fffqvst6N1eR3TX2VQZK_QsqR3bw
2025-03-16 10:05:55
something changed at some point in time with how the website generates/interprets stuff, I remember I encountered this when me and <@207980494892040194> where trying to get a older art piece to render the same to edit it and we had to use a archive.org wayback machine version of the site to get the old output
jonnyawsom3
2025-03-16 10:24:18
I know RCT had it's values changed
Demiurge
**\_wb\_** _“A new phone wallpaper”_ 2025 image/jxl 52 bytes [source tree](https://jxl-art.lucaversari.it/?zcode=hVC7DsIwDNz9FfcDlpI%2BkFgYQAimDjyUuaKBRiooggzw9ySkFFpU4cV31p198maxg6C5cZW2rsaUlKl8zyaC1tqcagcpkoz29laebaMhicwRD8y8C%2FCwaGEkigNn%2BRrEERfLThKKsdWux1fXsjL64pD%2BsTX64D7Le1bOBxnEz66esVBIRiKNOIap2zgyj3%2B4e70U3ScCTcVbz1D4xhxvByjpCQ%3D%3D)
2025-03-18 11:14:36
Very mathematical looking...
JXL Art Bot
2025-03-30 02:50:31
**\_wb\_** _“Untitled”_ 2025 image/jxl 37 bytes [source tree](https://jxl-art.lucaversari.it/?zcode=HcixCoMwFAXQ%2FX7F3UsGUxJ0ESwdOokgkjnoUwMpBHz0%2BxvcDgevpJsUPdniLVnjFLOoCkLaalrn8JF0nFrpsZQrfksWWgBpZ3iMZgzs6Z8gDYffUSvQNLa7Y5Ysq9LjDw%3D%3D)
2025-03-30 08:48:30
**\_wb\_** _“Something something neon HDR”_ 2025 image/jxl 62 bytes [source tree](https://jxl-art.lucaversari.it/?zcode=c8osSUktKMlQMDTgcknNKUkMSMxJLSlJ5QpKTTYyNDBQ8PBx5wotKE7MLchJVTDi4spMU6hUsFMwMjKCMU1NTbl0FRzL0v20%2FcIVdA3hHFcFEBsixsUFAA%3D%3D)
2025-04-06 07:38:38
**\_wb\_** _“Relatively interesting for 21 bytes”_ 2025 image/jxl 21 bytes [source tree](https://jxl-art.lucaversari.it/?zcode=c8osSUktKMlQMDTgcknNKUkMSMxJLSlJ5XJPTMovyizO4HINcFMw4uLSVXAsSw%2FX9gtX0DXmAgA%3D)
2025-04-06 08:14:58
**\_wb\_** _“Nuggets of default delta palette in HDR”_ 2025 image/jxl 39 bytes [source tree](https://jxl-art.lucaversari.it/?zcode=c8osSUktKMlQMDTgcknNKUkMSMxJLSlJ5QpKTTYyNDBQCAjk4spMU%2FBTsFPQNTQ159JVcC9KTMlMzSsB8oG88NTM9IyS1BQFMwMuAA%3D%3D)
Laserhosen
2025-04-06 08:25:49
No other format can encode a migraine aura so efficiently.
AccessViolation_
2025-04-06 09:29:34
that's the JPEG XL promise
JXL Art Bot
2025-04-12 09:26:45
**Anonymous** _“grid”_ 2025 image/jxl 39 bytes https://jxl-art.surma.technology/?zcode=dcxBCsJADIXh%2FZziv0AgHaF15UL3I2hh1qWOOCBVJPfHTEV37l5evgRgX%2B1SnnZjG3zi%2BKplscnqY2FYm9NhpA%2BhXpnZ0XnnMbeougIhZ6QthHMxurj5av3oJCn9PbiX2Rw25ibq748GIWXiGw%3D%3D
wondering
2025-04-13 08:59:53
there seems to be a slight issue with this tree: ``` Bitdepth 8 RCT 0 Width 32 Height 32 if c > 1 - Set 0 if c > 0 if x > 0 - Set 0 - Set 255 - Set 0 ```
2025-04-13 09:00:26
I'm only setting the first row, but the color also ends up in the second and third rows
2025-04-13 09:00:44
2025-04-13 09:01:00
2025-04-13 09:01:14
is there a way to avoid the color bleeding?
dogelition
wondering
2025-04-13 09:09:10
how did you take the screenshot? the file itself doesn't have any color bleeding, that's just an artifact probably from upscaling
2025-04-13 09:10:18
this is what i see when i zoom in on https://jxl-art.lucaversari.it (by just using the mouse wheel on the preview)
wondering
2025-04-13 09:14:00
I think it might be a bug with mac's preview, since the PNG download looks fine when zoomed in
2025-04-13 09:14:09
thanks
dogelition
2025-04-13 09:15:39
oh that's interesting, wonder why that happens 🤔
JXL Art Bot
2025-04-16 09:02:31
**Hammad** _“Dream”_ 2025 image/jxl 28 bytes https://jxl-art.surma.technology/?zcode=ZY89C8IwFEX3%2FIq7dAqBJP2ggwhVukZQIbPQ2GapIkHsvzepaQ10fHkn5953sK4zTzegJqeXNaO7OfsYIcj5eEVFiL1jwh6CcwIwNO9eUdWCymTUYMKPHv14NJ%2FRsNXG9oMzHaiILwosX8gMJccOsow779LB5dW%2F1AzFDPC%2FW67ui3EQcpPEkl465JL4s0gOaGm7gGphptUey1UhO9%2BeIpMCNf8C
TheBigBadBoy - 𝙸𝚛
2025-04-16 03:28:45
it feels like it can be done in smaller fiel than 28B as e.g. this is 28B https://discord.com/channels/794206087879852103/824000991891554375/1332994576260141098
monad
2025-04-16 07:54:17
I'm curious what suggests it isn't minimal ```RCT 6 if y > 100 - AvgN+NE +2 - AvgN+NW -1```
2025-04-16 07:59:56
NW -1 works to reduce complexity, but not bitstream size
JXL Art Bot
2025-04-16 10:55:24
**gpt o3 + ebfe** _“ouch”_ 2025 image/jxl 121 bytes https://jxl-art.surma.technology/?zcode=vZC9DsIwDIR3P4V3VMm22kAXBiYmFoY%2BAC00G0MGeHuc%2FiUB8SNR6HSnq85frrK1axGRSXLYNvbUusFsrKubs4YrALBHPOAaGQBVXlUSoJc7lVJ409kqsogZ7huHveu1FMWrX%2B9iM6SZugzz5ApH2ULBQonvDHUjOgX00vyBXT5ml%2BgGEwVM3zdz91TOpfQjXPyl5dtBvp2D84TZ0LP3pMxCXTRyPi4yR%2F80Cf%2BiXr8b
TheBigBadBoy - 𝙸𝚛
monad I'm curious what suggests it isn't minimal ```RCT 6 if y > 100 - AvgN+NE +2 - AvgN+NW -1```
2025-04-16 11:09:37
I know nothing from jxl_from_tree, I just thought that I saw much more complex patterns with 28B, so I thought it could be smaller
itszn
2025-04-16 11:14:45
emergent complexity ;P
A homosapien
TheBigBadBoy - 𝙸𝚛 I know nothing from jxl_from_tree, I just thought that I saw much more complex patterns with 28B, so I thought it could be smaller
2025-04-16 11:35:54
Very complex yes https://discord.com/channels/794206087879852103/824000991891554375/1302506243692433408
TheBigBadBoy - 𝙸𝚛
2025-04-16 11:36:51
oh well in my previous message I linked to this 28B image: https://cdn.discordapp.com/attachments/824000991891554375/1332994576553873439/art.png
A homosapien
2025-04-16 11:37:17
I was joking lol
monad
2025-04-16 11:40:30
This one is relatively interesting for 21 bytes https://discord.com/channels/794206087879852103/824000991891554375/1358526333931622613
A homosapien
2025-04-16 11:48:43
I see what you did there <:PepeGlasses:878298516965982308>
2025-04-17 12:30:01
https://discord.com/channels/794206087879852103/824000991891554375/1039273310392950806 Not only did I find out that RCT values shifted, but the website makes this art larger?
2025-04-17 12:30:17
It went from 34 bytes to 52 bytes...
2025-04-17 12:31:16
Changing `upsample 2` to 1 brings it down to 33 bytes, so what changed since then where upsampling takes up so much space?
jonnyawsom3
A homosapien Changing `upsample 2` to 1 brings it down to 33 bytes, so what changed since then where upsampling takes up so much space?
2025-04-17 12:51:45
Upsampling is completely broken for me
2025-04-17 12:53:51
Or... Apparently only for certain images? Weird
A homosapien Changing `upsample 2` to 1 brings it down to 33 bytes, so what changed since then where upsampling takes up so much space?
2025-04-17 01:03:36
Something broke internally to jxl_from_tree with resampling. Using cjxl it's a fixed 3 byte cost with no memory increase jxl_from_tree is going from 33 to 52 and 82 bytes with memory usage hitting 100 MB, 400 MB and 1.4 GB for Upsampling 1, 2 and 4
A homosapien
2025-04-17 01:07:36
It's likely that it broke around the same time RCT values changed, was it 0.10?
2025-04-17 01:13:25
Wait a second maybe this fixed it? https://github.com/libjxl/libjxl/pull/3824
2025-04-17 01:13:43
It's a shame the website is still using 0.11
jonnyawsom3
2025-04-17 01:16:19
YCoCg got changed from 1 to 6, but AFAIK the rest were the same
A homosapien Wait a second maybe this fixed it? https://github.com/libjxl/libjxl/pull/3824
2025-04-17 01:16:57
I'm using that build, it's where I got my numbers from
A homosapien
2025-04-17 01:17:40
Welp time to go into another rabbit hole
_wb_
YCoCg got changed from 1 to 6, but AFAIK the rest were the same
2025-04-17 06:46:21
No, values > 1 in the old numbering need a -2 correction too
jonnyawsom3
2025-04-17 06:46:51
Ah, thanks
_wb_
Something broke internally to jxl_from_tree with resampling. Using cjxl it's a fixed 3 byte cost with no memory increase jxl_from_tree is going from 33 to 52 and 82 bytes with memory usage hitting 100 MB, 400 MB and 1.4 GB for Upsampling 1, 2 and 4
2025-04-17 06:48:51
This is probably a side effect of chunked encoding, it may be introducing more groups in the frame due to higher image dimensions that shouldn't be there because the actual frame dimensions are still smaller.
jonnyawsom3
2025-04-17 06:51:38
Probably, I know this didn't fix it since that's the version of jxl_from_tree I'm using https://github.com/libjxl/libjxl/pull/4141
JXL Art Bot
2025-04-19 05:49:09
**\_wb\_** _“The rocket”_ 2025 image/jxl 28 bytes [source tree](https://jxl-art.lucaversari.it/?zcode=c8osSUktKMlQMOVySc0pSQxIzEktKUnlcg1wUzDick9Myi%2FKLM7g4spMUwjX9tP1C1ewU9A15dJVALJ0DYG0e1FiSmZqXomCGRcA)
2025-04-19 06:56:14
**\_wb\_** _“Fire”_ 2025 image/jxl 25 bytes [source tree](https://jxl-art.lucaversari.it/?zcode=c8osSUktKMlQsOBySc0pSQxIzEktKUnlcg1wUzDick9Myi%2FKLM7g4spMUwjX9tP1C1ewU9A1NubSVQAydQ2BtGNZOlAmXMGECwA%3D)
jonnyawsom3
2025-04-19 06:59:30
The rocket must've been a Boeing
JXL Art Bot
2025-04-19 07:03:01
**\_wb\_** _“Unexpected marble and gold”_ 2025 image/jxl 26 bytes [source tree](https://jxl-art.lucaversari.it/?zcode=c8osSUktKMlQMDTgcknNKUkMSMxJLSlJ5eLKTFMI1%2FbT9QtXsFMw4NJVCE4tUdA1NgayHMvSHXNyFIy4AA%3D%3D)
2025-04-19 07:11:21
**Jonnyawsom3** _“Corruption of order”_ 2025 image/jxl 26 bytes [source tree](https://jxl-art.lucaversari.it/?zcode=C89MKclQMDU04vJIzUzPKFEwMjXjcknNKUkMSMxJLSlJ5XINcFMw4nJPTMovyizO4OLKTFMI1w0P1%2FUL1%2FYLD1ewU9A14dJV8AtX0DUE0uFgU1JTFEwA)
jonnyawsom3
2025-04-19 07:11:56
I was messing with the rocket and ended up with that
JXL Art Bot
2025-04-19 07:14:29
**\_wb\_** _“Spilling and smearing”_ 2025 image/jxl 31 bytes [source tree](https://jxl-art.lucaversari.it/?zcode=c8osSUktKMlQMDTgcknNKUkMSMxJLSlJ5eLKTFMI1%2FbT9QtXsFPQNeTSVQhOLVHQtbQES7h7AEUNgIKOZel%2B2kA1xnC2q4KuERcA)
2025-04-22 08:06:55
**\_wb\_** _“Brushed plastic”_ 2025 image/jxl 36 bytes [source tree](https://jxl-art.lucaversari.it/?zcode=c8osSUktKMlQsOBySc0pSQxIzEktKUnl4uLKTFMI1%2FbT9QtXsFMw4NJVcC9KTMlMzStR0DU2MECR1TWECrh7QNU6lqX7aQPldI3hHFcFY2RDDLkA)
2025-04-22 08:25:10
**\_wb\_** _“The Epic Siege of the Nether Castle”_ 2025 image/jxl 47 bytes [source tree](https://jxl-art.lucaversari.it/?zcode=c8osSUktKMlQsOQKcg5RMDLnCkpNNjI0MODiykxTSFawUzAEMSqADAMuXYVwBV1DIOUHEQ3X9tP1CwdKGRsbg0SBsiAWsoyuoSFEqbsHSB1QlWNZup82SKkRnOOqYAJkuxclpmSm5pUoGHEBAA%3D%3D)
2025-04-23 01:38:50
**CrushedAsian255** _“melting crystal”_ 2025 image/jxl 31 bytes [source tree](https://jxl-art.lucaversari.it/?zcode=c8osSUktKMlQsOBySc0pSQxIzEktKUnl4uLKTFMI1%2FbT9QtXsFPQtTDg0lVwLEv30wbydQ2BHPeixJTM1LwSBSMDAA%3D%3D)
CrushedAsian255
2025-04-23 01:41:39
i don't have the source tree for this; I made it by editing random bytes in the JXL file
embed
CrushedAsian255 i don't have the source tree for this; I made it by editing random bytes in the JXL file
2025-04-23 01:41:47
https://embed.moe/https://cdn.discordapp.com/attachments/824000991891554375/1364415898030575718/art-1.jxl?ex=680996d3&is=68084553&hm=7387c32a89a3dffec8dd79cf121370ef5ef5c7637ea6795f54f55eb8535901de&
itszn
CrushedAsian255 i don't have the source tree for this; I made it by editing random bytes in the JXL file
2025-04-23 04:00:05
I've been trying to experiment with something similar, but using fuzzers like AFL++ Here is one image that was found by applying successive randomish mutations to an existing image: I only ran the fuzzer for like 15 min but I want to do a longer run at some point for a few hours It reminds me of soapbubbles
CrushedAsian255
itszn I've been trying to experiment with something similar, but using fuzzers like AFL++ Here is one image that was found by applying successive randomish mutations to an existing image: I only ran the fuzzer for like 15 min but I want to do a longer run at some point for a few hours It reminds me of soapbubbles
2025-04-23 07:27:56
Someone should try to make a tree_from_jxl
2025-04-23 07:28:07
I might give it a go sometime
JXL Art Bot
2025-04-25 12:32:31
**\_wb\_** _“HDR test image”_ 2025 image/jxl 113 bytes [source tree](https://jxl-art.lucaversari.it/?zcode=ZZK9TsQwEIT7PMXWB8ntrv8bCkRBCVzBA0Dg0sBJZwl4exwnu5HibuR86xnv5H7K7%2BMln4Gwe3ruHsfp85zBEXfd9AG%2FcAc4i78iDGLXwyuQfGEUFa0oIj0kyypD1CHWUw56lWGvMgaR1inrWFmXzCbV2Hu1CFaBuLnFlEr805ghBQ9wPIC3AeFrytdbuHFwzd%2BXKxyOIBRipQybKJRVaoUimwqRZ73K7KFgF79ILAzvGe%2FTjFh0gtCGlBe81SYWFreEqyp7mKcZzTp9eniBn%2FOUx82hbLAmRVqZnvYhyr5nxOEgL%2B6boKWeauUGSdo3Dy5tVisevDDN5kr5tYNBIveuQbjGMQMFYfyeKX9WtRqcWoWGsfUeHEISJjYM4cIYZVJTtl0QUqQM7Zito38%3D)
_wb_
2025-04-25 12:34:01
every band above is twice as bright as the previous one (before tone mapping, that is); the red line indicates where SDR ends.
Lumen
2025-04-25 12:36:08
wow, discord preview is world away from the true image, it s not even close
Quackdoc
2025-04-25 12:36:40
yeah discord tonemaps
dogelition
2025-04-25 12:37:05
unfortunately chromium on android seems to have some issues with hdr images, i noticed that with the test pattern i made too
Lumen
2025-04-25 12:37:07
my discord preview doesnt even have perfectly increasing white going to the right
dogelition
2025-04-25 12:37:13
the gradient has an insane amount of banding
Lumen
2025-04-25 12:37:25
like what-
dogelition
2025-04-25 12:37:36
and the entire page flickers a lot when not in desktop mode, for some reason
dogelition the gradient has an insane amount of banding
2025-04-25 12:42:06
_wb_
2025-04-25 02:02:52
On my Nothing phone it looks like that banding mess (and only SDR), on my Motorola Edge 40 it looks fine (and HDR). Both have HDR-capable displays in principle, but I think the Nothing phone is somehow only using it in 8-bit SDR mode while the Motorola does use it in HDR mode.
jonnyawsom3
2025-04-25 02:06:00
My phone is an ancient Huawei, which also has a HDR capable display, but it uses a custom API so only YouTube and the internal video player can show HDR content
dogelition
_wb_ On my Nothing phone it looks like that banding mess (and only SDR), on my Motorola Edge 40 it looks fine (and HDR). Both have HDR-capable displays in principle, but I think the Nothing phone is somehow only using it in 8-bit SDR mode while the Motorola does use it in HDR mode.
2025-04-25 02:12:44
interesting, it's broken on my xiaomi (poco f7 pro) and also a friend's oneplus (13r) (both are very recent and support SDR dimming, so they do display it in HDR)
Quackdoc
_wb_ On my Nothing phone it looks like that banding mess (and only SDR), on my Motorola Edge 40 it looks fine (and HDR). Both have HDR-capable displays in principle, but I think the Nothing phone is somehow only using it in 8-bit SDR mode while the Motorola does use it in HDR mode.
2025-04-25 02:24:20
ah nothing phone, yeah they have a really poor reputation in android rom circles for bugs lol
My phone is an ancient Huawei, which also has a HDR capable display, but it uses a custom API so only YouTube and the internal video player can show HDR content
2025-04-25 02:24:45
what android is it? stock a10 or below?
_wb_
2025-04-25 02:29:22
On that Nothing phone, in youtube and the native photo gallery app, I can view things in HDR, but not in Chrome, it looks like. That's a pity. I hope they'll fix that in some update.
jonnyawsom3
Quackdoc what android is it? stock a10 or below?
2025-04-25 02:32:01
EMUI 12, Android 10
Quackdoc
EMUI 12, Android 10
2025-04-25 03:06:41
rip, one major update away from proper HDR
2025-04-25 03:06:58
well, a11 isn't great, hdr on android doesn't actually become good until A13
RaveSteel
2025-04-25 03:17:03
HDR on samsung phones is a mess also
Quackdoc
2025-04-25 03:25:19
is it? I never had an issue on mine, even on s9+ samsung had a fairly sophisitcated HDR pipeline despite being A10
RaveSteel
2025-04-25 04:59:35
HDR on Samsung works fine with video, but becomes a mess with images, especially in browsers. Even chrome doesn't work properly oftentimes. Samsung Internet (lol) works better sometimes, but not always. Additionally I have not managed to get wide gamut to display properly in chrome. Heck, even the samsung gallery does not properly display wide gamut on my S23U
2025-04-25 05:00:20
At least it works on an S24, but I don't think that the S23 is so old that this should not work?
Quackdoc
2025-04-25 07:03:46
interesting
JXL Art Bot
2025-04-25 07:54:15
**\_wb\_** _“DeltaPalette + Squeeze = ?”_ 2025 image/jxl 26 bytes [source tree](https://jxl-art.lucaversari.it/?zcode=c8osSUktKMlQsOBySc0pSQxIzEktKUnlCi4sTU2tSuXiykxTSFawUzDk0lUITi1RMADSfuEKusZcXFwA)
_wb_
2025-04-25 07:54:57
I was surprised to see such shapes emerge
jonnyawsom3
2025-04-25 08:02:26
Delta pallete is hardly explored, and was actually broken for images above 2040 w/h until I fixed it in my fork last night. Throw in Squeeze and you can 'see' the raw MA tree in fully encoded files using progressive loading, since residuals are stored without predictors for delta. This is the first pass of a Factorio screenshot
2025-04-25 08:03:11
2025-04-25 08:06:13
It's interesting how you can already see the square menu shapes being made by the tree (Or whatever's causing it)
JXL Art Bot
2025-04-25 08:08:26
**\_wb\_** _“DeltaPalette + Squeeze = ??”_ 2025 image/jxl 27 bytes [source tree](https://jxl-art.lucaversari.it/?zcode=c8osSUktKMlQMDTgcknNKUkMSMxJLSlJ5QouLE1NrUrl4spMU0hWsFMw5NJVCE4tUTAB0n7hCrrGXFxcAA%3D%3D)
2025-04-25 08:08:49
**\_wb\_** _“DeltaPalette + Squeeze = ???”_ 2025 image/jxl 26 bytes [source tree](https://jxl-art.lucaversari.it/?zcode=c8osSUktKMlQMDTgcknNKUkMSMxJLSlJ5QouLE1NrUrl4spMU0hWsFMw5tJVCE4tUTAB0n7hCrrGXFxcAA%3D%3D)
jonnyawsom3
2025-04-25 08:10:33
Things are getting interesting
JXL Art Bot
2025-04-25 08:13:16
**\_wb\_** _“Set 0”_ 2025 image/jxl 26 bytes [source tree](https://jxl-art.lucaversari.it/?zcode=c8osSUktKMlQMDTgcknNKUkMSMxJLSlJ5QouLE1NrUrl4spMU0hWsFMw5NJVCE4tUTAA0n7hCuZcXFwA)
2025-04-25 08:13:28
**\_wb\_** _“Set 1”_ 2025 image/jxl 26 bytes [source tree](https://jxl-art.lucaversari.it/?zcode=c8osSUktKMlQMDTgcknNKUkMSMxJLSlJ5QouLE1NrUrl4spMU0hWsFMw5NJVCE4tAdN%2B4QrmXFxcAA%3D%3D)
2025-04-25 08:13:43
**\_wb\_** _“Set 2”_ 2025 image/jxl 27 bytes [source tree](https://jxl-art.lucaversari.it/?zcode=c8osSUktKMlQMDTgcknNKUkMSMxJLSlJ5QouLE1NrUrl4spMU0hWsFMw5NJVCE4tUTAC0n7hCuZcXFwA)
2025-04-25 08:14:12
**\_wb\_** _“Set 4”_ 2025 image/jxl 26 bytes [source tree](https://jxl-art.lucaversari.it/?zcode=c8osSUktKMlQMDTgcknNKUkMSMxJLSlJ5QouLE1NrUrl4spMU0hWsFMw5NJVCE4tUTAB0n7hCuZcXFwA)
2025-04-25 08:14:51
**\_wb\_** _“Set 6”_ 2025 image/jxl 26 bytes [source tree](https://jxl-art.lucaversari.it/?zcode=c8osSUktKMlQMDTgcknNKUkMSMxJLSlJ5QouLE1NrUrl4spMU0hWsFMw5NJVCE4tUTAD0n7hCuZcXFwA)
2025-04-25 08:26:27
**\_wb\_** _“Tablecloth”_ 2025 image/jxl 26 bytes [source tree](https://jxl-art.lucaversari.it/?zcode=c8osSUktKMlQsOBySc0pSQxIzEktKUnlCi4sTU2tSuXiykxTSFawUzCEMYy5dBWCU0sUDKC0rhFcgIsLAA%3D%3D)
Kupitman
2025-04-25 08:39:47
wtf gais
CrushedAsian255
**\_wb\_** _“DeltaPalette + Squeeze = ???”_ 2025 image/jxl 26 bytes [source tree](https://jxl-art.lucaversari.it/?zcode=c8osSUktKMlQMDTgcknNKUkMSMxJLSlJ5QouLE1NrUrl4spMU0hWsFMw5tJVCE4tUTAB0n7hCrrGXFxcAA%3D%3D)
2025-04-26 06:09:26
Does delta palette or squeeze run first on decode?
Tirr
2025-04-26 06:13:51
it's configurable
2025-04-26 06:14:59
theoretically even squeeze-palette-squeeze is possible, but maybe jxl_from_tree doesn't support it
CrushedAsian255
2025-04-26 06:16:46
What would that do?
2025-04-26 06:17:12
Squeeze the delta palette parameters of the already existing squeeze?
_wb_
2025-04-26 06:49:23
Lots of possible things are not available from jxl_from_tree. We would need to come up with some syntax to pass arbitrary modular transform chains...
CrushedAsian255
2025-04-26 07:58:42
maybe something like ``` Transforms - Squeeze - DeltaPalette - Squeeze ```
2025-04-26 07:58:57
do they take any parameters?
_wb_
2025-04-26 09:41:50
Yes, currently jxl_from_tree just does default squeeze and deltapalette with zero colors and some default predictor, there are lots of other options that can be signaled but it will require some annoying/boring code plumbing to expose all that.
CrushedAsian255
2025-04-26 11:27:48
What about Transforms { Squeeze { Parameter 1 Parameter 2 } DeltaPalette { Parameter 1 Parameter 2 } }
2025-04-26 11:28:09
Like I think maybe we should have 2 blocks, the header block and the tree block
JXL Art Bot
2025-04-26 07:00:14
**\_wb\_** _“Messy mosaic”_ 2025 image/jxl 25 bytes [source tree](https://jxl-art.lucaversari.it/?zcode=c8osSUktKMlQsOBySc0pSQxIzEktKUnlCi4sTU2tSuXi4spMU0hWsFMw5dJVCE4tUTAA0uEKJkAJLgA%3D)
2025-04-26 07:28:44
**\_wb\_** _“How to tame this thing?”_ 2025 image/jxl 27 bytes [source tree](https://jxl-art.lucaversari.it/?zcode=c8osSUktKMlQMDTgcg1wUzDick9Myi%2FKLM7gcknNKUkMSMxJLSlJ5QouLE1NrUrl4uLKTFNIVrBTMOXSVQhOLVHQNYULGUKFQHS4gq4xFxcA)
2025-04-26 07:56:35
**Tirr** _“Noisy palette”_ 2025 image/jxl 26 bytes [source tree](https://jxl-art.lucaversari.it/?zcode=c8osSUktKMlQsOBySc0pSQxIzEktKUnlCi4sTU2tSuXiykxTSFawUzDk0lXwUzAHkuEKplxcXAA%3D)
2025-04-26 08:05:34
**Tirr** _“Noisy pattern”_ 2025 image/jxl 26 bytes [source tree](https://jxl-art.lucaversari.it/?zcode=c8osSUktKMlQsOBySc0pSQxIzEktKUnlCi4sTU2tSuXiykxTSFawUzDk0lXwC4dRuoZcXFwA)
jonnyawsom3
**Tirr** _“Noisy palette”_ 2025 image/jxl 26 bytes [source tree](https://jxl-art.lucaversari.it/?zcode=c8osSUktKMlQsOBySc0pSQxIzEktKUnlCi4sTU2tSuXiykxTSFawUzDk0lXwUzAHkuEKplxcXAA%3D)
2025-04-26 09:15:49
Would be curious to see how random that is
itszn
2025-04-27 02:14:59
```bash r2@4f34c12546c7:/app$ rahash2 -a entropy random2.bin # same size file from /dev/urandom random2.bin: 0x00000000-0x000fffff entropy: 7.99983608 r2@4f34c12546c7:/app$ rahash2 -a entropy random.png random.png: 0x00000000-0x0020c263 entropy: 7.99787395 ``` This might not actually be the best way to calculate that, and would be better to see if there are some parts of the file that are lower entropy
2025-04-27 02:25:58
binwalk has high entropy across the board for the .png file
**Tirr** _“Noisy pattern”_ 2025 image/jxl 26 bytes [source tree](https://jxl-art.lucaversari.it/?zcode=c8osSUktKMlQsOBySc0pSQxIzEktKUnlCi4sTU2tSuXiykxTSFawUzDk0lXwC4dRuoZcXFwA)
2025-04-27 02:27:41
this second image is a tiny bit more lumpy, hard to see unless you zoom in
jonnyawsom3
itszn binwalk has high entropy across the board for the .png file
2025-04-27 02:31:51
Nice, so... We have *essentially* pure RGB noise in 26 bytes?
2025-04-27 02:32:20
Probably XYB noise but anyway
itszn
2025-04-27 04:25:17
Ya, I would say this output is what I would expect from a pRNG. There are some fairly small pRNG algorithms, such as LCG, which usually is a register which gets shifted/added by some constant and then a modulus is taken. I'm not entirely clear on what the squeeze / delta palette combination is doing here but I can imagine it may be a similar effect
JXL Art Bot
2025-04-27 04:38:33
**CrushedAsian255** _“A thing”_ 2025 image/jxl 37 bytes [source tree](https://jxl-art.lucaversari.it/?zcode=c8osSUktKMlQsOBySc0pSQxIzEktKUnlCi4sTU2tSuXi4spMU0hWsFMw5FJQgDKNgEw4xxjMgXMtoFywQAVInwFcRFchOLUEUwDG11UIB9uCLA4S0wXq0FXwcwXp5AIA)
2025-04-27 04:42:41
**CrushedAsian255** _“Another thing”_ 2025 image/jxl 30 bytes [source tree](https://jxl-art.lucaversari.it/?zcode=PcmxDkAwFAXQ%2FX3F%2FYEOFcJkEINRYugsXNqkA8mz%2BHpF2E5ymqAzN%2FWoZNgP8qS0jDr2Y6QqxYU5ZWEz6RhWrw8lLHCoYSpB4pRYCgwGKkx2y8HY%2F4rv8resXA%3D%3D)
jonnyawsom3
**Tirr** _“Noisy palette”_ 2025 image/jxl 26 bytes [source tree](https://jxl-art.lucaversari.it/?zcode=c8osSUktKMlQsOBySc0pSQxIzEktKUnlCi4sTU2tSuXiykxTSFawUzDk0lXwUzAHkuEKplxcXAA%3D)
2025-04-27 06:17:35
<@224363555074342912>
2025-04-27 07:08:08
The bot seems to have failed to publish this. Animated Delta Squeeze JXL Art
embed
The bot seems to have failed to publish this. Animated Delta Squeeze JXL Art
2025-04-27 07:08:12
https://embed.moe/auto.gif?q=https%3A%2F%2Fcdn.discordapp.com%2Fattachments%2F824000991891554375%2F1365947610267127821%2FTV_Static.jxl%3Fex%3D680f2958%26is%3D680dd7d8%26hm%3Dfa232b6204174864f80a433c38cf6b950da59748ec13a34fb34ab59668d1a1de%26
jonnyawsom3
2025-04-27 07:09:48
<https://jxl-art.lucaversari.it/?zcode=c8osSUktKMlQsOBySc0pSQxIzEktKUnlCi4sTU2tSuUKz0wBShoaGJlweaRmpmeUQNiOeZm5iSWZ-XlcLqVFYAZQ3IDLL7_EJ7G4hCszTSFZwU7BkEtXwU_BHEiGK5hycTnR3i4LOtplCbbLhC52GRrSxjJUS4wglgAA>
A homosapien
2025-04-27 07:10:49
125 byte JXL vs 6 MB GIF <:FeelsAmazingMan:808826295768449054>
jonnyawsom3
2025-04-27 07:24:34
10.2 MB Lossless WebP, so 99.99884% smaller as JXL art
monad
Nice, so... We have *essentially* pure RGB noise in 26 bytes?
2025-04-27 09:17:27
this just demonstrates the png compression at work. running rahash2 against the raw pixel data yields 5.77188076
_wb_
2025-04-27 09:22:21
the entropy is likely not that high since most of the pixels will be some default palette color, of which there are only a small amount
2025-04-27 09:23:12
(and then I suppose there will also be pixels that are deltas but again the distribution will not be very uniform)
2025-04-27 09:24:45
but visually it looks pretty much like random noise, and probably the most significant bits of the pixel values are pretty much random, just the least significant bits aren't (but those don't matter perceptually in an image that basically has maximum contrast masking)
spider-mario
2025-04-30 09:29:07
not actually jxl art, but resembles a previous jxl art image https://static.bhphotovideo.com/explora/sites/default/files/03-trvphoto-377-0039.png
CrushedAsian255
2025-04-30 11:15:16
transcoded to jxl; now it's relevant
spider-mario
2025-04-30 12:03:25
oh, right, why is that lossless on their website
jonnyawsom3
2025-04-30 02:12:49
Hmm, wonder how many bytes adding a moon to the previous art would be
CrushedAsian255
Hmm, wonder how many bytes adding a moon to the previous art would be
2025-04-30 10:45:12
Can JXL art draw circles?
2025-04-30 10:45:22
If so you could easily just add a layer with a blend mode
jonnyawsom3
CrushedAsian255 Can JXL art draw circles?
2025-04-30 11:05:31
Could use splines, but they aren't filled so it'd need either a spiral or the inner color to be set seperately
_wb_
2025-05-01 06:04:47
A fat spline can look like an ellipse
CrushedAsian255
_wb_ A fat spline can look like an ellipse
2025-05-01 06:14:41
Can a spline be a single point?
2025-05-01 06:14:46
If so then it can be circle
jonnyawsom3
2025-05-01 06:45:53
It's been done before https://discord.com/channels/794206087879852103/824000991891554375/882262818727034942 https://discord.com/channels/794206087879852103/824000991891554375/899379720611840050
pekaro
**CrushedAsian255** _“Another thing”_ 2025 image/jxl 30 bytes [source tree](https://jxl-art.lucaversari.it/?zcode=PcmxDkAwFAXQ%2FX3F%2FYEOFcJkEINRYugsXNqkA8mz%2BHpF2E5ymqAzN%2FWoZNgP8qS0jDr2Y6QqxYU5ZWEz6RhWrw8lLHCoYSpB4pRYCgwGKkx2y8HY%2F4rv8resXA%3D%3D)
2025-05-08 03:25:16
that is awesome!
Zyan
2025-05-09 04:29:34
Been done before but I fixed the aspect ratio and where the lines meet the corner :) tis my first major jxl art! 154 bytes [source here](https://jxl-art.surma.technology/?zcode=hZY9b9swEIZ3_4rr0sFQEdKKIidAOhRo0Sko0CGzatM2EUUUKMYf-fW9oyiKpOQE8CCKx-PLh_eefLOEP1rtteg6fJBbAb_qag9HDsubxW8h9wcDd4wtnuXWHIAzfPwhzVa0OFovFnIHZ_gOtwWDmyW8VrKBHa1vK20oA2DABQNyZgP-KWPUKxyqemdnh-min27fdFsL4LzMAH88L_ooCttgGKPnYcDtAL7BX2EoNByWi2CKl3MpaNtb1g99SquxfhPAUAAqWBWDAp8OX0XjspymQJyioRx8tc4gX6c58nU0xKhAryXRKNBiC4RTaZevara9uIGcpxAstAGyg6o-VZcO3oVWNoVRLagdtPaK7RV5skSCswjMKgFjU19EXavThEdezvMJlypdNXuRLuW3bHZpuJIoDMscvHCwInSuCG385iCOWjVIThpZ1fJd2OMTlgxa2bxkluPpII2ISjBnvN_vKHQnfB5ajKcW2hbtl5iaK9udPA-laxTsFXRGV9LASaJJOtnscaKWjT-_07sqZiC7PJTyccYIk_KfGCC2QGICGj79vG4CkpUPsiJdtq56VXPemKiauCX1i69ar9MLC57HeiQRnajFxgyF2BlqMpeEal7wa6Fnr9ennYkVWB6XsFSfnmGOiAt_pDNmZIMM338KhKWA8oSHJxZsPJo0kOs8lVAYi4tfiz1HtdQnnglOOMQg5tztSKCrYxJTFBMWk4Yw123H7Z1sduWK6Pxl8VE30OrUZFjT1eYFvoI4y86gTV133Kha6S6-SkrJC5Yeydlfd8Y2KvS9bC0I2_fxF2KI-1fSw2IwveNI3bSg7BwdAPe5x6IryIs83Mil5RO16c5Fmb65LwPX9Qyt5R8GlA-9rmxkODbWoKmOpVXEd5azOcOPt007Rnni7oj7-DoryXaMfdYZ_bfMV1lZfPrZqe0fH9v0qA3fEWLr8nWqiydfw_jTjquivyn87j8)
AccessViolation_
2025-05-09 11:28:52
WOW
2025-05-09 11:28:56
awesome
jonnyawsom3
2025-05-09 12:00:58
Huh, I wonder if you could turn the bottom of this into the flag
2025-05-09 12:00:59
<:logo:829708783336816671>
AccessViolation_
Zyan Been done before but I fixed the aspect ratio and where the lines meet the corner :) tis my first major jxl art! 154 bytes [source here](https://jxl-art.surma.technology/?zcode=hZY9b9swEIZ3_4rr0sFQEdKKIidAOhRo0Sko0CGzatM2EUUUKMYf-fW9oyiKpOQE8CCKx-PLh_eefLOEP1rtteg6fJBbAb_qag9HDsubxW8h9wcDd4wtnuXWHIAzfPwhzVa0OFovFnIHZ_gOtwWDmyW8VrKBHa1vK20oA2DABQNyZgP-KWPUKxyqemdnh-min27fdFsL4LzMAH88L_ooCttgGKPnYcDtAL7BX2EoNByWi2CKl3MpaNtb1g99SquxfhPAUAAqWBWDAp8OX0XjspymQJyioRx8tc4gX6c58nU0xKhAryXRKNBiC4RTaZevara9uIGcpxAstAGyg6o-VZcO3oVWNoVRLagdtPaK7RV5skSCswjMKgFjU19EXavThEdezvMJlypdNXuRLuW3bHZpuJIoDMscvHCwInSuCG385iCOWjVIThpZ1fJd2OMTlgxa2bxkluPpII2ISjBnvN_vKHQnfB5ajKcW2hbtl5iaK9udPA-laxTsFXRGV9LASaJJOtnscaKWjT-_07sqZiC7PJTyccYIk_KfGCC2QGICGj79vG4CkpUPsiJdtq56VXPemKiauCX1i69ar9MLC57HeiQRnajFxgyF2BlqMpeEal7wa6Fnr9ennYkVWB6XsFSfnmGOiAt_pDNmZIMM338KhKWA8oSHJxZsPJo0kOs8lVAYi4tfiz1HtdQnnglOOMQg5tztSKCrYxJTFBMWk4Yw123H7Z1sduWK6Pxl8VE30OrUZFjT1eYFvoI4y86gTV133Kha6S6-SkrJC5Yeydlfd8Y2KvS9bC0I2_fxF2KI-1fSw2IwveNI3bSg7BwdAPe5x6IryIs83Mil5RO16c5Fmb65LwPX9Qyt5R8GlA-9rmxkODbWoKmOpVXEd5azOcOPt007Rnni7oj7-DoryXaMfdYZ_bfMV1lZfPrZqe0fH9v0qA3fEWLr8nWqiydfw_jTjquivyn87j8)
2025-05-09 12:39:19
what I like about this one is that the JXL encoder is actually able to somewhat reproduce this when encoding the raw pixel data
2025-05-09 12:41:45
`art.jxl 154 B` `djxl art.jxl dec.png` -> `dec.png 7.4 kB` `cjxl dec.png new.jxl -d 0 -e 11 -g 3` -> `new.jxl 291 B`
Zyan
AccessViolation_ what I like about this one is that the JXL encoder is actually able to somewhat reproduce this when encoding the raw pixel data
2025-05-09 12:42:55
dang, 291 bytes is pretty good! I wonder what the prediction tree looks like 🤔
AccessViolation_
2025-05-09 12:48:11
I have a version of the encoder patched by Jon that's able to export the tree, but it only works on grayscale images (because every channel has its own MA tree, and the code is only made to output one)
jonnyawsom3
AccessViolation_ I have a version of the encoder patched by Jon that's able to export the tree, but it only works on grayscale images (because every channel has its own MA tree, and the code is only made to output one)
2025-05-09 12:48:36
It outputs all MA trees, but only 1 channel's PPMs
AccessViolation_
2025-05-09 12:49:01
oh ok
2025-05-09 12:49:32
the lower efforts do pretty well too
jonnyawsom3
2025-05-09 12:53:57
Huh, interesting. I can only get down to 510 bytes
2025-05-09 12:55:52
Ahh, 0.10 is 291 bytes, 0.11 is 511
AccessViolation_
2025-05-09 12:56:32
I did specify group size 3 for all effort levels
jonnyawsom3
2025-05-09 12:56:46
Effort 11 ignores all other parameters
2025-05-09 12:57:26
And I did `-g 3 -E 3 -I 100 -P 15 -e 10`
2025-05-09 01:00:07
AccessViolation_
2025-05-09 01:00:32
got it down to 285 :3
2025-05-09 01:02:42
`-I 91`
jonnyawsom3
AccessViolation_ the lower efforts do pretty well too
2025-05-09 01:03:00
Main thing is only Gradient and Weighted predictors are used until e10, so adding `-P 15` brings pretty much all effort levels together
AccessViolation_
2025-05-09 01:13:38
it would be fun if we could set a seed for the random generator that decides which pixels are used to learn the tree from. that way you can do `-I 90` and try 100 different variations of it, and go with the best one
2025-05-09 01:17:07
you could probably train a neural network to give you the best subset set of pixels to for learning the MA tree on any given image. ...though how well that works would depend on how sensitive the tree learning algorithm is to tiny changes
2025-05-09 01:18:53
the fact that a subset of the pixels can give a better result than all of the pixels, implies that there's some tuning that can be done. ideally no subset gives a better result than the whole, unless this is one of those undecidable problems
jonnyawsom3
2025-05-09 01:21:11
I recall Monad discovered `-I 100` isn't actually 100%. You need 1000% to use all pixels https://discord.com/channels/794206087879852103/804324493420920833/1288947695066546176 https://discord.com/channels/794206087879852103/822105409312653333/1346201024221806602
2025-05-09 01:21:38
I wonder how costly it would be to *actually* make `-I` map to the percentage
AccessViolation_
2025-05-09 01:26:28
huh
2025-05-09 01:27:39
does it like, do one iteration, trying to capture everything in the tree as well as it can. and then do a second pass for the pixels that have the highest residuals, as a final attempt to still properly capture those, or something?
2025-05-09 01:28:31
I don't really understand
jonnyawsom3
2025-05-09 02:06:25
Gonna move to https://discord.com/channels/794206087879852103/804324493420920833/1370401843678675058
JXL Art Bot
2025-05-24 08:54:31
**\_wb\_** _“Wonky frame corners ”_ 2025 image/jxl 29 bytes [source tree](https://jxl-art.lucaversari.it/?zcode=c8osSUktKMlQMDTgcknNKUkMSMxJLSlJVeDi4spMUwjX9QtXsFMw4FJQ0FUITs1JTS5R0DUC8oByfkBJqBxIFqgQLANiQ5lcAA%3D%3D)
2025-05-24 08:57:57
**\_wb\_** _“Burning the palette”_ 2025 image/jxl 29 bytes [source tree](https://jxl-art.lucaversari.it/?zcode=c8osSUktKMlQMDTgcknNKUkMSMxJLSlJVeDi4spMUwjX9QtXsFMw4FJQ0FUITs1JTS5R0DUG8oByfkBJqBxIFqjQCMoMV9AFMbkA)
2025-05-24 09:08:56
**\_wb\_** _“Étude nº19”_ 2025 image/jxl 30 bytes [source tree](https://jxl-art.lucaversari.it/?zcode=c8osSUktKMlQMDTgcknNKUkMSMxJLSlJVeDiykxTCNf1C1ewUzDgUlDQVQhOzUlNLlHQNbQEcoGSfkBZqCRI2rEs3U%2Fbz1XBCMEP1wZq1zUECnABAA%3D%3D)
2025-05-24 09:12:42
**\_wb\_** _“Étude nº20”_ 2025 image/jxl 30 bytes [source tree](https://jxl-art.lucaversari.it/?zcode=c8osSUktKMlQMDTgcknNKUkMSMxJLSlJVeDiykxTCNf1C1ewUzDgUlDQVQhOzUlNLlHQNQJxgZJ%2BQFmoJEjasSzdT9vPVcEIwQ%2FXBmrXNQQKcAEA)
2025-05-24 09:13:22
**\_wb\_** _“Étude nº22”_ 2025 image/jxl 30 bytes [source tree](https://jxl-art.lucaversari.it/?zcode=c8osSUktKMlQMDTgcknNKUkMSMxJLSlJVeDiykxTCNf1C1ewUzDgUlDQVQhOzUlNLlHQNTICcoGSfkBZqCRI2rEs3U%2Fbz1XBCMEP1wZq1zUECnABAA%3D%3D)
2025-05-24 09:14:41
**\_wb\_** _“Étude nº28”_ 2025 image/jxl 30 bytes [source tree](https://jxl-art.lucaversari.it/?zcode=c8osSUktKMlQMDTgcknNKUkMSMxJLSlJVeDiykxTCNf1C1ewUzDgUlDQVQhOzUlNLlHQNbIAcoGSfkBZqCRI2rEs3U%2Fbz1XBCMEP1wZq1zUECnABAA%3D%3D)
jonnyawsom3
2025-05-24 10:03:09
Delta Palette my beloved
JXL Art Bot
2025-05-25 07:08:47
**\_wb\_** _“Default delta metallic”_ 2025 image/jxl 30 bytes [source tree](https://jxl-art.lucaversari.it/?zcode=HcgxCoAwDAXQPaf4uxRsoXVzEEGn4pa50KgBEZHcH4vb401qVR474Xua5bKylUvMhIi1to4%2B0Cp6nIYQE5Hu4C67zBjhhp4Ah%2BUtVeU2OJ%2F%2BYIYfmugD)
CrushedAsian255
Delta Palette my beloved
2025-05-26 03:21:52
Yes.
spider-mario
2025-05-27 02:19:18
_wb_
2025-05-27 02:25:26
Is that jxl art or <#805007255061790730> ?
2025-05-27 02:26:21
It looks like a dct coefficient ordering mistake
2025-05-27 02:27:04
(transposing them or something)
spider-mario
2025-05-27 09:44:00
oops, yes, sorry
2025-05-27 09:44:16
jxl-rs glitch art
juliobbv
2025-05-27 09:50:24
transposes, how do they work?!
_wb_
2025-05-27 09:57:49
Mistaking columns for rows.
juliobbv
2025-05-27 10:01:34
sometimes they do sort-of get baked into standards!
2025-05-27 10:01:35
https://www.rachelplusplus.me.uk/blog/2025/03/lets-build-an-avif-encoder-part-2/
2025-05-27 10:01:44
AccessViolation_
juliobbv
2025-05-29 11:52:51
is this a frame from big buck bunny or is my mind playing tricks on my
2025-05-29 11:53:47
somehow this image activated my big buck bunny sleeper agent even though I don't consciously remember much of what that video looks like... weird
jonnyawsom3
2025-05-29 02:20:05
Has anyone made a colorwheel in JXL art yet? I know we have the RGB cube, though that's not sorted so it's hard to see all the colors
juliobbv
AccessViolation_ is this a frame from big buck bunny or is my mind playing tricks on my
2025-05-29 03:52:09
it is big buck bunny!
AccessViolation_
2025-05-29 05:58:19
I knew it
juliobbv
2025-05-29 06:23:15
those pastel colors and trees are unmistakeable 🐰
JXL Art Bot
2025-05-29 07:34:51
**\_wb\_** _“Co and Cg colors”_ 2025 image/jxl 35 bytes [source tree](https://jxl-art.lucaversari.it/?zcode=c8osSUktKMlQsOQKcg5RMOPiykxTSFawUzDgUlCAMg2BTDCnEioOAroKfgq6hnBOcGqJgqmhEUxlBYrKcAVUhboQlRCOkakpFwA%3D)
_wb_
Has anyone made a colorwheel in JXL art yet? I know we have the RGB cube, though that's not sorted so it's hard to see all the colors
2025-05-29 07:35:14
Something like this?
jonnyawsom3
_wb_ Something like this?
2025-05-30 05:32:44
Close. I was hoping for an RGB one, to visualise the effects of RCTs. I could even make it animated then
veluca
2025-06-01 09:14:32
`cat tc.jxl.part <(echo -n 'JXL IS TURING COMPLETE') > k1_turingc.jxl` `cat tc.jxl.part <(echo -n ' FLRKQLL:RIF.DWKIZ!MRE') > k1_turingc_dec.jxl` I had a bit of fun and madea partial jxl file you can use to en/decode 22-character messages 😄 (not quite jxl art, but close enough...)
JXL Art Bot
2025-06-01 09:15:41
**\_wb\_** _“RGB colors”_ 2025 image/jxl 63 bytes [source tree](https://jxl-art.lucaversari.it/?zcode=c8osSUktKMlQsOAKcg5RMODiykxTqFCwUzAyNeVSUIByTA0NgRwFBV0Fx7L0cG2%2FcAUYP1xB1xCirhKozgAsCuVATEASMLYwhgrAhcyMLeFCcEFzM3MkQbBwMtxwBNBV8MMqZohNsyGRmnUNuQjoxbQC1SwsrkW3DMUiDPVYbMVmAEIeIYtmlq5CcGoJGg8UKwA%3D)
jonnyawsom3
veluca `cat tc.jxl.part <(echo -n 'JXL IS TURING COMPLETE') > k1_turingc.jxl` `cat tc.jxl.part <(echo -n ' FLRKQLL:RIF.DWKIZ!MRE') > k1_turingc_dec.jxl` I had a bit of fun and madea partial jxl file you can use to en/decode 22-character messages 😄 (not quite jxl art, but close enough...)
2025-06-02 11:42:19
Huh, how does that work? It looks like you're just attaching the text to the end of the file and the MA tree is creating the letters?
CrushedAsian255
Huh, how does that work? It looks like you're just attaching the text to the end of the file and the MA tree is creating the letters?
2025-06-02 11:43:34
could be messing with the ANS or something
2025-06-02 11:43:40
and/or with patches
veluca
2025-06-02 11:44:20
it's a combination of MA and patches
jonnyawsom3
2025-06-02 11:46:04
But, it's just raw text being added to the end, right? I'm amazed that's a valid file yet alone that it produces text as the output
CrushedAsian255
But, it's just raw text being added to the end, right? I'm amazed that's a valid file yet alone that it produces text as the output
2025-06-02 11:47:27
it probably is just treating each byte as some kind of 8 bit index
2025-06-02 11:47:35
to patches that just so happen to line up with ASCII
embed
2025-06-02 11:49:34
https://embed.moe/https://cdn.discordapp.com/attachments/824000991891554375/1379064375155097620/test.jxl?ex=683ee148&is=683d8fc8&hm=da975065cf515f9bf17065894339218ae44c0290b79bb3a408d4bd001e071961&
CrushedAsian255
2025-06-02 11:52:02
would it be possible to write a version that skips the en/de coding part and outputs the text directly?
veluca
CrushedAsian255 would it be possible to write a version that skips the en/de coding part and outputs the text directly?
2025-06-02 12:00:37
Sure, although a bit boring 😛
CrushedAsian255
veluca Sure, although a bit boring 😛
2025-06-02 12:01:20
it would still be really cool
2025-06-02 12:01:30
is it currently just an invertible S-box or something?
veluca
2025-06-02 12:02:36
just a xor with a fixed sequence of bytes
CrushedAsian255
2025-06-02 12:02:50
ah ok
anbello
2025-06-23 01:21:25
Hi everyone, I am new here, I wanted to let you know what I'm building. Since scripting those JPEG XL meta-adaptive trees is tricky, I'm building an AI system to do it for me. It's a two-agent setup: one agent writes scripts based on a set of learned rules, and a second "critic" agent tests them. The critic is pretty smart; it checks for errors, decodes the image, and even throws out boring results like all-black images or pure noise using entropy checks. The cool part is the reinforcement learning loop. The creator agent learns from the critic's feedback, so it's getting progressively better at writing scripts that produce valid and interesting art. My plan is to use this system to generate a whole collection for inscription. It's still a work in progress, but it's getting to a pretty cool stage. The intention is to have a collection of good jxl-arts. IMPORTANT: I am not using any of the scripts and / or images from this channel to train my system. I would like to know what you think about it and, in case I decide to release the collection as Ordinals (Bitcoin NFT), who should I give credit to in the description, Luca Versari, Surma, ...?
jonnyawsom3
2025-06-23 01:39:43
There's always been an idea to use a small neural network to create the MA trees for lossless compression, as any bad results would just mean worse density, not corrupted images. Using one to create JXL art, hasn't been explored though. You'd have equal luck just running a fuzzer and checking completely random images for entropy too, probably saving a lot of compute time too.
anbello
There's always been an idea to use a small neural network to create the MA trees for lossless compression, as any bad results would just mean worse density, not corrupted images. Using one to create JXL art, hasn't been explored though. You'd have equal luck just running a fuzzer and checking completely random images for entropy too, probably saving a lot of compute time too.
2025-06-23 01:46:57
Maybe you are right, but anyway for sake of precision I would like to explain better, I am not using neural network or LLM, I am using an agent system, one agent produce scripts based on rules extrapolated from docs, the other test the jxl give feedback, the system improves both for the mechanism of reinforcement learning and because I don't explore the parameters space at random but using a genetic algorithm. Moreover there is an external loop of human based reinforcement learning. So in some way guided by my aesthetic taste.
veluca
2025-06-23 01:51:11
I guess it is fair to say I am more responsible for jxl art than most other people if you need to pick a person, but the whole jxl team also has some merits 😛
anbello
veluca I guess it is fair to say I am more responsible for jxl art than most other people if you need to pick a person, but the whole jxl team also has some merits 😛
2025-06-23 01:59:57
Yes I know, you wrote jxl_from_tree 🙏 Do you see a reason for which what I would like to do could be non ethical? In case I could change something. And, could you send me a list of names to put in the credits, if i will do that.
Lumen
2025-06-23 02:01:25
(on my end I reacted just because for me, NFTs are diabolical, but I am just a single human in the unverse with opinions, don't feel too discouraged by people like me not liking these things)
anbello
Lumen (on my end I reacted just because for me, NFTs are diabolical, but I am just a single human in the unverse with opinions, don't feel too discouraged by people like me not liking these things)
2025-06-23 02:02:30
It's OK, I like to hear all the opinions, thanks.
jonnyawsom3
2025-06-23 02:21:53
Yeah, considering JPEG XL is touted as a free and open format, selling off jxl art that people usually spend days or weeks crafting by hand feels a little off...
anbello
Yeah, considering JPEG XL is touted as a free and open format, selling off jxl art that people usually spend days or weeks crafting by hand feels a little off...
2025-06-23 02:29:36
Sorry, I don't understand, if I will sell it I will sell my jxl art, produced by my system for which I worked lots of days and it will need several other days, why should be different?
_wb_
2025-06-23 02:46:59
I don't see any real issue; though there might be cases where it's not exactly clear if a jxl art meets the threshold for being copyrightable — I think some trees are just too short, e.g. you also cannot copyright a book that consists of just two or three words.
anbello
_wb_ I don't see any real issue; though there might be cases where it's not exactly clear if a jxl art meets the threshold for being copyrightable — I think some trees are just too short, e.g. you also cannot copyright a book that consists of just two or three words.
2025-06-23 02:55:00
Thanks for clarification, but I don't think that for inscribe jxl-art as ordinals they should be copyrightable, I can also release my produced jxl.art as CC0
2025-06-23 02:55:49
And put the script in metadata so anyone can see and use and remix in an open source spirit
_wb_
2025-06-23 03:03:19
Luca Versari and myself (Jon Sneyers) are probably the 'most responsible' for the concept of jxl-art. Also Surma's creation of a web interface did help to popularize it. And of course everyone who contributed to jxl or made jxl-art over the years — you can scroll back all the way to the top of this channel and see most of the history of jxl-art 🙂 https://discord.com/channels/794206087879852103/824000991891554375/824001294116454420
2025-06-23 03:04:33
A simple version of your idea of your two-agent setup is something I played with a little bit at some point: https://discord.com/channels/794206087879852103/824000991891554375/824283392786563082
2025-06-23 03:06:11
That is, I just made some trees with parameters, decoded the jxl files to pngs, and sorted them on file size to find the "interesting" ones (generally low filesizes are boring, though too high filesize might be boring too since 'too noisy')
anbello
_wb_ That is, I just made some trees with parameters, decoded the jxl files to pngs, and sorted them on file size to find the "interesting" ones (generally low filesizes are boring, though too high filesize might be boring too since 'too noisy')
2025-06-23 04:13:32
Yes, mine started in similar way using size as measure of complexity, now I'm using entropy and other features extracted from image to better classify. At some point I could also use a small multimodal model to obtain a description.
_wb_
2025-07-05 04:48:21
https://jxl-art.lucaversari.it/?zcode=c8osSUktKMlQsODiykxTCChKLVOwUzDg0lVwL0pMyUzNK1HQNQTJhGv76fqFg-WQeUampkC1fq4KusYgTeGpmekZJakpCoYQUSOgsVwA