🚀 適用於Stable Diffusion 1.5的二維碼條件ControlNet模型
本項目提供適用於Stable Diffusion 1.5的二維碼條件ControlNet模型,可用於圖像生成,讓你基於二維碼條件生成獨特的圖像。
🚀 快速開始
安裝依賴
pip -q install diffusers transformers accelerate torch xformers
代碼示例
import torch
from PIL import Image
from diffusers import StableDiffusionControlNetImg2ImgPipeline, ControlNetModel, DDIMScheduler
from diffusers.utils import load_image
controlnet = ControlNetModel.from_pretrained("DionTimmer/controlnet_qrcode-control_v1p_sd15",
torch_dtype=torch.float16)
pipe = StableDiffusionControlNetImg2ImgPipeline.from_pretrained(
"runwayml/stable-diffusion-v1-5",
controlnet=controlnet,
safety_checker=None,
torch_dtype=torch.float16
)
pipe.enable_xformers_memory_efficient_attention()
pipe.scheduler = DDIMScheduler.from_config(pipe.scheduler.config)
pipe.enable_model_cpu_offload()
def resize_for_condition_image(input_image: Image, resolution: int):
input_image = input_image.convert("RGB")
W, H = input_image.size
k = float(resolution) / min(H, W)
H *= k
W *= k
H = int(round(H / 64.0)) * 64
W = int(round(W / 64.0)) * 64
img = input_image.resize((W, H), resample=Image.LANCZOS)
return img
source_image = load_image("https://s3.amazonaws.com/moonup/production/uploads/6064e095abd8d3692e3e2ed6/A_RqHaAM6YHBodPLwqtjn.png")
init_image = load_image("https://s3.amazonaws.com/moonup/production/uploads/noauth/KfMBABpOwIuNolv1pe3qX.jpeg")
condition_image = resize_for_condition_image(source_image, 768)
init_image = resize_for_condition_image(init_image, 768)
generator = torch.manual_seed(123121231)
image = pipe(prompt="a bilboard in NYC with a qrcode",
negative_prompt="ugly, disfigured, low quality, blurry, nsfw",
image=init_image,
control_image=condition_image,
width=768,
height=768,
guidance_scale=20,
controlnet_conditioning_scale=1.5,
generator=generator,
strength=0.9,
num_inference_steps=150,
)
image.images[0]
✨ 主要特性
- 本倉庫包含適用於Stable Diffusion v1.5的二維碼條件ControlNet的safetensors和diffusers版本。
- 雖然Stable Diffusion 2.1版本效果稍好,但本1.5版本模型也在相同數據集上進行了訓練,可供使用舊版本的用戶使用。
📦 安裝指南
最簡單的使用方法是將.safetensors
模型及其.yaml
配置文件放在你其他ControlNet模型的安裝文件夾中,具體文件夾因應用而異。
- 對於在auto1111中使用,可將文件放在
webui/models/ControlNet
文件夾中。
- 可以使用ControlNet Web UI擴展加載模型,你可以通過Web UI的擴展選項卡(https://github.com/Mikubill/sd-webui-controlnet )安裝該擴展。
- 確保啟用ControlNet單元,並將輸入圖像設置為二維碼。根據你的基礎Stable Diffusion模型,將模型設置為SD2.1或1.5版本,否則會出錯。
- 不需要預處理器,但你可以使用反轉預處理器以獲得不同的結果。建議使用768的分辨率進行生成,因為這樣可以獲得更多細節。
📚 詳細文檔
性能與侷限性
這些模型在大多數情況下表現良好,但請注意,它們並非100%準確。在某些情況下,二維碼形狀可能無法如預期那樣呈現。你可以增加ControlNet的權重來強調二維碼形狀,但要注意這可能會對輸出風格產生負面影響。為了優化掃描效果,請使用糾錯模式'H'(30%)生成二維碼。
為了在風格和形狀之間取得平衡,可能需要根據具體輸入、期望輸出以及正確的提示詞對控制權重進行微調。有些提示詞在大幅增加權重後才會生效。找到這些因素之間的正確平衡既是一門藝術,也是一門科學。為了獲得最佳效果,建議以768的分辨率生成你的藝術作品,這樣可以在最終產品中實現更高的細節水平,提升基於二維碼的藝術作品的質量和效果。
📄 許可證
本項目採用OpenRAIL++許可證。
屬性 |
詳情 |
模型類型 |
適用於Stable Diffusion 1.5的二維碼條件ControlNet模型 |
訓練數據 |
文檔未提及 |
⚠️ 重要提示
模型並非100%準確,在某些情況下二維碼形狀可能無法如預期呈現。增加ControlNet權重強調二維碼形狀時,可能會對輸出風格產生負面影響。為優化掃描效果,請使用糾錯模式'H'(30%)生成二維碼。
💡 使用建議
為在風格和形狀之間取得平衡,需根據具體輸入、期望輸出和提示詞微調控制權重。部分提示詞需大幅增加權重才生效。生成藝術作品時建議使用768分辨率,以提升細節和質量。