Let’s Play

There is yet another use of the word “play” which is just as widespread and just as fundamental as the equation of play with serious strife, namely, in relation to the erotic.

—— Johan H. Huizinga from Homo Ludens  Study of the Play Element in Culture

Posted in 人生杂谈 | Leave a comment

新春快乐!

Posted in 人生杂谈 | Leave a comment

How to Save the pics from Fetlife / 介绍一个超级简单的Fetlife图片保存法

我想圈里人对Fetlife这个网站应该都不陌生吧,这是一个世界上最大的BDSM社交网站。十几年前注册时非常简单,只需要一个邮箱就可以。听说现在注册好像需要手机验证码了。

Fetlife里有很多让人心动的照片,但是如果你想把它们存到自己的电脑里,却需要费一番功夫,因为Fetlife的页面设置了禁止保存图片,也就是说,在Fetlife的页面里,你没办法像在普通网页那样,通过在图片上点击鼠标右键来保存它。

那就真的没办法保存Fetlife里的图片了吗?

倒也不是,只要是能被你的浏览器显示出来的内容,其实都是有办法保存或下载的。

今天就让我来教你如何保存Fetlfie里的图片。

我们就以Google Chrome为例,其他浏览器的使用方法也都大同小异。

首先,你需要一个Fetlife的账号,这个是大前提。

登录你自己的账号后,浏览你感兴趣的人,发现想保存的照片后,在照片上点击鼠标右键,选择“检查(Inspect)”。

之后,在页面右侧会弹出一个检查窗,里面有一部分代码被标成深蓝色背景,表示这就是与你选择的部分相应的代码。在这部分代码上面不远处,找到<div class=pointer-events-auto>这一项,在其行末有表示折叠的“…”,相应部分已在下图中用红线和红圈标示出来了。

找到这里后,你只需要用鼠标左键单击那三点,展开折叠内容即可。

在展开的内容里,就包含了该图片的链接地址。如上图中红圈所示。

然后,你只需要再用鼠标右键点击该链接,在弹出的菜单种选择“在新标签页打开(Open in new tab)”,这样就可以脱离Fetlife网页,单独打开这张图片了。这时你就可以点击鼠标右键来保存图片了。

偶尔,你可能会遇到用鼠标右键点击图片链接选择“在新标签页打开”时,出现“Not allowed”提示,无法打开图片的情况。这时你只需要再次用鼠标右键点击图片链接,然后选择最顶部的“在资源面板里显示(Reveal in Sources Panal)”这项,即可在Sources窗口里打开这张图片,然后同样用鼠标右键点击图片,在出现的菜单里选择最后一项”Save image as…”就可以了。不过需要注意,这时保存的文件是需要你自己添加扩展名(比如.jpeg)的。

怎么样,这个方法够简单吧。

Posted in 挨踢技术 | Leave a comment

【儿童不宜】NSFW开车,就说您敢不敢上吧

Kindroid不知什么时候在图片生成里添加了一些新功能,我今天才刚刚发现,因为这些功能是在Additional controls里折叠起来的,所以之前一直没注意到。

折叠功能里首当其冲的就是Use NSFW engine,所谓NSFW,是Not Safe For Work的缩写,说白了,就是在公开场合不宜展示的图片,也就是说,Kindroid允许你生成黄图了。这可和nomi的政策截然不同,nomi是严格限制黄图的,稍有露骨一点的描述,它都会报错,不给你生成图片。

那么,Kindroid的黄图到底能黄到何种地步呢?我们不妨来看看吧。

这幅图虽然暴露得较多,但还算克制。

可下面的这幅图,车开得就有点儿猛了。

这明显是BDSM场景啊!而且还露了点!的确是NSFW级别的,这车开得还真是让人怕怕的。

还有没有更大胆的呢?让我们拭目以待吧!

Posted in 挨踢技术, 资源分享 | Leave a comment

神奇的hf space

Joy Caption Beta One – a Hugging Face Space by fancyfeast

这个space可以说是“文生图”的逆向工程,可以为你详细描绘一张图片的内容,生成一段文字描述,你也可以规定是否加入对灯光、相机视角等特定内容的描述。总体来说,它对图片内容的描述是相当准确的。

我进行了一个实验,先把一幅图喂给它去生成一段描述,然后再用这段描述去别的文生图AI应用中生成图片。对比下列图片可以看出,图片的整体感觉和氛围是很相似的。

这张是原图。

它生成的描述大致如下:

Photograph of Mistress Yuki sitting on a white chair in a room with wooden flooring and large windows showing a grassy backyard with a wooden fence. She has long black hair, wears sunglasses, a white button-up shirt with the top button undone, and tight blue denim shorts. She is also wearing black leather thigh-high boots with high heels and black leather gloves. She holds a black leather riding crop in her right hand. The curtains are beige with a geometric pattern. The watermark “©GardenofMistressYuki” is in the bottom right corner. The woman exudes a confident, dominatrix-like aura.

当然,这段描述是我用kindroid来生成下面这幅图时使用的,我做了一些修改,比如水印的文字等。图中之所以改为了无袖衬衫和短裤,主要是因为我在人物的基本设定里设置了纹身。

由于这段描述并不十分具体,因此能生成这种效果的图片出来,我觉得还是很令人吃惊的。

它给这张图的描述如下(同样也做了一些细节方面的修改,比如把studio改为dungoen等):

she standing in a dungoen against a textured, purple-pink background. She has long, voluminous black hair. Her skin tone is light brown, and she has a confident, slightly stern expression. She is wearing a black, sleeveless, shiny leather outfit that is adorned with silver studs, creating a punk rock style. The outfit includes a high-neck top with a deep V-cut, exposing a modest amount of cleavage, and high-waisted shorts. She is also wearing black fishnet stockings and thigh high black shiny leather boots with high heels and silver studded accents. Her long black gloves reach above her elbows.

She is standing with her right leg raised and resting on a black, cube-shaped stool that is also covered in silver studs. The stool is positioned in front of her, slightly to the left. The background is a mottled purple-pink, adding a vibrant contrast to her black and silver ensemble. The lighting is even, highlighting the textures and shine of her outfit. The overall style of the photograph is bold and dramatic, emphasizing her powerful, dominatrix look.

不过,由于这段描述太长了,超过了kindroid文生图的字数上限,所以只好截取第一段作为文生图用的描述。生出来的图如下:

由于缺少了第二段中对人物姿态的描写,所以生成的图和原图的差异还是很明显的,不过整体氛围还是不错的。

Posted in 挨踢技术 | Leave a comment

无限可能的hugging face space

最近刚刚知道一个好玩的东西,就是hugging face的space,可以免费申请使用2vCPU+16GB内存+50GB存储的空间,用来部署你的项目或docker。去主页上看了一下,有不少好玩的应用,比如这个3D相机应用https://huggingface.co/spaces/multimodalart/qwen-image-multiple-angles-3d-camera,允许你调整视角,可以把原来的正面照片改成侧面或背面,也可以改成仰视或俯视。

↑这是原图。

↑这是俯视特写图。

↑这是仰视图。

↑这是侧视图。

图片还是能看出明显的AI痕迹,不算完美,但可玩度还是很高的。

再比如这个项目:https://huggingface.co/spaces/briaai/BRIA-RMBG-2.0可以抠图,比Windows里的图画程序自带的抠图功能强大多了。

↑这是原图。

↑这是抠出来的图。

hf space的服务器都托管在美国Amazon的机房里,速度很快,所以生成这些图片用时都不过几秒到十几秒而已。

期待今后会有更多更好玩的应用出现在hf space上面。

Posted in 挨踢技术 | Leave a comment

解决问题靠自己

昨天遇到了新问题,就是如何在已经安装并运行了nginx网站的服务器里导入3X-UI面板的问题。问了chatGPT,结果绕来绕去不但没解决,还把chatGPT自己绕进去了。于是只好自己找原因,想办法了。

首先,在已运行 Nginx 并配置好证书的站点安装 3X-UI面板,从理论上说,应该可以让 3X-UI面板直接调用网站的证书,我之前的思路一直是这个,可是新版的 3X-UI面板(v2.8.7)菜单里,根本就没有自己设置证书路径的选项。没办法,只能通过sqlite3 直接写进x-ui.db的数据库里。可写完之后,访问面板根目录依然显示ERR_CONNECTION_CLOSED,看来是nginx的设置有问题。

反复看了nginx的配置文件,没有发现问题出在哪儿。于是只好先洗洗睡了。

今天突然想到了一个变通的方法,既然nginx可以反代给apache,为什么不能也同样反代给3X-UI面板呢?这样统一用nginx监听443端口,网站流量反代给apache,访问面板根目录的流量反代给面板端口,这样面板本身就不用申请SSL了,而又能用SSL安全传输了吗?

想到这里,开始动手写nginx配置文件,先在server块里添加一个location,并且增加^~以调高优先级。

location ^~ /myBasePath/ {
proxy_pass http://127.0.0.1:XXXXX;
……
}

加完之后去访问面板,结果迅速返回404。看了是面板这边根路径没设置造成的,只好sqlite3 x-ui.db进数据库去看一下webBasePath的设定,用

select value from settings where key = ‘webBasePath’;

调取一看,果然是空的,于是update一下,结果还是返回空,看来v2.8.7的设置里没有这一项,只好自己添加了。

insert or replace into settings (key, value) values ('webBasePath', '/myBasePath/');

再select调取,终于看到根路径了。

返回网页输入https://我的域名/myBasePath/后,3X-UI面板的登录界面终于现身了!

Posted in 挨踢技术 | Leave a comment

新兵遇到新问题

网上有不少3x-ui的教程,都只是讲怎么在刚申请的新的VPS里安装、使用3x-ui面板,而很少看到如何在一个已经建好的网站、已经申请好证书的情况下导入3x-ui面板。我就遇到了这个问题。网站早就建了,而3x-ui面板是最近才装的,安装的时候让申请证书,结果失败了,因为80端口已经被nginx占了,想着应该可以用之前申请的证书,但却不太清楚如何设置,于是去问了chatGPT,结果就是灾难的开始,查这查那,绕来绕去,最终妥妥地把chatGPT逼得满嘴胡言乱语,问题还是没有解决。看来遇事不决问AI,还是有点于时尚早啊。

Posted in 挨踢技术 | Leave a comment

找回来了,终于找回来了!

前两天在github上发现了一个好玩意儿,就是S-UI面板https://github.com/alireza0/s-ui

这玩意儿贼便利!可以说是一键导入多种xray配置,省去你自己写json的麻烦。于是乎赶紧安排上,哦不!是安装上。

装好之后先配置个reality试试吧。哦不!怎么提示443端口被占用呢?

追查了一下元凶,原来是被我这个站点的nginx占用了。

这个好办啊,把nginx停掉就完事儿了。哦不!我这站点还得留着呀!

那咋办好呢?于是去问AI的意见。kimi说可以利用stream层的sni导流,复用443端口。

哇!这个姿势优雅,我来学着摆一个试试!

于是动手安装stream,添加sni配置,这点工作小菜一碟呀,很快就弄完了。

弄完之后发现,哦不!我的网站打不开了!!!

这是咋搞的?就添加了个sni,咋就把网站弄没了呢?!

于是乎开始了和多个AI长达两天的纠错之旅。

AI们也是使出浑身解数,一个问题一个问题的排查,结果愣是查不出原因!

AI分析得是头头是道,可网站就是找不回来。

车轱辘话翻来覆去地说了无数遍,就是不能说到点子上。

最后我灵机一动,把建站的来龙去脉跟元宝讲了一通,元宝终于明白了我网站的基本架构:

原来是用nginx作为前端,接受各种请求,如果是网站的请求就反向代理给后端的apache,apache再连接Wordpress打开网页。

了解到这一结构后,问题也就明确了,因为用nginx的stream块做sni分流,但转发的是加密的https流量,而作为后端的apache监听的是8080端口,是没法处理加密流量的。

找到了问题的症结,修起来就容易了。元宝给了我两个建议,一个是还原经典架构,不要用 SNI 分流,这个我不能接受啊!那就第二个吧,什么?让apache配置SSL,处理HTTPS请求,这也忒麻烦了吧。

咦?竟然还有第三条道路!?作为折中方案,元宝建议可以在 Nginx 的 stream 模块中做 SNI 分流,但把流量转发到另一个 Nginx(HTTP 层),这招儿妙哈!

说干就干!先把nginx设置的server块里转发apache的端口改为8081(因为如果不改,端口会冲突),然后去apache的设置文件ports.conf里也把监听端口改为8081,再把apache的VirtualHost 的端口也改为8081。配置好后reload一下apache的服务。

哈哈!

激动人心的时刻来了!我胡汉三又回来啦!

Posted in 人生杂谈 | Leave a comment

!!!Happy New Year!!!

Posted in 人生杂谈 | Leave a comment

Merry Christmas

Posted in 人生杂谈 | Leave a comment