Greasy Fork is available in English.

Image Host Helper

Directly upload local / rehost remote images or galleries to whatever supported image host by dropping/pasting them to target field

13 0 1

GM extensions! → Tampermonkey, Violentmonkey, GreaseMonkey(?)...

Script is generic thereby the field of action can be extended to virtually any forum, social network, content sharing platform etc. using standard html elements on it's forms by adding custom URL matches in script options. On sites implementing 3rd party applets or custom edit controls it certainly won't work.

Note to compatibility: developed and tested on Tampermonkey - should run without issues on any OS and browser utilizing this manager. Script was working well for a period with Violentmonkey but current VM versions seem to put additional syntax restrictions breaking full functionality. Compatibility with other GM clones is unknown thus not guaranteed.

Supported image hosts:

No interactive UI for choosing where the upload/rehost goes, this works on principle of sequential iteration till first host succeeds. Customization of hosts chain via upload_hosts and rehost_hosts local storage entries (global hostlists). Defaults to all supported platforms. List order is honoured in fallback cascade => to favour/disfavour specific host, move it forwards/backwards within the list, to not use it at all, remove it. Per-site host lists as storage preference in same format as general hostlists ("": "host1, host2, ....") are allowed. Custom hostlist for site found takes precedence over global hostlists.

Any Chevereto-powered site can be chained via chevereto_custom_hosts storage entry. It's value is an array of objects with keys host_name (required), alias (required), types, size_limit, size_limit_anonymous, config_prefix and api_endpoint, api_field_name, api_result_key, json_endpoint, serialized to JSON format. Account credentials are recognized as <alias_in_lowercase>_uid/<alias_in_lowercase>_password and <alias_in_lowercase>_api_key unless overriden by config_prefix. types is an array of MIME subtypes for image/* category; if not set, the precondition test is not performed. Value of alias key should then be manually chained into upload_hosts, rehost_hosts or site custom hostlist.

A definition example for ImgCDN host: The value of chevereto_custom_hosts will be [{\"host_name\":\"\",\"alias\":\"ImgCDN\",\"types\":[\"jpeg\",\"png\",\"gif\",\"bmp\",\"webp\"],\"size_limit_anonymous\":20,\"size_limit\":30}] and storage keys for optional authentication are imgcdn_uid and imgcdn_password. Since the site provides API interface, imgcdn_api_key config entry can be set to site public key "5386e05a3562c7a8f984e73401540836", then API will be used for uploads instead of web browser emulation. As last step insert alias name ImgCDN to upload_hosts, rehost_hosts or site custom hostlist.

Mouse drop keyboard modifiers: Ctrl - don't append at the end but rather try to insert at mouse position (doesn't seem to work correctly on some browsers) Shift - bypass Image Host Helper, do browser's default Alt enables to choose from more insertion formats

Resolving of image share links to image URLs for rehosting works (inputs like, or can be feeded). Galleries rehosting support for Imgur, PostImages, Chevereto-based paltforms, ImageVenue, ImgBox, PixHost, Flickr,, Pinterest, Google Photos,, Discogs, MusicBrainz.... Something missing? Ask to add it.

Thumbnailed format of images is enabled for all multiline text fields (assumed support of phpBB). For choosing thumbnailed form, hold Alt key while dropping/pasting the content. Available for all Chevereto based paltforms, PixHost, ImgBox, Abload, PimpAndHost, PicaBox at the moment, the list will likely expand later. Not available for PTPimg, Catbox and other sites that don't auto-generate thumbnails.

Reduce image size before upload to preferred host, if too big is possible now. Works only for simple input controls (movie poster, artist photo, user avatar, album cover, etc.). Related storage entry: image_size_reduce_threshold => a positive number as max. size in KiB to leave the image intact, in other case attempt is made to reduce the image size (downsize and (re)convert to JPEG90). having this entry zero, undefined or otherwise non-number deactivates the option. This feature doesn't apply to large text inputs (description, screenshots, comparisons will never reduce). Not active by default, have to activate by manually adding the config entry. More refinements: image_reduce_maxheight(1500), image_reduce_jpegquality(90). Utilized service: Img2Go

[EXPERIMENTAL] Config entry optipng = true activates local and remote PNG images optimization before upload to image host. Unlike bulky image reduction which applies only to single line inputs, optipng applies only to multiline inputs. Off by default. Utilized service:

These user credentials can be set (via local storage): ptpimg_api_key (auto-configured on first use if logged in) imgbb_uid, imgbb_password or imgbb_api_key catbox_userhash (auto-configured on first use if logged in) imgbox_uid, imgbox_password imagevenue_uid, imagevenue_password jerking_uid, jerking_password not implemented for laziness radikal_uid, radikal_password vgyme_user_key ( Gifyu: gifyu_uid, gifyu_password Slowpoke Pics: slowpoke_uid, slowpoke_password FunkyIMG: funkyimg_uid, funkyimg_password SM.MS: smms_api_key (generated in user profile) CubeUpload: cubeupload_userid, cubeupload_userhash (auto-configured on first use if logged in) Ra: ra_api_key (auto-generated on first use if logged in, or entered manually)

Experimental support of native API for Chevereto sites: define <imagehost alias>_api_key local storage entry. Supported sites: ImgBB Priority flow: api key > user login > anonymous

Site specific extensions:

  • PTP: artist edit - auto fetch photo from IMDb (if missing or invalid)
  • RED, OPS, NWCD, DIC: artist edit - auto lookup photo on Qobuz/Discogs/iTunes/Deezer/YT Music/ (if missing or invalid)
  • custom site dynamic load points: sections that are added anytime during page lifetime are not managed by default but can be handled individually by providing per-site custom definitions in script data storage in entry site_dynaloads. It's format is JS object with domain names as keys. Every key must be a comma separated list or an array of CSS selectors representing the watch points where dynamic content is attached. An example of instance:

    "site_dynaloads": {
      "": ["form#dynaform"],
      "": ["div.content > div.sidebar"],

    Note: the detection is not recursive so all added parts must be attached immediately to the watchpoints.

(first two features can be optionally disabled by adding auto_lookup_artist_image storage entry (false)

Known issues:

  • Progress meter for locally sourced uploads doesn't work on current browsers running Tampermonkey, which is kind of limitation or bug.
  • Google Drive as a service not auto-added to default chains due to existing shortcommings: their API asks for confirming account every new session, doesn't work if automatic popup blocking is active for current site, and direct image links seem not be shown in phpBB code.
  • Violentmonkey (+GM) problems with names hoisting possibly resolved, report fails if any remaining