diff --git a/editor/src/messages/portfolio/document/properties_panel/utility_functions.rs b/editor/src/messages/portfolio/document/properties_panel/utility_functions.rs index 650d22f2..e9a06c57 100644 --- a/editor/src/messages/portfolio/document/properties_panel/utility_functions.rs +++ b/editor/src/messages/portfolio/document/properties_panel/utility_functions.rs @@ -855,7 +855,14 @@ fn node_section_imaginate(imaginate_layer: &ImaginateLayer, layer: &Layer, persi }, LayoutGroup::Row { 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![ WidgetHolder::new(Widget::TextLabel(TextLabel { value: "Image Creativity".into(), @@ -889,12 +896,19 @@ fn node_section_imaginate(imaginate_layer: &ImaginateLayer, layer: &Layer, persi }, LayoutGroup::Row { widgets: { - 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(); + let tooltip = " + 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![ WidgetHolder::new(Widget::TextLabel(TextLabel { - value: "Text Rigidness".into(), + value: "Text Literalness".into(), tooltip: tooltip.to_string(), ..Default::default() })), diff --git a/graphene/src/layers/imaginate_layer.rs b/graphene/src/layers/imaginate_layer.rs index e5e2440d..6d55f15c 100644 --- a/graphene/src/layers/imaginate_layer.rs +++ b/graphene/src/layers/imaginate_layer.rs @@ -71,11 +71,15 @@ pub enum ImaginateSamplingMethod { Heun, DPM2, DPM2A, + DPMPlusPlus2sA, + DPMPlusPlus2m, DPMFast, DPMAdaptive, LMSKarras, DPM2Karras, DPM2AKarras, + DPMPlusPlus2sAKarras, + DPMPlusPlus2mKarras, DDIM, PLMS, } @@ -89,17 +93,21 @@ impl ImaginateSamplingMethod { ImaginateSamplingMethod::Heun => "Heun", ImaginateSamplingMethod::DPM2 => "DPM2", ImaginateSamplingMethod::DPM2A => "DPM2 a", + ImaginateSamplingMethod::DPMPlusPlus2sA => "DPM++ 2S a", + ImaginateSamplingMethod::DPMPlusPlus2m => "DPM++ 2M", ImaginateSamplingMethod::DPMFast => "DPM fast", ImaginateSamplingMethod::DPMAdaptive => "DPM adaptive", ImaginateSamplingMethod::LMSKarras => "LMS Karras", ImaginateSamplingMethod::DPM2Karras => "DPM2 Karras", ImaginateSamplingMethod::DPM2AKarras => "DPM2 a Karras", + ImaginateSamplingMethod::DPMPlusPlus2sAKarras => "DPM++ 2S a Karras", + ImaginateSamplingMethod::DPMPlusPlus2mKarras => "DPM++ 2M Karras", ImaginateSamplingMethod::DDIM => "DDIM", ImaginateSamplingMethod::PLMS => "PLMS", } } - pub fn list() -> [ImaginateSamplingMethod; 13] { + pub fn list() -> [ImaginateSamplingMethod; 17] { [ ImaginateSamplingMethod::EulerA, ImaginateSamplingMethod::Euler, @@ -107,11 +115,15 @@ impl ImaginateSamplingMethod { ImaginateSamplingMethod::Heun, ImaginateSamplingMethod::DPM2, ImaginateSamplingMethod::DPM2A, + ImaginateSamplingMethod::DPMPlusPlus2sA, + ImaginateSamplingMethod::DPMPlusPlus2m, ImaginateSamplingMethod::DPMFast, ImaginateSamplingMethod::DPMAdaptive, ImaginateSamplingMethod::LMSKarras, ImaginateSamplingMethod::DPM2Karras, ImaginateSamplingMethod::DPM2AKarras, + ImaginateSamplingMethod::DPMPlusPlus2sAKarras, + ImaginateSamplingMethod::DPMPlusPlus2mKarras, ImaginateSamplingMethod::DDIM, ImaginateSamplingMethod::PLMS, ] @@ -127,11 +139,15 @@ impl std::fmt::Display for ImaginateSamplingMethod { ImaginateSamplingMethod::Heun => write!(f, "Heun"), ImaginateSamplingMethod::DPM2 => write!(f, "DPM2"), 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::DPMAdaptive => write!(f, "DPM Adaptive"), ImaginateSamplingMethod::LMSKarras => write!(f, "LMS Karras"), ImaginateSamplingMethod::DPM2Karras => write!(f, "DPM2 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::PLMS => write!(f, "PLMS"), }