02 Feb 2023
Classic Negative (SD 2.1 768px v0.2)
I finally managed to train an improved version of my original Classic Negative Model for SD 2.1 768.
The improvements mostly come from better and more accurate captions, as well as a more diverse dataset. I also used some pictures generated with the original version for the training.
I attached a few comparisons between the default 2.1 model, v0.1 and v0.2 I used for evaluating if it actually improved. Compared to the default model, it offers vastly improved lighting, a more pleasing color palette, better depth of field and composition. Compared to v0.1, it improves further on a smooth depth of field fall of and creates slightly more realistic images. The colors are also more in line with what I originally intended.
15 Jan 2023
- Update -
After several failed attempts, I finally managed to train a usable 2.1 version on the same dataset I used for my 1.5 Classic Negative model. I wish I could show you a more diverse set of pictures, but I'm busy creating one cute animal after the other.
for 2:3 aspect ratio images, 1152x768px works really well
for 21:9 aspect ratio images, 1344x576px works really well
Make sure to place the config file into the same folder as the model and make sure they are named exactly the same.
13 Jan 2023
- Original Post -
I'll preface this by saying that I have no idea what I'm doing. Also, this is by no means a complete or perfect model. But after many tries I'm at a point where I'm happy with sharing some pictures and an early version for you to try out.
Classic Negative (SD 1.5)
With Classic Negative I tried to train a model with DreamBooth which closely mimics my style of photography. Its name comes from a built in camera profile in Fujifilm cameras, "Classic Negative". I use a modified version of this profile in basically all of my photos. To mimic my style, the model must achieve the following:
recreate the color profile of classic negative: muted and desaturated greens
introduce faded blacks and diffused highlights (like a Tiffen Glimmerglass Filter would do)
reliably create a nice depth of field effect like you would get with large aperture lenses
improve the composition of the default model (foreground and background objects, framing, point of view)
improve the lighting of the default model
add grain and preferably a slight vignetting
try to recreate the look and feel of old 35mm film photos
Training
For training I used 100 of my personal images, consisting mainly of environmental portraits and photos of my dog, some macro and some landscape shots. The model is probably biased towards forests and garden pictures, since that's where I took the majority of my photos. It seems to be on the verge of being overfitted, in some generated pictures I could clearly make out the general structure of my backyard.
The captions were written manually for all of the photos. Nothing too complicated, here's an example: https://i.imgur.com/prf8VxS.png
I trained for 1800 steps with a learning rate of 1e-5 and 350 text encoder steps using TheLastBen's Fast DreamBooth ipynb.
Prompts & Parameters
The prompts I tried so far are very simple. The activation token is classicnegative
- classicnegative photo of a cute raccoon sitting between bushes in a garden, purple tulip flowers
- classicnegative photo of a cute small red panda sitting on a branch in the jungle
- classicnegative photo of a white fluffy rabbit standing in a garden illuminated by fairy lights, winter, heavy snow, snowflakes
Parameters: Euler A, CFG Scale 7, 30 Steps, 860x360px
I then went seed hunting. Although in a batch of 4 there was at least one usable picture so far. If a good picture was generated, I set the same seed and ran it again with Hires. fix enabled (which takes like 3,5 minutes with my GTX 1070 for one picture).
Hires. fix Parameters: ESRGAN_4x, 30 Steps, 0.3 Denoising, Upscale by 2
I discovered this by accident, but using these settings the picture stays exactly the same and all the film photo characteristics like the grain won't get lost during upscaling.
If the effect of the model is too strong, try adding tokens like sharp focus, high contrast, clarity to your prompt. Or just increase the contrast in post. But yes, sometimes it becomes a bit too much, I'll have to take a look into it for a future revision.
What's next
more testing is needed, different parameters and subjects
create a SD2.1 768px version
finetuning
Please feel free to try the model out, test its limitations and if you have any advice on how I can create a better version of it, please let me know ;)
Description
version 0.2 - refer to the main description about the changes & improvements
FAQ
Comments (23)
please relase a safetensor file :)
Yeah, really. Ideally, .ckpt files should be wiped out from the face of the Earth.
@TernaryM01 Why? I'm new to this btw
@Pacomer Because they are unsafe. Opening a .ckpt file triggers whatever Python bytecode instruction is put into it. It can spread virus and destroy your computer. The only reason why distributing .ckpt files is still not considered a crime is that some tools such as InvokeAI still don't support .safetensors files.
You should only ever open a .ckpt file if it is from a trusted source (the only example of which that I can think of is the scenario where you created the file yourself). There is a .ckpt file scanner to detect virus, but in order to analyze a .ckpt file using it again you have to allow the code to run. You cannot read it without running it. So, even if equipped with the scanner, you should only open the file in a virtual machine.
@TernaryM01 what it's actually can do? I mean malicious model. Doesn't seems like neither automatic, nor NMKD GUI starts up as admin. If there even was any real cases of malicious SD models that did something?
yes. dont know why people bother with ckpt files. just way too risky. i agree, they should be nuked
Im not sure what Im doing wrong, but I used the same seed, resolution and everything, but cant get the same result anyhow.
Link in comment
Please help
@edmondyang Do you run the model locally or on Google colab? The pictures were generated on colab and I noticed that the output can be slightly different depending on which method you use.
@BudFactory yes, I do locally. but even all the hashes and everything is the same, it should be the same output, no?
Use vae mse
@choozzy tried. didnt work :(
@choozzy I maybe wrong, but I thing I've heard that 2.1 based models don't need VAE, or can't even run with VAE. Correct me if I mistaken.
I've tried do skull in snow, wasn't able to get same output either.
Safetensors format, please.
Somehow, I can't get it working. I placed the model and config file together, their names are the same, but I get black canvas all the time. What should I do?
maybe image size is off? are you using at least 768 which is required for a 2.1 model
@ovalshrimp I'm trying on image size of 768x768 :(
@littlestudyo276 Try this: go to the settings tab in the ui, select "Stable Diffusion" on the left hand side, then scroll all the way down and click the box that says "Upcast cross attention layer to float32" scroll back up, click "apply settings", and then click "reload ui" now, try and generate an image.
How do I use it with ControlNet? He always reports an error “stable-difusion mat1 and mat2 shapes cannot be multiplied”
Why is this url after downloading this config file
Safetensor file pls. this should be standard by now
Took me a while to realize it's not a negative prompt embedding...
Details
Files
classicNegativeSD21_classicNegative768px.yaml
Mirrors
kitchensinkver18_18.yaml
ushioAnime_v1.yaml
pulpDiffusion_pulpDiffusionAlpha.yaml
classicNegativeSD21_classicNegative768px.yaml
prettyGirlsNextDoor_v10.yaml
cthughaTokyo_step4000.yaml
oldPortraits_oldPortraits.yaml
ultraskin_09.yaml
charhelperFineTuned_fineTunedV1.yaml
oxigien2ProSD21Hires_v2Ultra.yaml
portraits21768_zphyrportraits.yaml
charhelperFineTuned_v1.yaml
macarolusDiffusionSD21_v1.yaml
oxigien2ProSD21Hires_v3Lite.yaml
oxigien2ProSD21Hires_v3Epic.yaml
jaksWooditizeImage_wooditizeSD21768px.yaml
dragonPortrait_v2.yaml
jaksWoolitizeImage_woolitizeSD21768px.yaml
uberRealisticPornMerge21_v1.yaml
uberRealisticPornMerge21_v2.yaml
charhelperFineTuned_charhelperV3.yaml
djzInkPunkV21_0.yaml
yiffai2322_yai2220F.yaml
prettyGirlsNextDoor_v20.yaml
realismEngine_v10.yaml
prettyGirlsNextDoor_v51.yaml
prettyGirlsNextDoor_v60.yaml
prettyGirlsNextDoor_v70.yaml
prettyGirlsNextDoor_v80.yaml
graphicArt_graphicArtBeta11.yaml
prettyGirlsNextDoor_v90.yaml
mangledMerge_v2.yaml
sdartCosmicHorrors_base21.yaml
sdartCompleteEdition_v2Base21.yaml
sdartEncapsulated_base21.yaml
perpetualDiffusion10_v10Moon.yaml
artius21_v10VAE.yaml
jaksNaturitizeImage_naturitizeSD21768px.yaml
jaksClayitization_clayitizationSd21.yaml
dragonPortrait_v1.yaml
sdartAliceInDiffusion_base21.yaml
kitchensink2fp16_.yaml
oxigien2ProSD21Hires_v2Pro.yaml
charhelperFineTuned_charhelperV2.yaml
bow_v10.yaml
kitchensinkver18_18L.yaml
aZovyaRPGArtistTools_sd21768V1.yaml
yiffai2322_yai2214Safetensors.yaml
ultraCmodel_ultraCModel.yaml
pseudofreedommerge_v10.yaml
yiffai2322_yai2220.yaml
sdartCompleteEdition_v1Base21.yaml
vectorArt_vectorArtBeta.yaml
yiffai2322_yai2220Safetensors.yaml
waifuDiffusionBeta03_beta3.yaml
allureaiBetaV03_allureaiBetaV03.yaml
sdartChaosOrder_base21.yaml
vectorArt_pulpVectorBeta.yaml
sdartUnMythical_base21.yaml
graphicArt_graphicArtBeta.yaml
milfShaper_ponysd21V10.yaml
stickerArt_sticker.yaml
waifuDiffusion15Beta2_v10.yaml
kitchensink2nsfw_.yaml
jaksCreepyCritter_sd21768px.yaml
yiffai2322_yai2322.yaml
remember21768_zphyrremember.yaml
3dmdt1GeneralistModelHigh_v1.yaml
kitchensink2safe_kitchensink2.yaml
djzDivineStatueV21_0.yaml
djzGrimKnightsV21_0.yaml
sdartSynesthesia_base21.yaml
prmj_v1.yaml
yiffai2322_yai2214.yaml
illuminatiDiffusionV1_v11.yaml
syntheticCmodel_v1.yaml
charhelperFineTuned_charhelperV4.yaml
mangledMerge_v3.yaml
conceptSheet_conceptSheetAlpha.yaml
insanity21768_zphyrinsanity.yaml
imagineV41_v10.yaml
rmadaMergeSD21768_v60.yaml
pxl8V1_v1.yaml
Available On (1 platform)
Same model published on other platforms. May have additional downloads or version variants.
















