|
CrushedAsian255
|
2024-02-20 11:37:33
|
Yeah thanks
|
|
|
Tirr
|
2024-02-20 11:37:37
|
and there are also limits for layer blending and animation fps
|
|
|
CrushedAsian255
|
2024-02-20 11:37:54
|
I recently have very interest JPEG format xl
|
|
|
jonnyawsom3
|
2024-02-20 11:38:22
|
There were 2 limits cut off the bottom, both referred to animated JXL's total pixel count and frame duration respectively
|
|
|
CrushedAsian255
|
2024-02-20 11:38:27
|
Who needs 1TPx image lol
|
|
2024-02-20 11:39:35
|
How would you even Decode that
|
|
|
jonnyawsom3
|
2024-02-20 11:40:07
|
Cropped decode ;P
|
|
2024-02-20 11:40:11
|
Or squeeze
|
|
|
Qon
|
|
Reminds me of when I was trying to make an image of all 16bit colors, then realised it would be ludicrously large
|
|
2024-02-20 05:21:52
|
a 1024x1024 image has 2^20 pixels. 15 bit color (5 per channel) fits in 1024x32.
|
|
|
|
JXL Art Bot
|
2024-02-20 05:22:27
|
**Qon**
_“15 bit color”_
2024
image/jxl
38 bytes
https://jxl-art.lucaversari.it/?zcode=bYy9DkAwFIX3%2BxRnlyatshpMJpEY%2BgCUdhNphLd3o6IRpnv%2B7lf7MNolOJRk%2FMhXybygxvrZBeicyE8YUEERwHJnKVleplvtpjjQMQEEDLJrmlzsBHobWN80%2BUMzb1Lcf7mp4Z%2FjAQi0PxPgBA%3D%3D
|
|
|
Qon
|
2024-02-20 05:23:25
|
Maybe you meant 48-bit color?
|
|
|
lonjil
|
2024-02-20 05:27:05
|
16 bit as in 16 bit per channel, just like when we say 8 bit, I guess.
|
|
|
Qon
|
|
lonjil
16 bit as in 16 bit per channel, just like when we say 8 bit, I guess.
|
|
2024-02-20 05:28:24
|
https://en.wikipedia.org/wiki/High_color
|
|
|
lonjil
|
|
Qon
|
2024-02-20 05:28:55
|
Historically means 16 bits total
|
|
|
lonjil
|
2024-02-20 05:29:18
|
it's a bit annoying, that when we say 8 bit, or 10 bit, or 12 bit, it means per channel, but when you say 16, suddenly it means something else!
|
|
|
Qon
|
2024-02-20 05:31:16
|
Does images with 16 bits per color channel exist? I'm not talking about jxl art with Bitdepth 16, I mean is there hardware for it?
|
|
2024-02-20 05:32:31
|
My link links to https://en.wikipedia.org/wiki/Color_depth#Deep_color_(30-bit)
|
|
|
damian101
|
|
lonjil
it's a bit annoying, that when we say 8 bit, or 10 bit, or 12 bit, it means per channel, but when you say 16, suddenly it means something else!
|
|
2024-02-20 05:32:33
|
no, 16 bit is still very much associated with 16 bits per channel
|
|
2024-02-20 05:32:50
|
what are you thinking of?
|
|
|
Qon
|
2024-02-20 05:34:15
|
So sounds like 16 bit /channel cameras and displays don't exist, only used for storage during transformations to not lose precision in 12 bit/channel data
|
|
|
lonjil
|
|
no, 16 bit is still very much associated with 16 bits per channel
|
|
2024-02-20 05:34:35
|
Qon already linked to it
|
|
2024-02-20 05:34:55
|
Some decades ago, 16 bit color referred to 2 bytes per pixel color.
|
|
|
Qon
|
|
no, 16 bit is still very much associated with 16 bits per channel
|
|
2024-02-20 05:35:26
|
16 bit per channel is not common, it's more bits than needed
|
|
|
mincerafter42
|
|
Reminds me of when I was trying to make an image of all 16bit colors, then realised it would be ludicrously large
|
|
2024-02-20 05:35:30
|
once i made a GIF image of the 2²⁴ 8-bit RGB colours for fun :p
it takes a long time to show up because each frame adds 256 colours, and GIF viewers automatically add delay between frames :p
|
|
|
Tirr
|
2024-02-20 05:35:35
|
png supports 1, 2, 4, 8 and 16 bits per channel but not 10 or 12
|
|
|
damian101
|
|
Qon
16 bit per channel is not common, it's more bits than needed
|
|
2024-02-20 05:36:09
|
It is very common for internal processing of all kinds, and also for intermediate images in production environments.
|
|
|
Qon
|
|
It is very common for internal processing of all kinds, and also for intermediate images in production environments.
|
|
2024-02-20 05:36:31
|
Like I said
|
|
|
lonjil
|
|
Qon
So sounds like 16 bit /channel cameras and displays don't exist, only used for storage during transformations to not lose precision in 12 bit/channel data
|
|
2024-02-20 05:36:35
|
I think cameras are creeping up to 14 bits. But in CGI, you can easily have 16 bits or more of dynamic range in a rendered image. At some point this would be tone mapped down, of course. Using 32-bit float as the intermediate format isn't uncommon.
|
|
2024-02-20 05:37:41
|
I think modern CGI rendering is up to 30 stops, i.e. 30 doublings of brightness.
|
|
|
Qon
|
|
Tirr
png supports 1, 2, 4, 8 and 16 bits per channel but not 10 or 12
|
|
2024-02-20 05:38:08
|
Probably because of technical reasons. 16 can store 12 and 12 wasn't common at time of making png format. My guess.
|
|
|
damian101
|
2024-02-20 05:38:33
|
in the audio world, 14 bits was a long time the most you could get from an ADC
|
|
|
lonjil
|
2024-02-20 05:39:01
|
The CD standard was originally going to be 14 bit
|
|
|
damian101
|
2024-02-20 05:39:09
|
interesting
|
|
|
_wb_
|
2024-02-20 06:44:20
|
I generally assume N-bit images are images with N bits per component, so typically 3N bits per pixel.
|
|
2024-02-20 06:46:42
|
But it's confusing indeed. Sometimes 8-bit means like in png8 (so 8-bit palette indexed color), sometimes it means 8-bit RGB(A) like in png24 or png32.
|
|
2024-02-20 06:48:25
|
Using the total is very confusing, e.g. in PNG you can have Gray+Alpha which are both 8-bit so that could be called png16, but you can also have 16-bit Gray which would also be png16.
|
|
2024-02-20 06:49:56
|
High Color I would never describe as 16-bit, but as rgb555 (or rgb565)
|
|
|
lonjil
|
|
mincerafter42
once i made a GIF image of the 2²⁴ 8-bit RGB colours for fun :p
it takes a long time to show up because each frame adds 256 colours, and GIF viewers automatically add delay between frames :p
|
|
2024-02-20 06:53:24
|
oh hey I don't see you around here very often
|
|
|
mincerafter42
|
|
lonjil
oh hey I don't see you around here very often
|
|
2024-02-20 06:53:52
|
indeed, but i looked in this channel on this particular day
|
|
|
lonjil
|
|
_wb_
|
|
Qon
Probably because of technical reasons. 16 can store 12 and 12 wasn't common at time of making png format. My guess.
|
|
2024-02-20 07:35:03
|
PNG is based on general-purpose compression (deflate), so keeping things byte aligned is kind of needed...
|
|
|
Qon
|
|
_wb_
PNG is based on general-purpose compression (deflate), so keeping things byte aligned is kind of needed...
|
|
2024-02-20 08:17:50
|
Yeah that was my thinking 👍
|
|
|
jonnyawsom3
|
|
Qon
Maybe you meant 48-bit color?
|
|
2024-02-21 03:17:28
|
Yes, originally I was playing with this image in JXL https://commons.m.wikimedia.org/wiki/File:16777216colors.png
A shame I doubt it could fit in JXL art due to needing 4 1024 groups
|
|
|
_wb_
|
2024-02-21 06:26:00
|
Multiple groups is not a problem.
|
|
|
Qon
|
|
_wb_
Multiple groups is not a problem.
|
|
2024-02-21 12:02:45
|
For jxl art?
|
|
|
lonjil
|
|
Qon
For jxl art?
|
|
2024-02-21 12:06:17
|
if you want different trees for different groups, you can do `if g > n` to have subtrees for each group. though I have no idea how groups are numbered.
|
|
|
_wb_
|
2024-02-21 12:08:07
|
The numbering is a bit weird, it starts at 21 iirc
|
|
2024-02-21 12:09:34
|
There are group numbers reserved for things like DC, AC metadata, custom Quant tables, etc. These are all empty and skipped in case of modular-only encoding.
|
|
2024-02-21 12:11:36
|
Here are some examples of multi-group images: https://discord.com/channels/794206087879852103/824000991891554375/833299488520011796
|
|
|
jonnyawsom3
|
2024-02-21 12:18:55
|
Good to know
|
|
|
|
JXL Art Bot
|
2024-02-24 06:55:04
|
**Tirr**
_“Found an interesting case fuzzing jxl-oxide”_
2024
image/jxl
33 bytes
https://jxl-art.lucaversari.it/?zcode=PY5BC4JAFITv%2ByvmmKK5roZeLKhLJw8VeAsMV3chVHQpA398L1s8vYE3M99cTjdwdtSmkr1RSFmhK7qhSNlZ6kaZRTJd44M9OYHARaFKA1X2vWxH0CtHBn8j7lHoHOAG1qSpJxL%2BQxuMumllBd0a2cjBI7O1O8jW6PYfpb45ny3Mx1UaiN1u1XwZMy1%2FHwVCnkRJHKYiXqjUxD2MHYjaveRQP7v3CJo70UbxI9iaLw%3D%3D
|
|
|
Tirr
|
2024-02-24 06:55:35
|
so here's the tree:
```
RCT 0
Bitdepth 8
Width 128
Height 128
if y > 0
/* What happens if N = -(2^31)? */
/* With 32-bit signed integer, -(-(2^31)) == -(2^31). */
if |N| > 0
- Set 255
- Set 0
if x > 0
- W 1073741824 /* 2^30, so it overflows at x = 2 */
- Set 0
```
|
|
2024-02-24 06:56:47
|
the tree is set up so that black line appears if sample at the first line is zero (`|N| > 0`)
|
|
2024-02-24 06:58:01
|
the buffer is 32-bit signed, so it will overflow to `-(2^31)` at y = 0, x = 2
|
|
2024-02-24 06:59:09
|
now we need to take an abs of this sample value. technically it would be `2^31`, because the spec is defined in integer with infinite precision
|
|
2024-02-24 07:00:04
|
uh wait nvm, I was just confused I think
|
|
2024-02-24 07:00:56
|
no I'm thinking it right
|
|
2024-02-24 07:01:33
|
so... its true value is `2^31`, but with 32-bit integer abs also overflows and yield `-(2^31)`
|
|
2024-02-24 07:02:11
|
so `|N| > 0` is false and black line appears at x = 2
|
|
2024-02-24 07:02:40
|
but if we follow the spec, `|N| > 0` is true and white line should appear
|
|
|
|
JXL Art Bot
|
2024-02-24 07:10:26
|
**Tirr**
_“...and weird things happen if W -(2^31) is used”_
2024
image/jxl
33 bytes
https://jxl-art.lucaversari.it/?zcode=C3IOUTDgcsosSUktKMlQsOAKz0wB0oZGFlweqZnpGSVgJldmmkKlgh1QpYICkFnjVwPl6CoEp5YoGJmawtkGYMUVYHldhXAFXSNDE3MTC2MzEwsuqAoA
|
|
|
_wb_
|
2024-02-24 07:49:35
|
For this reason the spec somewhere says that basically if int32 is not good enough to store modular values, the bitstream is not conformant 🙂
|
|
2024-02-24 07:50:25
|
So anything that overflows is technically not a valid jxl, and decoder behavior is undefined
|
|
|
Tirr
|
2024-02-24 07:51:50
|
doesn't abs count as an "intermediate arithmetic"? I wonder if 64-bit property vector is needed
|
|
2024-02-24 07:52:41
|
`-(2^31)` totally fits in 32-bit but `abs(-(2^31))` is not
|
|
2024-02-24 08:03:28
|
I'm not sure this tree encodes correctly with jxl_from_tree:
```
RCT 0
Bitdepth 8
Width 128
Height 128
if y > 0
if |N| > 0
- Set 255
- Set 0
- Set -2147483648
```
|
|
2024-02-24 08:05:27
|
jxl-oxide decoded the tree as below (note the constant). maybe this is a bug in jxl-oxide or jxl_from_tree.
```
Decision {
property: 2,
value: 0,
left: Decision {
property: 4,
value: 0,
left: Leaf(
MaTreeLeafClustered {
cluster: 0,
predictor: Zero,
offset: 255,
multiplier: 1,
},
),
right: Leaf(
MaTreeLeafClustered {
cluster: 0,
predictor: Zero,
offset: 0,
multiplier: 1,
},
),
},
right: Leaf(
MaTreeLeafClustered {
cluster: 0,
predictor: Zero,
offset: -1342177280,
multiplier: 1,
},
),
}
```
|
|
|
|
JXL Art Bot
|
2024-02-24 08:12:30
|
**Tirr**
_“Why does this turn black?”_
2024
image/jxl
30 bytes
https://jxl-art.lucaversari.it/?zcode=C3IOUTDgcsosSUktKMlQMDTnCs9MATGMLLg8UjPTM0rATK7MNIVKBTugUgUFILPGrwbIMTIAAaCIrkJwKlCdsaGBuRGca8DFBWGAlRkCAA%3D%3D
|
|
|
Tirr
|
2024-02-24 08:12:40
|
```
RCT 0
Bitdepth 17
Width 128
Height 128
if y > 0
if |N| > 200000
- Set 131072
- Set 0
- Set 200001
```
|
|
2024-02-24 08:14:16
|
ah yeah that turns black
|
|
|
|
JXL Art Bot
|
2024-02-24 08:19:51
|
**Tirr**
_“Hybrid integer configuration overflowing (I guess)”_
2024
image/jxl
36 bytes
https://jxl-art.lucaversari.it/?zcode=C3IOUTDgcsosSUktKMlQMDTjCs9MATGMLLg8UjPTM0rATK7MNIVKBTugUgUFINMPyDQ0M4ACoJiuQnBqCULIEC5kwMUFlTOHKQcA
|
|
|
Tirr
|
2024-02-24 08:20:44
|
`1_600_000_000` is ok, but `1_700_000_000` is not and goes somewhere like `1_163_129_088`
|
|
|
_wb_
|
|
Tirr
doesn't abs count as an "intermediate arithmetic"? I wonder if 64-bit property vector is needed
|
|
2024-02-24 08:46:07
|
32-bit property vector is ok, iirc we recently clarified that in the spec because it wasn't obvious
|
|
2024-02-24 08:46:55
|
Property vector is considered like sample values, not like intermediate arithmetic
|
|
|
Tirr
|
2024-02-24 08:48:30
|
that's nice, thanks for clarification
|
|
|
_wb_
|
2024-02-24 08:50:03
|
It's especially useful encoder-side, since there you might want to actually store significant amounts of property values
|
|
2024-02-24 08:52:40
|
For lossless float32 this can actually matter. And for jxl art 🙂
For normal 8-16 bit images it doesn't make any difference of course.
|
|
|
Qon
|
2024-02-25 03:32:38
|
I'm updating/rewriting the frontend of the jxl-art page! 🥳 <:JXL:805850130203934781>
- Now it's a dark mode look that doesn't flashbang your eyes!
- Much better space efficiency with side-by-side panes! Since code is mostly vertical you can have your image in almost full screen.
- Ace editor with Sublime text keybinds! Multi-cursor editing, line manipulation keybinds (like duplicate line) etc...
- Nice Monokai theme. Syntax highlighting mode `javascript` works great for both javascript and jxltrees!
- EJS templating language preprocessing on your code! You can include simple calculations like `<%- 2**bitdepth - 1 %>` in your code instead of supplying a value or you can generate the whole jxltree code with JavaScript! **Bonus feature**: EJS support means you can add comments like `<% /* comment here */ %>` without fear of your code being corrupted by jxl_from_tree's buggy comment handling! <:KekDog:805390049033191445> <:Hypers:808826266060193874>
- Tabbed layout: EJS preprocessing steps will be output as additional tabs (if you have EJS tags in your code) so that you can view the jxltree code.
- Slightly better error output messages.
Todo: I'm considering adding tabbed layout to right pane as well. The tabs would be for image viewer, error message and the wtf so you can read errors or wtf next to your code instead of showing the image. Also error handling needs more improvements.
|
|
|
lonjil
|
2024-02-25 03:34:35
|
very cool
|
|
|
w
|
2024-02-25 03:38:01
|
have you tried my <https://embed.moe/jxl_from_tree>
|
|
|
Qon
|
|
w
have you tried my <https://embed.moe/jxl_from_tree>
|
|
2024-02-25 03:39:32
|
First time hearing about it
|
|
|
|
veluca
|
2024-02-25 03:47:50
|
very cool 😄 lmk if you'd like me to host the updated version
|
|
2024-02-25 03:48:01
|
(of course you can also send a PR to surma)
|
|
|
Qon
|
|
veluca
very cool 😄 lmk if you'd like me to host the updated version
|
|
2024-02-25 03:48:42
|
I do, just need to figure out how to do a PR 🤪
|
|
2024-02-25 03:49:26
|
I'll PR <@228116142185512960> as well if he wants it.
|
|
|
veluca
very cool 😄 lmk if you'd like me to host the updated version
|
|
2024-02-25 03:52:26
|
I accidentally started by cloning `main` branch, so you will have to merge in your veluca branch edits again.
|
|
|
|
veluca
|
2024-02-25 03:52:36
|
that's fine
|
|
|
Qon
|
2024-02-25 04:10:15
|
<@179701849576833024> ```### Before you contribute
Before we can use your code, you must sign the
[Google Individual Contributor License Agreement]
(https://cla.developers.google.com/about/google-individual)```
Is this project actually a part of google or is this file `CONTRIBUTING` just a file that somehow accidentally joined the folder?
|
|
|
|
veluca
|
2024-02-25 04:10:38
|
Uhm
|
|
2024-02-25 04:10:51
|
Good question, I think Surma used to be at G at some point
|
|
|
Qon
|
2024-02-25 04:11:15
|
<@228116142185512960> maybe you can clarify?
|
|
|
|
veluca
|
2024-02-25 04:11:35
|
There's for sure no such checks on my fork though
|
|
|
Qon
|
2024-02-25 05:22:59
|
I haven't figured out PR's yet, but you can see that it works (link was so long it became message.txt)
|
|
2024-02-25 05:24:11
|
my fork has `main` and `gh-pages` forks. `gh-pages` is just a branch for github pages where build files are moved into root
|
|
|
|
veluca
|
2024-02-25 05:27:38
|
nice nice
|
|
|
Qon
|
2024-02-25 05:34:23
|
publish doesn't work when it's hosted on github of course since the secret ENV for the bot isn't there, but the page is working correctly otherwise with ejs processing and all. The link on my gh-pages is also incorrect, drops /jxl-art/ from the url. Modifying the url manually shows that it displays correctly.
|
|
2024-02-25 05:35:25
|
But that should just work, with your usual build and publish steps when you host it on your site
|
|
2024-02-25 05:39:15
|
I just realized recursive EJS fork bombs should probably be stopped after N steps instead of letting it go on forever. Eh, closing the tab gets rid of it... but a fix would have a simple counter in the loop...
|
|
2024-02-25 06:15:04
|
https://docs.github.com/en/pull-requests/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/creating-a-pull-request-from-a-fork tells me that I should select my fork from this list to create a PR. I'm not on the list though. <@179701849576833024>
|
|
|
|
veluca
|
2024-02-25 06:15:39
|
link to your fork?
|
|
|
Qon
|
2024-02-25 06:16:44
|
https://github.com/Qon/jxl-art
|
|
|
|
veluca
|
2024-02-25 06:17:08
|
that doesn't seem to be a fork?
|
|
2024-02-25 06:17:18
|
did you click the "fork" button on gh?
|
|
|
Qon
|
2024-02-25 06:18:55
|
I probably accidentally cloned it instead...
|
|
|
|
veluca
|
2024-02-25 06:19:10
|
yeah that probably explains why
|
|
2024-02-25 06:19:18
|
I think you might need to delete and fork
|
|
|
Qon
|
2024-02-25 06:20:21
|
oh ok
|
|
2024-02-25 06:33:23
|
Finally it worked :D
|
|
2024-02-25 06:34:21
|
Wait I just noticed: now I accidentally forked it from surma and PR'd him instead
|
|
2024-02-25 06:34:35
|
😅
|
|
2024-02-25 06:34:52
|
Not sure how that happened...
|
|
2024-02-25 06:36:27
|
No, I did fork veluca. And I used the fork link, I was definitely on veluca/jxl-art gh page when I created the fork
|
|
2024-02-25 06:37:27
|
But for some reason, when making a PR on veluca's page, forked from velucas repo, it defaulted to surma and sent the PR there instead.
|
|
2024-02-25 06:38:06
|
And the GUI just collapses if I try to change target from surma to veluca, I have to change source first or it wont work
|
|
|
lonjil
|
2024-02-25 06:38:10
|
GitHub is just great like that
|
|
|
Qon
|
2024-02-25 06:41:02
|
PR'd correct repo now
|
|
2024-02-25 06:41:45
|
Though I was planning on PR'ing surma as well anyways, if he wants it. So no harm <:kekw:808717074305122316>
|
|
|
lonjil
GitHub is just great like that
|
|
2024-02-25 06:45:18
|
Hey at least I could just rename the first cloned repo, make the fork, `git push origin main` (and gh-pages) and then it was solved <:PepeOK:805388754545934396>
|
|
|
|
veluca
|
2024-02-25 06:48:09
|
mhhh would you mind adding ace as a submodule instead?
|
|
|
Qon
|
2024-02-25 06:51:40
|
doing `npm i ace-builds` instead?
|
|
2024-02-25 06:52:07
|
Would make sense...
|
|
2024-02-25 07:06:48
|
So I tried that, but I don't know how to import the theme and mode files. Do you know how the build system wants import paths?
`import "ace-builds";` works to get the editor running.
`import "ace-builds/src/theme-monokai.js";` doesn't work though. I've tried many variations
|
|
|
|
veluca
|
2024-02-25 07:24:16
|
I have absolutely no idea
|
|
|
Qon
|
2024-02-25 07:27:03
|
Maybe something with rollup configuration. I don't know how though
|
|
2024-02-25 11:57:40
|
I'll keep trying to figure out how make it work with ace in node_modules. But I'll be using https://qon.github.io/jxl-art/ for my jxl-art until then if you don't want my PR as it is now. Might take a lot more effort to get rollup/the build scripts to include the files I need when reading from node modules, for some reason...
Lack of publish on my gh-page isn't really a huge problem, the share button works fine.
|
|
2024-02-29 03:52:21
|
Doing image generation experiments:
Works: https://qon.github.io/jxl-art/?zcode=jZDRCsIgFIbvfYrzAsFURl0FtZtdRgVdj7QUxhghUW-fW-6sOXXdHf_zfb_isThDRi5aGAWckVLquzLdtNdGyNamG7KrW1WRUgshm0JVTSNroIToG1xhC5wArOAkDbA8t7OLmR37w-Ehn9wGWR8M7PT0NdGlbuls9mP7vt-AHSPgWugknPfMm3r13b0nT3qWevlUiMO-9SQMo1jrwzEc2_lsEVfwlpCU0sa_CS7T6vhlkfWSjrfHgeUKfEUK-admYCj5AA
Fails: https://qon.github.io/jxl-art/?zcode=jZHBCsIwDIbvfYq8gLB2TnYS1MuOooLnYastjDGkiL693ewy17XdbmnyfX8CPR0ukJCr4lpCmpJCqIfUbbVXmovGdHOyqxpZkkJxLuqDLOtaVEAJUXe4wRZSArCCs9DAsszUts1M2T2OT_FKTSPpGj07fv1MdKkdWpv92a7vJmDGANgUOmpOc6ZJnfpp79lEPUO9XcrHYV4-avpRjHXhEI7p68kgrOAWnxTTcBvzDuMqbg3Jc_rwM0FgPmL4uAiyJAaviUPLovCqOWxpXM9R8gU
I'm not sure why though. The second tree is slightly deeper, but I've had like depth 100 in just pure x decision trees (after 1 or 2 y nodes) before without issue when I encoded a UTM starter pattern for the rule 110 CA.
|
|
2024-02-29 03:53:00
|
Both should give 1 black pixel in top left corner, second link just gives an error when generating the image
|
|
2024-02-29 04:09:09
|
Am I doing something wrong, or is jxl_from_tree doing something wrong?
|
|
|
_wb_
|
2024-02-29 05:31:50
|
running jxl_from_tree directly on that second example does produce a jxl file
|
|
2024-02-29 05:32:42
|
so I dunno what's going on
|
|
|
Qon
|
|
_wb_
running jxl_from_tree directly on that second example does produce a jxl file
|
|
2024-02-29 05:37:22
|
Thanks for testing 👍
|
|
2024-02-29 05:37:37
|
But now it's even more confusing <:SadOrange:806131742636507177>
|
|
2024-02-29 05:39:07
|
it fails on surma & veluca pages as well so it's not my bug at least <:Hypers:808826266060193874>
|
|
|
_wb_
|
2024-02-29 06:30:38
|
I dunno if there are debuggers for wasm builds
|
|
|
jonnyawsom3
|
2024-03-11 02:24:03
|
Thought I might as well ask if anyone would like to try and turn this into JXL art. It should be *relatively* simple, but having one of the already established wizards try instead of me means it might be half an hour instead of half a month
|
|
2024-03-11 02:24:23
|
(Yes it's a crusty jpeg, thanks Telegram :P)
|
|
|
Qon
|
2024-03-11 04:30:57
|
There's more compression artifacts than signal in that mess...
|
|
2024-03-11 04:32:03
|
Maybe you want me to recreate the compression artifacts in jxl-art <:KekDog:805390049033191445> <:Thonk:805904896879493180>
|
|
|
jonnyawsom3
|
2024-03-11 04:39:28
|
ISO Noise 256000
|
|
2024-03-11 04:42:34
|
Not any better, but at least not scaled up
|
|
|
Qon
|
2024-03-11 04:50:22
|
It's not centered
|
|
|
jonnyawsom3
|
2024-03-11 04:51:26
|
I *think* that's on purpose, but doesn't matter much
|
|
|
Qon
|
|
Thought I might as well ask if anyone would like to try and turn this into JXL art. It should be *relatively* simple, but having one of the already established wizards try instead of me means it might be half an hour instead of half a month
|
|
2024-03-11 06:46:06
|
Took like 30 min just to get the coords
https://qon.github.io/jxl-art/?zcode=7ZfPa8IwFMfv-Styl0Ly8vKSXAabFw9DxjbYWWY3C-JkK0P_-6VObW0b1urEnwch_SYv36T55PX52H3mgr0kw3TECQXrxcn7KF0075J0GE-9btnteDoasF4yHMaT7mgwmcRjrlj_I70ffKWMJW_8ld9wzTiP-FOcctB5W9SO882Hz_ib_KPwj2tBr4W1hAVp06CorEYUn_L20hkLMiCtjLMutREvtcsXkXVDyU5CvoDlELkWFtIsmxRcQSwvdWOoFLAhLzrmmTNQqaN-nkKIqfbUvbi_5quqy51WNjCviFl0n3e8H1W3NasZngW8-B8YFdguAllo6hxlLxTbWHd8hIGAd6SM0eaCSdZ-9w1JVmDPj-SIawntSNaly58vRCkpEJpfopbWPkDLEMhgNLprTm6YkwMkK4NtSQbQR4Ny29SYRVAoLZN0DnVzmLfJy2RCOKNzyp_SBSdm3D0xnzTOna1wtiGcQbj8ZPZVZoTMIwsk1DU575ScNZi2NKuaEzmDijlSaC3tlWUpgheJwEi8ZuadMvNJs7xVoSFlqGp2TktJh6maUQny_14uE-YFiI6awPzLLLFm8B0GMSdF4JitcaJ0af-9lHXhb79E4cwVrSNBq8NtS65CB6u12m89SSFrACtQsB8
|
|
2024-03-11 06:46:35
|
No gradient yet though
|
|
2024-03-11 06:46:52
|
|
|
2024-03-11 06:48:04
|
On https://qon.github.io/jxl-art/ you can run this code to generate the .jxl
|
|
2024-03-11 06:49:12
|
756 Bytes if you download the .jxl from the jxl-art page
|
|
2024-03-11 06:49:36
|
This file
|
|
|
jonnyawsom3
|
2024-03-11 06:50:11
|
Thanks for taking it on
|
|
|
Qon
|
2024-03-11 06:51:37
|
Adding gradients shouldn't be hard though
|
|
|
Thanks for taking it on
|
|
2024-03-11 07:13:14
|
https://qon.github.io/jxl-art/?zcode=7ZhLT-MwEIDv_hW-V5HG4xk_Lki7XDisEAIkztU2bCOhgiBawb_HgSZ1k1iblC1QyKGSPfHM-DGfx9Pz40sJ4qpYlEtpCMRJXvxZli_Nn0W5yO-CXKH4cXO3nIuTYrHIV8fL-WqV30gtTm_LX_OHUojiWv6WR5KFlJm8yEtJ4Dcd6B0Ymmf3-V8TuhC6jYAbQSOiSNTyEIvqIXFv0167ptrXU-hY1aicyllYUWxAe23qwZWm3kxqS7etXesjE21UKgvYjOja6Fpp7ABArFhZivWC6LGaHvpI2N6TraEKcEvczAfRtD7024mX0P3Se0T_MtiVrpfaWcFTR1jvHbLpruuxZ3ilcBV-aHVivYTG4VDPWbWjNMb1LGhYTPjOtLVsJ2jeARoO-zwQGo3uC0KTSVY4DhpuXTTR4WsFhMN5Hek6KLBKMYOWyU-Z5tNlmgQ02tJYaBD581Az9sKvNEwq2RjlPfFwbnbJNsamyCHvdTimiZx3SDf09nRz2OTMdiLHpchB8Ir9nt9pKeeZQwN6AudAUg6jHQuO7jn7r1DdZJqcM3vFRkGSWYNW0YTNgeSbw8Zmp5eaUqkKx3tWynxMhUMaTCg1J272y81LzHszhJtXPIwYGOcfE81eQSKinPXQuiD-e9nh048nFbZo-pfrO4fzTLqRsZwKJma93yLApFwjOiBoRW9cp63Zca2Yq1vP
With gradients 914 Bytes
|
|
|
jonnyawsom3
|
2024-03-11 07:14:13
|
Perfect
|
|
|
Qon
|
2024-03-11 07:18:42
|
It's 640x640, doing `.map(coord=>coord.map(axis=>Math.round(axis/2)))` on the `coords` array would make it 320x320 (you also would have to reduce fadeout_y by the same)
|
|
2024-03-11 07:19:18
|
.jxl supports images done like this up to 1024x1024
|
|
|
jonnyawsom3
|
2024-03-11 07:20:04
|
Yeah, the size of 1 modular group
|
|
|
Qon
|
2024-03-11 07:20:26
|
But I'm considering... "upgrading" it. Secret project *hush*
|
|
|
jonnyawsom3
|
2024-03-11 07:20:40
|
Huuh....
|
|
|
Qon
|
2024-03-11 07:21:48
|
I'm not talking about changing the .jxl standard. And I might not bother with it
|
|
2024-03-11 07:22:19
|
What is the image for?
|
|
|
jonnyawsom3
|
2024-03-11 07:25:47
|
<@98957339243073536>'s profile picture/'logo', just because he's one of the few people that tolerates me discussing JXL at length haha
|
|
|
Qon
|
|
Thought I might as well ask if anyone would like to try and turn this into JXL art. It should be *relatively* simple, but having one of the already established wizards try instead of me means it might be half an hour instead of half a month
|
|
2024-03-11 07:49:15
|
> It should be relatively simple
For me, yes :3
But before my `line()` function was written and we had the proper hidden layer support that was added recently, this would be seen as impossible.
I'm exploring other techniques for doing complex shapes though. But bugs in the wasm of jxl_from_tree are stopping me atm <:SadOrange:806131742636507177>
|
|
|
jonnyawsom3
|
2024-03-11 07:56:10
|
The only reason I thought it should be possible is because the JXl 'logo' looked similar haha
|
|
2024-03-11 07:56:12
|
https://jpegxl.info/old/fallbacklogo.jpg
|
|
|
Qon
|
2024-03-11 08:01:02
|
45 degree angles have been possible for a long time, they are kind of part of the language. I wonder how the lower part is made though...
|
|
2024-03-11 08:02:53
|
Is it (without text) completely made as jxl-art though?
|
|
|
username
|
2024-03-11 08:03:28
|
yes
|
|
2024-03-11 08:03:41
|
https://jpegxl.info/logo.jxl
|
|
|
Qon
|
|
username
yes
|
|
2024-03-11 08:04:31
|
Do you have the tree?
|
|
|
username
|
2024-03-11 08:06:31
|
is "`logo.jxl`" not it?
|
|
|
Qon
|
2024-03-11 08:07:16
|
I mean the jxl_from_tree text language
|
|
|
username
|
|
lonjil
|
2024-03-11 08:09:16
|
I believe djxl can dump the tree if built with debug stuff enabled. Hang on and I'll try it.
|
|
|
username
|
2024-03-11 08:11:30
|
there's an old version here: https://discord.com/channels/794206087879852103/824000991891554375/829640351320768522
|
|
2024-03-11 08:12:14
|
don't know if the tree for the final version was ever posted
|
|
|
Qon
|
2024-03-11 08:21:21
|
Ok so predictors `AvgW+N,AvgW+NW,AvgN+NW,AvgN+NE: average of two pixel values ` are used for blurry 22.5 degree angles, which are then also a "language supported" angle
|
|
2024-03-11 08:23:21
|
The gradient predictor is pretty much what I do for lines, except it clamps values
|
|
2024-03-11 08:24:10
|
I think
|
|
|
CrushedAsian255
|
|
lonjil
I believe djxl can dump the tree if built with debug stuff enabled. Hang on and I'll try it.
|
|
2024-03-11 08:36:09
|
What build flag is that?
|
|
|
lonjil
|
|
CrushedAsian255
What build flag is that?
|
|
2024-03-11 08:36:31
|
I think I was misremembering
|
|
|
Qon
|
2024-03-11 08:55:17
|
https://discord.com/channels/794206087879852103/824000991891554375/829790023481163826 gives me *this* after I fix the RCT to new format (1 -> 6)
https://qon.github.io/jxl-art/?zcode=hVLLDoIwELzzFXsnJLQ8hIuJGiInDmrSDwAUbh6I0b93KwVWulUSEmams9OdoPpm6ECEYeiVbX_rhvF73w9Ne0cl806HC6Se11_hBVuIUQRA8ESQfMAHqmOJxAgBAtg9bpVfKfBBWlxgOKetYGyFsaGpRouYJryIH2GFMBAToe0VvuIL-yTw3A4QLWvU39Po8MlLZ2l3kAinwxBSLtRcXpznhLQ6XR6MVeTO69nZWqA92NpcCS_pjZwDo9Btks4sf52FZLFayLE8c5LpQ_9H9rqGjayR3G1Nfp7a5St7gfl8xiytHWy9xpPKjC2KzSG-KObEH3nEKzYJK__MJX6X_Ced9J3QC0y_2Rs
|
|
|
lonjil
|
2024-03-11 09:16:51
|
ah, there it was
|
|
|
jonnyawsom3
|
|
lonjil
I think I was misremembering
|
|
2024-03-11 09:31:01
|
It was either a developer build or a small hack you had to do to the executable. I know there was the Google CTF which needed trees
|
|
|
Xyxen
|
|
Qon
https://qon.github.io/jxl-art/?zcode=7ZhLT-MwEIDv_hW-V5HG4xk_Lki7XDisEAIkztU2bCOhgiBawb_HgSZ1k1iblC1QyKGSPfHM-DGfx9Pz40sJ4qpYlEtpCMRJXvxZli_Nn0W5yO-CXKH4cXO3nIuTYrHIV8fL-WqV30gtTm_LX_OHUojiWv6WR5KFlJm8yEtJ4Dcd6B0Ymmf3-V8TuhC6jYAbQSOiSNTyEIvqIXFv0167ptrXU-hY1aicyllYUWxAe23qwZWm3kxqS7etXesjE21UKgvYjOja6Fpp7ABArFhZivWC6LGaHvpI2N6TraEKcEvczAfRtD7024mX0P3Se0T_MtiVrpfaWcFTR1jvHbLpruuxZ3ilcBV-aHVivYTG4VDPWbWjNMb1LGhYTPjOtLVsJ2jeARoO-zwQGo3uC0KTSVY4DhpuXTTR4WsFhMN5Hek6KLBKMYOWyU-Z5tNlmgQ02tJYaBD581Az9sKvNEwq2RjlPfFwbnbJNsamyCHvdTimiZx3SDf09nRz2OTMdiLHpchB8Ir9nt9pKeeZQwN6AudAUg6jHQuO7jn7r1DdZJqcM3vFRkGSWYNW0YTNgeSbw8Zmp5eaUqkKx3tWynxMhUMaTCg1J272y81LzHszhJtXPIwYGOcfE81eQSKinPXQuiD-e9nh048nFbZo-pfrO4fzTLqRsZwKJma93yLApFwjOiBoRW9cp63Zca2Yq1vP
With gradients 914 Bytes
|
|
2024-03-12 03:11:03
|
Oh wow, that's impressive. I'm sold more and more every day on this format lmao, thank you
|
|
|
username
|
2024-03-12 03:26:41
|
off-topic but I was wondering why your name and pfp looked familiar and of course the reason ended up being Source engine related lol
|
|
|
Not any better, but at least not scaled up
|
|
2024-03-12 03:33:51
|
I found the [original JPEG](https://avatars.cloudflare.steamstatic.com/eb1116435009d4d28af1d07cf50ca2d3976b301f_full.jpg) and jpeg2png manages to clean it up pretty nicely
|
|
|
Qon
|
|
Xyxen
Oh wow, that's impressive. I'm sold more and more every day on this format lmao, thank you
|
|
2024-03-12 04:44:30
|
Glad you like it! Use it as you PFP and that's thanks enough :)
|
|
|
jonnyawsom3
|
2024-03-13 12:58:59
|
Yeah, no more jpeg artifacts ;P
|
|
|
yoochan
|
2024-03-13 08:19:00
|
about jpeg artifacts, I cloned and compiled https://github.com/victorvde/jpeg2png and it works quite well to clean up messy jpeg. But the last commit is 9yo. Do some other similar project exists ? with better results ?
|
|
|
username
|
|
yoochan
about jpeg artifacts, I cloned and compiled https://github.com/victorvde/jpeg2png and it works quite well to clean up messy jpeg. But the last commit is 9yo. Do some other similar project exists ? with better results ?
|
|
2024-03-13 08:24:54
|
there's [JPEG Quant Smooth](https://github.com/ilyakurdyukov/jpeg-quantsmooth) but I wouldn't necessarily call the results better just different
|
|
|
yoochan
|
2024-03-13 08:26:06
|
Indeed ! it seems a bit less smooth for very flat areas. Anything good exists ith IA ?
|
|
|
Traneptora
|
|
yoochan
Indeed ! it seems a bit less smooth for very flat areas. Anything good exists ith IA ?
|
|
2024-03-13 10:02:57
|
waifu2x has existed for years. it's a neural net based tool
|
|
|
yoochan
|
2024-03-13 10:05:54
|
waifu2x is not only an upscaler ?
|
|
2024-03-13 10:06:09
|
I'll test it
|
|
|
w
|
|
damian101
|
|
username
there's [JPEG Quant Smooth](https://github.com/ilyakurdyukov/jpeg-quantsmooth) but I wouldn't necessarily call the results better just different
|
|
2024-03-13 11:29:07
|
perfect for text, line art and anything else with only high contrast content
|
|
2024-03-13 11:29:18
|
probably optimized for PSNR...
|
|
|
_wb_
|
2024-03-13 04:31:25
|
Cloudinary's new AI-based cleanup thing might also be good: https://res.cloudinary.com/jon/image/upload/e_gen_restore/f_png,q_100/eb1116435009d4d28af1d07cf50ca2d3976b301f_full.jpg
|
|
|
jonnyawsom3
|
2024-03-13 04:35:17
|
<@98957339243073536> we have started something great
|
|
|
fab
|
|
_wb_
Cloudinary's new AI-based cleanup thing might also be good: https://res.cloudinary.com/jon/image/upload/e_gen_restore/f_png,q_100/eb1116435009d4d28af1d07cf50ca2d3976b301f_full.jpg
|
|
2024-03-13 04:58:53
|
Good
|
|
2024-03-13 05:00:09
|
The brightness is still a bit better on my Xiaomi mi 11 lite 5G than yt but it has to be tested in an accurate quality
|
|
2024-03-13 05:00:41
|
On yt brightness how i see on my phone I strongly prefer auto cloudinary jpg
|
|
2024-03-13 05:00:51
|
But on tv? On laptop?
|
|
|
jonnyawsom3
|
2024-03-13 05:11:41
|
I once again have no idea what you're talking about
|
|
|
fab
|
2024-03-13 05:17:14
|
https://youtu.be/YaPzeLMGHTQ?si=9hyPcpez7R_PKtwP
|
|
2024-03-13 05:17:28
|
Ok test video let's cloudinary judge the quality
|
|
2024-03-13 05:17:50
|
Only for This server
|
|
2024-03-13 05:35:18
|
I'm sick of Discord honestly. UI too dark
|
|
|
jonnyawsom3
|
2024-03-13 05:36:30
|
Huh...
|
|
|
Xyxen
|
|
Yeah, no more jpeg artifacts ;P
|
|
2024-03-13 09:21:04
|
It's been recompressed over the years because I keep losing the file lmao. Finding the original PNG on an old hard drive would be nice but it's not complex enough to warrant the search
|
|
|
username
off-topic but I was wondering why your name and pfp looked familiar and of course the reason ended up being Source engine related lol
|
|
2024-03-13 09:21:41
|
A shadow that will always follow me 😔
|
|
|
DZgas Ж
|
|
yoochan
about jpeg artifacts, I cloned and compiled https://github.com/victorvde/jpeg2png and it works quite well to clean up messy jpeg. But the last commit is 9yo. Do some other similar project exists ? with better results ?
|
|
2024-03-15 06:22:45
|
I use waifu2x caffe — cunet denoise 1
For photo.
For art use cunet denoise 3
|
|
|
username
there's [JPEG Quant Smooth](https://github.com/ilyakurdyukov/jpeg-quantsmooth) but I wouldn't necessarily call the results better just different
|
|
2024-03-15 06:23:30
|
It will be necessary to do comparative tests.
|
|
|
DZgas Ж
I use waifu2x caffe — cunet denoise 1
For photo.
For art use cunet denoise 3
|
|
2024-03-15 06:25:46
|
|
|
|
yoochan
|
|
DZgas Ж
|
|
2024-03-15 08:18:02
|
amazing results ! I'll have a look
|
|
|
DZgas Ж
|
|
yoochan
amazing results ! I'll have a look
|
|
2024-03-15 10:31:43
|
waifu2x-caffe cunet (noise3_model)
+
realcugan-ncnn-vulkan models-se (up2x-no-denoise)
I've been using this for a long time to fix lousy compressed art.
and if, instead of "cugan", neural networks may have appeared better... but I just don't know how to fix artifacts better than "cunet"...
*I don't have any examples at hand other than this, so I'm sorry for the cringe.*
|
|
2024-03-15 11:38:19
|
|
|
|
yoochan
|
2024-03-15 11:56:06
|
<@226977230121598977> do you sometime encounter raw material which is not compressed nor scanned? I mean, a manga which is directly produced on a computer, saved as png and distributed as this?
|
|
|
Nyao-chan
|
|
DZgas Ж
waifu2x-caffe cunet (noise3_model)
+
realcugan-ncnn-vulkan models-se (up2x-no-denoise)
I've been using this for a long time to fix lousy compressed art.
and if, instead of "cugan", neural networks may have appeared better... but I just don't know how to fix artifacts better than "cunet"...
*I don't have any examples at hand other than this, so I'm sorry for the cringe.*
|
|
2024-03-15 12:24:26
|
|
|
2024-03-15 12:25:39
|
<@1051137277813870592> you could also try real esrgan. I don't remember if it can only denoise though
|
|
|
DZgas Ж
|
|
yoochan
<@226977230121598977> do you sometime encounter raw material which is not compressed nor scanned? I mean, a manga which is directly produced on a computer, saved as png and distributed as this?
|
|
2024-03-15 12:26:00
|
Yes, I oversaw a project to compress 18,000 units of translated manga hentai (porn) into JXL
|
|
|
Nyao-chan
|
2024-03-15 12:26:52
|
and if you need manga like that, like I said before, there is e.g. witch hat Atelier or hunter X Hunter on nyaa
|
|
2024-03-15 12:27:30
|
I tested a few images yesterday and lossless was 30% smaller than lossy vardct/modular on them
|
|
|
DZgas Ж
|
2024-03-15 12:29:20
|
I find an algorithm, a mixture of blur, sharpness, medianblur, which destroys the dots. what would it be ok to compress
|
|
2024-03-15 12:30:49
|
That was a year ago. right now, the best solution would be to blur everything to hell harder and then restore sharpness use CUGAN
|
|
2024-03-15 12:32:43
|
now have tools for FFT for sound. but in the case of manga, it would be nice to have something of the same for the image to just destroy the dots as if it were part of the "image spectrum".
|
|
|
yoochan
<@226977230121598977> do you sometime encounter raw material which is not compressed nor scanned? I mean, a manga which is directly produced on a computer, saved as png and distributed as this?
|
|
2024-03-15 12:36:26
|
unfortunately, and I DON't understand why - We are still no neural networks for destroying dots in manga. The transfer of points to luma gradient was simply not created.
all I advise my friends to do when scaling manga is to use B-Spline - so that when rescaling manga on a monitor or phone screen, interference is minimal
|
|
|
_wb_
|
2024-03-15 12:37:07
|
this is for scanned halftoned images that presumably are actually grayscale so the dots are not intentional but an artifact of the printing technology?
|
|
|
Nyao-chan
|
2024-03-15 12:37:08
|
like this: https://legacy.imagemagick.org/Usage/fourier/ ?
|
|
|
_wb_
|
2024-03-15 12:37:37
|
because I assume in some cases the dots are actually part of the art
|
|
|
w
|
2024-03-15 12:37:52
|
yeah these days it's style
|
|
|
DZgas Ж
|
|
_wb_
this is for scanned halftoned images that presumably are actually grayscale so the dots are not intentional but an artifact of the printing technology?
|
|
2024-03-15 12:38:08
|
There are no gray colors. Manga printing is a 1 bit color technology
|
|
|
w
|
2024-03-15 12:38:21
|
and there is gray
|
|
|
DZgas Ж
|
|
_wb_
|
2024-03-15 12:40:19
|
well yes, but either the artist intends to have shades of gray (and the printing technology turns it into some halftone pattern because it can only do 1-bit), or the artist intends to have dots (maybe even larger ones than what the printer resolution would imply)
|
|
|
Nyao-chan
|
2024-03-15 12:40:57
|
link with correct anchor: https://legacy.imagemagick.org/Usage/fourier/#noise_removal
|
|
|
DZgas Ж
|
|
_wb_
well yes, but either the artist intends to have shades of gray (and the printing technology turns it into some halftone pattern because it can only do 1-bit), or the artist intends to have dots (maybe even larger ones than what the printer resolution would imply)
|
|
2024-03-15 12:42:15
|
Oh, no, of course not, art is originally drawn in a single-bit format, in manga drawing applications,
|
|
|
w
|
2024-03-15 12:42:37
|
<:linusretire:707375442226708542>
|
|
|
_wb_
|
2024-03-15 12:44:51
|
if the art is 1-bit, why do you want to destroy dots and turn it into smooth gradients?
|
|
|
Nyao-chan
|
2024-03-15 12:48:16
|
I guess one problem is moiré?
|
|
2024-03-15 12:49:13
|
I tried to scale manga while changing the dots size one time, using fft, but did not get far lol.
|
|
|
w
|
2024-03-15 12:50:25
|
gotta scale in linear
|
|
|
DZgas Ж
|
|
_wb_
if the art is 1-bit, why do you want to destroy dots and turn it into smooth gradients?
|
|
2024-03-15 12:50:34
|
due to interference during scaling
|
|
|
Nyao-chan
|
|
w
gotta scale in linear
|
|
2024-03-15 12:52:15
|
nearest neighbour or integer?
|
|
|
DZgas Ж
|
|
_wb_
if the art is 1-bit, why do you want to destroy dots and turn it into smooth gradients?
|
|
2024-03-15 12:52:40
|
the fact is that manga drawn on paper has a huge DPI in terms of quality display, the points in Source arts are exactly those that the printing equipment will print, they are not subject to Discrete conversion, they are actually vector on the final material (paper)
|
|
2024-03-15 12:53:29
|
|
|
2024-03-15 12:53:40
|
the problem
|
|
|
w
|
2024-03-15 12:54:04
|
linear light, when not nearest neighbour scaling
|
|
2024-03-15 12:58:40
|
the fact is nobody draws manga on paper in year of our lord 2024
|
|
|
yoochan
|
|
DZgas Ж
unfortunately, and I DON't understand why - We are still no neural networks for destroying dots in manga. The transfer of points to luma gradient was simply not created.
all I advise my friends to do when scaling manga is to use B-Spline - so that when rescaling manga on a monitor or phone screen, interference is minimal
|
|
2024-03-15 12:59:49
|
I like dots in manga, but when scanned (and even worse compressed) they exibit moiré which is very very ugly
|
|
|
w
|
2024-03-15 01:00:25
|
they look fine when scanned at high dpi
|
|
|
DZgas Ж
|
|
yoochan
I like dots in manga, but when scanned (and even worse compressed) they exibit moiré which is very very ugly
|
|
2024-03-15 01:02:32
|
I have a 1200 DPI scanner - it's quite enough to detect every grain of every point..... but there is no hardware (display) to "properly" view the scanned manga.... except for Ebook Reader
|
|
|
Nyao-chan
like this: https://legacy.imagemagick.org/Usage/fourier/ ?
|
|
2024-03-15 01:04:17
|
🧐 It looks very smart. added to bookmarks
|
|
|
|
JXL Art Bot
|
2024-03-15 01:04:54
|
**\_wb\_**
_“Manga dots”_
2024
image/jxl
34 bytes
https://jxl-art.lucaversari.it/?zcode=c8osSUktKMlQMOEKz0wB0oYGBlweqZnpGSUKFgZcoQXFibkFOakKFlxBziEKBlxcmWkKlQp2QBaQ4QdmKCjoKvi5KugawlhGILlwoBxQSFchOLUEyDCAsowA
|
|
|
_wb_
|
|
DZgas Ж
I have a 1200 DPI scanner - it's quite enough to detect every grain of every point..... but there is no hardware (display) to "properly" view the scanned manga.... except for Ebook Reader
|
|
2024-03-15 01:07:44
|
I guess the main problem you have is that no display has enough resolution to properly view it without downscaling, and for downscaling algorithms it is tricky to avoid moiré / aliasing artifacts
|
|
|
DZgas Ж
|
|
_wb_
I guess the main problem you have is that no display has enough resolution to properly view it without downscaling, and for downscaling algorithms it is tricky to avoid moiré / aliasing artifacts
|
|
2024-03-15 01:42:32
|
my friend with a 8k monitor did not understand why I was so bothering <:PepeOK:805388754545934396> the best solution is an Ebook Reader or, if you have a 1000+ ppi printer, just REprint the manga on paper
|
|
2024-03-15 01:43:16
|
But 95% of people who don't have this read manga on their smartphones - that's where all the problems come from.
|
|
|
_wb_
|
2024-03-15 01:47:15
|
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-03-15 01:48:36
|
So manga reader software should probably do that and not some default bicubic or lanczos or whatever
|
|
|
damian101
|
2024-03-15 01:54:51
|
that gaussian blur is generally very effective at preventing all kinds of haloing
|
|
2024-03-15 01:54:58
|
always beneficial really in my testing
|
|
|
DZgas Ж
|
|
DZgas Ж
I find an algorithm, a mixture of blur, sharpness, medianblur, which destroys the dots. what would it be ok to compress
|
|
2024-03-15 02:02:19
|
<@794205442175402004>that i do
|
|
|
Nyao-chan
like this: https://legacy.imagemagick.org/Usage/fourier/ ?
|
|
2024-03-15 09:46:11
|
its just works
|
|
2024-03-15 10:14:11
|
|
|
2024-03-15 10:16:08
|
<@251147778313551872> the method is working. but it has so many artifacts that it cannot be used... In addition, it is completely manual, no automatic processing... It's a pity that it turned out to be just a funny thing.
|
|
2024-03-15 10:26:43
|
fun blur
|
|
2024-03-15 10:27:24
|
literally neural network generation
|
|
|
perk
|
|
DZgas Ж
fun blur
|
|
2024-03-25 03:23:06
|
<#806898911091753051>
https://openmodeldb.info/models/4x-DWTP-ds-esrgan-5
|
|
|
DZgas Ж
|
|
perk
<#806898911091753051>
https://openmodeldb.info/models/4x-DWTP-ds-esrgan-5
|
|
2024-03-25 03:59:00
|
<:monkaMega:809252622900789269> no way
|
|
2024-04-26 12:35:52
|
in what way is it possible to draw an image of 31x17 pixels using JXL under the condition that the image information is only the brightness of a specific line
to visualize the mask of my image search algorithm. (exclusively for visualization) because I have to store it in JPEG or WEBP images of a large size.
Although the actual amount of hash information is 48 bytes
|
|
2024-04-26 12:38:23
|
I'm not asking to do this, I'm just wondering if it's possible to implement it, since 17x and 31x masks should be superimposed with subtraction (mask difference) on the image in 50/50 percentages
|
|
|
_wb_
|
2024-04-26 12:40:25
|
so you have a base image B and then a layer H consisting of 17 horizontal stripes and another layer V consisting of 31 vertical stripes?
|
|
|
DZgas Ж
|
|
_wb_
so you have a base image B and then a layer H consisting of 17 horizontal stripes and another layer V consisting of 31 vertical stripes?
|
|
2024-04-26 12:41:24
|
there are only images of stripes. A combined image is made from their difference
|
|
|
_wb_
|
|
DZgas Ж
|
2024-04-26 12:42:29
|
Since these are 2 prime numbers, the image size should be 527x527 pixels when multiplied.
|
|
|
_wb_
|
2024-04-26 12:42:59
|
wait I don't understand
|
|
|
DZgas Ж
|
2024-04-26 12:43:12
|
🙂
|
|
2024-04-26 12:44:01
|
|
|
2024-04-26 12:44:21
|
overlap by difference
|
|
|
_wb_
|
2024-04-26 12:44:50
|
that's a 31x17 image though
|
|
2024-04-26 12:45:06
|
how do you get a 527x527 image?
|
|
|
DZgas Ж
|
2024-04-26 12:45:33
|
31x17=527
|
|
2024-04-26 12:46:01
|
you cannot place a 31x image in a 17x field
|
|
2024-04-26 12:46:39
|
overlap 50% x 50%
|
|
|
_wb_
that's a 31x17 image though
|
|
2024-04-26 12:48:09
|
the number of lines in one image is 17 in the other 31. technically One-dimensional. but one is usr for the height and the other for the width
|
|
|
_wb_
|
2024-04-26 12:50:09
|
ah, you're using 527x527 just so you can have 17 macro-lines and 31 macro-columns, so to speak
|
|
|
DZgas Ж
|
|
_wb_
ah, you're using 527x527 just so you can have 17 macro-lines and 31 macro-columns, so to speak
|
|
2024-04-26 12:50:53
|
so that perfectly precisely observed in all proportions
|
|
|
_wb_
|
2024-04-26 12:52:00
|
so these stripe layers are easy to do in jxl art, just a tree of the form `if x > 16 if x > 33 if x > 50 .... - Set [value of 3rd stripe] - Set [value of 2nd stripe] - Set [value of 1st stripe]`
|
|
2024-04-26 12:52:40
|
(or using y and steps of 31 for the other one)
|
|
|
DZgas Ж
|
|
_wb_
so these stripe layers are easy to do in jxl art, just a tree of the form `if x > 16 if x > 33 if x > 50 .... - Set [value of 3rd stripe] - Set [value of 2nd stripe] - Set [value of 1st stripe]`
|
|
2024-04-26 12:53:48
|
please don't write examples. I don't understand JXL art at all. 🥴 I'm just wondering if it's possible to draw or not 31. and then draw lines 17 on top of them so that there is a pixel difference in place of the drawn lines 31
|
|
|
_wb_
|
2024-04-26 12:54:25
|
blending them can be done using one of the blend modes jxl supports. It doesn't have difference, but I guess you can use kAdd and encode the layer with all values having a negative sign instead of a positive
|
|
2024-04-26 12:54:40
|
what kind of "pixel difference" do you need?
|
|
2024-04-26 12:54:54
|
is it just A-B or do you need abs(A-B)?
|
|
|
DZgas Ж
|
2024-04-26 12:55:17
|
yep
|
|
2024-04-26 12:55:22
|
abs(A-B)
|
|
|
_wb_
|
2024-04-26 12:56:05
|
that is maybe trickier
|
|
2024-04-26 12:59:20
|
an easier and maybe more informative way to visualize this is to put the horizontal stripes in one channel (e.g. Red) and the vertical ones in another (e.g. Green)...
|
|
2024-04-26 01:07:26
|
something like this
|
|
2024-04-26 01:07:27
|
https://qon.github.io/jxl-art/?zcode=rZG9bsIwFIV3P8WdERXXdpyYhYEundtKnVFjiBeChJHK2-M_7CR2N7Z7zrFv4vP96N4MIFhHPpQ-DcaPe216dbG-JJ_v34CE6CP8ws5OAHa825G7OamWepX0lkWdHMp4srIpmomZbSlmdgoYbRdBjpquiHLYyUoIsFnB4dzDdYTxvIb7eIOTMmAGBbpXB1htqrfe4Muemj9omda-FxIWm6ts3C6T4M_d4DWMFItFbi3-xPNm3C-CjgojzT_XePuk6RTnmabTAqc0ndN2c5jOkwVLvxlpydIHVNZY-ogL8hpY4akC_43Kzuutp5KbGg0qscAxORiv4gIHTnEgeQA
|
|
2024-04-26 01:09:54
|
(you can also try other RCTs to spice up the colors a bit)
|
|
|
DZgas Ж
|
2024-04-26 02:20:09
|
I get the idea
|
|
|
a goat
|
2024-04-26 02:49:40
|
All those branches... how does the encoder optimize this for parallel execution?
|
|
|
_wb_
|
2024-04-26 08:59:53
|
That's where things get tricky. We already do stuff to reduce branching in the decode paths, but there is room for some more.
|
|
|
Meow
|
2024-05-12 01:28:31
|
Some can't displayed on Safari https://jpegxl.info/art/
|
|
|
jonnyawsom3
|
2024-05-12 01:34:55
|
If I recall there's a minimum filesize for images to display, and JXL is the only time it's managed to make images under that minimum
|
|
|
Meow
|
|
If I recall there's a minimum filesize for images to display, and JXL is the only time it's managed to make images under that minimum
|
|
2024-05-12 01:36:43
|
The 73B one is displayed but the 81B one isn't
|
|
|
jonnyawsom3
|
2024-05-12 01:36:57
|
Huh... Well that's new
|
|
|
monad
|
2024-05-12 01:46:18
|
maybe rejecting the spline
|
|
2024-05-12 01:48:31
|
current libjxl even rejects some old arts.
|
|
|
_wb_
|
2024-05-12 01:48:38
|
this tells us something about which version of libjxl they're using, I guess 🙂
|
|
2024-05-12 01:48:51
|
originally splines had no limits, and libjxl would just decode anything
|
|
|
monad
|
2024-05-12 01:49:08
|
well current libjxl decodes this one
|
|
|
_wb_
|
2024-05-12 01:49:33
|
then we added limits because fuzzers were finding examples where decode would take lots of time and resources — these limits were first added in a somewhat unprincipled way, just as a security mitigation
|
|
2024-05-12 01:50:43
|
then we updated the spec to actually define rigorous and well-defined limits for splines (in both levels of the Main profile, at least), and made libjxl use those limits instead
|
|
2024-05-12 01:51:30
|
'Rubin golden vase' originally decoded, then didn't decode anymore, then decodes again — it was one of the examples I wanted to remain within the spec limits 🙂
|
|
2024-05-12 01:52:11
|
so likely in a future update of Safari/macOS/iOS the image will decode again
|
|
|
jonnyawsom3
|
2024-05-12 02:11:37
|
Interesting
|
|
|
monad
|
2024-05-12 02:22:00
|
encode_decode
|
|
|
jonnyawsom3
|
2024-05-12 02:25:03
|
Maybe to do with the RCT numbers being changed?
|
|
|
monad
|
2024-05-12 02:25:29
|
yes, as far as the color issue
|
|
2024-05-12 02:25:43
|
but the shape changed too
|
|
|
_wb_
|
2024-05-12 04:32:06
|
Looks like some scaling factor changed in jxl_from_tree output. The important thing is that the same jxl file decodes to the same image. But probably useful to figure out what changed there and make jxl_from_tree consistent with older versions again.
|
|
|
NewFeverish
|
|
TheBigBadBoy - 𝙸𝚛
Recompressed with `-d 1 -e 9`, cjxl v0.9.2 41b8cdab did not appreciate that <:KekDog:805390049033191445>
|
|
2024-05-30 09:05:40
|
he has a little fez now 😂
|
|
|
_wb_
|
2024-05-30 09:35:46
|
Sierpinski: https://discord.com/channels/794206087879852103/824000991891554375/844164924527476757
XOR: https://discord.com/channels/794206087879852103/824000991891554375/926163221776314380
|
|
2024-05-30 09:36:06
|
<@1135670115808059512>
|
|
|
NewFeverish
|
2024-05-30 09:36:31
|
oooh, I love this, thanks
|
|
|
TheBigBadBoy - 𝙸𝚛
|
|
_wb_
Sierpinski: https://discord.com/channels/794206087879852103/824000991891554375/844164924527476757
XOR: https://discord.com/channels/794206087879852103/824000991891554375/926163221776314380
|
|
2024-05-30 11:11:12
|
what about pinning them? so we can find them again easily
|
|
|
|
JXL Art Bot
|
2024-05-30 11:41:44
|
**NewFeverish**
_“Sierpiński Gradient”_
2024
image/jxl
25 bytes
https://jxl-art.surma.technology/?zcode=c8osSUktKMlQMDTg4spMUwjX9QtXsFMw4FJQAPL8gFwoT0FBVyFcwRDKcixLD9cGqgTJ6CoEp%2BakJpcAJQE%3D
|
|
|
NewFeverish
|
2024-05-30 11:43:30
|
It looks pretty cool using other RCT vals too
|
|
|
|
JXL Art Bot
|
2024-05-30 11:45:40
|
**NewFeverish**
_“Frozen Sierpiński”_
2024
image/jxl
27 bytes
https://jxl-art.surma.technology/?zcode=c8osSUktKMlQMDTgCnIOUTDl4spMUwjX9QtXsFMw4FJQAPL8gFwoT0FBVyFcwRDKcixLD9cGqgTJ6CoEp%2BakJpcAJQE%3D
|
|
|
NewFeverish
|
2024-05-31 10:24:35
|
Is there any way to get the jxl prediction tree to generate images bigger than 1024x1024?
|
|
2024-05-31 10:33:10
|
would be sick to be able to make desktop backgrounds using prediction tree art
|
|
|
jonnyawsom3
|
2024-05-31 11:24:47
|
1024x1024 is the max size per tree, but you can tile the trees into 2048x2048, 4096x4096, 8192x8192, ect
|
|
2024-05-31 11:27:06
|
Actually, I lied
|
|
2024-05-31 11:27:49
|
Adding `Upsample #` as 2, 4 or 8 will do what I said above, but actually scaling the image instead of just tiling
|
|
|
NewFeverish
|
2024-05-31 11:39:52
|
thanks, I was running into tiling like you mentioned. Playing with the Upsample value seems to expand the image properly, though I noticed it starts to blend colors together
|
|
|
jonnyawsom3
|
2024-05-31 11:42:40
|
That'll be because of the upsampling mode, there's a flag in cjxl to use nearest neibhour but it's not in the art tools yet
|
|
|
NewFeverish
|
2024-05-31 11:47:12
|
fair enough, so I could theoretically break out the hex editor and add the flag into the image myself?
|
|
2024-05-31 11:55:24
|
maybe that or start helping out with the art tools repo. I appreciate the help so far, kind of fun to abuse a feature of image compression to do things like this
|
|
|
monad
|
|
NewFeverish
fair enough, so I could theoretically break out the hex editor and add the flag into the image myself?
|
|
2024-06-01 06:49:32
|
you would have to embed your upsampling weights into the codestream, idk if editing an existing file is allowed. anyway, it takes a lot of bytes relative to the tiniest jxl art
|
|
|
NewFeverish
|
2024-06-01 07:51:16
|
dang, probably not viable then to do it via text editor. Thanks for the input and I can look at the art tools if I have time
|
|
|
lonjil
|
2024-06-01 08:18:24
|
One of these days I'm gonna make a visual JXL codestream editor
|
|
|
CrushedAsian255
|
|
lonjil
One of these days I'm gonna make a visual JXL codestream editor
|
|
2024-06-02 05:40:40
|
i'm trying to write a parser but i'm still not sure what spec I should go by as there seem to be multiple specs
|
|
|
monad
|
2024-06-02 05:42:13
|
the latest one
|
|
|
CrushedAsian255
|
2024-06-02 06:11:16
|
can u link?
|
|
|
lonjil
|
|
CrushedAsian255
i'm trying to write a parser but i'm still not sure what spec I should go by as there seem to be multiple specs
|
|
2024-06-02 06:30:53
|
https://discord.com/channels/794206087879852103/1021189485960114198/1169087534060556339
|
|
|
CrushedAsian255
|
|
lonjil
https://discord.com/channels/794206087879852103/1021189485960114198/1169087534060556339
|
|
2024-06-02 06:33:44
|
that's the official one?
|
|
|
lonjil
|
2024-06-02 06:34:34
|
It's the latest one Jon has posted. I don't think there have been any notable changes since then.
|
|
|
CrushedAsian255
|
|
lonjil
It's the latest one Jon has posted. I don't think there have been any notable changes since then.
|
|
2024-06-02 06:35:05
|
ok thanks
|
|
2024-06-02 06:37:42
|
When it says
```A bitstream is a sequence of bytes. A codestream is a bitstream that represent compressed image data and metadata. N bytes can also be viewed as 8 × N bits. The first 8 bits are the bits constituting the first byte, in least to most significant order, the next eight bits (again in least to most significant order) constitute the second byte, and so on. Unless otherwise specified, bits are read from the codestream as specified in B.2.1.```
does this mean the bytes `00101111 01010101` would be read `1-1-1-1-0-1-0-0-1-0-1-0-1-0-1-0`?
is this correct interpreted?
|
|
|
Tirr
|
2024-06-02 06:40:33
|
yep
|
|
2024-06-02 06:42:37
|
so it allows reading e.g. 8 bytes at once and process from LSB in little endian system
|
|
|
CrushedAsian255
|
2024-06-02 06:44:34
|
that's clever, so i can just load a u64 and just do
```cpp
uint64_t x = read_8_bytes_from_file();
for(int i = 0; i < 64; i++) {
printf("%d\n",x&0x1);
x >>= 1;
}
```
|
|
|
Tirr
|
2024-06-02 06:45:14
|
yeah something like that
|
|
2024-06-02 06:46:15
|
there are some tricks to read bits much faster (which libjxl uses)
|
|
|
CrushedAsian255
|
2024-06-02 06:46:48
|
are the bits in the code stream read in the other order again then?
|
|
2024-06-02 06:47:53
|
so like if i needed to read 4 u1's and a u4 from `01110101`
i would get `1 0 1 0 0111`?
|
|
2024-06-02 06:48:20
|
like `x &= 0xf; x >>= 4;`?
|
|
|
Tirr
|
2024-06-02 06:51:55
|
yeah exactly
|
|
|
CrushedAsian255
|
2024-06-02 06:52:08
|
that's really clever
|
|
|
Tirr
|
2024-06-02 06:53:05
|
it's a bit confusing (at least for me), but very natural to computers
|
|
|
CrushedAsian255
|
2024-06-02 06:53:12
|
this is probably the wrong channel, lets go to my old thread
|
|
2024-06-02 06:53:22
|
https://discord.com/channels/794206087879852103/1208362658705838090
|
|
|
Qon
|
|
_wb_
https://qon.github.io/jxl-art/?zcode=rZG9bsIwFIV3P8WdERXXdpyYhYEundtKnVFjiBeChJHK2-M_7CR2N7Z7zrFv4vP96N4MIFhHPpQ-DcaPe216dbG-JJ_v34CE6CP8ws5OAHa825G7OamWepX0lkWdHMp4srIpmomZbSlmdgoYbRdBjpquiHLYyUoIsFnB4dzDdYTxvIb7eIOTMmAGBbpXB1htqrfe4Muemj9omda-FxIWm6ts3C6T4M_d4DWMFItFbi3-xPNm3C-CjgojzT_XePuk6RTnmabTAqc0ndN2c5jOkwVLvxlpydIHVNZY-ogL8hpY4akC_43Kzuutp5KbGg0qscAxORiv4gIHTnEgeQA
|
|
2024-06-04 08:20:41
|
Cool, someone other than me used my fork <:BlobYay:806132268186861619> thanks! :D
|
|
|
lonjil
|
2024-06-04 08:28:24
|
I haven't done jxl art for a while but when I do in the future I will definitely use your fork
|
|
|
Qon
|
|
lonjil
I haven't done jxl art for a while but when I do in the future I will definitely use your fork
|
|
2024-06-04 08:33:15
|
Thanks! And maybe I'll get back to trying to clean up the way ace-editor was included (to the proper but currently non-working way) so that others will accept my PRs.
|
|
|
_wb_
|
|
Qon
Cool, someone other than me used my fork <:BlobYay:806132268186861619> thanks! :D
|
|
2024-06-08 01:47:18
|
I like it on desktop. On my phone, not so much...
|
|
|
|
JXL Art Bot
|
2024-06-08 02:14:15
|
**\_wb\_**
_“Painting with light”_
2024
image/jxl
31 bytes
https://jxl-art.lucaversari.it/?zcode=C3IOUTDgcsosSUktKMlQMDTg4spMU0hWsAOKKigAmQFFqWWuRUVQAQUFXQW%2FcAVdIyjbsSw9XNtPwRCiNlwXKGenoGsIlgUK%2BAFFEAIgDeEKCDbIIEOoQcGpOanJJUBJAA%3D%3D
|
|
|
lonjil
|
|
_wb_
|
2024-06-08 03:17:46
|
I like how those green and blue diagonal strokes look kind of natural (like someone used a blurry brush in Gimp or something), which was something I was not expecting
|
|
2024-06-08 03:18:25
|
(considering the simplicity of this tree)
|
|
|
|
JXL Art Bot
|
2024-06-08 04:47:32
|
**Jonnyawsom3**
_“New Wallpaper”_
2024
image/jxl
51 bytes
https://jxl-art.lucaversari.it/?zcode=RYzLCsIwEEX38xV3L4GkqOimoEVwFcQHs5Z2bAMVQgz9fqca6O5wzsy9Nnfs6BhyJzEPcJY4dAr7raWzhH7I2KwtPeLn%2BY6joCIKL7SoYQlQvCSZTikVARh4hqkKH6aeVx7uf8tGWw3jflWFV7OI%2BYGx8DzkytBNRmmzxi8%3D
|
|
|
jonnyawsom3
|
2024-06-08 04:47:57
|
Always fun playing with the RCT
|
|
|
Meow
|
2024-06-09 06:52:44
|
Readable
|
|
|
Qon
|
|
_wb_
I like it on desktop. On my phone, not so much...
|
|
2024-06-09 06:45:06
|
Because of vertical split? Making the layout adjust to screen aspect ratio seems sensible. I just would never actually edit any jxl-art on my phone, so I don't need space for a keyboard. And without the need to accommodate the screen space used for a touch keyboard the use case is just viewing. And if I wanted to view some jxl-art on my phone I would hold my phone in landscape mode for the vertical split anyways. And maybe even with a horizontal split since the code area is adjustable anyways.
|
|
|
_wb_
|
2024-06-09 06:47:55
|
Yes, it would be nice to change the split direction depending on screen orientation. I don't really like landscape mode on phone (in terms of ergonomics)
|
|
|
Qon
|
|
_wb_
Yes, it would be nice to change the split direction depending on screen orientation. I don't really like landscape mode on phone (in terms of ergonomics)
|
|
2024-06-09 07:13:08
|
The ergonomics of holding the phone that way? Or having to change back and forth because of using portrait for discord and landscape when clicking a link to view jxl-art? Or the constant switching keyboard on/off to be able to see the screen when keyboard covers the webpage?
|
|
|
_wb_
|
2024-06-09 07:48:03
|
All of those, but mostly the first and last.
|
|
|
|
JXL Art Bot
|
2024-06-18 05:07:01
|
**NewFeverish**
_“Fadeout Sierpiński”_
2024
image/jxl
25 bytes
https://jxl-art.surma.technology/?zcode=c8osSUktKMlQMDTg4spMUwjX9QtXsFMw4FJQAPL8gFwgzxDIU1DQVQiHsxzL0sO1gSpB6nQVglNzUpNLgJIA
|
|
|
NewFeverish
|
2024-06-18 05:08:20
|
A little bit different than "Sierpiński Gradient", where this time the gradient is facing up and to the right
|
|
|
lonjil
|
|
_wb_
|
2024-07-28 05:52:11
|
we should add some syntax to jxl_from_tree to signal it's PQ instead of sRGB, so we can make some HDR jxl art
|
|
2024-07-28 08:51:06
|
Wide gamut & HDR version of a sunset
|
|
|
|
embed
|
|
TheBigBadBoy - 𝙸𝚛
|
|
_wb_
Wide gamut & HDR version of a sunset
|
|
2024-07-29 06:36:38
|
only 121 bytes for this beautifful image ??? [⠀](https://cdn.discordapp.com/emojis/853492103145324554.webp?size=48&quality=lossless&name=woag)
|
|
|
jonnyawsom3
|
2024-07-29 06:46:54
|
Color management can certainly change the demeanour of an image, very nice shades of blue at the top (Waterfox)
|
|
|
_wb_
|
2024-07-29 07:20:23
|
best viewed in Thorium on a recent macbook (or anything else with a good HDR display) 🙂
|
|
|
Quackdoc
|
2024-07-29 07:37:20
|
I don't have amd setup right now and am on linux so I can't view T.T
|
|
|
jonnyawsom3
|
2024-07-29 08:31:01
|
My 8 year old phone is the only HDR device I own, and I don't think any of the gallery apps currently support HDR
|
|
|
Tirr
|
2024-07-29 08:41:51
|
tried tonemapping to sRGB with jxl-oxide and seems like it overflowed
|
|
2024-07-29 08:44:24
|
it was totally ok when decoded to bt2100 pq
|
|
|
|
SwollowChewingGum
|
2024-07-29 10:25:42
|
some weird glitchiness happening on thorium
|
|
2024-07-29 10:25:59
|
|
|
|
Tirr
|
2024-07-29 10:35:26
|
I think it's fixed; artifacts seem to be from extremely out-of-gamut input
|
|
2024-07-29 10:37:26
|
it should be allowed to clip input to [0, 1] because the input rendering intent is Relative, but not sure
|
|
2024-07-29 10:51:11
|
macOS (left) and jxl-oxide (right) tonemap a bit differently
|
|
2024-07-29 10:52:46
|
jxl-oxide looks better to me 😉
|
|
|
𐑛𐑦𐑕𐑣𐑸𐑥𐑩𐑯𐑦 | 最不調和の伝播者 | 異議の元素
|
|
|
|
2024-07-29 12:05:43
|
« L’application ne répond plus »
|
|
|
_wb_
Wide gamut & HDR version of a sunset
|
|
2024-07-29 12:07:26
|
Loupe (not sure about the underlying implementation)
|
|
|
Quackdoc
|
2024-07-29 12:10:30
|
loupe uses JXL oxide iirc
|
|
|
Tirr
|
2024-07-29 12:10:58
|
maybe jxl-oxide with external cms
|
|
2024-07-29 12:16:49
|
seems like they're using jpegxl-rs, which means libjxl
|
|
|
Quackdoc
|
2024-07-29 12:22:33
|
interesting, I think it used jxl-oxide at one point, or maybe im mistaken with another viewer, could be crossing wires with occulante
|
|
|
Tirr
|
2024-07-29 12:29:26
|
it did used jxl-oxide but switched to libjxl mainly because of performance and some remaining bugs
|
|
|
Quackdoc
|
2024-07-29 01:30:33
|
ahh I see
|
|
|
_wb_
|
2024-07-30 10:13:55
|
I like the way this looks in Thorium
|
|
2024-07-30 10:14:43
|
The Adobe Lightroom rendering is different, still OK but I guess it behaves differently for out-of-range values
|
|
|
jonnyawsom3
|
2024-07-30 11:54:54
|
Almost looks like a signature in the bottom right
|
|
|
_wb_
|
2024-07-30 12:08:24
|
https://github.com/libjxl/libjxl/pull/3728
|
|
|
Almost looks like a signature in the bottom right
|
|
2024-07-30 12:10:36
|
it's the short version of my signature, my initials JS
|
|
|
Tirr
|
|
**Tirr**
_“Sun within the Level 5 limits”_
2024
image/jxl
61 bytes
https://jxl-art.lucaversari.it/?zcode=i4h04gpyDlEw4HLKLElJLSjJUDA04ArPTAEyTA2NuDxSM9MzSsBMruCCnMy8VC4jBQNKIJehkQWFJlgYUOoEM0pNAAYIkDY1NFAw4nLNS4EGDVdmmkKygh1QXkEByjQEMnUVglNLFIxMDeBsXUsDLgjL0sAAAA%3D%3D
|
|
2024-07-30 12:11:24
|
time to remake this
|
|
|
jonnyawsom3
|
|
_wb_
it's the short version of my signature, my initials JS
|
|
2024-07-30 12:12:01
|
Ahh, on my display it blended into the background somewhat, I see it now
|
|
|
_wb_
|
2024-07-30 12:13:33
|
I could have made it some bright neon color for some extra HDR effect, but I didn't want it to distract from the actual 'painting' 🙂
|
|
|
|
embed
|
2024-08-04 03:06:06
|
"Unexpected node type: This\n"
|
|
|
TPS
|
2024-08-04 03:11:04
|
Is there a corresponding `jxl_to_tree`?
|
|
|
CrushedAsian255
|
|
TPS
Is there a corresponding `jxl_to_tree`?
|
|
2024-08-04 03:53:08
|
i've been wanting something similar, apparently it existed in an old version of benchmark_xl?
|
|
|
jonnyawsom3
|
2024-08-04 11:56:39
|
There was some info here about reverse engineering JXL files
https://github.com/google/google-ctf/tree/main/2023/quals/rev-jxl/solution
|
|
|
CrushedAsian255
|
|
There was some info here about reverse engineering JXL files
https://github.com/google/google-ctf/tree/main/2023/quals/rev-jxl/solution
|
|
2024-08-04 12:10:24
|
looks like coold advertising for the format
|
|
|
TPS
|
|
There was some info here about reverse engineering JXL files
https://github.com/google/google-ctf/tree/main/2023/quals/rev-jxl/solution
|
|
2024-08-04 04:38:38
|
That's interesting. I'll have to read more into that.
|
|
|
TPS
Is there a corresponding `jxl_to_tree`?
|
|
2024-08-04 04:41:33
|
Alternatively, since [AllRGB.com](https://AllRGB.com) has been mentioned before, has anyone looked into recreating any of the high-compressed images there using `tree_to_jxl`?
|
|
|
Tirr
|
2024-08-15 03:36:46
|
jxl-oxide fuzzer playing around with jxl art
|
|
2024-08-15 03:37:18
|
(decoded by libjxl, jxl-oxide seems to have a bug with upsampling+spline)
|
|
|
Traneptora
|
2024-08-16 12:39:10
|
thanks for helping me test jxlatte bugs
|
|
|
DrDesten
|
|
TPS
Alternatively, since [AllRGB.com](https://AllRGB.com) has been mentioned before, has anyone looked into recreating any of the high-compressed images there using `tree_to_jxl`?
|
|
2024-08-17 01:44:45
|
The webapp seems to max out at 2048x2048 resolution, does anyone know a workaround?
I need 4 times as many pixels to make it to 16777216
|
|
|
_wb_
|
2024-08-17 03:45:17
|
Best to use jxl_from_tree locally for larger images. I dunno why the web version runs out of memory, might be you just cannot allocate very much from js
|
|
|
DrDesten
|
2024-08-17 04:44:45
|
Where can I find documentation on jxl_from_tree?
|
|
|
_wb_
|
2024-08-18 05:40:55
|
The web app is based on it, so you just put your tree in a text file
|
|
|
CrushedAsian255
|
|
_wb_
I like the way this looks in Thorium
|
|
2024-08-18 05:45:27
|
macOS is still having issues rendering it
|
|
2024-08-18 05:45:32
|
|
|
|
gb82
|
2024-08-23 03:03:17
|
preview fails with it for me
|
|
|
CrushedAsian255
|
|
gb82
preview fails with it for me
|
|
2024-08-23 03:08:05
|
same
|
|
|
|
JXL Art Bot
|
2024-08-28 07:29:56
|
**\_wb\_**
_“Barfing Chips”_
2024
image/jxl
45 bytes
https://jxl-art.lucaversari.it/?zcode=C3IOUTBS4HLKLElJLSjJUDDmCi0oTswtyElVMOLiykxTCNf20%2FULV7BTMOBSUNBVcCxLB4oo6JqCee5FiSmZqXklCmZcAA%3D%3D
|
|
2024-08-29 12:02:00
|
**CrushedAsian255**
_“Stage Spotlight”_
2024
image/jxl
38 bytes
https://jxl-art.surma.technology/?zcode=c8osSUktKMlQsODiykxTqFSwU7AwMOBSUIBzDIEcBQVdBT8FXSMwEyiTDJSBiINkglNLFIzAmhB8Q5ghfiClUEldhXAgNoUZ6KqgrWDEBQA%3D
|
|
|
CrushedAsian255
|
2024-08-29 12:02:44
|
first time really attempting JXL art
|
|
|
Meow
|
|
**\_wb\_**
_“Barfing Chips”_
2024
image/jxl
45 bytes
https://jxl-art.lucaversari.it/?zcode=C3IOUTBS4HLKLElJLSjJUDDmCi0oTswtyElVMOLiykxTCNf20%2FULV7BTMOBSUNBVcCxLB4oo6JqCee5FiSmZqXklCmZcAA%3D%3D
|
|
2024-08-30 11:50:32
|
Expanded version of 🤮
|
|
|
Fox Wizard
|
2024-08-30 11:56:19
|
Thanks, can't unsee that anymore now <:KekDog:884736660376535040>
|
|
|
_wb_
|
2024-08-30 01:05:07
|
If you zoom in you can see it's something like RAM chips etc that is being barfed
|
|
|
Meow
|
2024-08-30 01:48:09
|
Techno-vomiting
|
|
|
|
JXL Art Bot
|
2024-09-01 12:36:52
|
**\_wb\_**
_“Irregular diagonal lines”_
2024
image/jxl
31 bytes
https://jxl-art.lucaversari.it/?zcode=C3IOUTDgcsosSUktKMlQMOZyK0rMTQ3IL1YwUNA1NzDg4uLKTFMI1%2FbT9QtXsFMw51JQ0FXwc1XQNQaz3IsSUzJT80oUTLgA
|
|
|
CrushedAsian255
|
2024-09-01 12:39:31
|
Kinda looks like rain
|
|
|
Meow
|
2024-09-01 02:24:54
|
Hair via a microscope
|
|
|
CrushedAsian255
|
2024-09-01 03:12:08
|
Vinyl record grooves?
|
|
|
NuCrow
|
2024-09-01 04:32:21
|
How does the "Select" predictor work?
|
|
|
|
JXL Art Bot
|
2024-09-01 05:31:29
|
**Anonymous**
_“Completely Bonkers”_
2024
image/jxl
70 bytes
https://jxl-art.surma.technology/?zcode=VY%2B9CgIxEIT7fYrpZSHZ835sLATRKggWeQCNeJ1IOPTtTXJZPbuZyXw7ZDfGa3jEOwai8YYXtrCEpPzhmPXGmI7AcOC%2FXBpb4j36El9SaAhZnp5hSk6yLQQ7X1%2BREA9uvlI7LgNWK%2Bkq950anyd%2B07KuTN1pF4cXWkjpPJfq7%2FlrumaNIcVkqGWs5phxDhHSth8%3D
|
|
|
_wb_
|
|
NuCrow
How does the "Select" predictor work?
|
|
2024-09-01 06:38:47
|
It's defined like this:
`abs(N − NW) < abs(W − NW) ? W : N`
|
|
2024-09-01 06:42:58
|
It's from lossless webp
|
|
|
|
JXL Art Bot
|
2024-09-01 08:17:47
|
**\_wb\_**
_“Yet another phone wallpaper”_
2024
image/jxl
51 bytes
https://jxl-art.lucaversari.it/?zcode=Lcq7CsJAEIXhfp7i9DKwq5GkEjSFVkG8sHVwx2QgyhKHPL8jWB2%2Bw39pb4h0UMtSbERNSbPvug50Eh1GQ9UEupdP%2FyqToCLSJ9Kq4y5hB24I8OM8y%2BIMLoCxXwZPwPHvq0zyMPCWfjrOfVZ5GzaRvg%3D%3D
|
|
|
NuCrow
|
|
_wb_
It's defined like this:
`abs(N − NW) < abs(W − NW) ? W : N`
|
|
2024-09-01 11:10:25
|
Thank you!
|
|
|
|
JXL Art Bot
|
2024-09-06 05:14:12
|
**CrushedAsian255**
_“RayBeams”_
2024
image/jxl
43 bytes
https://jxl-art.lucaversari.it/?zcode=c8osSUktKMlQsOAKz0wB0qaGRlweqZnpGSVgZpBzCFCKKzNNwU%2FBTsHQxIRLQUFXwc9VQdfQAMgEioeDxC2NgBwwN6AotQwkYmQBFgGpdixLd8zJgeqAKksGqoFxQWqCU3NSk0sUdE2RxMIVDLmwKNdVcC9KTMlMzQO6EGFgJZqBcDXIgn4K2oYA
|
|
2024-09-06 05:19:47
|
**CrushedAsian255**
_“RayBeams 2”_
2024
image/jxl
42 bytes
https://jxl-art.lucaversari.it/?zcode=c8osSUktKMlQsOAKz0wB0qaGRlweqZnpGSVgZpBziIKhGRdXZpqCn4KdgqGJCZeCgq6Cn6uCrjGQBRQOBwlbGgE5YG5AUWoZSMTIAiwCUuxYlu6Yk6Oga2gAFQIqSwaqgXFBasKB0ihcQy4sKnUV3IsSUzJT84COQ5hViWYWXA2yoJ%2BCtiEA
|
|
2024-09-06 04:24:10
|
**dogelition**
_“Flag of Austria”_
2024
image/jxl
41 bytes
https://jxl-art.surma.technology/?zcode=c8osSUktKMlQsOAKz0wB0pYGBlweqZnpGSUKZkAmV2aaQqWCnYKhpSWXggKUYwzmgLnJQK4BmAPnGkK5Cgq6CsGpJQomZmgChjABCNfIAGIAlGdqyoVmMpq5aKaimIkwEQA%3D
|
|
|
lonjil
|
|
|
JXL Art Bot
|
2024-09-06 05:50:43
|
**\_wb\_**
_“Approximate Flag of Austria”_
2024
image/jxl
37 bytes
https://jxl-art.lucaversari.it/?zcode=c8osSUktKMlQMDTgCs9MATIsLS25PFIz0zNKFMzMzLi4XFJzShIDEnNSS0pSubgy0xQqFOzAMroKwaklCrqGYMFKoKCRkSGXggKUY2JiDOQoKEBUmZkjcQwtLLiQJAA%3D
|
|
2024-09-06 06:31:50
|
**spider-mario**
_“Swiss Flag”_
2024
image/jxl
102 bytes
https://jxl-art.surma.technology/?zcode=zZIxEgIhDEV7TpELOBNUXLaxsLK38AAuunQWFHp7dxE0gWCpVvBD5v83CTsfBncNI1h19MN09htUe%2BcvY4hX5c9why1oiwogiS6KKE%2BTfIqX1EkCLODgAixtUVjnjvSubXabzU1H%2FG6sUCWKqWKykF4TkNBVj3WbMXUusggRpoEjAtVIaSwUKDHmNXyXhwBoi1IrG1MDrInWhGvgfdgh%2FTg%2FmQ%2F%2FRP8wH5ZVJBS%2BzO3t8QA%3D
|
|
|
spider-mario
|
|
**\_wb\_**
_“Swiss flag”_
2021
image/jxl
55 bytes
https://jxl-art.surma.technology/?zcode=fU4rEoAgFOycYi%2FgDG%2F8jMlgshs8gKDSDAS9vegIIoKJ%2FbFvW6WFXPUCYoMS5q05Z51U86IvyNSEEQ04AwzcDaTyJI5WNwUy9FLDMmNvLzsMuAh5EScWdeGJ7loof0tf8ZyqwLAfKKHz8OoWrYmXJEemZv4OTU%2BN1fnKg23DAQ%3D%3D
|
|
2024-09-06 06:33:59
|
oops, there is already a previous entry for that
|
|
2024-09-06 06:34:16
|
smaller, too (but a different shade of red)
|
|
|
yoochan
|
2024-09-06 06:35:12
|
you can make a "savoie" flag instead
|
|
|
spider-mario
|
2024-09-06 06:35:21
|
salut, savoie ?
|
|
2024-09-06 06:35:25
|
(sorry)
|
|
|
|
JXL Art Bot
|
2024-09-06 06:35:42
|
**\_wb\_**
_“My phone wallpaper”_
2024
image/jxl
29 bytes
https://jxl-art.lucaversari.it/?zcode=43JJzSlJDEjMSS0pSeUKz0wpyVAwMTDl8kjNTM8oUbA0MOAKLShOzC3ISVUw5OLKTFMI1%2FbT9QtXsFMw4FJQ0FVwLEsHiijoGpmDue5FiSmZqXklQMUA
|
|
|
spider-mario
|
|
spider-mario
smaller, too (but a different shade of red)
|
|
2024-09-06 06:36:56
|
as far as I understand, both shades of red are legal: https://www.fedlex.admin.ch/eli/cc/2015/613/en#annex_2/lvl_u1
|
|
2024-09-06 06:37:34
|
<@794205442175402004>’s is “RGB 255 / 0 / 0” whereas I went for “Pantone 485 C”
|
|
2024-09-06 06:37:45
|
(I googled the sRGB values for that)
|
|
|
dogelition
|
|
**\_wb\_**
_“My phone wallpaper”_
2024
image/jxl
29 bytes
https://jxl-art.lucaversari.it/?zcode=43JJzSlJDEjMSS0pSeUKz0wpyVAwMTDl8kjNTM8oUbA0MOAKLShOzC3ISVUw5OLKTFMI1%2FbT9QtXsFMw4FJQ0FVwLEsHiijoGpmDue5FiSmZqXklQMUA
|
|
2024-09-06 06:41:57
|
playing around with the `Gradient` value (i just tried 1 - 10) produces some very interesting results
|
|
|
yoochan
|
|
spider-mario
salut, savoie ?
|
|
2024-09-06 06:42:24
|
the country of the croziflette ! so you can recycle your swiss flag and make a new one nobody made yet 😄
|
|
|
|
JXL Art Bot
|
2024-09-06 06:57:04
|
**\_wb\_**
_“Unpredictability”_
2024
image/jxl
51 bytes
https://jxl-art.lucaversari.it/?zcode=43JJzSlJDEjMSS0pSeUKz0wpyVAwMjCx4PJIzUzPKIGwuTLTFMK1%2FXT9whXsFAy4FBR0FRzL0oEiCrpGBmDZdKCEkSGcZQRnGYNVuxclpmSm5pUomKByzVC5RqhcCy4A
|
|
2024-09-06 07:24:44
|
**dogelition**
_“Chromatic Stripes”_
2024
image/jxl
22 bytes
https://jxl-art.lucaversari.it/?zcode=c0nNKUkMSMxJLSlJ5QrPTCnJUDA1NOLySM1MzygBM7l0FfwUdI2MuQA%3D
|
|
|
jonnyawsom3
|
2024-09-06 09:43:12
|
Reminds me of this
|
|
|
lonjil
|
2024-09-06 09:53:08
|
the publish button isn't working so I guess I have to do this manually
|
|
2024-09-06 09:53:25
|
**Lonnie**
"*Some fucked up shit idk*"
2024
image/jxl
29 bytes
https://jxl-art.lucaversari.it/?zcode=c0nNKUkMSMxJLSlJ5QrPTCnJUDA1NOLySM1MzygBM7mcMktSUguAEoZcXJlpCuG6fuEKdgq6hlwKCkCuH5AP4yoo6CqEK8BYQGUGXCBGcGpOanIJUBwA
|
|
2024-09-06 10:07:05
|
Alternatively, at a higher bit depth
|
|
2024-09-06 10:07:20
|
without looking at the code, guess what I did
|
|
2024-09-06 10:17:46
|
one small change and
|
|
2024-09-06 10:23:58
|
one more small change and
|
|
|
dogelition
|
|
lonjil
the publish button isn't working so I guess I have to do this manually
|
|
2024-09-07 02:39:06
|
it didn't work for me in firefox (maybe because of enhanced tracking protection? idk), but it worked in chrome
|
|
|
jonnyawsom3
|
|
**dogelition**
_“Chromatic Stripes”_
2024
image/jxl
22 bytes
https://jxl-art.lucaversari.it/?zcode=c0nNKUkMSMxJLSlJ5QrPTCnJUDA1NOLySM1MzygBM7l0FfwUdI2MuQA%3D
|
|
2024-09-07 03:44:07
|
Made a very fast and rough 'HDR' version, but not owning a HDR screen I don't actually know if it worked xD
|
|
2024-09-07 03:44:31
|
It's color managed at least, so something changed
|
|
2024-09-07 03:44:53
|
https://embed.moe/https://cdn.discordapp.com/attachments/824000991891554375/1281822284318900266/HDR_Test.jxl?ex=66dd1d87&is=66dbcc07&hm=3f6819c7d99e3ce925fe3b8fb5d660ee7c31f5021b99ea8e1da22bfd48ed05b7&
|
|
|
dogelition
|
|
https://embed.moe/https://cdn.discordapp.com/attachments/824000991891554375/1281822284318900266/HDR_Test.jxl?ex=66dd1d87&is=66dbcc07&hm=3f6819c7d99e3ce925fe3b8fb5d660ee7c31f5021b99ea8e1da22bfd48ed05b7&
|
|
2024-09-07 05:43:00
|
works and looks nice
|
|
|
Oleksii Matiash
|
2024-09-07 07:56:25
|
Could anybody point me to the correct direction of manual jxl creation? I just want to create flag, it is very simple, two horizontal color bars
|
|
|
CrushedAsian255
|
2024-09-07 07:56:48
|
Can you give us a rough design?
|
|
|
Oleksii Matiash
|
|
CrushedAsian255
Can you give us a rough design?
|
|
2024-09-07 07:58:40
|
https://upload.wikimedia.org/wikipedia/commons/4/49/Flag_of_Ukraine.svg
|
|
|
CrushedAsian255
|
2024-09-07 08:02:44
|
This?
|
|
|
Oleksii Matiash
|
2024-09-07 08:07:00
|
Exactly. Now I want to know how to do it 😅
|
|
|
CrushedAsian255
|
2024-09-07 08:07:33
|
The if commands are prediction branches
|
|
2024-09-07 08:07:44
|
If the command is true, it takes the top branch
|
|
2024-09-07 08:07:52
|
Otherwise it takes the bottom branch
|
|
|
Oleksii Matiash
|
2024-09-07 08:08:29
|
No, I mean how to convert from code to jxl. And where this screenshot is from
|
|
|
CrushedAsian255
|
2024-09-07 08:08:52
|
I use this one
|
|
2024-09-07 08:08:56
|
https://qon.github.io/jxl-art/?
|
|
|
Oleksii Matiash
|
|
CrushedAsian255
https://qon.github.io/jxl-art/?
|
|
2024-09-07 08:09:14
|
Thank you!
|
|
|
CrushedAsian255
|
2024-09-07 08:09:32
|
There’s a different one (the original) that more people use but I prefer that one
|
|
|
Meow
|
|
**dogelition**
_“Chromatic Stripes”_
2024
image/jxl
22 bytes
https://jxl-art.lucaversari.it/?zcode=c0nNKUkMSMxJLSlJ5QrPTCnJUDA1NOLySM1MzygBM7l0FfwUdI2MuQA%3D
|
|
2024-09-07 08:27:34
|
Is this the smallest ever?
|
|
|
Oleksii Matiash
|
|
CrushedAsian255
This?
|
|
2024-09-07 08:30:46
|
However I still did not get the idea of these if c > 0, if c > 1, but ok for now
|
|
|
CrushedAsian255
|
2024-09-07 08:31:11
|
C is the current channel
|
|
2024-09-07 08:31:46
|
Although I can optimise that a bit
|
|
2024-09-07 08:31:53
|
Am doing some redundant checks
|
|
|
spider-mario
|
2024-09-07 08:32:09
|
yeah, so basically:
```
if c > 0
if c > 1
- Set (blue value)
- Set (green value)
- Set (red value)
```
|
|
2024-09-07 08:32:44
|
(if using RGB)
|
|
|
CrushedAsian255
|
2024-09-07 08:33:30
|
More optimised
|
|