https://huggingface.co/thomaseding/pixelnet
--- license: creativeml-openrail-m ---
# PixelNet(Thomas Eding)
### 简介:
PixelNet 是一个用于 Stable Diffusion 1.5 的 ControlNet 模型。
它以国际象棋棋盘图像作为输入,用于控制逻辑像素的放置位置。
目前这是一个实验性的概念验证。我使用约 2000 张通过 Stable Diffusion 生成的像素艺术/像素化图像(经过大量清理和手动筛选)训练了该模型。该模型效果并不理想,但在最小边长为 512 像素时,最多可处理约 64 个棋盘“像素”的网格。我成功让模型理解了 128x128 的棋盘,用于生成至少 1024x1024 像素的图像。
该模型在“平衡”ControlNet 设置下表现最佳。建议尝试将“控制权重”设为 1 或略高。
“ControlNet 更重要”似乎需要较高的“控制权重”才能产生效果,建议尝试设为 2。
较低的“控制权重”设置往往会产生类似平滑绘画或矢量艺术的图像。
较小的棋盘网格效果较差(例如 5x5 对比 32x32)。
“步骤”值过低或过高都会破坏模型效果。建议尝试 15–30,具体取决于多种因素。欢迎使用 A1111 内置的“X/Y/Z 绘图”脚本进行实验。
### 使用方法:
安装时,请将 `.safetensors` 和 `.yaml` 文件复制到 Automatic1111 ControlNet 扩展的模型目录中(例如:`stable-diffusion-webui/extensions/sd-webui-controlnet/models`)。完成操作后,请完全重启 Automatic1111 服务器,然后刷新网页。
无需预处理器。只需提供黑白国际象棋棋盘图像作为控制输入。本仓库的 `grids` 目录中包含多种控制图像网格(https://huggingface.co/thomaseding/pixelnet/resolve/main/grids/grids.zip)。
脚本 `gen_checker.py` 可用于生成任意尺寸的棋盘图像(https://huggingface.co/thomaseding/pixelnet/blob/main/gen_checker.py)。示例:`python gen_checker.py --upscale-dims 512x512 --dims 70x70 --output-file control.png` 可生成一个放大到 512x512 像素的 70x70 棋盘图像。
脚本 `controlled_downscale.py` 是专为此模型定制的降采样器。您需提供生成的图像及其对应的控制图像,它将根据控制网格进行降采样(https://huggingface.co/thomaseding/pixelnet/blob/main/controlled_downscale.py)。示例:`python controlled_downscale.py --control diffusion_control.png --input diffusion_output.png --output-downscaled downscaled.png --output-quantized quantized.png --trim-cropped-edges false --sample-radius 2`。更多参数请参考 `--help`。
### VAE:
https://civitai.com/models/366568/vae-teding-aliased-2024-03
### 常见问题:
Q:该模型是否有“触发词”?
A:没有。我在训练数据中去除了所有与风格相关的词汇,包括“pixel”、“high quality”等。事实上,向提示词中添加“pixel art”反而会使模型表现更差(根据我的经验)。我唯一发现有用的词是在负面提示中加入“garish”,当输出色彩过于鲜艳时使用。
Q:使用 PNG 还是 JPEG?
A:请使用 PNG。JPEG 的压缩算法对像素艺术极为不利。
Q:是否有特殊的 A1111 用户界面集成?
A:有……但尚未合并到标准 ControlNet 扩展的代码中。如果您想自行集成,请参阅(https://civitai.com/posts/371477)。
Q:为何需要这个模型?我不能用后处理工具进行降采样吗?
A:根据我的经验,Stable Diffusion 很难生成真正的像素艺术(即使使用专用基础模型和 LoRA),因为它在逻辑像素尺寸、平滑曲线等方面存在不匹配。看起来是直线的线条,实际可能弯曲。这会导致后处理器因像素量化舍入而产生偏移一个像素的伪影。本模型旨在解决这一问题。
Q:我是否应该结合后处理工具使用该模型?
A:是的,我仍建议您进行后处理以清理图像。此模型并不完美,仍会存在伪影。请注意,所有示例输出图像均为未经后处理的原始模型输出。建议根据控制网格的棋盘格位置进行采样。提供的 `controlled_downscale.py` 脚本可为您完成此操作。您可以将该脚本的输出(通常是 `--output-downscaled` 文件)再送入其他后处理器(例如优化调色板)。我仅对该脚本进行了少量测试,其计算采样位置的方式可能存在一些 Bug。因此,目前建议对比脚本输出结果。您可能会发现,使用替代的控制网格图像更有益,或改用其他后处理方法更佳。
Q:该模型是否支持非正方形网格?
A:基本支持。我训练时使用了一些非完美正方形的网格(当预放大棋盘不是放大图像尺寸的整数倍时),因此它应该能正常工作。我还使用了一些具有真实非正方形矩形格子的棋盘图像(例如双宽像素)进行训练。
Q:未来会有更好的训练模型吗?
A:我希望如此。我需要整理一个更大、质量更高的数据集,这可能需要很长时间。无论如何,我计划让控制效果更忠实于输入控制图像。我可能会尝试将此方法推广到非矩形网格,但这不是优先事项。我认为在训练数据中包含非正方形矩形格子可能对模型表现有害,同样,小于 8x8 的网格也是如此。或许为极小网格和非正方形矩形网格分别训练模型更好(但到那时,您不如直接手工绘制图像)。
Q:颜色量化怎么办?
A:即将推出“PaletteNet”。
### 示例输出:


