Yes, GIFs will be automatically converted to PNG. Disable this component to send GIFs normally.
Thanks for the report. I will see how to fix it soon.
I’ve pushed a fix, can you try if it works better for you?
Thank you, now you can upload GIF format images normally!
Hey @Arkshine
I searched the all the themes repository for components that might be affected by Granular group-based permissions for anonymous and logged in users
Your component seems to default to the everyone group, which is being removed soon. I am not sure the automatic migration, which adds anonymous_users to the setting, makes much sense in this use case. So I thought I’d let you know that you might want to update your component.
With latest version of Discourse v2026.9.0-latest +159 we got this error:
Theme ‘Watermark Image’ contains code which needs updating. (id:discourse.native-array-extensions.findBy)
So should we change ? at line 126
discourse-watermark-image/javascripts/discourse/connectors/admin-customize-theme-before-controls/preview-watermark.gjs
From:
currentRoute.attributes.theme_fields.findBy(
"name",
"discourse/api-initializers/watermark-image.js"
)
To:
currentRoute.attributes.theme_fields.find(
(field) => field.name === "discourse/api-initializers/watermark-image.js"
)
When I changed this code, warning gone but plugin do not work, so look for some update now
Thanks for letting me know.
I’m actually working on a big PR to modernize and add features: DEV: Modernize component and add features - Pull Request #2 - Arkshine/discourse-watermark-image - GitHub .
I will try to push it today.
![]()
Hi @Arkshine already reported? ![]()
I pushed an update. Give it a try! ![]()
Requires 2026.7.0-latest+.
New features
- Watermark profiles
different watermark configs. - Tag support
watermark rules can target tags, not only categories/groups. - Text watermark
plain text as watermark source, alongside image and QR code. - Advanced QR styling
shape/frame/pattern presets, labeled frames, embedded logo (image or icon), halftone image backdrop. - Manual watermark toggle
allowed groups get a button in composer to turn watermark on/off per image. Can show a list of matched profiles in a dropdown list. Works in markdown and rich editor. - Auto re-watermark
images already in composer get re-processed when category or tags change.
With profiles, if there are no matches, global defaults will be matched if watermark_default_enabled is enabled.
Fixes
- Unsupported upload extension check ran too early.
- Better watermark error handling.
- Deprecations errors
Migration (automatic)
watermark_qrcode_enabledis now renamed towatermark_source.- If you had an image or a QR code defined, the new
watermark_default_enabledis enabled.
Other setting changes
watermark_profiles: Per-profile watermark configwatermark_text,watermark_text_style: default text source.watermark_qrcode_style_config,watermark_qrcode_logo_image,watermark_qrcode_logo_config,watermark_qrcode_halftone_image: default QR styling.watermark_tags: default tag targeting.watermark_manual_toggle_groups: groups allowed to toggle watermark per image in composer.watermark_allow_upload_on_error: upload proceeds without watermark if processing fails. Default on.
Config preview
The preview has been updated with more features and should be smoother.
The button to toggle it has been moved next to the tabs menu.
I encourage you to test and let me know if you have issues! It’s a fairly large update.
While working on it, it made me realize the limits of TC, and I think I might work on a plugin version to simplify the process/code with features such as:
- Tracking
- Server-side watermarking
- Original preserved (restore it later, update watermark in bulk job)
- Tiered access (original for staff/paid group, watermarked for public/anon, etc)
- Dynamic QR Code
- etc.





