Java/17.0.7
has increased to tens of millions per day. Handling this request
flood is untenable, and so I have made the decision to block all requests with generic UAs.
If your VZGE client is not using a custom UA, all requests to VZGE will now fail with a
400 error, returning a short explanatory text. You must ensure you use a reasonable User-Agent
header in all requests to VZGE, preferably including a link to your website and your email
address should you need to be contacted if you are misusing VZGE. An example of such a UA
is MyProgramName/2.0 (+https://my.website/myprogramname.html; <me@my.website>)
.
This mitigation was installed December 9th 2023. CDN fees for the first week of December have exceeded the amount it generally costs to serve VZGE for an entire month. To help mitigate this, I have also been forced to downgrade VZGE from the CDN's normal tier to the "Volume" tier — as a result, the service may now be slower, especially in certain regions.
Any format can be requested explicitly by suffixing the render URL with the proper file extension. These are .jxl, .webp, and .png.
Sizes are rounded to the next multiple of 8 to increase cacheability. You will likely want
to request a slightly oversized render for HiDPI support. (Ideally, you would use a
<picture>
or an img srcset
, to save your users' bandwidth.
Large renders are not much slower for VZGE to generate due to how the backend works.)
?no=<features>
, where <features>
is a comma-separated list of one or more of the following:
?y=<yaw>
. y is yaw,
p is pitch, r is roll. All values are in degrees, and are relative to the default VZGE
angle. For Head, the default angle is -35 yaw, -20 pitch. For Bust and Full, it is 20 yaw,
-20 pitch. For example, you can flip a Bust/Full render to be facing left by passing
?y=-40
. For a Head render, the equivalent is ?y=70
.
Angle has no effect on 2D renders, as they are sized so that the edges of the render touch the edges of the image box. As such, any rotation would result in undesirable clipping. Please let me know if you have a use case for rotated 2D renders.
<subject>
, that can be substituted with any of the
following:
?slim
or ?wide
to pick one. By default, a wide model
will be used.
/face/<size>/<subject>
/face/256/X-Ghost
/front/<size>/<subject>
/front/256/X-Ghost
/frontfull/<size>/<subject>
/frontfull/384/X-Ghost
/head/<size>/<subject>
/head/256/X-Ghost
/bust/<size>/<subject>
/bust/256/X-Ghost
/full/<size>/<subject>
/full/384/X-Ghost
/skin/<subject>
/skin/X-Ghost
/processedskin/<subject>
/processedskin/X-Ghost
No cookies are set. IPs are retained by our CDN, bunny.net, for up to 3 days. These IPs are used for detecting and dealing with abuse. Referrer information is also monitored for abuse; abusive or excessive request volume will likely result in me politely reaching out to you based on user agent or referrer.
I run VZGE for free! Please be respectful of that. If you're bulk-requesting renders, wait at least a second between subsequent requests. Use loading="lazy" or other lazy loading techniques on large webpages. If you're for-profit, please consider sending in a monthly donation for your usage of VZGE. Large users who are not donating and do not respond to attempts at contact will likely be blocked without warning. A donation is not payment for a service and does not guarantee preferential treatment.
The /skin and /processedskin endpoints are very easy to provide; if you can, it is preferable to use one of those and chop up the skin yourself for face renders. Skin requests will likely never be blocked or ratelimited.
VZGE (the Service) is provided "AS IS", without warranty of any kind, express or implied, including but not limited to the warranties of merchantability, fitness for a particular purpose and noninfringement. In no event shall the authors or copyright holders be liable for any claim, damages or other liability, whether in an action of contract, tort or otherwise, arising from, out of or in connection with the Service or the use or other dealings in the Service.
Renders output from this service are provided to you under the CC0 Public Domain Dedication, meaning you may use, redistribute, transform, or anything else as you wish without restriction. This license does not apply to the skin used to create the render — it is your responsibility to ensure you have permission to use a skin.