Table of Contents

AI Resource Identifier (AIR)

Uniform Resource Naming system for identifying AI resources across platforms (Civitai, Hugging Face, etc.).

Format

urn:air:{ecosystem}:{type}:{source}:{id}@{version?}:{layer?}.?{format?}

Required: urn, air, ecosystem, type, source, id

Optional: version, layer, format

Examples

urn:air:sd1:model:civitai:2421@43533
urn:air:sdxl:lora:civitai:328553@368189
urn:air:dalle:model:openai:dalle@2
urn:air:model:huggingface:stabilityai/sdxl-vae

Usage

Parse:

var air = AirIdentifier.Parse("urn:air:sdxl:lora:civitai:328553@368189");

Console.WriteLine($"Ecosystem: {air.Ecosystem}");
Console.WriteLine($"Asset Type: {air.AssetType}");
Console.WriteLine($"Source: {air.Source}");
Console.WriteLine($"Model ID: {air.ModelId}");
Console.WriteLine($"Version ID: {air.VersionId}");

Create:

var airIdentifier = new AirIdentifier(
    AirEcosystem.StableDiffusionXl,
    AirAssetType.Lora,
    AirSource.Civitai,
    328553,
    368189);

Console.WriteLine(airIdentifier.ToString());

Builder:

var builtAir = new AirBuilder()
    .WithEcosystem(AirEcosystem.StableDiffusionXl)
    .WithAssetType(AirAssetType.Lora)
    .WithSource(AirSource.HuggingFace)
    .WithModelId(328553)
    .WithVersionId(368189)
    .Build();

Console.WriteLine(builtAir.ToString());

Validate:

if (AirIdentifier.TryParse("urn:air:sdxl:lora:civitai:328553@368189", out var validAir))
{
    Console.WriteLine($"Valid AIR: {validAir}");
}
else
{
    Console.WriteLine("Invalid AIR format");
}

Supported Sources

  • AirSource.Civitai
  • AirSource.HuggingFace
  • AirSource.OpenAi
  • AirSource.Leonardo

Enabling AIR on Civitai

  1. Go to Account Settings
  2. Find Browsing settings
  3. Toggle AI Resource Identifier

Next Steps