sd_app() launches an interactive Shiny application
for image generation.
std::thread: the
UI remains responsive during image generation, with a live progress bar
and ETA display.sd_generate_async() — launches generation in a
background C++ thread.sd_generate_poll() — checks completion status (atomic
flags).sd_generate_result() — retrieves results after
completion.step,
steps, pct, elapsed,
eta_sec), read by Shiny via later::later()
polling.Rprintf,
R_CheckUserInterrupt) are suppressed in the worker thread
to prevent stack corruption.tools/patch_sd_sources.sh rewritten: all
sed calls replaced with perl -pi -e for
cross-platform compatibility (macOS BSD sed + Linux GNU sed).undefined symbol: ggml_backend_vk_get_device_count load
error on CRAN Fedora (clang and gcc). Root cause: ggmlR’s shared library
(ggmlR.so) was built with Vulkan, but the static library
(libggml.a) shipped without Vulkan objects. The old
configure relied on ggml_vulkan_status() which
queries ggmlR.so — it reported “AVAILABLE”, causing sd2R to
compile with -DSD_USE_VULKAN against a
libggml.a that lacked the symbols. Now
configure checks nm libggml.a for a defined
(T) symbol directly, ignoring the runtime ggmlR check
entirely.device_layout parameter in sd_ctx():
distribute sub-models across multiple Vulkan GPUs without separate
processes.
"mono" — all on one GPU (default,
backward-compatible)."split_encoders" — CLIP/T5 on GPU 1, diffusion + VAE on
GPU 0."split_vae" — CLIP/T5 + VAE on GPU 1, diffusion on GPU
0."encoders_cpu" — text encoders on CPU, diffusion + VAE
on GPU.diffusion_gpu, clip_gpu,
vae_gpu integer arguments for manual device assignment
(override presets).sd_profile_start() / sd_profile_stop() —
control event capture.sd_profile_get() — raw event data frame.sd_profile_summary() — formatted summary with durations
and percentages.text_encode (with
text_encode_clip and text_encode_t5
sub-stages), sampling, vae_decode,
vae_encode, model loading.print.sd_profile().sd_pipeline() / sd_node() — sequential
graph-based pipeline. Node types: "txt2img",
"img2img", "upscale",
"save".sd_run_pipeline(pipeline, ctx) — execute pipeline with
a single context.sd_save_pipeline() / sd_load_pipeline() —
JSON serialization.diffusion_model_path,
vae_path, clip_l_path, t5xxl_path
in sd_ctx().cfg_scale auto-defaults to 1.0 for Flux
(guidance-distilled models).sd_generate() now defaults
width/height to init image dimensions when not
specified explicitly.configure.win rewritten to use template approach
(Makevars.win.in → Makevars.win), matching
ggmlR pattern.sd_generate() Entry Pointsd_generate() — single function for all generation
modes. Automatically selects the optimal strategy (direct, tiled
sampling, or highres fix) based on output resolution and available
VRAM.vram_gb parameter in sd_ctx(): set once,
auto-routing handles the rest.sd_generate_multi_gpu() — parallel generation
across multiple Vulkan GPUs via callr, one process per GPU,
with progress reporting.sd_highres_fix() — classic two-pass highres
pipeline: txt2img at native resolution → upscale → tiled img2img
refinement.hr_strength parameter (default 0.4) controls refinement
intensity.sd_img2img_tiled() — img2img with MultiDiffusion
tiled sampling for large images.vae_mode parameter: "normal",
"tiled", "auto" (default). Auto-tiles when
image area exceeds threshold.vae_tile_rel_x / vae_tile_rel_y for
adaptive tile sizing.sd_txt2img_highres() — patch-based generation for
2K, 4K+ images.model_type parameter in sd_ctx():
"sd1", "sd2", "sdxl",
"flux", "sd3".sd_txt2img_tiled() — tiled diffusion sampling at
any resolution. VRAM bounded by tile size, not output resolution.sd_ctx() — create model context.sd_generate() — unified entry point.sd_txt2img(), sd_img2img() — low-level
generation.sd_save_image(), sd_system_info().
Need a high-speed mirror for your open-source project?
Contact our mirror admin team at info@clientvps.com.
This archive is provided as a free public service to the community.
Proudly supported by infrastructure from VPSPulse , RxServers , BuyNumber , UnitVPS , OffshoreName and secure payment technology by ArionPay.