loading . . . A ComicPost comic post in mobile view
**ComicPost** is a new webcomic plugin for WordPress and ClassicPress. So far as I can tell it is probably the first comic management plugin focused on trying to prevent AI bots from scraping your artwork for training material with **built-in anti-AI tools**. But they are optional, how little or how much you choose to lock-down your comics is up to you. It is a relatively lightweight plugin that should work with pretty much any theme and play nice with other plugins. If you have already been using the ComicPress theme or Comic Easel plugin itâs not a drop-in replacement but switching should be relatively painless.
The idea here is that you donât need a âkitchen sinkâ webcomics plugin that tries to do everything. If you need features like monetization or translation or a membership site, use additional plugins specifically designed for those tasks. ComicPost is for posting and protecting comics. Thatâs pretty much it.
github icon Download ComicPost from GitHub
_**NOTE:** AI-generated images were used for demonstrative purposes. None of the comics shown actually exist. To figure out how to defeat AI generators I needed to learn how they scrape, train, and work. In the process I produced a ton of AI slop and thought it would be ironic to use those images to promote my anti-AI plug-in._
# ComicPost Features:
* **Comic Management**
* Custom âcomicâ post-type
* Custom âchaptersâ hierarchical taxonomy
* Schedule comic posts
* Host multiple series/title on one site
* Can replace ComicPress/Comic Easel
* Integration with Ryuzine Press
* Integration with ZappBar
* **Presentation Settings**
* Comic Navigation with multiple styles
* Comic Archives, including vertical format mode
* Widget Spaces
* **Watermarking**
* Automatically watermark comics on upload
* Generated or Custom watermark image
* Tiled or Centered watermarks
* Optionally retain/display âcleanâ images
* **Content Restriction**
* Disable right-click or drag-to-download of comic images
* Watermark or Disable printing of comic images
* Encode comic URLs or other content
* Omit comics from image galleries
* Hide comics posted before a set time-period
* Require Login to view comics
* **Social Media**
* Two, optional, built-in Comic Rating Systems:
* Five-Star Ratings with Comments
* Post Likes
* OpenGraph meta tags for sharing on Facebook or Bluesky platforms
* Mastodon self-verification code
* **Shortcodes**
* Insert Comic
* Archive Drop-down List
* Chapter Archive List
* Social Media Share Buttons
* Data Encoder
* Members-only Content
* User Ratings & Comment Lists
* **Anti-AI Theory**
* How Do You Stop AI Scrapers?
* Using Content Restriction
* Using Watermarks
* Getting Serious Against AI
* What About Human Thieves?
* Plugin FAQ
# Looking for something simpler?
There is also a **ComicPost Lite Plugin** that doesnât include any of the anti-AI or Social Media stuff. Hereâs whatâs in it:
* Custom âcomicâ post-type
* Custom âchaptersâ taxonomy
* Basic Comic Management
* Basic Comic Navigation (you can still restyle it in your theme though)
* Archive Drop-Down List Shortcode
* Chapter Archive List Shortcode
* Insert Latest Comic Shortcode
* Reading Order Comic Archives
Thatâs it! It doesnât even have a settings/options page. Itâs an incredibly lightweight, bare-bones comic management plugin.
github icon Download ComicPost Lite from GitHub
# Comic Management
ComicPost creates a âcomicâ custom post-type and a âchaptersâ custom taxonomy. If you were previously using the ComicPress theme or Comic Easel plugin, and were using the default settings, your site would already have content created with those, and so ComicPost would allow you to continue managing that existing content.
_Disclosure: I was a contributor to both the ComicPress and Comic Easel projects, and ComicPost uses some code from those projects to make switching easier. ComicPost and Comic Easel have different goals and feature sets, only you can decide which one works best for you._
comic post management
ComicPost Chapters Manager
By default Chapters are sorted by name, which is alphabetical order. You can see in the screenshot above sub-chapters are being shown out of order because of this. Under âIssue #1â they are in 1, 3, 2 order because the names start with G, I, and W. For âIssue #2â they are out of order the same way because the name alphabetically sort by O, Th, and Tw.
ComicPostâs âChapter Listâ and âArchive Drop-downâ by default will sort by chapter SLUG rather than name. You should probably get in the habit of manually editing the chapter slugs to ensure sorting by them places your sub-divisions in the correct order (when sorted by slug).
In that screenshot above the original, automatically generated slugs would have been âissue-1,â âglasses-debut,â âim-class-rep,â âwait-they-think-im-smart,â âissue-2,â âchapter-one,â âchapter-two,â and âchapter-three.â They were manually edited to the slugs you see above so, when sorted by slug, they will be shown in the correct order regardless of what the actual name (title) of the chapter sub-division is. Youâll also notice that the âDescriptionâ entries simply show the intended order as well. Most themes donât show category/taxonomy descriptions. The ComicPost Chapter List has an option to display it, but if itâs any longer than whatâs shown it doesnât work very well.
The basic recommended layout for your hierarchy might be like this:
* Title / Character
* Volume / Year
* Story Arc / Issue
* Episode / Chapter / Part
Ultimately itâs up to you how you organize the comics on your website, and youâre not stuck with it either. Letâs say you originally just set up _Title > Issue > Part_ and later on you realize you want each year of issues to be in a âVolumeâ you can create your volume container later, set itâs âparent chapterâ to the title, and then edit all the issues you want in it by changing their âparent chapterâ to the volume, which will in turn automatically move all the parts in the issue with it. Because itâs all hierarchical.
_**Note:** Try not to be too confused that the custom taxonomy is called âchaptersâ but you may have sub-divisions that are your actual chapters. The taxonomy has to be called something other than âcategoriesâ and if you only draw one comic you may only be listing actual chapters under this taxonomy._
# Presentation Settings
## Comic Navigation
There are four different global navigation modes to choose from that determine how the âPreviousâ and âNextâ links/buttons work in the comic navigation controls:
**Within Chapter:** goes to the âPrevious/Nextâ comic only within the current chapter, and âOldest/Newestâ are limited to the current title (single chapter navigation).
**Traverse Chapters:** will go to the âPrevious/Nextâ comic in the current chapter until it reaches either the start or end of that chapter, then it will jump into the next comic (by date relative to the current comic) in an adjacent chapter within the same title hierarchy. âOldest/Newestâ are limited to the current title. (This is probably the navigation you want).
**Cross Titles:** will go to the âPrevious/Nextâ comic in the current chapter until it reaches either the start or end of that chapter, then it will jump to the next comic (by date relative to the current comic) in an adjacent chapter even if it is in a different title hierarchy. âOldest/Newestâ are the first and most recent comics posted from any title.
**Ignore Chapters:** will got to the âPrevious/Nextâ comic relative to the date of the current comic, ignoring the chapters and titles (pure date navigation). âOldest/Newestâ are the first and last comics posted from any title.
_IMPORTANT! The Comic Navigation system works by post date and time. If you have two posts scheduled/published within the same minute the navigation will go to the wrong comic or skip over it in chapter-only mode. As long as you donât have two comics with exactly the same date and time this isnât a problem, but I did run into this in testing when Iâd scheduled two posts to go live at the exact same time. Just make sure you donât do that._
You can choose whether or not the Comic Navigation controls appear above or below the comic image. There are also several different styles available (these are the same as the ones used by ComicPress/Comic Easel). The default appearance just uses text links. If you are going for a minimalist look or are custom styling the links/buttons select this appearance:
Comic Navigation Links
Box Style Navigation
Comical Style Navigation
NPC Style Navigation
Sci-Fi Style Navigation
Silver Style Navigation
_Note: if you donât want some of the buttons they should be hidden using âdisplay: none;â in your themeâs stylesheet._
## Comic Archives
ComicPost automatically adjusts Comic Archives so they are in reading order oldest to newest (WordPress archives are normally newest to oldest). There is also an option to override the number of posts shown in an archive. Normally it would use whatever was under _Settings > Reading_ in the main admin menu. But you can set this to some other number for a better experience for your readers catching up in the archives. For example, if your âissueâ is normally 24 pages you could set âArchive Post Countâ to that and your readers would get an entire issue to read in a single comic archive page.
Some themes do not show Featured Images as links to the post, so ComicPost has an option called âArchive Thumbnail Linksâ that tries to override the theme and turn the comic image (which is a Featured Image) into a link to the comic post.
There are also three different views for Comic Archives:
**Theme/None:** uses whatever appearance is set up in the theme (default setting)
**Vertical View:** only the comic images are displayed (not post titles, excerpts, etc.) in one vertical column with no spacing above or below the images.
**Multiple Views:** adds buttons to the top of comic archive pages allowing the reader to switch between four different views: single, 2-up (spreads), 3-up, and 4-up.
Multi-View Buttons for Comic Archive (appearance for buttons from theme)
âVertical Viewâ and âMultiple Viewsâ will also try to remove all spacing above and below the comic images. If you are posting comics in âVertical Formatâ you probably want this, as normally comics in that format are one very, very tall image that is sliced into smaller images with no space between them. Though youâll have to post each section as itâs own comic post, and there is no standard height, so you can slice them where ever makes sense (like between panels) so they work as individual âpagesâ too.
The video below shows the Comic Archives in action, and you can see how there is no spacing between the pages, and how it presents this entire episode in one installment similar to the âvertical formatâ popularized by the WebToon site:
https://www.kmhcreative.com/labs/wp-content/uploads/2024/12/comicpost_vertical_format.mp4
There is no built-in way, however, for your readers to _comment_ on a comic archive. In WordPress comments are attached to the ID for a post or page and archives are dynamic searches with no ID to attach to. So your readers would need to click on an individual comic image to go that comic post and comment there.
_Note that Comic Archives do require that your theme actually displays Featured Images on archive pages. It also tends to work better with themes from before WordPress introduced blocks._
The front-end screenshots here show ComicPost being used inside my âSevenToonâ webcomic theme.
## Widget Spaces
The primary purpose of the widget spaces around the comic, at least from what Iâve observed, is the placement of advertisements to generate revenue for the website. Iâve seen a lot of webcomics that used to use âProject Wonderfulâ ads and now use its successor âComicAd Network.â If youâve been using ComicPress or Comic Easel for years you may have been using the widget spaces around your comic posts for exactly that. Which is why I retained them in ComicPost, but **they are not enabled by default**. You have to actually tick a box in the ComicPost Settings to enable them. I think they only show up in the ComicPress theme even if you enable them in Comic Easel, and they display as âtableâ elements and are not responsive. ComicPost can display them in any theme and they are responsive thanks to using modern âflex boxâ styling. Though Iâd really recommend only using the âAboveâ and âBelowâ comic spaces, the âLeftâ and âRightâ ones will reduce the size of your comic art which is, presumably, the reason people are visiting your site. Youâd be better off putting tower ads in a post/page sidebar than alongside your comics. But I kept the basic layout from ComicPress for those that want to keep it.
ComicPost widget spaces and other features.
# Watermarking
ComicPost features a built-in âWatermarkingâ function, that can automatically overlay a custom graphic or generated text to your comic image on uploading them to a comic post. The watermark can either be centered or tiled. The tiles are square and can be between 50 x 50 pixels and 500 x 500 pixels. If you select âCustomâ for _Watermark Image Source_ you need to upload the image you wish to overlay as a watermark. Otherwise the âGeneratedâ settings will be used.
Watermark Options
## Custom Watermark Image
Whatever image you upload it is going to be reformatted by the watermark creation script. It is recommended your image be a PNG file with a transparent background. It can be in color but black and white images work better for watermarks. If you have a distinctive icon or logo that would be a good choice for watermarking that conveys ownership and provenance of the images watermarked with it.
## Generated Watermark
Generated Watermark Settings
Enter the pixel size for your generated tile (100-500 are allowed, 300 x 300 is the default). Next enter the text you want to appear as the watermark. In the example above itâs just the name of the plugin. You will probably want to enter something like â© Your Nameâ or your âdomain.comâ that identifies the ownership or source of the image. Then decide whether you want the text to be horizontal or diagonal (the latter works better for longer text). Lastly, decide which font you want the text to be rendered in:
Watermark Font Options
These six fonts were chosen because they give you a good variety, including a wide and a condensed font, and they are bold enough to render well as watermark tiles. They were also all either public domain or under open font licenses.
## Watermark Opacity
Opacity Slider
You probably donât want the watermark to obscure anything important in your artwork like dialogue in word balloons so Iâd recommend against setting the overlay opacity to high. But you also donât want to set it so low a simple contrast adjustment removes it from your image. The default 50% opacity is just a starting point. You should play around with this to get it how you like it, especially if you are using a custom watermark image. Try uploading comic art from a comic post, see how it looks, go back to the ComicPost Options and tweak this, and do that until you like the results. Changing the opacity does not require regenerating the watermark.
## Creating & Deleting Watermarks
Once youâve set up everything for your watermark (whether generated or custom) you need to SAVE the options before you can actually generate the watermark image tile. After Saving Options youâll come back to the Options first tab, return to the Watermark tab and press that friendly green âCreate Watermark Fileâ button. If all goes well a new folder will be created in your _/wp-content/uploads/_ folder with the watermark image file in it.
Create & Delete Buttons
If the watermark image file doesnât look right to you or you later decide to change watermark images click that big red âDelete Watermark Fileâ button and the watermark PNG file in that folder will be deleted. Change whatever settings need changing, SAVE those settings, then come back and press the green button to make a new watermark image.
Note that if you can always upload a custom image to that _uploads/comic_watermark_ folder to override the generated image. ComicPost will try to use whatever âwatermark.pngâ image is in the folder.
The requirement to save settings and then come back to create/delete the files is purposely clunky to prevent you from accidentally removing or overwriting your watermark image file. It works off of whatever settings are saved in the database not whatever settings you just changed on the options page.
## Watermark Preview
After you save your settings and the watermark image is generated, the âWatermark Previewâ section of the Options shows you want the watermark image tile looks like and approximately what it will look like overlaid on a comic page. There are buttons to change the preview between full Color, Grayscale, and Line Art. Note that this is just an approximation, sometimes the opacity isnât accurately depicted depending on the image, because this isnât actually compositing the two images.
## Clean Copies
What are âCleanâ copies? They are images that are NOT watermarked. Enabling âKeep Clean Copyâ will still generate a watermarked copy of image, but it _also_ generates a copy _without_ the watermark. Why would you want to do this? Well, some people may wish to show watermarked copies on the public facing pages of their site but show unwatermarked âcleanâ copies to their logged-in readers/members as a perk if you also enable âShow Clean Copies.â
**I strongly recommend you DO NOT USE this feature** as _it pretty much defeats the purpose of watermarking_ your images because youâll have to trust that your readers will not download and share the clean images. They also come with a bunch of other caveats:
* No thumbnails or other sizes of the clean copy will be generated
* Clean copies will not appear in your Media Gallery or site database
* There will be no links or attachment page for the clean copy
* Clean copies cannot lazy load
* Clean copies cannot be used in image source sets
For all intents and purposes the clean copies effectively donât exist so far as WordPress is concerned. But that all means it will be nearly impossible for an AI scraper bot or even a search engine crawler to ever FIND these clean copies. Because they are also all given a unique filename suffix you define (or you can just use the auto-generated one). Note, however, if you ever change this suffix any previously created clean copies will also be unknown to ComicPost. You would have to go into your WordPress upload sub-folders and manually find these images by FTP to retrieve, rename, or delete them. It would be far better to keep any clean copies off the internet.
Seriously, consider not using this feature.
# Content Restriction
The Content Restriction settings are intended to prevent people and some bots from easily downloading, scraping, indexing, or printing your comic images from your website. These are not foolproof and they come with tradeoffs in appearance and performance. They should really only be applied to PUBLICLY ACCESSIBLE comic images. Your archives should, ideally, be hidden behind a login or paywall instead. Though these options attempt to preserve the alt-text, consider that these features may adversely affect site accessibility for people with disabilities. Note that, apart from the encoding options, the others rely on stylesheets being loaded and will not prevent bots from reading your image URLs. **The Content Restriction settings ONLY apply to comic posts**. If you attach a comic image to a regular post, page, or some other custom post type none of the following settings will be applied to that image. Okay, so when you go to _ComicPost > Options > Content Restriction_ this is what youâll see:
Content Restriction Settings
**Advanced Meta Tags:** This adds âNoAIâ and âNoImageAIâ advanced meta tags to the <head> section of your website, which are intended to signal to web crawlers, bots, and AI scrapers that you do not wish your content to be used to train AI models. Please note that whether or not a bot honors this or not is voluntary and some AI companies have already said they will not. You should also put a more detailed notice in your Terms of Service page (see the âShorcodesâ section within the plugin for some suggested text).
**Comics Under Glass:** this option moves the comic from the <img> tag to a background image, then adds an invisible layer over that comic that prevents right-clicking or dragging the image out of the browser window to download it.
**Printing Comics:** (requires âComics Under Glassâ be enabled). There are three options available:
* **Allow Printing â** as the name implies it does nothing to prevent people printing comics from your website.
* **Watermark Prints â** overlays a generated SVG image on any print of your comic page. Printing is only possible with âbackground imagesâ enabled in the print dialog, otherwise the space where the comic is will be blank.
* **Disable Printing â** will prevent the comic image from being printed at all.
The âwatermarkâ used for the second option in the drop-down is NOT the same as the watermark image composited to image uploads. It isnât actually a watermark at all, just a generated image overlaid using stylesheets. The print âwatermarkâ has the following options:
* **Method:** Tile or Center the image over the comic
* **Text:** enter a short bit of text you would like the generated image to say. This could be the URL for your website or maybe âBuy My Book!â or whatever other message you want.
* **Opacity:** how prominently you want the watermark to appear over the comic image.
**Encode Comic URLs:** Enabling this option will encode and obfuscate the URLs of your comic image files. Even bots that can crawl, scrape, and index your siteâs HTML source code will not be able to find the image addresses. However there are some bots that can render the page and they may be able to get the decoded URLs. Decoding the URLs requires JavaScript. In Comic Archives this could adversely affect performance. Note that, by design, this also disables âlazy loadingâ of images and âsource sets.â
**Apply to Archives:** if any of the above features are enabled they normally only apply to the comic posts themselves. Ticking this checkbox will also apply the settings to images in Comic Archives and Search Results. Note that this can adversely affect site performance.
**Apply to Public Posts ONLY:** normally the above options are applied to comic images whether readers are logged in or not. If you tick this box they will only be applied to the public-facing comics for anonymous readers or those who are not logged into your website.
more content restriction settings
**Omit Comics From Galleries:** ticking this box will omit comic images attached to comic posts from being included in image galleries. You should only do this if you are not watermarking your comic images. WARNING: this option intercepts and alters the gallery output code, a simpler solution is to just make sure you never add any un-watermarked comic images to a gallery.
**Hide Old Comics:** this option hides comics _older_ than the selected time period from PUBLIC view. Users who are logged into your website will still be able to see and read them. This ONLY hides the comic image, not the entire comic post. Your options for time periods are:
* Show All: does nothing to hide any comics
* 1 Day
* 3 Days
* 1 Week
* 2 Weeks
* 1 Month
* 3 Months
* 6 Months
* 1 Year
* 3 Years
* 5 Years
Below the drop-down is a checkbox allowing you to also completely hide comic posts from users who are not logged in. For comic posts older than the timeframe selected users will see a â404 Not Foundâ error page and old comics will be entirely filtered out of Archives and Search results. This only works if âHide Old Comicsâ is set to something other than âShow All.â It is recommended that you use a custom 404 error page in your theme so public/guest users will know _why_ the comic was not found and offer them a chance to register and sign into your site, and not to just think your site is broken.
**Require Login:** this is the ânuclear optionâ for locking down your comic content. It requires users to be logged in to see ANY of your comic images in comic posts, archives, and search results. Note that the widget spaces around comics, if enabled and populated, will still be shown.
**Secure Comic Content:** requires users to be logged in to see the comic post TEXT content, even on new comic posts.
**Secure Shortcode Comics:** Requires users to be logged in to see comics inserted with the shortcode. Note that you can still override this on a case-by-case basis in the âInsert Comicâ shortcode if you want to show it anyway. Comics inserted with the shortcode also override âHide Old Comicsâ even if the box is checked to completely hide old comic _posts_ it has no effect on shortcode _image_ visibility.
If you need MORE content restriction options or even more granular content restriction options youâll need to find another plugin to handle that. If you are using a membership plugin they typically have such content restriction options.
# Rating Systems
ComicPost features TWO optional built-in comic rating systems. The first one is a âFive-Star Ratingâ system that is tied to reader comments. Youâll be able to see who rated a comic and how they rated it. You can also make rating a comic a required field to submit a comment. The other is just a simple âPost Likes Ratingâ system. The likes are tied to the post. Youâll be able to see how many readers liked a comic, but you wonât know which readers liked it (and nobody else will either). In the ComicPost Options go to the âSocial Mediaâ tab:
Rating Settings
In the first drop-down choose whether you want to use âFive-Star Ratingsâ or âPost Like Ratings.â If you choose âFive-Starâ then you can optionally make it a required field for comments. I donât really recommend making it required because that feels a little desperate, but either way readers will only be asked to rate a comic with their first comment on that comic (so they donât have to keep rating it with every reply if thereâs a conversation thread going). Obviously if youâve disabled commenting on your site you canât use âFive-Star Ratings.â
Rate and Comment Submission Box
After submission/approval of the comment would appear like this below the comic post:
Comment with Rating
_Readers can edit the text of their comment later on but they cannot change the rating._ And under the comic the average star rating for all comments on the comic is shown like this:
Average Rating
The other option, âPost Likes Ratingsâ works whether commenting is enabled or disabled on your site. You can customize the text that appears on the âLikeâ button and the tally next to it. You can also choose between different preset icons, or you can customize your own in your siteâs theme stylesheet. âThumbs-upâ is one of the âPost Like Styleâ icon options. Before anyone has âLikedâ a comic readers are invited to be the first to do so:
Be the first!
After a comic has some likes the text next to the button shows the total count thus far:
Comic with Likes
If the current, logged-in reader hits that âLikeâ button the page reloads. The tally message changes and the button changes function to REMOVE the âLikeâ if the reader wants. Readers can take back their likes at any point in the future.
Like becomes Unlike and now itâs YOU and 206 others. Everyone else would see â207 people liked thisâ because you are number 207.
Hereâs what the âHeartsâ icon option looks like with the text labels customized for âFavoriteâ instead of âLikeâ:
Hearts and Favorites
And the âStarsâ icon option with âStarâ replacing âLikeâ:
Gold Stars!
And a custom option where you set the icon in your theme to whatever you want, with custom label text:
Beer Me!
There is no administrator dashboard or anything to show you these metrics. However, if you use the âTop Comicsâ shortcode somewhere on your site it will show you the highest rated comics posts on your site based on whichever of the two ratings systems you enabled. If you do not have a rating system enabled it will show the posts by comment count.
If you set up your site with a front-end User Dashboard (or if youâre using a Membership plugin that creates one) there are three shortcodes you can place on that page to show your readers what comics they have rated/liked or commented on. If youâre using the âPost Likesâ system users can see a list of comics theyâve hit the âLikeâ button on. Or if youâre using the âFive-Star Ratingsâ theyâll see which ones they rated and how. There is also one to show comics on which theyâve commented. By default each of these lists only shows their interactions within the last year, but you can adjust the timeframe in the shortcode using the âfromâ parameter.
# Chapter List
Chapter List Shorcode DEFAULT Appearance
If you are creating a âLanding Pageâ for your comic it can be really useful to have links to the various âchaptersâ available for people to read. The default appearance is a flat list with thumbnail images of the first image in a chapter, the chapter title, the date the last comic was posted in that chapter, and how many total comments there are on comics in a given chapter. A more complete appearance might look like this:
Customized List View
That has an âindentedâ layout indicating the chapter hierarchy and includes the number of âLikesâ (Favorites, or whatever you wish to call them) and the âChapter Descriptionâ which isnât something many themes would normally show. In this case they just say âEp.1, Ep.2, Ep.3â which doesnât seem very useful, but if the chapters had more colorful names it would help readers know the intent.
Itâs pretty versatile. You can have everything from a bare-bones text list to a rich list with star ratings and every combination in between. The main thing to know about the _Comic Chapter List Shortcode_ is the difference in how the âincludeâ and âexcludeâ parameters work. The âincludeâ parameter accepts a comma-separated list of chapter ID numbers, slugs, or names to include, while the other accepts a similar list of ones to âexclude.â But âincludeâ is explicit, it will literally ONLY include the ones you list and none of their children in the hierarchy. The âexcludeâ will exclude those defined AND the entire tree of everything under them in the hierarchy.
# Social Sharing Buttons
These days building an audience online means letting people share your content to their social media accounts. To make this easy for you ComicPost includes a built-in shortcode that will add buttons for Facebook, Threads, Bluesky, Mastodon, Tumblr, Reddit, LinkedIn, Pinterest, RSS, and Email. You can pick and choose which of those you want to show and there are several different appearances for the buttons:
Label Buttons
Text Buttons
Large Buttons
Medium Buttons
Small Buttons
# Other Shortcodes
The âShortcodesâ tab under _ComicPost > Options_ has detailed information on how to use all of the pluginâs shortcodes, including a list of all parameters and example usage, so Iâm not going to cover them all in detail here. But there are also:
**Comic Archive Drop-Down List:** this works pretty similar to the Chapter List, just in a drop-down selector format. Actually itâs simpler because it canât show anything but the Chapter titles and hierarchy.
**Data Encoder:** was included because of the option to have ComicPost encode the URLs for your comic images to AI scrapers and search crawlers canât find them, and since that functionality is already present the shortcode allows you to similar encode ANY sort of arbitrary text you donât want to be easily indexed. I should note, however, there are some bots that use the rendered version of a page rather than the source code, and this would not stop them from gleaning that data.
**Not Public:** lets you hide arbitrary content behind a login requirement. Whatever you wrap in this shortcode will be hidden from everyone who is not logged in.
* * *
# How Do You Stop AI Scrapers?
ComicPost has tools that try to stop AI scrapers. But how DO you stop them? Good question! First of all, what is an âAI scraperâ anyway? Well, if you run a WordPress website youâre probably already familiar with âbots.â Youâve probably fought malicious ones trying to spam or probe your site for vulnerabilities, and youâve selectively encouraged or discouraged various âsearch botsâ and âweb crawlersâ in your ârobots.txtâ file to index your site as part of your SEO efforts to get a better search results ranking. Well, an âAI scraperâ is just another new kind of bot. Itâs one sent out by an Artificial Intelligence (AI) company to crawl through your website following links and copy (steal) as much content as it can, without your permission and without compensating you.
This content is then used to âtrainâ the AI using Machine Learning (ML). To be useful as training data the content needs to be accurately tagged regarding what it is. These descriptors are known as âground truthsâ in training material parlance. While there are ML programs that can be pretty good at automating much of this process, there is often a bit of âsmoke and mirrorsâ because we now know some of these AI companies simply employed low-wage human workers in under-developed countries to do the tagging manually. It ultimately wasnât Machine Learning, it also took human labor. Why? Because the training model is only as good as the âground truthsâ about the content on which it was trained and ML isnât always that good at identifying things accurately. So a human needs to check its work and correct it. Youâve probably seen examples of this when you solve a Google Captcha that misidentified motorcycles for bicycles or crosswalks for stairs.
For text-generating AI the written content will become part of a Large Language Model (LLM). Text-generating AI is kind of like predictive text on steroids. It makes a guess as to what should come next based on what, statistically, came before. It tries to summarize information from its database in a conversational style, or ape the style of a specific author or publication. For image-generating AI the training models are made up of pictures. So when you ask it to generate an image in a specific style it combines elements in its database that have tags matching your keywords and, depending on the AI program and the model, it might produce terribly bad ânightmare fuelâ images or it may produce something that looks like a specific artist drew or painted it in their signature style.
Now IF these AI generators were trained on material that the companies owned or licensed the right to use there wouldnât be any controversy. The problem is that they have predominantly been trained on work âscrapedâ from the internet without permission or compensation to the intellectual property rights holders. If something on your website was publicly accessible the AI scrapers probably gobbled it up for training material.
ComicPost includes an option to enable so-called âAdvanced Meta Tagsâ in the <HEAD> section of your website. This adds a ârobotsâ meta tag for âNoAIâ and âNoImageAIâ signals that are _supposed_ to tell bots, crawlers, and scrapers that you are opting out of AI training. I say âsupposed toâ because honoring the Robots Exclusion Protocol is voluntary and now some of these AI companies are saying their bots wonât honor the protocol and will scrape your site whether you like it or not. But these meta tags and your ârobots.txtâ file were never going to block bad actors from your site anyway. Most of the âBig Techâ AI projects, though, at least _for now_ , seem to be acting in a reputable manner, so thereâs no good reason _not_ to signal your site is opting out of their AI training.
## Using Content Restriction
Which brings us to our first, and probably most effective, means of stopping them: **LOCK YOUR CONTENT BEHIND A LOGIN!**
It doesnât have to be a paywall, just a login will probably do. Make people sign into your website to see your stuff. That is, unfortunately, probably the future for most of the internet. Everything is going to be locked behind logins and paywalls. Because anything you leave sitting out in public view will become AI training material. The internet is a bad neighborhood, if you leave anything valuable sitting outside someone is going to steal it.
ComicPost has built-in features allowing you to partially or completely lock down your comic content. You can require a login to see ANY of your comics. If youâve got a site thatâs been online forever and you have a ton of older material you can optionally lock down your archives that are older than a week or a month or years ago, so they are not publicly available. If anyone wants to read your archives theyâd need to sign into your website to do so. I suppose I should mention that if all of that content was or is currently publicly exposed it had probably _already_ been copied for training material by one or more AI scrapers, but new ones are coming online all the time so you could at least prevent _them_ from gobbling up your work too.
You get to decide what is âoldâ content that gets locked behind a login. ComicPostâs content restriction ONLY checks whether or not a user is logged in or not. It is not a membership plugin, it does not take the user âroleâ into account either. If what you want is a membership site, especially if you want to put up a âpaywallâ instead of just a login, there are plenty of membership plugins available that offer user role editing, monetization, and more specific content restriction options. As any membership plugin will first require a user to be logged in before it applies any role or capability filters, ComicPostâs content restrictions shouldnât conflict with any of that.
Ah! But what if youâre trying to build your audience and you donât want the friction of making people log in to see everything? Well, the âInsert Comicâ shortcode lets you place comics with or without security features on a case-by-case basis. There is also an âencode comic URLsâ feature that will prevent bots from finding the images in your siteâs source code. Then there is the automatic âwatermarkingâ feature.
## Using Watermarks
Watermarking is a simple but effective means of âruiningâ your work as training material, and as more and more AI companies are becoming âblack boxesâ regarding where their modelâs training materials were sourced, could even help you prove they took your images without your permission. Consider what happened when Stability AI trained the model for their Stable Diffusion image generator on public-facing Getty Images stock photos. The image generator ended up producing an obvious, though garbled, version of the Getty Image watermark logo as well, proving the provenance of the training materials. Watermarking doesnât stop an AI from being trained on our images, it can just make it more obvious if they were.
ComicPost ha a built-in watermarking function that can automatically and consistently apply a custom watermark to your comic art when you upload a âFeatured Imageâ to a new comic post. This watermark can simply be some unique text tiled or centered over your artwork, or you can design a custom mark to be composited automatically. With your work watermarked its provenance is known and can be proved no matter where your images might end up. You can allow your images to be shared freely on social media because nobody will be able to claim the images as their own.
The automatic watermarking function requires your web server has the PHP âGDâ (Graphics Draw) extension enabled. This usually isnât going to be a problem because itâs pretty standard for webhosts to have this extension enabled if PHP is available. I chose to use GD instead of Imagick because the latter is not available on Windows servers and may not be available on some Linux servers either. WordPress tries to use Imagick if it can, but thereâs a reason GD is the fallback image manipulator. However, there is another server-related issue that may prevent you from using the watermarking function: memory allocation. If your image files are large and not enough memory has been allocated on the server the process can run out of memory and fail. Increasing the memory in your **php.ini** file might solve it, but some webhosts donât let you change that.
So what do you do if you canât automatically watermark your comics? Well, you can always _manually_ watermark a copy of the image _before_ you upload it. Just try to be consistent with the size and placement or it may not be effective against AI training. Generally speaking, you want your watermark to âruinâ any unauthorized use of the image. Meaning it shouldnât be easy for someone to erase it, crop it out, or cover it up.
Note, however, that the watermarking function only works for NEW image uploads and ONLY while editing a comic post type. It will not watermark any _existing_ images, nor will it watermark any new images uploaded to a regular post, page, other custom post type, or the Media Library. If you need to watermark an archive of existing images there are plugins available designed specifically for applying a watermark to Media Library content.
# Getting Serious Against AI
Watermarking and Content Restriction are fast, easy, and free options for protecting your comic artwork. But what if you want to take your fight against AI to the next level? Well, itâs not going to be fast, or easy, and it might not be cheap either.
âGlazeâ is a system designed by researchers from the SAND Lab at the University of Chicago to protect human artists from AI by disrupting its ability to mimic their signature style. It introduces a minimal amount of barely perceptible changes to the image that confuse the AI training algorithm into âseeingâ a completely different artistic style than you see. The changes are more noticeable in areas with flat color, so Glaze is a little more visible in traditional comic art than on, say, a digital painting.
âNightshadeâ is another system designed by the same researchers behind Glaze, but this one is designed to âpoisonâ AI training. If Glaze is your defensive tool, Nightshade is your offense. While a human eye will see the image as barely altered, an AI will âseeâ a dramatically different composition. So dramatically different the AI can be confused into thinking a picture of a cat is a dog or a purse is a cow.
Both of these FREE tools are more robust than a watermark or stenography (hidden image). Someone can crop, scale, adjust, blur, add noise, or even screencap the image and the âpoisonâ remains. Itâs impossible to easily remove it from the image! That being said, there have been other researchers who found (very complex) ways of getting around Glaze and Nightshade, and this is an AI âarms raceâ for artists, so the team behind these tools canât say they are future-proof.
But the biggest issue with both Glaze and Nightshade are that they are extremely RESOURCE INTENSIVE! Nightshade is slightly less so, but also takes much longer to finish. You need a computer with a powerful GPU, and preferably a âneural engineâ chip, to even run these programs. Many, many digital artists, and webcomics artists in particular, now have nearly or fully âmobile deviceâ workflows. Your laptop or iPad isnât going to be able to run Glaze and Nightshade. They can also take a long, long time to process an image (in some cases, depending on settings, on the order of HOURS). Even if you have a tricked-out gaming PC you probably donât want these apps running in the background and killing your systemâs performance for doing anything else. Which means if you want to get serious in your fight against AI you will probably need a _dedicated_ high-end computer _just_ to Glaze and Nightshade copies of your work before you upload any of it to the internet. Most webcomics artists probably canât afford to sink thousands of dollars into a dedicated anti-AI machine.
The developers are aware of this, which is why they also created âWebGlazeâ which is a FREE web service that Glazes uploaded images using the Amazon AWS Cloud, from which you then download the processed image later. It is paid for by research grants to ensure it is free for artists, assuming those grants continue. BUT it has per-day and per-week limits and is invite-only (see HERE: https://glaze.cs.uchicago.edu/webinvite.html ) and the invitations are seriously backlogged as of this writing. There is presently no web version of Nightshade, though there are plans to eventually integrate it with WebGlaze.
A better option is joining the portfolio website âCaraâ [https://cara.app]. They have integrated Glaze into their platform for their members, named âCara Glaze,â which is limited to a generous 30 images per day with a 12-hour daily reset. As it takes a while to apply to the images they send you an email or app notification when a queued imageâs processing is finished.
You can, of course, _also_ watermark your Glazed or âShaded images.
# What About HUMAN Thieves?
Well, again, watermarking your images in a way that is not easily removable or concealable without ruining the whole image means the provenance and ownership of your work will travel with it where ever it goes. If you use social media sharing buttons on your website you are _encouraging_ people to, you know, SHARE your artwork. Theyâre not stealing it, theyâre sharing it with your tacit permission.
But letâs say that, apart from social media sharing, you donât want someone downloading your images from your website? Well, ComicPost has a trick up its sleeve to disable right-click âSave Imageâ or âOpen Image in new tabâ or dragging your comic out of the browser window to download it. This is done _without_ actually disabling right-click functionality (as thatâs bad for accessibility reasons).
Note, however, that these options disable âlazy loadingâ images. But Iâm not too worried about that becuase <img sizes=âautoâ> is just about here to eliminate lazy loading. It already works in 50% of browsers, so when it is more broadly supported Iâll update ComicPost to use it. Because it does the same thing as lazy loading but doesnât require multiple image sources or media queries â the browser figures out what to send on its own. But for now, just be aware that lazy loading wonât work with âComics as Backgroundâ or âEncrypt Comic URLsâ enabled in ComicPost settings.
There are also two options designed to interfere with anyone trying to print out pages from your website. The first one adds a generated watermark over any print-out of the comic image. This is separate from any actual watermark file so it can have a different message. The other option prevents printout of your comic images at all.
Ultimately, though, these just create enough friction and hassle that the casual image grabber probably will give up and not bother. But anyone who is familiar with the Developer Tools can easily work around it because to show your comic it has to be downloaded into the browser somehow. So these tools are by no means foolproof.
* * *
# FAQ
**Q. Why are none of my comics showing on comic posts?**
**A.** The theme you are using probably doesnât show the âFeature Image.â Youâll either need to change themes or create a âchildâ theme that overrides the parent themeâs post layout.
**Q. Why are my comic archives empty?**
**A.** Assuming youâve already posted a bunch of comics, the main reasons your archives might be empty are:
* You are using a theme that does not show Featured Images in the archives
* Your theme does not show custom post type or custom taxonomy archives
The solution to either of those problems is to create a âchildâ theme with both â _archive-comic.php_ â and â _taxonomy-chapters.php_ â templates.
**Q. Why are my image uploads being cropped?**
**A.** Normally WordPress creates three additional versions of every image you upload. These are defined under _Settings > Media_ and there is one for âthumbnailâ size, one for âmediumâ size, and another for âlargeâ size. The unlisted fourth is âfull sizeâ which is the dimensions of the image you uploaded.
But themes and other plugins can add even more sizes! This is why ComicPost has an option to override the theme and display a specific Featured Image size (youâll probably want to set this to âFull Sizeâ but it depends on your theme and whether images are being scaled or cropped or not).
For example, the default âTwenty Fourteenâ theme will create a cropped Featured Image, and thatâs what it also shows you on the frontend and the backend. But ComicPost can override that and show the Full Size image on the frontend instead. Wheras the default âTwenty Seventeenâ theme doesnât crop the large size it scales it proportionally. You may need to create a âchildâ theme to override other image manipulation behaviors you donât want.
**Q. Is there a Premium version of ComicPost?**
**A.** Nope! I donât sell premium versions of my themes or plugins. If you see them anywhere online being sold they arenât from me and youâre being scammed.
**Q. Why isnât ComicPost in the official WordPress Plugin Directory?**
**A.** Because Iâve never submitted my plugins to the WordPress Directory. I do test them to see that they meet the requirements for submission and are free of errors, and I could submit them if I wanted to, but I donât want to. https://www.kmhcreative.com/comicpost/