Add new sampling methods to Imaginate

This commit is contained in:
Keavon Chambers 2022-11-07 00:37:17 -08:00
parent 56060b8e5f
commit 916dc8277a
2 changed files with 35 additions and 5 deletions

View File

@ -855,7 +855,14 @@ fn node_section_imaginate(imaginate_layer: &ImaginateLayer, layer: &Layer, persi
}, },
LayoutGroup::Row { LayoutGroup::Row {
widgets: { widgets: {
let tooltip = "Strength of the artistic liberties allowing changes from the base image. The image is unaltered at 0 and completely different at 1.".to_string(); let tooltip = "
Strength of the artistic liberties allowing changes from the base image. The image is unchanged at 0 and completely different at 1.\n\
\n\
This parameter is otherwise known as denoising strength.
"
.trim()
.to_string();
vec![ vec![
WidgetHolder::new(Widget::TextLabel(TextLabel { WidgetHolder::new(Widget::TextLabel(TextLabel {
value: "Image Creativity".into(), value: "Image Creativity".into(),
@ -889,12 +896,19 @@ fn node_section_imaginate(imaginate_layer: &ImaginateLayer, layer: &Layer, persi
}, },
LayoutGroup::Row { LayoutGroup::Row {
widgets: { widgets: {
let tooltip = let tooltip = "
"Amplification of the text prompt's influence over the outcome. Lower values are more creative and exploratory. Higher values are more literal and uninspired.".to_string(); Amplification of the text prompt's influence over the outcome. At 0, the prompt is entirely ignored.\n\
\n\
Lower values are more creative and exploratory. Higher values are more literal and uninspired, but may be lower quality.\n\
\n\
This parameter is otherwise known as CFG (classifier-free guidance) scale.
"
.trim()
.to_string();
vec![ vec![
WidgetHolder::new(Widget::TextLabel(TextLabel { WidgetHolder::new(Widget::TextLabel(TextLabel {
value: "Text Rigidness".into(), value: "Text Literalness".into(),
tooltip: tooltip.to_string(), tooltip: tooltip.to_string(),
..Default::default() ..Default::default()
})), })),

View File

@ -71,11 +71,15 @@ pub enum ImaginateSamplingMethod {
Heun, Heun,
DPM2, DPM2,
DPM2A, DPM2A,
DPMPlusPlus2sA,
DPMPlusPlus2m,
DPMFast, DPMFast,
DPMAdaptive, DPMAdaptive,
LMSKarras, LMSKarras,
DPM2Karras, DPM2Karras,
DPM2AKarras, DPM2AKarras,
DPMPlusPlus2sAKarras,
DPMPlusPlus2mKarras,
DDIM, DDIM,
PLMS, PLMS,
} }
@ -89,17 +93,21 @@ impl ImaginateSamplingMethod {
ImaginateSamplingMethod::Heun => "Heun", ImaginateSamplingMethod::Heun => "Heun",
ImaginateSamplingMethod::DPM2 => "DPM2", ImaginateSamplingMethod::DPM2 => "DPM2",
ImaginateSamplingMethod::DPM2A => "DPM2 a", ImaginateSamplingMethod::DPM2A => "DPM2 a",
ImaginateSamplingMethod::DPMPlusPlus2sA => "DPM++ 2S a",
ImaginateSamplingMethod::DPMPlusPlus2m => "DPM++ 2M",
ImaginateSamplingMethod::DPMFast => "DPM fast", ImaginateSamplingMethod::DPMFast => "DPM fast",
ImaginateSamplingMethod::DPMAdaptive => "DPM adaptive", ImaginateSamplingMethod::DPMAdaptive => "DPM adaptive",
ImaginateSamplingMethod::LMSKarras => "LMS Karras", ImaginateSamplingMethod::LMSKarras => "LMS Karras",
ImaginateSamplingMethod::DPM2Karras => "DPM2 Karras", ImaginateSamplingMethod::DPM2Karras => "DPM2 Karras",
ImaginateSamplingMethod::DPM2AKarras => "DPM2 a Karras", ImaginateSamplingMethod::DPM2AKarras => "DPM2 a Karras",
ImaginateSamplingMethod::DPMPlusPlus2sAKarras => "DPM++ 2S a Karras",
ImaginateSamplingMethod::DPMPlusPlus2mKarras => "DPM++ 2M Karras",
ImaginateSamplingMethod::DDIM => "DDIM", ImaginateSamplingMethod::DDIM => "DDIM",
ImaginateSamplingMethod::PLMS => "PLMS", ImaginateSamplingMethod::PLMS => "PLMS",
} }
} }
pub fn list() -> [ImaginateSamplingMethod; 13] { pub fn list() -> [ImaginateSamplingMethod; 17] {
[ [
ImaginateSamplingMethod::EulerA, ImaginateSamplingMethod::EulerA,
ImaginateSamplingMethod::Euler, ImaginateSamplingMethod::Euler,
@ -107,11 +115,15 @@ impl ImaginateSamplingMethod {
ImaginateSamplingMethod::Heun, ImaginateSamplingMethod::Heun,
ImaginateSamplingMethod::DPM2, ImaginateSamplingMethod::DPM2,
ImaginateSamplingMethod::DPM2A, ImaginateSamplingMethod::DPM2A,
ImaginateSamplingMethod::DPMPlusPlus2sA,
ImaginateSamplingMethod::DPMPlusPlus2m,
ImaginateSamplingMethod::DPMFast, ImaginateSamplingMethod::DPMFast,
ImaginateSamplingMethod::DPMAdaptive, ImaginateSamplingMethod::DPMAdaptive,
ImaginateSamplingMethod::LMSKarras, ImaginateSamplingMethod::LMSKarras,
ImaginateSamplingMethod::DPM2Karras, ImaginateSamplingMethod::DPM2Karras,
ImaginateSamplingMethod::DPM2AKarras, ImaginateSamplingMethod::DPM2AKarras,
ImaginateSamplingMethod::DPMPlusPlus2sAKarras,
ImaginateSamplingMethod::DPMPlusPlus2mKarras,
ImaginateSamplingMethod::DDIM, ImaginateSamplingMethod::DDIM,
ImaginateSamplingMethod::PLMS, ImaginateSamplingMethod::PLMS,
] ]
@ -127,11 +139,15 @@ impl std::fmt::Display for ImaginateSamplingMethod {
ImaginateSamplingMethod::Heun => write!(f, "Heun"), ImaginateSamplingMethod::Heun => write!(f, "Heun"),
ImaginateSamplingMethod::DPM2 => write!(f, "DPM2"), ImaginateSamplingMethod::DPM2 => write!(f, "DPM2"),
ImaginateSamplingMethod::DPM2A => write!(f, "DPM2 A"), ImaginateSamplingMethod::DPM2A => write!(f, "DPM2 A"),
ImaginateSamplingMethod::DPMPlusPlus2sA => write!(f, "DPM++ 2S a"),
ImaginateSamplingMethod::DPMPlusPlus2m => write!(f, "DPM++ 2M"),
ImaginateSamplingMethod::DPMFast => write!(f, "DPM Fast"), ImaginateSamplingMethod::DPMFast => write!(f, "DPM Fast"),
ImaginateSamplingMethod::DPMAdaptive => write!(f, "DPM Adaptive"), ImaginateSamplingMethod::DPMAdaptive => write!(f, "DPM Adaptive"),
ImaginateSamplingMethod::LMSKarras => write!(f, "LMS Karras"), ImaginateSamplingMethod::LMSKarras => write!(f, "LMS Karras"),
ImaginateSamplingMethod::DPM2Karras => write!(f, "DPM2 Karras"), ImaginateSamplingMethod::DPM2Karras => write!(f, "DPM2 Karras"),
ImaginateSamplingMethod::DPM2AKarras => write!(f, "DPM2 A Karras"), ImaginateSamplingMethod::DPM2AKarras => write!(f, "DPM2 A Karras"),
ImaginateSamplingMethod::DPMPlusPlus2sAKarras => write!(f, "DPM++ 2S a Karras"),
ImaginateSamplingMethod::DPMPlusPlus2mKarras => write!(f, "DPM++ 2M Karras"),
ImaginateSamplingMethod::DDIM => write!(f, "DDIM"), ImaginateSamplingMethod::DDIM => write!(f, "DDIM"),
ImaginateSamplingMethod::PLMS => write!(f, "PLMS"), ImaginateSamplingMethod::PLMS => write!(f, "PLMS"),
} }