https://huggingface.co/thomaseding/pixelnet
--- license: creativeml-openrail-m ---
# PixelNet (Thomas Eding)
### 개요:
PixelNet은 Stable Diffusion 1.5용 ControlNet 모델입니다.
이 모델은 체스판 이미지를 입력으로 받아, 논리적 픽셀이 배치될 위치를 제어합니다.
현재 이 모델은 실험적 개념 증명 단계입니다. 저는 Stable Diffusion을 사용하여 생성한 약 2,000장의 픽셀 아트/픽셀화된 이미지를 기반으로 이 모델을 훈련했습니다(많은 정리와 수동으로 선별한 데이터). 모델의 성능은 아직 좋지 않지만, 최소 치수가 512인 경우 최대 약 64개의 체스판 "픽셀" 크기의 격자에서는 작동합니다. 저는 128x128 체스판 격자를 사용하여 최소 1024x1024 픽셀 크기의 이미지를 생성하는 데 성공했습니다.
이 모델은 "균형 잡힌(Balanced)" ControlNet 설정에서 가장 잘 작동합니다. "Control Weight"를 1 또는 약간 더 높게 설정해 보세요.
"ControlNet이 더 중요함(ControlNet Is More Important)" 옵션은 효과를 내기 위해 높은 "Control Weight"가 필요합니다. "Control Weight"를 2로 설정해 보세요.
낮은 "Control Weight" 설정은 부드러운 회화나 벡터 아트와 유사한 이미지를 생성하는 경향이 있습니다.
작은 체스판 격자는 성능이 더 나쁩니다(예: 5x5 대비 32x32).
"Steps" 값이 너무 낮거나 너무 높으면 모델이 제대로 작동하지 않습니다. 다양한 요인에 따라 15-30 사이의 값을 시도해 보세요. 내장된 A1111 "X/Y/Z Plot" 스크립트를 자유롭게 실험해 보세요.
### 사용법:
설치하려면 `.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`는 70x70 체스판 이미지를 512x512 픽셀로 확대하여 생성합니다.
`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: 아닙니다. 저는 훈련 데이터에서 모든 스타일 관련 단어를 제거했습니다. "픽셀", "고화질" 등의 단어가 포함됩니다. 실제로 프롬프트에 "픽셀 아트"를 추가하면 모델 성능이 더 나빠지는 경향이 있습니다(제 경험상). 유용한 단어 한 가지는 출력 색상이 과도할 때 부정 프롬프트에 "garish"를 추가하는 것입니다.
Q: PNG와 JPEG 중 무엇을 사용해야 하나요?
A: PNG를 사용하세요. JPEG의 압축 알고리즘은 픽셀 아트에 매우 부적합합니다.
Q: 특수한 A1111 사용자 인터페이스 통합이 있나요?
A: 네, 하지만 아직 표준 ControlNet 확장 프로그램 코드에 병합되지 않았습니다. 임시로 직접 변경 사항을 통합하려면 (https://civitai.com/posts/371477)을 참고하세요.
Q: 왜 이 모델이 필요한가요? 이미지를 다운스케일링하기 위해 포스트 프로세서를 사용할 수 없나요?
A: 제 경험에 따르면, SD는 실제 픽셀 아트를 생성하는 데 어려움을 겪습니다(전용 베이스 모델과 LoRA를 사용해도 마찬가지). 논리적 픽셀 크기 불일치, 부드러운 곡선 등이 발생합니다. 눈에 보이는 직선이 실제로는 약간 휘어질 수 있으며, 이는 포스트 프로세서가 픽셀을 정량화할 때 한 픽셀씩 잘못 위치시키는 아티팩트를 생성하게 합니다. 이 모델은 이러한 문제를 해결하는 데 도움을 주기 위해 개발되었습니다.
Q: 이 모델과 포스트 프로세서를 함께 사용해야 하나요?
A: 네, 여전히 이미지를 정리하기 위해 포스트 프로세싱을 권장합니다. 이 모델은 완벽하지 않아 여전히 아티팩트가 발생할 수 있습니다. 참고로, 샘플 출력 이미지들은 모두 포스트 프로세싱되지 않은 모델의 원본 출력입니다. 제어 격자의 체스판 칸 위치에 따라 이미지를 샘플링하는 것을 고려하세요. 제공된 `controlled_downscale.py` 스크립트가 이를 도와줍니다. 이 스크립트의 출력(가장 가능성 높은 `--output-downscaled` 파일)을 다른 포스트 프로세서(예: 색상 팔레트를 세밀하게 조정)에 통과시킬 수 있습니다. 저는 이 스크립트를 몇 개의 생성 이미지에만 테스트했기 때문에 샘플 위치 계산 방식에 일부 버그가 있을 수 있습니다. 따라서 현재는 스크립트의 출력을 비교해 보세요. 대체 제어 격자 이미지를 사용하는 것이 유익할 수도 있고, 다른 포스트 프로세싱 방법이 더 나은 결과를 낼 수도 있습니다.
Q: 이 모델은 사각형이 아닌 격자를 지원하나요?
A: 부분적으로 지원합니다. 일부 비정사각형 격자(사전 확대된 체스판이 확대된 이미지 크기의 배수가 아닐 때)로 훈련했으므로 그 측면에서는 잘 작동합니다. 또한 실제 비정사각형 직사각형 칸(예: 가로로 두 배 넓은 픽셀)을 가진 체스판 이미지도 훈련했습니다.
Q: 향후 더 나은 훈련 모델이 나올 예정인가요?
A: 나올 수 있기를 바랍니다. 훨씬 더 크고 고품질의 데이터 세트를 선별해야 하며, 이는 상당한 시간이 걸릴 수 있습니다. 어쨌든, 제어 이미지에 대한 제어 효과를 더 정확하게 구현하려고 합니다. 직사각형 격자를 넘어서 일반화하는 것도 시도해볼 수 있지만, 우선순위는 아닙니다. 일부 훈련 데이터에 비정사각형 직사각형 칸을 포함시킨 것이 모델 성능에 해로웠을 수 있습니다. 마찬가지로, 8x8보다 작은 격자도 그렇습니다. 매우 작은 격자와 비정사각형 격자를 위한 별도의 모델을 훈련하는 것이 더 나을 수도 있습니다(그러나 그 정도라면 이미지를 손으로 만드는 것이 더 낫습니다).
Q: 색상 정량화는 어떻게 되나요?
A: 곧 "PaletteNet"이 출시될 예정입니다.
### 샘플 출력:


