Skip to content

Commit

Permalink
fix: Misc
Browse files Browse the repository at this point in the history
  • Loading branch information
OmarMWarraich committed Oct 31, 2024
1 parent 2c41c0b commit 766b0e6
Show file tree
Hide file tree
Showing 9 changed files with 72 additions and 93 deletions.
4 changes: 2 additions & 2 deletions app/models/generated_image.rb
Original file line number Diff line number Diff line change
Expand Up @@ -39,15 +39,15 @@ def broadcast_created
def broadcast_to_main_image
broadcast_update_to(
"#{dom_id(user)}_main_image",
partial: "generated_images/display_main_image",
partial: "/generated_images/display_main_image",
locals: {
scroll_to: true,
generated_image: self
},
target: "image_maker"
)
end

def broadcast_to_gallery
broadcast_prepend_to(
"#{dom_id(user)}_gallery",
Expand Down
34 changes: 15 additions & 19 deletions app/models/image_maker.rb
Original file line number Diff line number Diff line change
@@ -1,25 +1,21 @@
# hold the image creation for the form
class ImageMaker
include ActiveModel::Model

attr_accessor :prompt, :negative_prompt, :sd_model, :batch_size, :steps, :cfg_scale
attr_accessor :vae, :sampler_name, :seed, :width, :height, :random_seed, :aspect_ratio
attr_accessor :prompt, :negative_prompt, :sd_model, :steps, :seed, :random_seed
attr_accessor :width, :height, :sampler_name, :style_template, :aspect_ratio

def initialize(attributes = {})
# Default values
@prompt = attributes[:prompt] || ''
@negative_prompt = attributes[:negative_prompt] || ''
@sd_model = attributes[:sd_model] || 'BigGAN-512'
@batch_size = attributes[:batch_size] || 1
@steps = attributes[:steps] || 20
@cfg_scale = attributes[:cfg_scale] || 7.5
@vae = attributes[:vae] || 'default_vae'
@sampler_name = attributes[:sampler_name] || 'Euler '
@seed = attributes[:seed] || -1
@width = attributes[:width] || 512
@height = attributes[:height] || 512
@random_seed = attributes[:random_seed] || 1
@aspect_ratio = attributes[:aspect_ratio] || '1:1'

super(attributes)
def initialize(params = {})
@prompt = params[:prompt] || ""
@negative_prompt = params[:negative_prompt] || ""
@sd_model = params[:sd_model] || "dall-e"
@steps = params[:steps] || 32
@seed = params[:seed] || -1
@random_seed = params[:random_seed] || true
@width = params[:width] || 512
@height = params[:height] || 512
@sampler_name = params[:sampler_name] || "Euler"
@style_template = params[:style_template] || "default"
@aspect_ratio = params[:aspect_ratio] || "1:1" #square
end
end
7 changes: 4 additions & 3 deletions app/models/progress_holder.rb
Original file line number Diff line number Diff line change
Expand Up @@ -20,12 +20,13 @@
#
class ProgressHolder < ApplicationRecord
include ActionView::RecordIdentifier

belongs_to :user

def broadcast_updated(user_id, task_ref, original_prompt, style_template, result)
progress_holder = ProgressHolder.find_or_create_by(task_ref:) do |ph|
ph.user_id = user_id
ph.live_preview_id = result.progress.positive? ? result.id_live_preview : -1
ph.live_preview_id = result.progress.present? && result.progress.positive? ? result.id_live_preview : -1
end

user = User.find(user_id)
Expand All @@ -36,8 +37,8 @@ def broadcast_updated(user_id, task_ref, original_prompt, style_template, result
partial: "txt2_imgs/loading_progress",
locals: {
scroll_to: true,
original_prompt:,
style_template:,
original_prompt: original_prompt,
style_template: style_template,
result: JSON.parse(result.to_json)
},
target: "image_maker"
Expand Down
10 changes: 5 additions & 5 deletions app/views/layouts/_navbar.html.erb
Original file line number Diff line number Diff line change
Expand Up @@ -7,11 +7,11 @@
<div class="collapse navbar-collapse" id="navbarSupportedContent">
<ul class="navbar-nav me-auto w-30 justify-content-between ">
<li class="nav-item mx-4 rounded-4 mb-4 mb-lg-0 w-25 text-center mx-auto mx-lg-4 border border-dark-subtle border-3" style="background-color: var(--bs-success);">
<a class="nav-link active fs-3 px-2 py-2 fw-bold" aria-current="page" href="/">Home</a>
<a class="nav-link fs-4 px-2 py-2 fw-bold <%= 'active' if current_page?(root_path) %>" aria-current="page" href="/">Home</a>
</li>
<li class="nav-item mx-4 mb-4 mb-lg-0 w-25 rounded-4 text-center mx-auto mx-lg-4 border border-dark-subtle border-3" style="background-color: var(--bs-success);">
<div data-controller="dropdown">
<a class="nav-link dropdown-toggle fs-3 px-2 rounded-4 py-2 pe-5 me-5 fw-bold" href="#" role="button" style="background-color: var(--bs-success);"
<a class="nav-link dropdown-toggle fs-4 px-2 rounded-4 py-2 pe-5 me-5 fw-bold" href="#" role="button" style="background-color: var(--bs-success);"
data-action="mouseenter->dropdown#showMenu mouseleave->dropdown#hideMenu"
data-bs-toggle="dropdown" aria-expanded="false"
data-dropdown-target="toggle">
Expand Down Expand Up @@ -63,11 +63,11 @@
</div>
</li>
<li class="nav-item rounded-4 mb-4 mb-lg-0 w-25 text-center mx-auto mx-lg-4 border border-dark-subtle border-3 hover-text-dark focus-bg-warning" style="background-color: var(--bs-success);">
<a class="nav-link px-2 py-1 fs-3 fw-bold hover-text-dark focus-bg-warning" href="/pricing">Pricing</a>
<a class="nav-link px-2 py-2 fs-4 fw-bold hover-text-dark focus-bg-warning <%= 'active' if current_page?(pricing_path) %>" href="/pricing">Pricing</a>
</li>
</ul>
<form class="d-flex mb-4 mb-lg-0 w-50 px-2 py-2 fw-bold text-center mx-auto mx-lg-4" role="search">
<input class="form-control me-2 text-center fs-3" type="search" placeholder="Search" aria-label="Search">
<input class="form-control me-2 text-center fs-4" type="search" placeholder="Search" aria-label="Search">
</form>
<ul class="navbar-nav mb-4 mb-lg-0 w-25 text-center mx-auto mx-lg-4">
<li class="nav-item dropdown rounded-4 px-2 py-2 fw-bold">
Expand All @@ -82,7 +82,7 @@
</ul>
<% else %>
<div data-controller="dropdown">
<a class="nav-link dropdown-toggle rounded-4 -px-5 py-2 fw-bold fs-3 border border-dark-subtle border-3" href="#" role="button" style="background-color: var(--bs-success);"
<a class="nav-link dropdown-toggle rounded-4 -px-5 py-2 fw-bold fs-4 border border-dark-subtle border-3 " href="#" role="button" style="background-color: var(--bs-success);"
data-action="mouseenter->dropdown#showMenu mouseleave->dropdown#hideMenu"
data-bs-toggle="dropdown" aria-expanded="false"
data-dropdown-target="toggle">
Expand Down
2 changes: 1 addition & 1 deletion app/views/txt2_imgs/_gallery.html.erb
Original file line number Diff line number Diff line change
Expand Up @@ -10,4 +10,4 @@
class: 'position-absolute bottom-0 end-0 m-0 btn-transparent', style: 'padding: 10px' do %>
<i class="fa-solid fa-trash-can"></i>
<% end %>
</div>
</div>
2 changes: 1 addition & 1 deletion app/views/txt2_imgs/_process_starting.html.erb
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
<turbo-frame class="image-maker" action="update">
<turbo-frame class="image_maker" action="update">
We will make your image in a moment. Please wait...
</turbo-frame>
92 changes: 37 additions & 55 deletions app/views/txt2_imgs/_settings.html.erb
Original file line number Diff line number Diff line change
@@ -1,103 +1,85 @@
<%= form_with(model: ImageMaker.new, url: txt2_imgs_path, method: :post) do |form|%>
<%= form_with model: ImageMaker.new, url: txt2_imgs_path, method: :post do |form| %>
<div class='row mb-2'>
<div class='col-2'>
<strong>
<%= form.label :style_template, "Style", class: "form-label" %>
</strong>
</div>
<div class='col'>
<%= form.select :style_template, @styles.map { |s| [s[:name].titleize, s[:name]] }.sort, { include_blank: true }, {class: "form-select w-100"} %>
<%= form.select :style_template, @styles.map { |s| [s[:name].titleize, s[:name]] }.sort, { include_blank: true}, class: "form-select" %>
</div>
</div>

<div class='row mb-2'>
<div class='col-2'>
<strong>
<%= form.label :sd_model, "Model", class: "form-label" %>
</strong>
</div>
<div class='col'>
<%= form.select :sd_model, @models.sort, {}, {class: "form-select w-100"} %>
<%= form.select :sd_model, @models.sort, {}, { class: "form-select" } %>
</div>
</div>

<div class="mb-2">
<%= form.text_area :prompt, placeholder: "Prompt", size: "70x5", class: "form-control" %>
</div>

<div class="mb-2">
<%= form.text_area :negative_prompt, placeholder: "Negative Prompt (optional)", size: "70x5", class: "form-control" %>
</div>

<div class='row mb-2'>
<div class='col'>
<div class="btn-group w-100 d-flex" role="group" aria-label="Choose aspect ratio">
<%= form.radio_button :aspect_ratio, "3:2", class: 'btn-check' %>
<%= form.label :aspect_ratio_32, class: "btn btn-outline-default" do %>
<i class='fas fa-regular fa-rectangle-wide'></i> 3:2
<% end %>
<%= form.radio_button :aspect_ratio, "1:1", class: 'btn-check', checked: true %>
<%= form.label :aspect_ratio_11, class: "btn btn-outline-default" do %>
<i class='fas fa-regular fa-square'></i> 1:1
<% end %>
<%= form.radio_button :aspect_ratio, "2:3", class: 'btn-check' %>
<%= form.label :aspect_ratio_23, class: "btn btn-outline-default" do %>
<i class='fas fa-regular fa-rectangle-vertical'></i> 2:3
<% end %>
</div>
<div class="mb-2">
<div class="btn-group w-100 d-flex" role="group" aria-label="choose the aspect ratio">
<%= form.radio_button :aspect_ratio, "3:2", class: "btn-check" %>
<%= form.label :aspect_ratio_32, class: "btn btn-outline-default" do %>
<i class="fa-thin fa-rectangle-wide"></i> 3:2
<% end %>
<%= form.radio_button :aspect_ratio, "1:1", class: "btn-check" %>
<%= form.label :aspect_ratio_11, class: "btn btn-outline-default" do %>
<i class="fa-thin fa-square"></i> 1:1
<% end %>
<%= form.radio_button :aspect_ratio, "2:3", class: "btn-check" %>
<%= form.label :aspect_ratio_23, class: "btn btn-outline-default" do %>
<i class="fa-thin fa-rectangle-vertical"></i> 2:3
<% end %>
</div>
</div>

<div class="mb-2 text-center">
<%= form.submit "Generate", class: "btn btn-primary" %>
<%= form.submit "Generate", class: "btn btn-primary"%>
</div>

<div class="container" data-controller="random-seed toggle">
<div class="row mb-2">
<div class="col-3 pt-1">
<strong>
<%= form.label :seed, "Seed", class: "form-label" %>
</strong>
</div>
<div class="col-9">
<%= form.number_field :seed, in: -1..9999999999, class: "form-control", data: { random_seed_target: "inputField", toggle_target: "inputField" } %>
</div>
<div class="row mb-2" data-controller="random-seed toggle">
<div class="col-2 pt-1">
<strong><%= form.label :seed, "Seed", class: "form-label" %></strong>
</div>
<div class="row mb-2">
<div class="col-2">
<button type="button" class="btn btn-sm pt-2" data-action="click->random-seed#populate" data-random-seed-target="button">
<i class="fas fa-sync-alt"></i>
</button>
</div>
<div class="col-10 pt-2">
<%= form.check_box :random_seed, class: "form-check-input", data: { toggle_target: "toggle", action: "change->toggle#toggle" } %>
<%= form.label :random_seed, "Random Number", class: "form-check-label fs-6" %>
</div>
<div class="col-6">
<%= form.number_field :seed, in: -1..9999999999, class: "form-control", data: { random_seed_target: "inputField", toggle_target: "inputField" } %>
</div>
<div class="col-1">
<button type="button" class="btn btn-sm" data-action="click->random-seed#populate"><i class="fa-thin fa-rotate"></i></button>
</div>
<div class="col-3 pt-1">
<%= form.check_box :random_seed, class: "form-check-input", data: { toggle_target: "toggle", action: "change->toggle#toggle"} %>
<%= form.label :random_seed, class: "form-check-label" do %>
<small>Rnd</small>
<% end %>
</div>
</div>

<div class="mb-2 row">
<div class="col-1 pt-1">
<strong>
Q
</strong>
<strong>Q</strong>
</div>
<div class="col">
<div class="btn-group w-100 d-flex" role="group" aria-label="Set image quality">
<%= form.radio_button :steps, "14", class: 'btn-check' %>
<div class="btn-group w-100 d-flex" role="group" aria-label="set image quality">
<%= form.radio_button :steps, "14", class: "btn-check" %>
<%= form.label :steps_14, class: "btn btn-outline-default" do %>
Fast
<% end %>
<%= form.radio_button :steps, "32", class: 'btn-check', checked: true %>
<%= form.radio_button :steps, "32", class: "btn-check" %>
<%= form.label :steps_32, class: "btn btn-outline-default" do %>
Medium
<% end %>
<%= form.radio_button :steps, "50", class: 'btn-check' %>
<%= form.radio_button :steps, "50", class: "btn-check" %>
<%= form.label :steps_50, class: "btn btn-outline-default" do %>
High
<% end %>
</div>
</div>
</div>

<% end %>
12 changes: 6 additions & 6 deletions app/views/txt2_imgs/index.html.erb
Original file line number Diff line number Diff line change
@@ -1,12 +1,12 @@
<div class='container-fluid p-2 m-2 h-100'>
<div class='row'>
<div class='col-md-3'>
<div>
<%= render partial: 'settings'%>
</div>
<h5 class="border-bottom pb-2 mb-2"><i class="fas fa-duotone fa-gear me-1 fa-rotate-90" style="--fa-rotate-angle:90;"></i>Settings</h5>
<%= render partial: "settings" %>
</div>
<div class='col-md-7'>
<div id='image_holder' class='text-center card h-100 p-2'>
<h3 class="border-bottom pb-2 mb-2"><i class="fas fa-duotone fa-server me-2"></i>Working Area</h3>
<div id='image_holder' class="text-center h-100 p-2">
<%= turbo_stream_from "#{dom_id(current_user)}_main_image" %>
<turbo-frame id="full_image_area">
<turbo-frame id="image_maker">
Expand All @@ -16,10 +16,10 @@
</div>
</div>
<div class='col-md-2'>
<h5 class='border-bottom pb-2 mb-2'><i class="fas fa-duotone fa-images"></i> Gallery</h5>
<h5 class="border-bottom pb-2 mb-2"><i class="fas fa-duotone fa-images me-1"></i> Gallery</h5>
<%= turbo_stream_from "#{dom_id(current_user)}_gallery" %>
<div id="main_gallery" class="row">
<%= render partial: '/txt2_imgs/gallery', collection: @gallery %>
<%= render partial: "/txt2_imgs/gallery", collection: @gallery %>
</div>
</div>
</div>
Expand Down
2 changes: 1 addition & 1 deletion config/routes.rb
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@

post "stripe_webhook" => "stripe_webhooks#webhook"

get "pricing" => "subscriptions#index"
get "pricing" => "subscriptions#index", as: :pricing
post "create_checkout_session" => "subscriptions#create_checkout_session", as: :create_checkout_session
get "success" => "subscriptions#success"

Expand Down

0 comments on commit 766b0e6

Please sign in to comment.