吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 1396|回复: 18
收起左侧

[Windows] 红墨AI 图片小红书洗白工具1.0

[复制链接]
babyboy0532 发表于 2026-6-2 15:35
小白第一次发帖。
闲来无事用python+Trae编了一个,将AI生成的图片仿照微信传输助手对图片的变化,从而实现不被AI打上“AI生成”的标签。
大家有好的途径也可以再说说,将代码放在下边,下载地址里的是打包成exe的程序。

==============================================

【暴力自动安装 + 强制导入】绝对不会报错

==============================================

import subprocess, sys, os, time, random
from datetime import datetime

自动安装依赖

for pkg, imp_name in [("piexif", "piexif"), ("numpy", "numpy"), ("Pillow", "PIL")]:
try:
import(imp_name.lower().replace("pil", "pil").replace("piexif", "piexif"))
except:
print(f"🔧 自动安装 {pkg} 中...")
subprocess.run(
[sys.executable, "-m", "pip", "install", pkg, "-i", "https://pypi.tuna.tsinghua.edu.cn/simple"],
capture_output=True
)

========================== 正常导入 ==========================

import numpy as np
from PIL import Image, ImageEnhance
import piexif

====================== 你自己的路径 ======================

WATCH_FOLDER = r"D:\小红书\图片处理\待除隐藏水印"
SAVE_FOLDER = r"D:\小红书\图片处理\移除水印"
IMAGE_EXTENSIONS = ('.jpg', '.jpeg', '.png', '.webp', '.bmp')

====================== 截图效果参数 ======================

SATURATION = 0.72
CONTRAST = 0.83
BRIGHTNESS = 1.01
SHARPNESS = 0.55

====================== 相机信息 ======================

CAM_MAKE = "Canon"
CAM_MODEL = "EOS R5"
LENS_MODEL = "RF 50mm F1.8"
SHUTTER = (1, 200)
APERTURE = (18, 10)
ISO_NUM = 100
FOCAL_LEN = (50, 1)

====================== 【增强版微信洗白核心参数】 ======================

微信量化表 - 模拟微信压缩后的 DCT 特性(偏柔/模糊,不同于 libjpeg 默认)

WECHAT_LUMA_QUANT = np.array([
[16,  11,  10,  16,  24,  40,  51,  61],
[12,  12,  14,  19,  26,  58,  60,  55],
[14,  13,  16,  24,  40,  57,  69,  56],
[14,  17,  22,  29,  51,  87,  80,  62],
[18,  22,  37,  56,  68, 109, 103,  77],
[24,  35,  55,  64,  81, 104, 113,  92],
[49,  64,  78,  87, 103, 121, 120, 101],
[72,  92,  95,  98, 112, 100, 103,  99]
], dtype=np.uint8)

WECHAT_CHROMA_QUANT = np.array([
[17,  18,  24,  47,  99,  99,  99,  99],
[18,  21,  26,  66,  99,  99,  99,  99],
[24,  26,  56,  99,  99,  99,  99,  99],
[47,  66,  99,  99,  99,  99,  99,  99],
[99,  99,  99,  99,  99,  99,  99,  99],
[99,  99,  99,  99,  99,  99,  99,  99],
[99,  99,  99,  99,  99,  99,  99,  99],
[99,  99,  99,  99,  99,  99,  99,  99]
], dtype=np.uint8)

====================== 【增强版微信洗白 - 核心算法】 ======================

def add_poisson_noise(img_np, intensity=0.8):
"""
泊松噪声模型 = 真实摄像头 sensor 噪点
不同于高斯噪声,泊松噪声强度与亮度正相关(暗部噪点多)
模拟光子 shot noise,是真实手机摄像头的主要噪声来源
"""
img_float = img_np.astype(np.float64) / 255.0
vals = (-1.0 np.log(np.random.uniform(size=img_np.shape))).astype(np.float64)
vals = vals
intensity 20
noisy = np.random.poisson(img_float
vals) / (vals + 1e-10)
result = np.clip(img_float + (noisy - img_float) 0.15 intensity, 0, 1)
return (result * 255).astype(np.uint8)

def add_jpeg_blocks_artifacts(img_np, strength=0.3):
"""
模拟 JPEG 8x8 DCT 块效应
真实 JPEG 图片在块边界有微小的不连续,AI 生成的图往往没有
这是 AI 检测器在 DCT 域识别 AI 图片的重要依据之一
"""
h, w = img_np.shape[:2]
result = img_np.copy().astype(np.float64)

水平块边界

for y in range(8, h, 8):
    result[y, :, :] += np.random.normal(0, strength, (w, img_np.shape[2]))
# 垂直块边界
for x in range(8, w, 8):
    result[:, x, :] += np.random.normal(0, strength, (h, img_np.shape[2]))
return np.clip(result, 0, 255).astype(np.uint8)

def wechat_whiten(img):
"""
【增强版】完全模拟微信传输助手处理流程:

1. 清空原始 EXIF / 元数据 —— AI 工具第一关查这里,必须彻底清除
2. 等比缩放(随机最大边 1440-1920px)—— 模拟微信服务器端压缩
3. 泊松噪声 —— 真实摄像头 sensor 质感,不是简单的高斯噪声
4. 色彩通道串扰(cross-talk)—— 真实传感器通道间有微弱干扰
5. JPEG 块效应 —— 伪造真实压缩历史,消除 AI 生成的规律性纹理

输出:经"微信洗白"后的图片,可绕过绝大多数 AI 图片检测
"""
img = img.copy()
w, h = img.size

# ---------- 1. 微信等比缩放 ----------
# 微信每次压缩的最大边不固定(1440/1536/1600/1920),模拟真实行为
wechat_max = random.choice([1440, 1536, 1600, 1920])
if max(w, h) > wechat_max:
    ratio = wechat_max / max(w, h)
    new_w = int(w * ratio)
    new_h = int(h * ratio)
    img = img.resize((new_w, new_h), Image.Resampling.LANCZOS)

# ---------- 2. 转 numpy ----------
img_np = np.array(img)
if len(img_np.shape) == 2:  # 灰度图转 RGB
    img_np = np.stack([img_np, img_np, img_np], axis=-1)

# ---------- 3. 泊松噪声(暗部为主,模拟真实摄像头) ----------
noise_intensity = random.uniform(0.4, 0.9)
img_np = add_poisson_noise(img_np, intensity=noise_intensity)

# ---------- 4. 轻微色彩通道串扰 ----------
# 真实传感器 R/G/B 通道间有微弱串扰,AI 生成图通常没有
for _ in range(2):
    cross_talk = np.random.uniform(-0.3, 0.3, img_np.shape)
    img_np = np.clip(img_np.astype(np.float64) + cross_talk, 0, 255).astype(np.uint8)

# ---------- 5. JPEG 块效应 ----------
img_np = add_jpeg_blocks_artifacts(img_np, strength=random.uniform(0.2, 0.5))

return Image.fromarray(img_np)

====================== EXIF 生成(Canon EOS R5 真实参数) ======================

def add_camera_exif():
"""
生成 Canon EOS R5 的 EXIF 信息
使用当前时间作为拍摄时间,增加可信度
"""
exif_dict = {
"0th": {}, "Exif": {}, "GPS": {}, "1st": {}, "thumbnail": None
}
exif_dict["0th"][piexif.ImageIFD.Make] = CAM_MAKE.encode('ascii')
exif_dict["0th"][piexif.ImageIFD.Model] = CAM_MODEL.encode('ascii')
exif_dict["0th"][piexif.ImageIFD.Software] = b"Canon EOS R5"

exif_dict["Exif"][piexif.ExifIFD.ExposureTime] = SHUTTER
exif_dict["Exif"][piexif.ExifIFD.FNumber] = APERTURE
exif_dict["Exif"][piexif.ExifIFD.ISOSpeedRatings] = ISO_NUM
exif_dict["Exif"][piexif.ExifIFD.FocalLength] = FOCAL_LEN
exif_dict["Exif"][piexif.ExifIFD.LensModel] = LENS_MODEL.encode('ascii')
exif_dict["Exif"][piexif.ExifIFD.LensMake] = CAM_MAKE.encode('ascii')

# 拍摄时间(当前时刻)
now = datetime.now().strftime("%Y:%m:%d %H:%M:%S").encode('ascii')
exif_dict["Exif"][piexif.ExifIFD.DateTimeOriginal] = now
exif_dict["Exif"][piexif.ExifIFD.DateTimeDigitized] = now
exif_dict["0th"][piexif.ImageIFD.DateTime] = now

# 额外的真实感参数
exif_dict["Exif"][piexif.ExifIFD.ExposureProgram] = 2  # 光圈优先
exif_dict["Exif"][piexif.ExifIFD.MeteringMode] = 5      # 多区测光
exif_dict["Exif"][piexif.ExifIFD.ExposureMode] = 0      # 自动曝光
exif_dict["Exif"][piexif.ExifIFD.WhiteBalance] = 0       # 自动白平衡
exif_dict["Exif"][piexif.ExifIFD.Flash] = 0              # 无闪光

return piexif.dump(exif_dict)

====================== 截图风格调色 ======================

def make_screenshot(img):
"""
应用截图风格调色:

  • 降低饱和度(更像手机截图)
  • 降低对比度(去除 AI 生成的过度锐利)
  • 轻微调亮
  • 降低锐度
    """
    img = ImageEnhance.Color(img).enhance(SATURATION)
    img = ImageEnhance.Contrast(img).enhance(CONTRAST)
    img = ImageEnhance.Brightness(img).enhance(BRIGHTNESS)
    img = ImageEnhance.Sharpness(img).enhance(SHARPNESS)
    return img

====================== 完整处理流程 ======================

def process(img_in, img_out):
"""
完整处理流程(4步):
Step 1. 微信洗白 —— 清元数据 + 破坏 AI 像素指纹
Step 2. 截图风格 —— 调色模拟手机截图质感
Step 3. 添加相机 EXIF —— 伪装真实 Canon EOS R5 拍摄
Step 4. JPEG 有损保存 —— 质量 72-82,彻底去除 AI 痕迹
"""
try:
with Image.open(img_in) as im:

Step 1: 微信洗白(清元数据 + 破坏 AI 指纹)

        clean = wechat_whiten(im)

        # Step 2: 截图风格调色
        final = make_screenshot(clean)

        # Step 3: 添加相机 EXIF
        exif = add_camera_exif()

        # Step 4: JPEG 有损保存(质量随机 72-82,模拟微信)
        wechat_quality = random.randint(72, 82)
        out_jpg = os.path.splitext(img_out)[0] + ".jpg"
        final.convert("RGB").save(
            out_jpg,
            "JPEG",
            quality=wechat_quality,
            exif=exif,
            optimize=True
        )

        print(f"✅ 微信洗白完成 | 质量:{wechat_quality}%")
        return True

except Exception as e:
    print(f"❌ 处理错误:{e}")
    import traceback
    traceback.print_exc()
    return False

====================== 自动监控 ======================

def monitor():
print("=" 60)
print("🔧 启动:AI 图片小红书洗白工具(增强版)")
print("📷 相机:Canon EOS R5 | 镜头:RF 50mm F1.8")
print("🔐 微信洗白:泊松噪声 + JPEG块效应 + 色彩串扰")
print("📂 监控目录:" + WATCH_FOLDER)
print("="
60)
os.makedirs(SAVE_FOLDER, exist_ok=True)

done = set()
while True:
    for f in os.listdir(WATCH_FOLDER):
        p = os.path.join(WATCH_FOLDER, f)
        if not os.path.isfile(p) or f in done:
            continue
        if f.lower().endswith(IMAGE_EXTENSIONS):
            print(f"\n🆕 发现新文件:{f}")
            if process(p, os.path.join(SAVE_FOLDER, f)):
                done.add(f)
                print("✅ 处理完成 → 可直接发小红书")
    time.sleep(1)

if name == "main":
monitor()



image.png
image.png
image.png

下载地址.txt

225 Bytes, 下载次数: 78, 下载积分: 吾爱币 -1 CB

免费评分

参与人数 2吾爱币 +2 热心值 +2 收起 理由
循环水 + 1 + 1 热心回复!
woxobo + 1 + 1 谢谢@Thanks!

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

10830 发表于 2026-6-4 18:14
蹲个反馈
xanfqq 发表于 2026-6-4 18:38
qwert236892 发表于 2026-6-4 19:12
winteria 发表于 2026-6-6 11:24
试试看 有没有用
tommycruise 发表于 2026-6-9 00:11
超级超级牛× 这个太好了
tds220 发表于 2026-6-9 00:38
楼主厉害,把多余的字能去掉,感谢
xpeagle 发表于 2026-6-9 08:37
好东西,试试,多谢分享了,赞一个
weiqk 发表于 2026-6-10 14:57
下载试试看
zx8849523 发表于 2026-6-11 15:07
看上去真不错
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - 52pojie.cn ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2026-6-12 21:27

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表