fix: Add Depth Anything V2 as a new option

It is also now the default in the UI replacing Depth Anything V1 small
This commit is contained in:
blessedcoolant 2024-07-31 23:29:43 +05:30
parent 95dde802ea
commit 13fb2d1f49
7 changed files with 282 additions and 145 deletions

View File

@ -593,11 +593,12 @@ class ColorMapImageProcessorInvocation(ImageProcessorInvocation):
return color_map return color_map
DEPTH_ANYTHING_MODEL_SIZES = Literal["large", "base", "small"] DEPTH_ANYTHING_MODEL_SIZES = Literal["large", "base", "small", "small_v2"]
DEPTH_ANYTHING_MODELS = { DEPTH_ANYTHING_MODELS = {
"large": "LiheYoung/depth-anything-large-hf", "large": "LiheYoung/depth-anything-large-hf",
"base": "LiheYoung/depth-anything-base-hf", "base": "LiheYoung/depth-anything-base-hf",
"small": "depth-anything/Depth-Anything-V2-Small-hf", "small": "LiheYoung/depth-anything-small-hf",
"small_v2": "depth-anything/Depth-Anything-V2-Small-hf",
} }

View File

@ -200,6 +200,7 @@
"delete": "Delete", "delete": "Delete",
"depthAnything": "Depth Anything", "depthAnything": "Depth Anything",
"depthAnythingDescription": "Depth map generation using the Depth Anything technique", "depthAnythingDescription": "Depth map generation using the Depth Anything technique",
"depthAnythingSmallV2": "Small V2",
"depthMidas": "Depth (Midas)", "depthMidas": "Depth (Midas)",
"depthMidasDescription": "Depth map generation using Midas", "depthMidasDescription": "Depth map generation using Midas",
"depthZoe": "Depth (Zoe)", "depthZoe": "Depth (Zoe)",

View File

@ -45,6 +45,7 @@ const DepthAnythingProcessor = (props: Props) => {
{ label: t('controlnet.small'), value: 'small' }, { label: t('controlnet.small'), value: 'small' },
{ label: t('controlnet.base'), value: 'base' }, { label: t('controlnet.base'), value: 'base' },
{ label: t('controlnet.large'), value: 'large' }, { label: t('controlnet.large'), value: 'large' },
{ label: t('controlnet.depthAnythingSmallV2'), value: 'small_v2' },
], ],
[t] [t]
); );

View File

@ -84,7 +84,7 @@ export type RequiredDepthAnythingImageProcessorInvocation = O.Required<
'type' | 'model_size' | 'resolution' | 'offload' 'type' | 'model_size' | 'resolution' | 'offload'
>; >;
const zDepthAnythingModelSize = z.enum(['large', 'base', 'small']); const zDepthAnythingModelSize = z.enum(['large', 'base', 'small', 'small_v2']);
export type DepthAnythingModelSize = z.infer<typeof zDepthAnythingModelSize>; export type DepthAnythingModelSize = z.infer<typeof zDepthAnythingModelSize>;
export const isDepthAnythingModelSize = (v: unknown): v is DepthAnythingModelSize => export const isDepthAnythingModelSize = (v: unknown): v is DepthAnythingModelSize =>
zDepthAnythingModelSize.safeParse(v).success; zDepthAnythingModelSize.safeParse(v).success;

View File

@ -24,6 +24,7 @@ export const DepthAnythingProcessor = memo(({ onChange, config }: Props) => {
const options: { label: string; value: DepthAnythingModelSize }[] = useMemo( const options: { label: string; value: DepthAnythingModelSize }[] = useMemo(
() => [ () => [
{ label: t('controlnet.depthAnythingSmallV2'), value: 'small_v2' },
{ label: t('controlnet.small'), value: 'small' }, { label: t('controlnet.small'), value: 'small' },
{ label: t('controlnet.base'), value: 'base' }, { label: t('controlnet.base'), value: 'base' },
{ label: t('controlnet.large'), value: 'large' }, { label: t('controlnet.large'), value: 'large' },

View File

@ -36,7 +36,7 @@ const zContentShuffleProcessorConfig = z.object({
}); });
export type ContentShuffleProcessorConfig = z.infer<typeof zContentShuffleProcessorConfig>; export type ContentShuffleProcessorConfig = z.infer<typeof zContentShuffleProcessorConfig>;
const zDepthAnythingModelSize = z.enum(['large', 'base', 'small']); const zDepthAnythingModelSize = z.enum(['large', 'base', 'small', 'small_v2']);
export type DepthAnythingModelSize = z.infer<typeof zDepthAnythingModelSize>; export type DepthAnythingModelSize = z.infer<typeof zDepthAnythingModelSize>;
export const isDepthAnythingModelSize = (v: unknown): v is DepthAnythingModelSize => export const isDepthAnythingModelSize = (v: unknown): v is DepthAnythingModelSize =>
zDepthAnythingModelSize.safeParse(v).success; zDepthAnythingModelSize.safeParse(v).success;
@ -298,7 +298,7 @@ export const CA_PROCESSOR_DATA: CAProcessorsData = {
buildDefaults: () => ({ buildDefaults: () => ({
id: 'depth_anything_image_processor', id: 'depth_anything_image_processor',
type: 'depth_anything_image_processor', type: 'depth_anything_image_processor',
model_size: 'small', model_size: 'small_v2',
}), }),
buildNode: (image, config) => ({ buildNode: (image, config) => ({
...config, ...config,

File diff suppressed because one or more lines are too long