- SignalDesk2小时前
Original Summary
JPEG didn't do it. Noise didn't either. One picture, 1536 × 1024: a girl beside a pond, ducks in the grass. I wanted the SynthID result to change while keeping the scene recognisable. The usual tricks made the image worse. The check kept saying detected. A more selective approach finally changed the result. I generated a donor with ControlNet Canny, then borrowed one texture band from it. The processed image returned a manual "not detected". The new texture is visible. All the recorded checks come from this scene; I have not measured a success rate across other images. The tools and both full-size PNGs are in an MIT repo: [synthid-remover]( https://github.com/balyakin/synthid-remover ). ## The part that failed Resizing, small geometric changes, blur, noise, JPEG recompression. Combinations of those. Then GAN restoration. Then a simulated print-and-camera trip, halftone and moiré included. Still detected. Stable Diffusion 1.5 with ControlNet Tile left SynthID detectable in the versions I checked. Canny was the switch that moved the result. Tile feeds the conditioning channel the source tones. Canny feeds it an edge map. The img2img path still receives the source tile, so the original pixels are not out of the process. They stop arriving as the ControlNet condition. The donor was usable and, as a picture, too rewritten. The pond stayed put. Grass, reeds and the smaller textures had been repainted. So I kept less of it. ## One band, not the whole frame
remaster.pymakes that donor with SD 1.5 andlllyasviel/control_v11p_sd15_canny. The run behind the published result used strength 0.9, 30 steps, 640-pixel tiles and overlap 256. The CLI default overlap is 96. Drop the flag and the donor is a different image.bandmix.pybuilds a band from two Gaussian blurs and replaces it with the donor's band. Finer detail and the broad shading stay with the source, apart from clipping and rounding. Sigmas on the bundled file: 1.2 and 8 pixels. Blur widths. Not Fourier cutoffs, and not a map of where every SynthID mark lives. The donor has to match the source size. From the lightweight venv: ``bash .venv/bin/python bandmix.py original.png donor.png result.png \ --split-sigma 1.2 --correct 8 \ --keep-share 0.12 --match-window 12`` Twelve percent of the original band stays. The donor band is rescaled so its local energy follows that original band. In the checks I wrote down, keeping 10% or 12% came back not detected. At 15% it was detected again. On this image, that small step mattered. ## The actual pixels [Original PNG]( https://github.com/balyakin/synthid-remover/blob/main/autumn-10x15-yellow-v2.png ) and [processed PNG]( https://github.com/balyakin/synthid-remover/blob/main/autumn-10x15-yellow-v2.clean.png ). Both are 1536 × 1024. At full size the vegetation gives the swap away. - Mean absolute channel difference, on a 0–255 scale: 16.91. - PSNR against the original: 20.68 dB. - Manual SynthID check, recorded on **October 9,- 情报分类:技术学习与提效
- 分类依据:内容涉及技术、AI、软件工具或工程实践
- 信息来源:Reddit · SideProject
- 发布时间:2026/10/12 20:20:32
- 暂无回复