<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>技术 on 肥鱼港湾</title><link>https://wyr233.com/categories/%E6%8A%80%E6%9C%AF/</link><description>Recent content in 技术 on 肥鱼港湾</description><generator>Hugo -- gohugo.io</generator><language>zh</language><lastBuildDate>Sun, 13 Sep 2026 00:00:00 +0000</lastBuildDate><atom:link href="https://wyr233.com/categories/%E6%8A%80%E6%9C%AF/index.xml" rel="self" type="application/rss+xml"/><item><title>给 AI 看板娘做一套绿幕抠像流水线</title><link>https://wyr233.com/p/greenscreen-pipeline/</link><pubDate>Sun, 13 Sep 2026 00:00:00 +0000</pubDate><guid>https://wyr233.com/p/greenscreen-pipeline/</guid><description>&lt;img src="https://wyr233.com/img/cover_greenscreen.webp" alt="Featured image of post 给 AI 看板娘做一套绿幕抠像流水线" /&gt;&lt;h2 id="问题ai-画出来的人物边缘总有白纱"&gt;问题:AI 画出来的人物,边缘总有白纱&#10;&lt;/h2&gt;&lt;p&gt;用本地 ComfyUI 生成鲸鱼娘立绘时遇到个怪事:输出的 PNG 明明是「透明背景」,但放到深色网页上一看,&lt;strong&gt;人物蒙着一层白纱,发丝间隙还有一块块白色残留&lt;/strong&gt;。&lt;/p&gt;&#10;&lt;p&gt;放大看更明显:头顶的呆毛周围有灰白雾块,细发丝之间嵌着小白点。这不是「白底没抠干净」那么简单——检测了一下通道数据,发现:&lt;/p&gt;&#10;&#10; &lt;blockquote&gt;&#10; &lt;p&gt;人物区域的半透明像素占了 60%,完全实心的只有 6%。&lt;/p&gt;&#10;&#10; &lt;/blockquote&gt;&#10;&lt;p&gt;也就是说,AI 输出的人像整体是「半透明叠加」的,混在深色背景上自然发灰。&lt;/p&gt;&#10;&lt;h2 id="排查是谁动了我的图"&gt;排查:是谁动了我的图&#10;&lt;/h2&gt;&lt;p&gt;翻开源工作流的节点图,链路一路正常,直到最后几个节点:&lt;/p&gt;&#10;&lt;pre tabindex="0"&gt;&lt;code&gt;VAEDecode → RemoveBackground(BiRefNet) → InvertMask → JoinImageWithAlpha → 保存&#10;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;原来工作流末尾挂了个&lt;strong&gt;自动抠图节点&lt;/strong&gt;(BiRefNet 模型)。它很智能,但输出的是「软边 alpha」——人物大面积半透明,边缘还留着白边。之前折腾的「调阈值再抠一遍」都是在给它的残图擦屁股,治标不治本。&lt;/p&gt;&#10;&lt;h2 id="正解绕过自动抠图自己抠绿幕"&gt;正解:绕过自动抠图,自己抠绿幕&#10;&lt;/h2&gt;&lt;p&gt;思路一下清晰了:&lt;/p&gt;&#10;&lt;p&gt;&lt;strong&gt;第一步,让 AI 出绿幕原图。&lt;/strong&gt; 把工作流的输出直接接到保存节点(去掉 RemoveBackground),提示词里加 &lt;code&gt;solid green background, chroma key&lt;/code&gt;,负面词加 &lt;code&gt;green spill, grass, plants&lt;/code&gt;。实测背景色干净得吓人:RGB ≈ (0, 217, 108) 的纯绿。&lt;/p&gt;&#10;&lt;p&gt;&lt;strong&gt;第二步,自己抠绿。&lt;/strong&gt; 绿幕和鲸鱼娘的蓝白金配色零冲突,判定逻辑可以非常简单:&lt;/p&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;绿度 = 绿色通道 − max(红, 蓝),超过阈值就是背景&lt;/li&gt;&#10;&lt;li&gt;边缘做 0.8px 羽化,避免锯齿&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;反预乘去绿边&lt;/strong&gt;:边缘像素 = 前景色 × alpha + 绿底 × (1 − alpha),按这个公式反解出真正的前景色,绿边就没了&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;h2 id="效果"&gt;效果&#10;&lt;/h2&gt;&lt;table&gt;&#10;&#9;&lt;thead&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th&gt;指标&lt;/th&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th&gt;自动抠图(BiRefNet)&lt;/th&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th&gt;绿幕方案&lt;/th&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&lt;/thead&gt;&#10;&#9;&lt;tbody&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;完全实心占比&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;6%&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;30%+&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;半透明占比&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;60%&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;3% 左右&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;呆毛/发丝残留&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;有白块&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;干净&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&lt;/tbody&gt;&#10;&lt;/table&gt;&#10;&lt;p&gt;现在整站(主站 + 两个子站)19 张鲸鱼娘图片,全部走这套绿幕流水线重新产出:批量脚本直接调 ComfyUI 的 HTTP 接口出图,再自动抠绿、自动转 webp 就位,一条命令跑完。&lt;/p&gt;&#10;&lt;h2 id="一点心得"&gt;一点心得&#10;&lt;/h2&gt;&lt;p&gt;碰到「抠图质量不行」的问题,&lt;strong&gt;先回头看工作流的输出链路里有没有别人替你做的处理&lt;/strong&gt;。如果有,绕过它、拿原始素材自己处理,通常比在残图上反复调参快得多。&lt;/p&gt;&#10;&lt;p&gt;(本文提到的脚本都躺在我的工作区里,感兴趣的可以在 GitHub 找我聊。)&lt;/p&gt;&#10;</description></item><item><title>这个网站是怎么搭起来的</title><link>https://wyr233.com/p/how-this-site-was-built/</link><pubDate>Sun, 13 Sep 2026 00:00:00 +0000</pubDate><guid>https://wyr233.com/p/how-this-site-was-built/</guid><description>&lt;img src="https://wyr233.com/img/cover_buildsite.webp" alt="Featured image of post 这个网站是怎么搭起来的" /&gt;&lt;h2 id="选型静态站越简单越省心"&gt;选型:静态站,越简单越省心&#10;&lt;/h2&gt;&lt;p&gt;本站是纯静态站,技术栈:&lt;/p&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;&lt;strong&gt;Hugo&lt;/strong&gt; — 一个用 Go 写的静态网站生成器,几百篇文章构建只要几百毫秒&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;Stack 主题&lt;/strong&gt; — 卡片式布局,结构清晰,改起来不费劲&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;Nginx + HTTPS&lt;/strong&gt; — 部署在自己的一台云服务器上,证书用 Let&amp;rsquo;s Encrypt 自动续期&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;p&gt;不用数据库、不用后端、不用容器编排。文章就是 markdown 文件,构建产物就是一堆 HTML——&lt;strong&gt;十年后还能跑起来&lt;/strong&gt;的那种站。&lt;/p&gt;&#10;&lt;h2 id="视觉从零改出海洋味"&gt;视觉:从零改出「海洋味」&#10;&lt;/h2&gt;&lt;p&gt;主题拿来后做了一轮整体改造:&lt;/p&gt;&#10;&lt;p&gt;&lt;strong&gt;1. 配色&lt;/strong&gt;&#10;把默认色板换成自定义的海洋蓝系:浅色主题用陶瓷白卡片配浅蓝底,暗色主题直接进「深海模式」(深蓝底 + 长春花蓝点缀)。&lt;/p&gt;&#10;&lt;p&gt;&lt;strong&gt;2. 背景&lt;/strong&gt;&#10;全站铺一张海底场景图,内容区做成半透明磨砂玻璃(backdrop-filter),滚动时背景若隐若现。&lt;/p&gt;&#10;&lt;p&gt;&lt;strong&gt;3. 图片&lt;/strong&gt;&#10;站里的鲸鱼娘插画和场景图都是自己生成的:人物走本地 ComfyUI 工作流(绿幕直出 + 抠像),背景走云 API,合成工序用脚本完成。&lt;/p&gt;&#10;&lt;p&gt;&lt;strong&gt;4. 动效&lt;/strong&gt;&#10;首页 hero 有气泡上升、头像浮动,卡片 hover 上浮。全部纯 CSS,不引第三方库。&lt;/p&gt;&#10;&lt;h2 id="部署一条命令的事"&gt;部署:一条命令的事&#10;&lt;/h2&gt;&lt;p&gt;日常更新流程被压缩成一个脚本:&lt;/p&gt;&#10;&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-powershell" data-lang="powershell"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;.\发布.cmd &lt;span style="color:#75715e"&gt;# 双击也行,菜单选站点&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;背后做的三件事:&lt;/p&gt;&#10;&lt;ol&gt;&#10;&lt;li&gt;&lt;code&gt;hugo --minify&lt;/code&gt; 构建静态文件&lt;/li&gt;&#10;&lt;li&gt;&lt;code&gt;scp&lt;/code&gt; 上传到服务器对应目录&lt;/li&gt;&#10;&lt;li&gt;用 &lt;code&gt;curl&lt;/code&gt; 验证线上返回 200,把结果打在屏幕上&lt;/li&gt;&#10;&lt;/ol&gt;&#10;&lt;p&gt;博客写完 → 双击 → 看到三个绿勾 → 上线。整个过程二十秒左右。&lt;/p&gt;&#10;&lt;h2 id="踩过的坑挑几个有意思的"&gt;踩过的坑(挑几个有意思的)&#10;&lt;/h2&gt;&lt;p&gt;&lt;strong&gt;1. 中文字体 slug&lt;/strong&gt;&#10;Hugo 默认拿标题当网址,中文标题会变成一串百分号编码。修法是给每篇文章显式写 &lt;code&gt;slug&lt;/code&gt;。&lt;/p&gt;&#10;&lt;p&gt;&lt;strong&gt;2. 未来日期的文章不发布&lt;/strong&gt;&#10;给文章写了未来的日期,Hugo 会认为「还没到发布时间」而跳过它——页面直接 404,排查半天才反应过来。&lt;/p&gt;&#10;&lt;p&gt;&lt;strong&gt;3. 预览图缓存&lt;/strong&gt;&#10;改完图上传,浏览器还是显示旧图。&lt;strong&gt;换文件名&lt;/strong&gt;(或加版本号)是最省事的解法。&lt;/p&gt;&#10;&lt;p&gt;&lt;strong&gt;4. 批量替换跨区块误伤&lt;/strong&gt;&#10;用脚本批量改 HTML 时,如果锚点文字在导航栏和页脚里都出现,一次替换会把两处都改掉。批量操作前先定位区块,别用「页面级通用锚点」。&lt;/p&gt;&#10;&lt;h2 id="最后"&gt;最后&#10;&lt;/h2&gt;&lt;p&gt;整站从零到上线用了几天,顺手沉淀了一套工具链:一键发布脚本、批量出图流水线、抠像工具。如果你也想搭个类似的小站,欢迎来交流。&lt;/p&gt;&#10;&lt;p&gt;主站: &lt;a class="link" href="https://wyr233.com" target="_blank" rel="noopener"&#10; &gt;wyr233.com&lt;/a&gt; · 看板娘鲸鱼娘在左栏等着跟你打招呼。&lt;/p&gt;&#10;</description></item></channel></rss>