Merge 3cc49f449c2ff7f160961ec676beaf7364dfdbc4 into 5c7625c425f12330eec34870511c31667d9fe349

This commit is contained in:
Siavosh Kasravi 2025-04-02 12:12:44 +08:00 committed by GitHub
commit 1ef08d8f94
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
5 changed files with 24 additions and 6 deletions

View File

@ -3,7 +3,7 @@
Does not require technical knowledge, does not require pre-installed software. 1-click install, powerful features, friendly community. Does not require technical knowledge, does not require pre-installed software. 1-click install, powerful features, friendly community.
️‍🔥🎉 **New!** Support for SDXL, ControlNet, multiple LoRA files, embeddings (and a lot more) have been added! ️‍🔥🎉 **New!** Support for Flux has been added in the beta branch (v3.5 engine)!
[Installation guide](#installation) | [Troubleshooting guide](https://github.com/easydiffusion/easydiffusion/wiki/Troubleshooting) | [User guide](https://github.com/easydiffusion/easydiffusion/wiki) | <sub>[![Discord Server](https://img.shields.io/discord/1014774730907209781?label=Discord)](https://discord.com/invite/u9yhsFmEkB)</sub> <sup>(for support queries, and development discussions)</sup> [Installation guide](#installation) | [Troubleshooting guide](https://github.com/easydiffusion/easydiffusion/wiki/Troubleshooting) | [User guide](https://github.com/easydiffusion/easydiffusion/wiki) | <sub>[![Discord Server](https://img.shields.io/discord/1014774730907209781?label=Discord)](https://discord.com/invite/u9yhsFmEkB)</sub> <sup>(for support queries, and development discussions)</sup>
@ -21,15 +21,15 @@ Click the download button for your operating system:
</p> </p>
**Hardware requirements:** **Hardware requirements:**
- **Windows:** NVIDIA graphics card¹ (minimum 2 GB RAM), or run on your CPU. - **Windows:** NVIDIA¹ or AMD graphics card (minimum 2 GB RAM), or run on your CPU.
- **Linux:** NVIDIA¹ or AMD² graphics card (minimum 2 GB RAM), or run on your CPU. - **Linux:** NVIDIA¹ or AMD² graphics card (minimum 2 GB RAM), or run on your CPU.
- **Mac:** M1 or M2, or run on your CPU. - **Mac:** M1/M2/M3/M4 or AMD graphics card (Intel Mac), or run on your CPU.
- Minimum 8 GB of system RAM. - Minimum 8 GB of system RAM.
- Atleast 25 GB of space on the hard disk. - Atleast 25 GB of space on the hard disk.
¹) [CUDA Compute capability](https://en.wikipedia.org/wiki/CUDA#GPUs_supported) level of 3.7 or higher required. ¹) [CUDA Compute capability](https://en.wikipedia.org/wiki/CUDA#GPUs_supported) level of 3.7 or higher required.
²) ROCm 5.2 support required. ²) ROCm 5.2 (or newer) support required.
The installer will take care of whatever is needed. If you face any problems, you can join the friendly [Discord community](https://discord.com/invite/u9yhsFmEkB) and ask for assistance. The installer will take care of whatever is needed. If you face any problems, you can join the friendly [Discord community](https://discord.com/invite/u9yhsFmEkB) and ask for assistance.

View File

@ -162,7 +162,7 @@
<div><table> <div><table>
<tr><b class="settings-subheader">Image Settings</b></tr> <tr><b class="settings-subheader">Image Settings</b></tr>
<tr class="pl-5"><td><label for="seed">Seed:</label></td><td><input id="seed" name="seed" size="10" value="0" onkeypress="preventNonNumericalInput(event)" inputmode="numeric"> <input id="random_seed" name="random_seed" type="checkbox" checked><label for="random_seed">Random</label></td></tr> <tr class="pl-5"><td><label for="seed">Seed:</label></td><td><input id="seed" name="seed" size="10" value="0" onkeypress="preventNonNumericalInput(event)" inputmode="numeric"> <input id="random_seed" name="random_seed" type="checkbox" checked><label for="random_seed">Random</label></td></tr>
<tr class="pl-5"><td><label for="num_outputs_total">Number of Images:</label></td> <tr class="pl-5"><td><label for="num_outputs_total">Count of Images:</label></td>
<td><input id="num_outputs_total" name="num_outputs_total" value="1" type="number" value="1" min="1" step="1" onkeypres"="preventNonNumericalInput(event)" inputmode="numeric"> <td><input id="num_outputs_total" name="num_outputs_total" value="1" type="number" value="1" min="1" step="1" onkeypres"="preventNonNumericalInput(event)" inputmode="numeric">
<label><small>(total)</small></label> <label><small>(total)</small></label>
<input id="num_outputs_parallel" name="num_outputs_parallel" value="1" type="number" value="1" min="1" step="1" onkeypress="preventNonNumericalInput(event)" inputmode="numeric"> <input id="num_outputs_parallel" name="num_outputs_parallel" value="1" type="number" value="1" min="1" step="1" onkeypress="preventNonNumericalInput(event)" inputmode="numeric">

View File

@ -2053,3 +2053,7 @@ div#enlarge-buttons {
padding-top: 6pt; padding-top: 6pt;
color: var(--small-label-color); color: var(--small-label-color);
} }
.imgCount {
width: 42pt;
}

View File

@ -1198,7 +1198,7 @@ function createTask(task) {
} }
taskConfig += `<div class="taskConfigData">${createTaskConfig(task)}</span></div></div>` taskConfig += `<div class="taskConfigData">${createTaskConfig(task)}</span></div></div>`
let imgCount = task.numOutputsTotal
let taskEntry = document.createElement("div") let taskEntry = document.createElement("div")
taskEntry.id = `imageTaskContainer-${Date.now()}` taskEntry.id = `imageTaskContainer-${Date.now()}`
taskEntry.className = "imageTaskContainer" taskEntry.className = "imageTaskContainer"
@ -1207,6 +1207,8 @@ function createTask(task) {
<div class="taskStatusLabel">Enqueued</div> <div class="taskStatusLabel">Enqueued</div>
<button class="secondaryButton stopTask"><i class="fa-solid fa-xmark"></i> Cancel</button> <button class="secondaryButton stopTask"><i class="fa-solid fa-xmark"></i> Cancel</button>
<button class="tertiaryButton useSettings"><i class="fa-solid fa-redo"></i> Use these settings</button> <button class="tertiaryButton useSettings"><i class="fa-solid fa-redo"></i> Use these settings</button>
<label for="count">Count:</label>
<input class="imgCount" type="number" id="imgCount" name="count" min="1" inputmode="numeric" value=${imgCount}>
<div class="preview-prompt"></div> <div class="preview-prompt"></div>
<div class="taskConfig">${taskConfig}</div> <div class="taskConfig">${taskConfig}</div>
<div class="outputMsg"></div> <div class="outputMsg"></div>
@ -1269,6 +1271,16 @@ function createTask(task) {
task["previewPrompt"] = taskEntry.querySelector(".preview-prompt") task["previewPrompt"] = taskEntry.querySelector(".preview-prompt")
task["progressBar"] = taskEntry.querySelector(".progress-bar") task["progressBar"] = taskEntry.querySelector(".progress-bar")
task["stopTask"] = taskEntry.querySelector(".stopTask") task["stopTask"] = taskEntry.querySelector(".stopTask")
task["imgCount"] = taskEntry.querySelector(".imgCount")
task["imgCount"].addEventListener("change", (e) => {
e.stopPropagation()
task.batchCount = e.target.value / (task.numOutputsTotal / task.batchCount)
task.numOutputsTotal = e.target.value
})
task["imgCount"].addEventListener("click", (e) => {
e.stopPropagation(); // Prevent propagation of the click event to the parent
});
task["stopTask"].addEventListener("click", (e) => { task["stopTask"].addEventListener("click", (e) => {
e.stopPropagation() e.stopPropagation()

View File

@ -165,12 +165,14 @@ function getTaskUpdater(task, reqBody, outputContainer) {
task["taskStatusLabel"].innerText = "Waiting" task["taskStatusLabel"].innerText = "Waiting"
task["taskStatusLabel"].classList.add("waitingTaskLabel") task["taskStatusLabel"].classList.add("waitingTaskLabel")
task["taskStatusLabel"].classList.remove("activeTaskLabel") task["taskStatusLabel"].classList.remove("activeTaskLabel")
task["imgCount"].setAttribute("disabled", true)
break break
case SD.TaskStatus.processing: case SD.TaskStatus.processing:
case SD.TaskStatus.completed: case SD.TaskStatus.completed:
task["taskStatusLabel"].innerText = "Processing" task["taskStatusLabel"].innerText = "Processing"
task["taskStatusLabel"].classList.add("activeTaskLabel") task["taskStatusLabel"].classList.add("activeTaskLabel")
task["taskStatusLabel"].classList.remove("waitingTaskLabel") task["taskStatusLabel"].classList.remove("waitingTaskLabel")
task["imgCount"].setAttribute("disabled", true)
break break
case SD.TaskStatus.stopped: case SD.TaskStatus.stopped:
break break