mirror of
https://github.com/willmiao/ComfyUI-Lora-Manager.git
synced 2026-08-20 20:41:26 -03:00
Compare commits
3 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 8bee8f4069 | |||
| 817fe21b3e | |||
| 3494037d20 |
@@ -2218,6 +2218,31 @@ class RecipeManagementHandler:
|
|||||||
"Failed to download image for recipe: %s", exc
|
"Failed to download image for recipe: %s", exc
|
||||||
)
|
)
|
||||||
|
|
||||||
|
# Fallback: try to locate a custom image on disk using model_hash + image id
|
||||||
|
if image_bytes is None:
|
||||||
|
image_id = image_data.get("id") or ""
|
||||||
|
if image_id and model_hash:
|
||||||
|
from ...utils.example_images_paths import get_model_folder
|
||||||
|
model_folder = get_model_folder(model_hash)
|
||||||
|
if model_folder and os.path.exists(model_folder):
|
||||||
|
for fname in os.listdir(model_folder):
|
||||||
|
if f"custom_{image_id}" in fname:
|
||||||
|
ext = os.path.splitext(fname)[1].lower()
|
||||||
|
if ext not in (".jpg", ".jpeg", ".png", ".webp", ".gif"):
|
||||||
|
continue
|
||||||
|
fpath = os.path.join(model_folder, fname)
|
||||||
|
if os.path.isfile(fpath):
|
||||||
|
try:
|
||||||
|
with open(fpath, "rb") as f:
|
||||||
|
image_bytes = f.read()
|
||||||
|
extension = ext
|
||||||
|
except Exception as exc:
|
||||||
|
self._logger.warning(
|
||||||
|
"Failed to read custom image file %s: %s",
|
||||||
|
fpath, exc,
|
||||||
|
)
|
||||||
|
break
|
||||||
|
|
||||||
prompt = (
|
prompt = (
|
||||||
(parsed.get("gen_params") or {}).get("prompt") or ""
|
(parsed.get("gen_params") or {}).get("prompt") or ""
|
||||||
)
|
)
|
||||||
|
|||||||
@@ -201,6 +201,13 @@ class Aria2Downloader:
|
|||||||
"auto-file-renaming": "false",
|
"auto-file-renaming": "false",
|
||||||
"file-allocation": "none",
|
"file-allocation": "none",
|
||||||
}
|
}
|
||||||
|
|
||||||
|
# Pass proxy to aria2 so the actual file transfer goes through the
|
||||||
|
# same proxy used by the aiohttp-based URL resolution step above.
|
||||||
|
downloader = await get_downloader()
|
||||||
|
if downloader.proxy_url:
|
||||||
|
options["all-proxy"] = downloader.proxy_url
|
||||||
|
|
||||||
if request_headers:
|
if request_headers:
|
||||||
options["header"] = [
|
options["header"] = [
|
||||||
f"{key}: {value}" for key, value in request_headers.items()
|
f"{key}: {value}" for key, value in request_headers.items()
|
||||||
|
|||||||
@@ -586,6 +586,7 @@ export function initMediaControlHandlers(container) {
|
|||||||
const imageMetaRaw = this.dataset.imageMeta;
|
const imageMetaRaw = this.dataset.imageMeta;
|
||||||
const imageUrl = this.dataset.imageUrl;
|
const imageUrl = this.dataset.imageUrl;
|
||||||
const imageNsfw = this.dataset.imageNsfw;
|
const imageNsfw = this.dataset.imageNsfw;
|
||||||
|
const imgId = this.dataset.imgId || '';
|
||||||
const localPath = this.dataset.localPath || '';
|
const localPath = this.dataset.localPath || '';
|
||||||
const showcaseSection = this.closest('.showcase-section');
|
const showcaseSection = this.closest('.showcase-section');
|
||||||
const modelHash = showcaseSection ? showcaseSection.dataset.modelHash : '';
|
const modelHash = showcaseSection ? showcaseSection.dataset.modelHash : '';
|
||||||
@@ -613,6 +614,7 @@ export function initMediaControlHandlers(container) {
|
|||||||
meta: imageMeta,
|
meta: imageMeta,
|
||||||
url: imageUrl,
|
url: imageUrl,
|
||||||
nsfwLevel: imageNsfw ? parseInt(imageNsfw, 10) : undefined,
|
nsfwLevel: imageNsfw ? parseInt(imageNsfw, 10) : undefined,
|
||||||
|
id: imgId || undefined,
|
||||||
},
|
},
|
||||||
model_hash: modelHash,
|
model_hash: modelHash,
|
||||||
model_name: modelName || modelHash,
|
model_name: modelName || modelHash,
|
||||||
|
|||||||
@@ -210,8 +210,8 @@ function renderMediaItem(img, index, exampleFiles) {
|
|||||||
const model = meta.Model || '';
|
const model = meta.Model || '';
|
||||||
const steps = meta.steps || '';
|
const steps = meta.steps || '';
|
||||||
const sampler = meta.sampler || '';
|
const sampler = meta.sampler || '';
|
||||||
const cfgScale = meta.cfgScale || '';
|
const cfgScale = meta.cfg_scale || meta.cfgScale || '';
|
||||||
const clipSkip = meta.clipSkip || '';
|
const clipSkip = meta.clip_skip || meta.clipSkip || '';
|
||||||
|
|
||||||
// Check if we have any meaningful generation parameters
|
// Check if we have any meaningful generation parameters
|
||||||
const hasParams = seed || model || steps || sampler || cfgScale || clipSkip;
|
const hasParams = seed || model || steps || sampler || cfgScale || clipSkip;
|
||||||
@@ -242,6 +242,7 @@ function renderMediaItem(img, index, exampleFiles) {
|
|||||||
data-image-url="${img.url || ''}"
|
data-image-url="${img.url || ''}"
|
||||||
data-image-nsfw="${img.nsfwLevel ?? ''}"
|
data-image-nsfw="${img.nsfwLevel ?? ''}"
|
||||||
data-image-id="${cdnImageId}"
|
data-image-id="${cdnImageId}"
|
||||||
|
data-img-id="${img.id || ''}"
|
||||||
data-local-path="${localFile ? localFile.path : ''}">
|
data-local-path="${localFile ? localFile.path : ''}">
|
||||||
<i class="fas fa-book-open"></i>
|
<i class="fas fa-book-open"></i>
|
||||||
</button>
|
</button>
|
||||||
|
|||||||
Reference in New Issue
Block a user