Refactor environment variable handling in map generation based on download status
This commit is contained in:
@@ -95,6 +95,17 @@ fn unix_timestamp_millis() -> u128 {
|
|||||||
.unwrap_or(0)
|
.unwrap_or(0)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fn env_truthy(name: &str) -> bool {
|
||||||
|
std::env::var(name)
|
||||||
|
.map(|value| {
|
||||||
|
matches!(
|
||||||
|
value.trim().to_ascii_lowercase().as_str(),
|
||||||
|
"1" | "true" | "yes" | "on"
|
||||||
|
)
|
||||||
|
})
|
||||||
|
.unwrap_or(false)
|
||||||
|
}
|
||||||
|
|
||||||
fn log_slug(prompt: &str) -> String {
|
fn log_slug(prompt: &str) -> String {
|
||||||
let mut slug = String::new();
|
let mut slug = String::new();
|
||||||
let mut last_was_separator = false;
|
let mut last_was_separator = false;
|
||||||
@@ -377,6 +388,7 @@ async fn generate_map(
|
|||||||
let vae_model = cfg
|
let vae_model = cfg
|
||||||
.vae_model
|
.vae_model
|
||||||
.unwrap_or_else(|| "madebyollin/sdxl-vae-fp16-fix".to_string());
|
.unwrap_or_else(|| "madebyollin/sdxl-vae-fp16-fix".to_string());
|
||||||
|
let allow_downloads = env_truthy("SKYMAP_ALLOW_DOWNLOADS");
|
||||||
let active_generation_pid = state.active_generation_pid.clone();
|
let active_generation_pid = state.active_generation_pid.clone();
|
||||||
let cancel_generation_requested = state.cancel_generation_requested.clone();
|
let cancel_generation_requested = state.cancel_generation_requested.clone();
|
||||||
let window = window.clone();
|
let window = window.clone();
|
||||||
@@ -451,10 +463,14 @@ async fn generate_map(
|
|||||||
&mut log_file,
|
&mut log_file,
|
||||||
format!(" program: {}", python.to_string_lossy()),
|
format!(" program: {}", python.to_string_lossy()),
|
||||||
);
|
);
|
||||||
write_log_line(
|
if allow_downloads {
|
||||||
&mut log_file,
|
write_log_line(&mut log_file, " env: PYTHONUNBUFFERED=1 SKYMAP_ALLOW_DOWNLOADS=1");
|
||||||
" env: PYTHONUNBUFFERED=1 HF_HUB_OFFLINE=1 TRANSFORMERS_OFFLINE=1 DIFFUSERS_OFFLINE=1",
|
} else {
|
||||||
);
|
write_log_line(
|
||||||
|
&mut log_file,
|
||||||
|
" env: PYTHONUNBUFFERED=1 HF_HUB_OFFLINE=1 TRANSFORMERS_OFFLINE=1 DIFFUSERS_OFFLINE=1",
|
||||||
|
);
|
||||||
|
}
|
||||||
for arg in &args {
|
for arg in &args {
|
||||||
write_log_line(&mut log_file, format!(" arg: {arg}"));
|
write_log_line(&mut log_file, format!(" arg: {arg}"));
|
||||||
}
|
}
|
||||||
@@ -463,11 +479,15 @@ async fn generate_map(
|
|||||||
let mut cmd = Command::new(&python);
|
let mut cmd = Command::new(&python);
|
||||||
cmd.current_dir(&root)
|
cmd.current_dir(&root)
|
||||||
.env("PYTHONUNBUFFERED", "1")
|
.env("PYTHONUNBUFFERED", "1")
|
||||||
.env("HF_HUB_OFFLINE", "1")
|
|
||||||
.env("TRANSFORMERS_OFFLINE", "1")
|
|
||||||
.env("DIFFUSERS_OFFLINE", "1")
|
|
||||||
.stdout(Stdio::piped())
|
.stdout(Stdio::piped())
|
||||||
.stderr(Stdio::piped());
|
.stderr(Stdio::piped());
|
||||||
|
if allow_downloads {
|
||||||
|
cmd.env("SKYMAP_ALLOW_DOWNLOADS", "1");
|
||||||
|
} else {
|
||||||
|
cmd.env("HF_HUB_OFFLINE", "1")
|
||||||
|
.env("TRANSFORMERS_OFFLINE", "1")
|
||||||
|
.env("DIFFUSERS_OFFLINE", "1");
|
||||||
|
}
|
||||||
for arg in &args {
|
for arg in &args {
|
||||||
cmd.arg(arg);
|
cmd.arg(arg);
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user