text:
définition - GIO
locutions
11084 Giò • Can Gio Mangrove Forest • Cao gío • Chả giò • Cần Giờ • Cần Giờ district, Hồ Chí Minh City • GIO (GNOME) • Gio (singer) • Gio Batta Gori • Gio Gonzalez • Gio Linh District • Gio Paolo Bombarda • Gio Petré • Gio Ponti (horse) • Gio Rossi • Gio Tribe • Gio Wiederhold • Gio van Oli • Gio van bronckhurst • Gio-Goi • Gio-Key-Board • Giò Pomodoro • Giò Ponti • Giò lụa • Ibanez GIO • Norm and Gio Gaudet • Rocky Gio
This article is about the computer bus standard. For other uses, see Gio (disambiguation).
This article includes a list of references, related reading or external links, but its sources remain unclear because it lacks inline citations. Please improve this article by introducing more precise citations. (October 2009)
This article's images may require cleanup, such as adjustment of image placement, formatting, and size. Please see Wikipedia's picture tutorial and image placement policy for further information. Image help is available. (August 2009)
GIO is a computer bus standard developed by SGI and used in a variety of their products in the 1990s as their primary expansion system. GIO was similar in concept to competing standards such as NuBus or (later) PCI, but saw little use outside SGI and severely limited the devices available on their platform as a result. Most devices using GIO were SGI's own graphics cards, although a number of cards supporting high-speed data access such as Fibre Channel and FDDI were available from third parties. Later SGI machines use the XIO bus, which is laid out as a computer network as opposed to a bus.
2 GIO64
3 GIO32-bis
Like most busses of the era, GIO was a 32-bit address and data multiplexed bus that was normally clocked at 25 or 33 MHz. This meant that the bus uses the same path for addressing and data, thus normally requiring three cycles to transfer a single 32-bit value; one cycle to send the address, the next to send the data and then another to read or write it. This limited the bus to a maximum throughput of about 16 Mbyte/s at 33 MHz for these sorts of small transfers. However the system also included a long-burst read/write mode that allowed continual transfers of up to 4 kilobytes of data (the fundamental page size in R3000-based SGI machines); using this mode dramatically increased the throughput to 132 Mbyte/s (32 bits per cycle * 33 MHz). GIO also included a "real time" interrupt allowing devices to interrupt these long transfers if needed. Bus arbitration was controlled by the Processor Interface Controller (PIC) in the original R3000-based SGI Indigo systems.
Physically, GIO used a 96-pin connector and fairly small cards 6.44 inches (16.3576 cm) long by 3.375 inches (8.5725 cm) wide. In the Indigo series the cards were aligned vertically above each other within the case, as opposed to the more common arrangement where the cards lie at right angles to the motherboard. This led to a "tall and skinny" case design. Since the cards were "above" each other in-line, it was possible to build a card that connected to both connectors on the computer's motherboard, thereby offering more room.
EISA/GIO64 riser card from the SGI Indigo²
GIO was later expanded to a 64-bit form, GIO64, retroactively renaming the earlier version GIO32. Addressing remained 32-bit but now allowed for both big-endian and little-endian addressing as indicated by a new control pin, whereas GIO32 only supported the SGI-style big-endian addresses. Data could now be transferred 64-bits at a time thereby doubling speed. GIO64 could also be run faster than GIO32, up to 40 MHz, providing a maximum streaming throughput of 320 Mbyte/s. The page sizes were also adjusted to allow for the changing CPU's, starting at 4 kbyte for R3000 based machines, and up to 16 Mbyte for R4400 based ones.
Physically the GIO64 bus used much larger cards that were generally similar in size and layout to EISA cards, a deliberate choice that made development somewhat easier as well as allowing SGI to place EISA slots in the same machines. Specifically the external connector (the metal flange) was identical to EISA, but the shape of the board itself was slightly different.
Two versions of GIO64 were specified. The "non-pipelined" system worked in a fashion similar to that of GIO32, with transfers being set up directly on the bus. The newer "pipelined" system was what the actual boards used, and as the name implies the system set up transfers in a several-step operation that was decoded in the controller's internal pipeline. Internally the non-pipelined bus transferred data between the various parts of the computer, including GIO cards, EISA devices, SCSI and so forth. GIO cards used the pipelined controller to arbitrate and control timing, the data then being fed into main memory via the internal non-pipelined side.
GIO32-bis
A third standard, GIO32-bis, used the signals and timing of GIO64, but with the 32-bit connectors from GIO32. Properly designed GIO32-bis cards could be used in GIO64, GIO32 or GIO32-bis slots, differentiating the later two by looking at a pin tied to ground in the original GIO32, and tied "high" in GIO32-bis. For low-throughput cards, GIO32-bis allowed a single device to be used on any machine supporting GIO, no matter what generation.
Extended Industry Standard Architecture (EISA)
Micro Channel architecture (MCA)
VESA Local Bus (VESA)
Peripheral Component Interconnect (PCI)
NuBus
GIO BUS SPECIFICATION version 1.1 - prior to the final definition, physical details of the GIO64 were not yet set.
Indigo2 and POWER Indigo2 Technical Report - details the way GIO64 connects to external GIO boards, EISA, and other devices.
Retrieved from "http://en.wikipedia.org/w/index.php?title=GIO&oldid=495949871"
Computer buses
Toutes les traductions de GIO


Tim Damon is well known in the automotive photography industry for producing unique, promo books. This book was no exception. He wanted a promo piece using images created on a shoot for Toyota Trucks in shipyards and lumber mills of the Pacific Northwest. We created a notebook that had a work manual feel. The cover was repurposed from actual 1940's parts inventory ephemera. The "workbook" features a foiled logo on premium paper, and a custom rubber band holding the book together that read WORK HARD or HARD WORK depending on how you read it. Beautiful, work focused, images are laid out in the front of the book before you get to a usable notes section.


a few months ago, i stumbled across kelsey nixon's blog. i started watching her show on the cooking channel, and following along with her on instagram. she is so cute and down to earth (and she lives in brooklyn)!
last week, kelsey posted a few of her family's favorite go-to recipes on instagram. when i saw her recipe for simple lemon orzo i couldn't wait to try it.
this orzo was so easy to make, and it was so flavorful. the fresh lemon zest and lemon juice give it such a bright flavor, and the parmesan cheese and half-and-half make it decadently creamy. the peas give it a great pop of color too. i served this orzo along side these tuna cakes. it was a great combination!
heat the olive oil in a large pan and saute the onion until translucent. add the dry orzo and the wine. cook until the wine is absorbed. add the vegetable broth and bring the mixture to a simmer. reduce the heat and cover the pan. cook for 10-12 minutes, until almost all of the broth is absorbed and the orzo is tender. zest and juice the lemon. stir in the lemon zest, lemon juice, peas, parmesan, cream, basil, and pepper. serve warm.
That looks and sounds good. I love anything with lemon juice and zest. It takes pasta to another level. I still love how that plates shows so well in photos.
This sounds like it will be my new go-to side dish. Looks so good and not too complicated!
This sounds so delicious! I love orzo!


I did an internship in finance in Delphi Automotive in Epila, Spain, and became interested in all production operations.
Implementation of a hub and spoke parts warehousing in southern Europe, which significantly increased delivery performance to dealers and reduced overall costs.
During my time working in retail, I learned the hard way that when you project manage, you have to have full engagement with the operational team during all steps of the project to achieve successful implementation.
Achieving and maintaining a premium brand and efficient parts delivery performance, and finalizing the parts reintegration from a supplier.
The passion for the products that most of the people working in the industry have.
Be yourself at work and find a way to be able to make decisions based on value creation.
If you want to have a lifetime career in any area of business with constant challenges, it's a great place to be.
Make sure that our product and service offerings are in line with what our customers want, and offer them in an efficient and differentiated way.
One that would allow me to be involved in a wider scope of the business and get closer to customers.
A 1998 three-door Seat Ibiza during my student days. It fulfilled its purpose at the time.


text:
Review: Iron Man 3 in 4K – Best Marvel PTSD Before Fat Thor
Luke Y. ThompsonSunday, September 01, 2019
It seems weird to say this given the manner in which they both entered the Marvel Cinematic Universe: Robert Downey Jr. as an acclaimed acting genius, and Chris Hemsworth as accented beefcake. But having now re-watched both of them play PTSD very recently, in Iron Man 3 and Avengers: Endgame in full 4K, I think Hemsworth's metaphorical student may have become the master. Though it's certainly fair to note that Downey set the bar Hemsworth had to clear.
If Iron Man 2 was the most DC-like of the MCU movies, Iron Man 3 is the most like a more standard '80s action movie. That's to be expected, given its director/co-writer Shane Black is the master of that. At times this feels like the best possible MacGyver film ever. But Black also gave us Lethal Weapon, with full-on PTSD Mel Gibson, and here he he puts Tony Stark into that role. As he's the only core survivor of the first Avengers movie with neither super-powers nor formal military training, this feels logical. You'd think he'd have it worse from the first film's extended cave captivity than his much quicker triumph over aliens. Trauma, however, is seldom rational.
RELATED: 4K Review: Batman 1989, Dawn of the Superhero Movie
First things first: the 4K upgrade looks superb. Of Marvel Studios' August 2019 upgrades, it's the only one that looks absolutely better across the board. No accidental facelifts here: you can see every pore on the faces of even beauties like Rebecca Hall and Guy Pearce. The worst that can be said is that occasionally an Extremis CG effect stands out as CG around the edges, but even that's only for someone like me who is looking to nit-pick in a review.
Iron Man 3 is an anomaly in the MCU canon in that it's basically a standalone. None of its events affect the greater plot directly in any way. (Harley showing up in Endgame is an Easter egg, not a plot point.) I'd honestly forgotten it ends with Tony no longer needing the ARC reactor to live, since it sure seemed in the last couple movies like he did need it.
Now we know that Shang-Chi will reference the Mandarin, but I sincerely doubt Black intended that to be the case. The way he treats the character as a disposable, red-herring joke annoyed canon-stickler fans. In theory, that kind of bold creative call also paved the way for James Gunn to fundamentally transform Yondu, or Taika Waititi to make the legend of Ragnarok into a comedy. The MCU is better for those risks, while the sequels that follow more conventional templates (think Thor: the Dark World) are nobody's favorite. The fact that Ben Kingsley's American accent is so terrible — a rare flaw in a master thespian — makes the joke even better.
RELATED: 4K Review: Batman Returns
Funnily enough, the one thing about Iron Man 3 that affects the MCU's larger plot most is a Blu-ray extra. Yes, this disc (disc set, now) comes with the "Agent Carter" short which served as a backdoor pilot to that two-season show on ABC. It's exactly what you expect — Carter battles institutional sexism while saving the day, and gets promoted by Howard Stark. But it does the job. And Stark went on to become Preacher. There are no new extras on the disc.
Black creates and directs action sequences here the same way he would if they didn't involve superheroes at all. Set up geography and expectations, get us to expect one thing to save the day, have it fail, then swerve. So many Marvel action sequences are powers-specific that it's fascinating to see exactly how things can go differently here. Black establishes early on that Tony misdirects with unoccupied suits, then still fools us later in the movie after handing us every clue we need. Where many superhero spectacles shower the screen with money asking us to look at real magic, Black is still using old-fashioned sleight-of-hand conjuring tricks, and eliciting the same kinds of smiles. Iron Man 3, like the other Iron Man solo adventures, also resolutely takes place in the real world. Bill Maher and Joan Rivers comment on the action, while Downton Abbey plays on hospital TV.
4K Review: Batman Forever, The End Is the Beginning Is the End
But back to the Thor comparisons. At the time Iron Man 3 came out, dedicating a movie to a hero's PTSD was bold and novel. Downey taps into his experience with withdrawal and addiction to convey the anxiety and OCD response. But whether it's Tony or Downey, there's still a vanity to all of this; a refusal to look bad, even if the behavior makes a bad look. Hemsworth kicked it up a notch by being willing to not just depict anxiety weight gain, but also an ability to break down and look emotionally pathetic. Some audiences laugh at him as a distancing mechanism — we recognize that guy, and don't want to be him right now. Whereas with Downey/Tony, I think there's always part of us that would like to be him, any time.
A bald, scheming Vice President (the late Miguel Ferrer) feels so very 2013 now. The notion of both patsies (fake Mandarin) and heroes (War Machine/Iron Patriot) sold as personality cults by powerful interests looking to sell more weapons and haphazardly destroy lives remains topical. (When will Rhodey stop letting obviously bad arms dealers upgrade his suit?) While we could point to a particular president of the '80s who was an actor, nearly every world leader since has competed for their job like it's a celebrity contest. As the real heroes and villains behind the scenes deal with actual body counts.
It's all pretty dark for Disney when you think about it. So I'm glad this still exists.
Tags: 4K Ultra-HD Blu-Ray, Iron Man, Iron Man 3, robert downey jr., Shane Black

redpajama_set_name: RedPajamaCommonCrawl


ALAMEDA, Calif. (December 9, 2014) – Perforce Software today announced predictions for technology trends in 2015. The overarching forecast is that product development and design teams will adopt technologies and best practices from software development while embracing the cross-team collaboration needed to develop Internet of Things devices.
The Internet of Things (IoT) Redefines Collaboration: With hardware and software coming together in smart devices, teams working on those components will need to collaborate more closely. Software developers, for example, will need to keep APIs top of mind to ensure millions of devices can connect to each other and the internet seamlessly. The enterprise will adapt to the changing needs of cross-functional teams by implementing new practices and technologies.
DevOps and Continuous Delivery (CD) Go beyond Software: While both DevOps and CD have their roots in software development, the key principles of collaboration and automation respectively will evolve to teams across the enterprise. 2015 will see disciplines such as design engineering adopt software development practices such as version management, which will lead to more efficient and productive organizations across various industries.
Software Remains Vulnerable and the Internet of Things Doesn't Help: The frequency of security risks due to software vulnerabilities will continue to grow and bugs like Heartbleed will become commonplace. IoT will introduce new opportunities for vulnerabilities with the addition of APIs to previously unconnected devices. 2015 will see the first major IoT failure in the form of data collection and/or transmission errors or a privacy breach.
Self-driving Cars Get Closer to Becoming a Reality: While the technology behind self-driving cars is available and successful prototypes have been built, concerns around liability, insurance and legal implications will persist. The automotive industry will make significant headway in bringing these cars on the road in 2015, but they won't be commonplace until the end of the decade.


text:
Formula 1 legend Michael Schumacher turns 50
Michael 50 exhibit at the Ferrari museum
Today, we all tip our hats to you - happy birthday, Michael!
"Please understand if we are following Michael's wishes and keeping such a sensitive subject as health, as it has always been, in privacy".
Similarly, Ross Brawn - the current F1 motorsport chief who worked with Schumacher for all but three of his record 91 Grand Prix victories, and helped steer him to an wonderful seven world titles with Benetton and Ferrari - echoed Wolff's sentiment.
On Thursday, Schumacher's daughter Gina also published a short message to her Instagram page, writing: "Happy Birthday to the best Dad", accompanied with three pictures, including one of her father ahead of his first F1 race for Jordan in 1991.
The Ferrari F1 team, where Schumacher earned five titles in 10 seasons, tweeted: "Our champ turns 50 today".
On Wednesday, Schumacher's family announced the launching of a virtual museum for the German great as a 50th birthday gift.
Redmi is now officially a sub-brand of Xiaomi
With this strategy, the company will be able to focus more on the Redmi series to make better products in the upcoming days. Xiaomi is not the first company to make a separate venture for a brand which focuses on budget and affordable smartphone.
Lewis Hamilton previous year celebrated his fifth world championship, and his fourth racing for the Silver Arrows, and the team wrapped up their fifth consecutive drivers' and constructors' title double. You've always been a true inspiration to me and the entire world.
The progress of F1's most decorated driver has been kept largely secret, at the request of his wife Corinna, but on the eve of his 50th birthday his family said they would be celebrating his milestone.
His family also revealed plans to launch The Official Michael Schumacher App, which will allow fans to celebrate his success through a virtual museum.
"Michael 50" has been organised in partnership with the Keep Fighting Foundation and will run alongside "Driven by Enzo" and "Passion and Legend", which are already open at the Maranello Museum. We wish you a lot of fun with it. "That's why we remember his successes with the Michael Schumacher Private Collection exhibition in Cologne, by publishing memories in social media and by continuing his charitable work through the Keep Fighting Foundation. We're all with you Michael #KeepFighting", said Ferrari, celebrating a driver who won five titles in a row for the Italian team in a golden era between 2000 and 2004.
"Michael, you've always been a fighter and you always will be".
He said: "I sat in front of him, I touched him with both hands, and I looked at him". The exhibition will allow the public to discover the contribution that Schumacher - who won five of his seven drivers titles with Ferrari - made to the car's development as a driver and later as a consultant.
Rami Malek & 'Bohemian Rhapsody' Win Big at Golden Globes 2019!
Rami Malek , victor of Best Actor Motion Picture, Drama, accepts his award at the 76th Golden Globe Awards in Beverly Hills, California January 7, 2019.
Sir Billy Connolly says sorry for 'depressing' fans
I don't have the balance I used to have, I don't have the energy I used to have. "I can't work my left hand on the banjo". Sir Billy, now 76, was diagnosed with degenerative neurological condition Parkinson's in 2013.
Portion of Pacific Coast Highway remains closed after mudslide
While retweeting a photo of cars stuck in sludge, the musician added: "My auto got stuck too nearly went into the ocean". As of Sunday, the "Crank That" star noted his auto is still stuck in the water, but isn't as anxious about the vehicle.
USA asks Turkey to 'not slaughter' Kurds, following American troop
Trump's National Security Adviser John Bolton is due to visit Israel and Turkey in the coming days. Brett McGurk, the chief USA envoy for the coalition against Islamic State, also resigned.
Carlow man Amond responsible for Newport County giant-killing
This time a year ago Amond was performing similar heroics in the FA Cup , when his side knocked Leeds United out of the cup. The floodgates opened after the break with Gabriel Jesus, Riyad Mahrez, Nicolas Otamendi and Leroy Sane on target.
Daenerys meets Sansa in new footage from Game of Thrones!
Brienne of Tarth (Gwendoline Christie) is also seen behind Sansa as she hands over the Northern stronghold to Daenerys. The reunion special will bring back actors who played long-deceased characters on the show, such as Sean Bean.
PG&E Reportedly Eyeing Breakup, Bankruptcy In Wake Of Multiple Devastating Wildfires
The insurance companies that have each filed a Camp Fire lawsuit against PG&E include Allstate Insurance Co, State Farm, and USAA. Because of potential legislative aid, PG&E has not yet determined whether it will make a bankruptcy filing, Reuters reported .
Meghan Markle's father begs her to 'end his nightmare' and call him
Meghan Markle's salary is a bit of a gray area - especially since the royal family is so hush-hush about their finances. Meghan has also been accused of being a "diva" by detractors over the apparent fall-out with Prince William's wife.
Golden Globes 2019: The Fiji Water Girl Is Everyone's New Idol
While most of the opening jokes were benign, a dig at the whitewashing of Asian-American roles did not go unnoticed. Oh also thanked the "incredible" cast and crew of Killing Eve and her team.
Kevin Na withdraws from Tournament of Champions with broken finger
Leader Woodland was level par at the turn of his second round but carded a stunning six birdies on the back nine to lead by three going into the weekend.
You can watch a sing-along screening of 'Bohemian Rhapsody' in these cinemas
The " Bohemian Rhapsody " star took a moment to thank Lucy while accepting the award on Thursday, reported People . Vice President Dick Cheney, went into Sunday's ceremony with a leading six nominations.
3 thoughts from Boston Celtics big win over Minnesota Timberwolves
Big men Aron Baynes (left fourth metacarpal fracture) and Robert Williams (left groin strain) were also out for the Celtics. Coach Brad Stevens told reporters after Boston's 120-111 loss that Irving had "a scratched eye" and will take antibiotics.
California woman arrested after biting jogger who pepper-sprayed her dog
A jogger was attacked by a dog in a California park, but police say it was the dog's owner who left bite marks on her arm. Nineteen-year-old Alma Cadwalader of Oakland was arrested Friday by police with the East Bay Regional Park District .
Remember Samsung's Massive Wall TV? Now There's A Bigger One
The new iteration of The Wall comes in a 219-inch 4K version as well as a more consumer-friendly 75-inch 4K iteration. Samsung's Micro LED technology also optimises the content no matter the size and shape of the screen.
Tesla to break ground on Shanghai Gigafactory today - CEO Musk
Two versions of Tesla's electric vehicle , namely the Long Range Battery and Performance versions, will be available in Europe. The medium range Model 3 which is just rear-wheel drive and travels 260 miles on a charge is not listed on the design studio.
Tsurenko upsets second-seeded Osaka to reach Brisbane final:The Asahi Shimbun
Czech Republic's Karolina Pliskova celebrates with the trophy after winning the final against Ukraine's Lesia Tsurenko .
China to cut banks' reserve requirement ratios, taxes
Cutting benchmark interest rates may be a last resort as that could weigh on the yuan CNY=CFXS and fuel debt risks, analysts say. The government has also ramped up spending on infrastructure to rekindle sluggish demand and investment.
Camillo woman to face court over kid on auto roof
It's believed that the 36-year-old mother was unaware that the child was on top of the moving auto . A Perth woman is facing a charge of risky driving after a child was seen riding on a auto roof.
DoorDash, GM Cruise start autonomous auto tests in March
The test will involve Cruise self-driving cars, which it has been testing in San Francisco for the past three years. Cruise was founded in 2013 by Kyle Vogt and Dan Kan.
The next Super Smash Bros. Ultimate Spirit Board event kicks off tomorrow
It seems that an earlier rumor of the DLC characters coming from Square Enix Games has some truth to it after all. On top of all that, they've also got six DLC characters planned, making the massive roster even more diverse.
Actor-DJ Idris Elba Joins the Lineup for Coachella 2019
Ariana Grande says she is "humbled and excited" after being picked to headline the Coachella festival in April . TMZ reported that Kayne dropped from the line-up due to a disagreement on stage size and design.
Malaysia's King ABDICATES: King Muhammad V resigns after 'marrying Russian'
Reports then circulated online that he had married a former Miss Moscow in Russian Federation . Portraits of the king and queen adorn government buildings throughout the country.
Gabon military seize national radio station in apparent coup attempt
Armed soldiers shut down Daily Trust offices in Borno, Kaduna and Abuja
The Church of Satan celebrates Christian Bale's Golden Globes win
Rain prevents play in Australia-India Test
Can fresh US-China trade talks bring a breakthrough?
Kyle Lowry returns to lead Toronto Raptors to victory over Pacers
Lady Gaga Had the Best Time at the 2019 Golden Globes
Bird Box Director Says Sandra Bullock Did Hit the Camera During Filming
Egypt's Sisi opens mega-mosque and Mideast's largest cathedral in New Capital
Two British special forces soldiers are seriously injured after ISIS missile attack
Wayne Rooney's intoxication arrest 'due to sleeping tablet disorientation'
Pakistan, UAE finalize talks on building oil refinery: Fawad
Bears Lose To Eagles 16-15
Jason McAteer kicks former Liverpool team-mate Michael Owen
Nicolas OTAMENDI scores in Manchester City FA Cup win


And we love the people and businesses that make it, serve it and celebrate it. Our love for craft beer runs deep and one of the big reasons is passion. The passion from the breweries. The passion from the bars and restaurants. The passion from the festivals. The passion from the community. Here at Hops & Branding we want to help spread your passion. Your story needs to be told in a memorable way. In a way that stands out. Whether it's through logo design, packaging, brand strategy, web design, social media, advertising or photography, let us help. We'll craft your brand's story with the same passion.
Connect with us and let's spread the love!
Crafted Design and Branding for the Craft Beer Industry. Follow us for updates.


text:
Q: Cannot Convert from String to Datetime while reading JSON data in SQL Server DECLARE @JSON AS varchar(MAX)

SET @JSON = '[
 {
"UserId": "XYZ12345",
"LoginTime": "2021-12-25T07:48:59Z"
 },
 {
"UserId": "XYZ67890",
"LoginTime": "2021-12-24T07:48:59Z"
    }
  ]'

SELECT *
FROM OPENJSON(@json)
WITH (
         UserId nvarchar(MAX) '$.UserId',
         LoginTime datetime '$.LoginTime'
     )
ORDER BY UserId ASC

However, I get an error

Conversion failed when converting date and/or time from character string

A: Some of the logintime's in the JSON data probably have timezones.
This raises an error when converting it to DATETIME.
But it's fine when those are converted to DATETIME2 or DATETIMEOFFSET.
And DATETIMEOFFSET is then probably the better option, since it'll  contain the timezone.
Simplified tests:

SELECT *
FROM OPENJSON('[{"LoginTime": "2021-12-25T07:48:59+01:00"}]')
WITH ( LoginTime datetime '$.LoginTime' )
GO

Msg 241 Level 16 State 1 Line 1
Conversion failed when converting date and/or time from character string.

SELECT *
FROM OPENJSON('[{"LoginTime": "2021-12-25T07:48:59+01:00"}]')
WITH ( LoginTime datetime2 '$.LoginTime' )
GO

| LoginTime                   |
| :-------------------------- |
| 2021-12-25 07:48:59.0000000 |

SELECT *
, SWITCHOFFSET(LoginTime, '+00:00') AS LoginTimeZulu
FROM OPENJSON('[{"LoginTime": "2021-12-25T07:48:59+03:00"}]')
WITH ( LoginTime datetimeoffset '$.LoginTime' )
GO

LoginTime                          | LoginTimeZulu
:--------------------------------- | :---------------------------------
2021-12-25 07:48:59.0000000 +03:00 | 2021-12-25 04:48:59.0000000 +00:00

db<>fiddle here

redpajama_set_name: RedPajamaStackExchange


In Amherst, the Wisdom or the Swan Song of Solomon...?
UPDATED 5/1/18 2:12PM: To issue a correction and for accuracy. This article inaccurately stated non-Democrats could not join the House Dem caucus. It is, in fact, possible.
AMHERST—Two years ago, Ellen Story uncorked 25 years of pent-up Democratic ambition. Hampshire County's largest community and the home of UMass was ground zero for that battle to succeed her. The winner, though, was not a seasoned pols or business leader, but just-graduated Solomon Goldstein-Rose.
That context is key to understanding the challenge Goldstein-Rose put himself in this February when he left the Democratic party. Critics, including his Democratic opposition, say the move diminishes the region's clout in Boston. That may yet prove true, but Goldstein-Rose's more immediate obstacle is winning reelection as an independent.
"Part of it is on me to communicate about what I'm doing," he said in a recent interview.
The 3rd Hampshire House district includes Amherst, Pelham and a precinct in Granby.
Goldstein-Rose is the second legislator, after Susannah Whipps of the neighboring 2nd Franklin district, to unenroll from a major party. Whipps left the GOP amid disagreements with the party's ideology.
Since the announcement, Goldstein-Rose has attracted two Democratic challengers. Amherst School Committee member Eric Nakajima, who served in Deval Patrick's administration, and Mindy Domb, the Amherst survival Center director, will face off for the Democratic nomination in September 4.
Speaking to WMassP&I last month at a downtown Amherst coffee shop, Goldstein-Rose, 24, characterized his decision as one consistent with his political development and history.
"I've made a special effort to be nonpartisan, to reach out to people who do not identify with either political party," he said.
Throughout the interview Goldstein-Rose displayed a clear understanding of the pitfalls and gamesmanship of politics. However, he was most at ease discussing the technocratic detail and possibilities of policy.
For example, Goldstein-Rose talked at length about the potential of climate legislation, his pet issue, as an engine to transform the commonwealth's economy. Yet, that and other major environmental legislation have not moved, despite broad support, he said.
Goldstein-Rose told WMassP&I he always saw politics in his future. Working for and meeting political figures from the US Senate's top climate hawks, Sheldon Whitehouse, to Stav Shaffir, Israel's youngest legislator, pulled him in that direction.
The Amherst rep cited Aaron Regunberg, a Rhode Island state rep. Like Goldstein-Rose, Regunberg was a Brown recent alum when he first sought office. He became the lead sponsor of the carbon pricing bill Goldstein-Rose later advocated for in Providence.
While working on carbon pricing, Goldstein-Rose met former US Congressman Bob Inglis. Though ultimately ousted during the 2010 tea party wave, Inglis became the rare GOP climate evangelist. He even spoke at an event Brown's environmental and Republican groups organized.
Hurtling toward graduation, Goldstein-Rose had no Plan B other than seeking the office he knew Story would be vacating. He barnstormed the 3rd Hampshire, emphasizing climate and student issues, to win the Democratic primary. Given the district's blue hue, he had no general election opponent.
"I wanted to be bolder than most politicians I know," he added, explaining his decision to seek elected office.
Like Story, Goldstein-Rose would likely have his the seat for as long as he wanted it. That made his February announcement to unenroll from the Democracy party all the more shocking. Colleagues scratched their heads. Few were outright condemnatory, but neither were electeds eager to comment. In general, they questioned his effectiveness without a party or committee assignments.
Nakajima, in an interview last month, echoed feelings other Democrats have expressed.
According to Goldstein-Rose, the decision has not lost House Speaker Robert DeLeo's respect. DeLeo said as much when the Amherst rep told the speaker he was leaving the party. A DeLeo spokesperson did not deny this.
So far, Goldstein-Rose's move had had few tangibles. Whitney Ferguson, a DeLeo spokesperson, confirmed the Amherst rep still has his committee assignments.
Goldstein-Rose didn't rule out caucusing with Democrats, but doubted that could happen. Indeed, House Democratic rules forbid non-Democrats from joining the caucus without the support of five members. It's not clear if that mechanism would work if Goldstein-Rose is reelected without a party and remains such upon swearing in.
Goldstein-Rose contended that political parties are responsible for the slow grinding of American political system.
"The US system was written to not have parties," he said, comparing it to parliamentary democracies which function well enough with parties. In the US, they have cause incredible polarization and inertia at all levels of government, he argued.
That critique is not without merit. George Washington explicitly warned against parties. As a matter of practice, though, the country has always had them since Washington left office. Only during a brief period after the War of 1812, in part because Democratic-Republicans dominated, did party divides dissipate.
Goldstein-Rose's decision came after observing power in the House is not distributed the way it seems. Despite huge Democratic majorities, progressive critics have complained conservative Democrats and even Republicans have overwhelming control over what gets to the floor.
Usually, the House takes on an idea, not a bill, Goldstein-Rose said. House leaders then massaged the idea into a bill, sometimes merged with related members' bills. Goldstein-Rose pointed to the recently passed criminal justice reform bill, which he supported. Its movement, let alone passage, was tied to the issue's broad bipartisan support. Outside groups were also pushing on various power nodes within the legislature.
"We often don't do things unless there is near-universal consensus and no significant opposition," Goldstein-Rose said.
Given that dynamic, Goldstein-Rose reasons that relationships will matter more than committee assignments. Building those relationships, he argues, are easier when he can come at it without the burden of a party label and focus on the substance.
Whether voters will agree is another matter. Some here and throughout the district have recoiled at the notion parties are not relevant. Others, like Nakajima argue being a Democrat is more than a label.
Like Nakajima, Domb highlighted the impact on advocating for the district and having a voice in broader issues. "As I see it, the decision to unenroll undermines his capacity to participate in, and contribute to, making change," Domb wrote in an email.
Given current events, Domb added, "I also believe it's mistimed both for the region and in light of national politics." She accused Goldstein-Rose of equating Democrats and Republicans in terms of obstruction.
For his part, Goldstein-Rose insists he is not naïve about the challenge he faces. Over the course of the interview, he acknowledged the difficulty of running without a party, especially one so dominant in the 3rd Hampshire.
Though, he is not marching into reelection alone. Younger voters, he claims, remain excited about their generation being in office. He added that some older voters followed his lead after learning why he switched to unenrolled.
"I heard they went and changed their own registration to nonpartisan," Goldstein-Rose said.
On April 9, Goldstein-Rose formally kicked off his reelection bid. Sprinkled throughout the announcement were encouraging words from residents, climate activists and a few public officials.
Among those backing him were officials from Pelham including Select Board member Karen Ribeiro and Planning Board Chair Abbie Jenks. Ribeiro highlighted his responsiveness and Jenks pointed to his progressive outlook, including efforts to involve more young people and women into civic life.
If Goldstein-Rose is naïve about anything, it may be about the interest in his seat itself. Certainly, Domb and Nakajima believe they are better able to represent Amherst, Granby and Pelham. But that also reflects the political vigor and passion in the district, not unlike Hampshire County broadly. Republicans here may find it difficult to channel that, but Goldstein-Rose's Democrat opponents will not want for grassroots energy to fuel their campaigns.
Recent deaths and retirements among the region's delegation will only stoke that further. Fears about the region's fading clout are particularly pronounced. If Goldstein-Rose had a few terms under his belt, this context might matter less.
In short, that boldness and wonkiness Goldstein-Rose celebrates could be turned against him amidst the building blue wave. To survive, he must convince voters he is still with them on the issues.
"I think a lot of people realize I'm still the same person I was" before, he observed.
Whether enough do may ultimately decide his fate.


Another iconic rig, that of the J-Class yacht Rainbow, has been inspected by Marine Results. The team carried out a comprehensive five year service as part of the sale process when the yacht changed hands during the 2015 summer.
Marine Results were able to carry out the service on a very fast turnaround time that was requested by the new owner. The 170 ft (53m) rig had already been removed at Holland Jachtbouw, the yard which built the replica of the famous yacht first built for the America's Cup in 1934.
The team carried out the ultrasound of the mast and a dye pentrant inspection of the standing rigging components. The ECsix carbon rod rigging package was also serviced, after which the rig was reassembled. Once the rig was back in the boat Jon Morris accompanied the crew on sails, to check that everything was in order.


The hand hole liner grommet is a specially sized circular grooved rubber grommet. It is designed to fit into an industry-standard 5″ diameter hole, which has been cut into a steel reservoir roof to access/install a cathodic protection system. The hand hole liner grommet fits snuggly into the hand hole of the reservoir, sealing the opening and preventing corrosion. It is recommended that the contractor installing the grommet apply caulking to its groove to seal the exposed steel along the edge of the cut.
When a hand hole is cut into a steel tank, the resultant exposed steel edges are a repair issue. They must be sealed or else corrosion will ensue. Traditional hand hole covers alone do not accomplish this seal. The grommet does. It also can be used to fix existing hand hole steel edges in poor condition.
Presently, an attempt is made to seal newly cut steel edges by painting them. This strategy is problematic for several reasons. First, paint cannot be applied too close to the edge of the hole or it will fall into the tank. Second, the tank underside exposed edges cannot be properly painted. Third, waiting for the paint to dry before final placement of the hand hole cover is not cost effective, so it is typically installed while the paint is still tacky. Consequently, when the cover is removed for maintenance, it sticks to the roof coating and that coating is damaged.
Provides a superior hand hole seal, thereby, avoiding corrosion.
Eliminates the need to paint steel edges, thusly allowing immediate hand hole cover installation.
Avoids coating damage during hand hole cover removal for maintenance.
Saves labor time and materials.


Apart from a takeaway beetroot and falafel wrap eaten on the fly near the Coombe a few months ago, I had somehow missed out on trying the Fumbally café up till now, which is actually a little embarrassing. It's exactly the sort of place I knew I'd love – excellent (and really quite keenly priced) Mediterranean/Middle Eastern food; bright, vibrant interiors and good coffee.
Anyway, better late than never. I tried the garlicky eggs, the falafel salad plate and a hazelnut flapjack and I loved every mouthful. The falafel plate in particular stuck out as a great lunchtime option, as the salads – a sesame-seeded hummus, a carrot and labneh mix and a chickpea fennel slaw – were all delicious, filling and really carefully made. It's the kind of food which makes you feel good (fed; satisfied; nice in your bones) rather than merely virtuous (a hollow victory).
After a coffee, we headed out to Francis Street to check out the 'Antiques Quarter' for ourselves, and surprisingly it turned out to be just that: there must have been 20 shops selling oddities and rugs and china dogs. I found a nice retro restaurant tray in one of the shops for €2.50, which I decided to fill with some Middle Eastern salads of my own.
I made lentil and roasted garlic hummus with roasted sesame carrots and seeded pitta; beetroot, feta and fennel salad; a herby yoghurt and freekeh, a gorgeous, smoky-tasting, fibre-packed cereal made from roasted green wheat, which has been roasted and cracked after harvesting. The name comes from the Arabic word farīk, meaning 'rubbed' and its wholesome, nutty texture is very similar to bulghur. Since it's not a full grain it takes less time to cook than wheatberries do – about 20 minutes, after a ten-minute soak. I found it in the strange foods section in M&S Dundrum, but it's probably available in health food and Middle Eastern speciality stores too.
There's a lot of flexibility with this, so just use whatever you have in your fridge and cupboards. I think a nice ratio is something crunchy, something smooth, something creamy, something to dip with, and something else to dip into – so maybe a chopped salad; a hummus or baba ganoush; a tzatziki or other yoghurt dip; some crudités or toasted pitta and then maybe some olive oil or harissa – or a combination of both. All of these salads serve 4, but they could just as easily serve 6 or 8.
According to Niki Segnit, the secret of beetroot's success is its 'strange combination of sweetness and earthiness, which sets off ingredients that are predominantly sour, salty, or both, like goat's cheese'. I'm using feta rather than goat's cheese as I still haven't crossed that particular bridge into adulthood yet, but the effect is pretty much the same.
Chop the onion in half and soak in cold water for 15 minutes. Use a vegetable peeler to make long, thin strips of the fennel bulb and cucumber and to cut thin, flowery slices of beetroot. Slice the onion as thinly as you can and add to the mix. Tear the herbs up and add into the salad. Make the dressing by shaking all the ingredients in a lidded jam jar and pour over the salad. Crumble the feta over the salad, poking some in under the salad. (Feta looks better if you break it rather than cut it – more Ottolenghi, less chiller cabinet deli olives). Tear some more herbs over the top of it.
Mix the carrots with oil, salt and sesame seed and roast along with the garlic cloves until visibly cooked but still reasonably firm. Take the garlic cloves out when they're soft to the touch and peel. Mash with the side of a knife and add to the lentils, along with the oil, salt, tahini and lemon juice. Pulse it with a hand blender and serve with the leftover oily sesame seeds from the tin and a drizzle of olive oil.
Hate the name (there's too many jokes) but love the taste. Here's the basic ratio for cooking freekeh: increase as required.
Soak the freekeh in cold water for 15 minutes before cooking and pluck off the bits that float, or, to put it another way, literally sort the wheat from the chaff. Bring the water to a rolling boil and add the salt and freekeh. Boil over a medium heat for 15 – 20 minutes, then dress with a little oil and herbs and any other flavours you choose – some lemon juice and zest maybe, or a little harissa and oil.
I got the idea for this coriander and mint 'pesto' from Nigel Slater, as like Slater, I wanted to use up some of the coriander before it went completely to seed*. As for the basil, Slater notes that 'there are only so many times a tender plant can withstand the yo-yo existence of extreme pampering and utter neglect'. Herb pastes 'lift everything from a laksa to a stir fry, but are best added at the last moment to preserve their freshness'. It's a real winner.
Trim the herbs so that you're left with the leaves and maybe a few soft stems (the stems have lots of flavour). Blitz them with oil, lemon juice, the cashews and salt, using a hand blender. Add more oil and lemon juice till you reach the desired consistency: it should be a little runny so that it could drop off a spoon. Gently fold the diced garlic into the yoghurt and then stir the herb mix into it in a spiral.
*Keep the funny little insect-like seeds and freeze them. They are the best coriander hit you can get.
I have to try this!!!! Thanks for sharing.


text:
Rancho Cucamonga es una ciudad del condado de San Bernardino, California, Estados Unidos. En el censo de 2000, la ciudad tenía una población total de 127,743 personas. En el censo de 2010 la ciudad tiene una población de 165,269 personas. En 2017 se estima que esta cifra es de 176,534. En 2006, la revista Money posicionó a Rancho Cucamonga en la posición 42 de su lista de mejores lugares para vivir en los Estados Unidos. L. Dennis Michael es el alcalde la ciudad desde 2011.

La ciudad fue incorporada en 1977, como resultado de una fusión entre las comunidades no incorporadas de Loma Alta, Cucamonga, y Etiwanda.

Geografía
Rancho Cucamonga está localizada en las coordenadas  (34.123345, -117.579404), a  al este de Los Ángeles.

Según la Oficina del Censo de los Estados Unidos, la ciudad tenía un área total de 97.0 km² (37.5 mi²). 97.0 km² (37.5 mi²) es tierra y el 0.03% es agua.

Demografía
Conforme al censo de 2000, había 127,743 personas, 40,863 hogares, y 31,832 familias residiendo en la ciudad. La densidad poblacional era de 1,317.0/km² (3,411.4/mi²). Había 42,134 casas unifamiliares en una densidad de 434.4/km² (1,125.2/mi²). La demografía de la ciudad era del 63.13% caucásica, 27.78% hispana o latinos de cualquier raza, 13.25% de otras razas,8.48% afroamericanos, 6.39% asiáticos, 5.41% multiraciales, 0.72% amerindios, y el 0.27% isleños del pacífico.

Referencias

Enlaces externos
 History of Rancho Cucamonga on official city web site
 Rancho Cucamonga Library web site
 The History of Casa de Rancho Cucamonga
 Rancho Cucamonga Chamber of Commerce
 Cucamonga Valley Water District
 City of Rancho Cucamonga

Localidades del condado de San Bernardino
Ciudades de California

redpajama_set_name: RedPajamaWikipedia


text:
\section{Acknowledgements}
We thank H. Feng for preparing the training data, Y. Feng and S. Sanyal for support with the rendering and projection pipeline; and C. Köhler, A. Chandrasekaran, M. Keller, M. Landry, C. Huang, A. Osman and D. Tzionas for fruitful discussions, advice and proofreading the manuscript.
The work was partially supported by the International Max Planck Research School for Intelligent Systems (IMPRS-IS).

\section{Disclosure}
MJB has received research gift funds from Intel, Nvidia, Adobe, Facebook, and Amazon.
While MJB is a part-time employee of Amazon, his research was performed solely at, and funded solely by, MPI.
MJB has financial interests in Amazon and Meshcapade GmbH.
PG has received funding from Amazon for using AWS GPUs. AR's research was performed solely at, and funded solely by, MPI.
\section{Conclusion}

We present GIF, a high-quality generative 2D face model with explicit control from FLAME, a statistical 3D face model.
Given a data set of approximately 65,500 high-quality face images with associated FLAME model parameters for shape, global pose, jaw pose, expression, and appearance parameters, GIF learns to generate high-quality face images that associate with them.
Our key insight is that conditioning a generator network on explicit information rendered from a 3D face model allows us to decouple shape, pose, and expression variations within the trained model.
Given a set of FLAME parameters associated with an image, we render the corresponding FLAME mesh twice, once with color-coded normal details, once with an inferred texture, and insert these as condition to the generator.
We further add a loss that enforces consistency in texture for the reconstruction of different FLAME parameters for the same appearance embedding.
This encourages the network during training to disentangle appearance and FLAME parameters and provides us with better temporal consistency when generating frames of FLAME sequences.
\section{Discussion}

GIF is based on the architecture of StyleGAN2 and hence inherits some of its limitations, like the requirement of the images to be roughly eye-centered.
Although StyleGAN2 ~\cite{karras2019analyzing} has to some extent addressed this issue (among others) by removing the progressive training scheme, the data set of FFHQ images mostly has eyes in a specific image location.
Hence, rotations of the head look eye-centered rotation, which involves a combination of 3D rotation and translation as opposed to pure rotation (neck centered).
Adapting GIF for other than StyleGAN2 architecture or training it on a different data set to improve image quality is subject to future work.

As GIF uses the FLAME renderings for conditioning, these renderings must be similarly eye-centered as the FFHQ training data to be pixel-aligned with the generated image.
For this, we compute a suitable camera parameter from given FLAME parameters so that the eyes are located roughly at the centre of the image plane with a fixed distance between the eyes. However, for profile view poses, this can not be met without an extreme zoomed in view and this often causes severe artifacts.
Please refer to the supplementary material for some examples.

GIF requires a statistical 3D model (FLAME), and the possibility to associate the parametrization of this model to a large data set of high-quality images (FFHQ).
While other classes of objects like human bodies~\cite{pavlakos2019expressive} or animals~\cite{Zuffi2019} potentially also fulfill these requirements, it remains unclear how to apply GIF to general object categories.

GIF uses estimated model parameters from single images as supervision.
Faulty associations sourcing from this regression-based approach potentially degrade the quality of the generated images and the disentanglement of different factors.
One example is the ambiguity of lighting and appearance which causes most color variations in the training data to be described by lighting variation rather than by appearance variation.
GIF inherits these errors and hence models most skin color variations as part of the lighting rather than the appearance variation.

Finally, as GIF is solely trained from static images without multiple images per subject, generating images with varying FLAME parameters is not temporally consistent.
As several unconditioned parts are only loosely correlated or uncorrelated to the condition (e.g. hair, mouth cavity, background, etc.), resulting in jittery video sequences.
However, our main goal is to have a FLAME-like model which associates semantically meaningful control to photorealistic images.
Training or refining GIF on temporal data with additional temporal constraints during training is subject to future work.

\section{Experiments}
\label{sec:experiments}

\subsection{Qualitative evaluation}

\qheading{Condition influence:}
As described in Section~\ref{sec:method}, GIF is parametrized by FLAME parameters $\Theta = \{\boldsymbol{\beta}, \boldsymbol{\theta}, \boldsymbol{\psi}\}$, appearance parameters $\boldsymbol{\alpha}$, lighting parameters $\mathbf{l}$, camera parameters $\mathbf{c}$ and a style vector $\mathbf{s}$.
Figure~\ref{fig:cond_swap} shows the influence of each individual set of parameters by progressively exchanging one type of parameter in each row.
Top and the bottom rows show GIF generated images for two sets of parameters, randomly chosen from the training data.

Exchanging style (row 2) most noticeably changes hair style, clothing color, and the background.
Shape (row 3) is strongly associated to the person's identity among other factors.
The expression parameters (row 4) control the facial expression, best visible around the mouth and cheeks.
The change in pose parameters (row 5) affects the orientation of the head (i.e. head pose) and the extent of the mouth opening (jaw pose).
Finally, appearance (row 6) and lighting (row 7) change the skin color and the lighting specularity.

\begin{figure}
\begin{center}
	\begin{tabular}{c c c}

	        \begin{turn}{90}\thead{GIF($\boldsymbol{\beta}_1$,$\boldsymbol{\theta}_1$, \\ $\boldsymbol{\psi}_1$,$\boldsymbol{\alpha}_1$,$\mathbf{l}_1$,  \\ $\mathbf{c}_1$,$\mathbf{s}_1$)}\end{turn} &
            \includegraphics[height=0.065\textheight]{figures/condition_swap/gen_images50/0.png}
            \includegraphics[height=0.065\textheight]{figures/condition_swap/gen_images17/0.png}
            \includegraphics[height=0.065\textheight]{figures/condition_swap/gen_images1/0.png}
            \includegraphics[height=0.065\textheight]{figures/condition_swap/gen_images56/0.png}\\

	        \begin{turn}{90}\thead{GIF($\boldsymbol{\beta}_1$,$\boldsymbol{\theta}_1$, \\ $\boldsymbol{\psi}_1$,$\boldsymbol{\alpha}_1$,$\mathbf{l}_1$,  \\ $\mathbf{c}_1$, $\color{red}\mathbf{s}_2$)}\end{turn} &
            \includegraphics[height=0.065\textheight]{figures/condition_swap/gen_images50/1.png}
            \includegraphics[height=0.065\textheight]{figures/condition_swap/gen_images17/1.png}
            \includegraphics[height=0.065\textheight]{figures/condition_swap/gen_images1/1.png}
            \includegraphics[height=0.065\textheight]{figures/condition_swap/gen_images56/1.png}\\

	        \begin{turn}{90}\thead{$GIF$($\color{red}\boldsymbol{\beta}_2$,$\boldsymbol{\theta}_1$, \\ $\boldsymbol{\psi}_1,\boldsymbol{\alpha}_1,\mathbf{l}_1$,  \\ $\mathbf{c}_1$,$\color{red}\mathbf{s}_2$)}\end{turn} &
            \includegraphics[height=0.065\textheight]{figures/condition_swap/gen_images50/2.png}
            \includegraphics[height=0.065\textheight]{figures/condition_swap/gen_images17/2.png}
            \includegraphics[height=0.065\textheight]{figures/condition_swap/gen_images1/2.png}
            \includegraphics[height=0.065\textheight]{figures/condition_swap/gen_images56/2.png}\\

	        \begin{turn}{90}\thead{GIF($\color{red}\boldsymbol{\beta}_2$,$\boldsymbol{\theta}_1$, \\ $\color{red}\boldsymbol{\psi}_2$,$\boldsymbol{\alpha}_1,\mathbf{l}_1$,  \\ $\mathbf{c}_1$,$\color{red}\mathbf{s}_2$)}\end{turn} &
            \includegraphics[height=0.065\textheight]{figures/condition_swap/gen_images50/3.png}
            \includegraphics[height=0.065\textheight]{figures/condition_swap/gen_images17/3.png}
            \includegraphics[height=0.065\textheight]{figures/condition_swap/gen_images1/3.png}
            \includegraphics[height=0.065\textheight]{figures/condition_swap/gen_images56/3.png}\\

	        \begin{turn}{90}\thead{GIF($\color{red}\boldsymbol{\beta}_2,\boldsymbol{\theta}_2$, \\ $\color{red}\boldsymbol{\psi}_2$,$\boldsymbol{\alpha}_1,\mathbf{l}_1$,  \\ $\color{red}\mathbf{c}_2,\mathbf{s}_2$)}\end{turn} &
            \includegraphics[height=0.065\textheight]{figures/condition_swap/gen_images50/4.png}
            \includegraphics[height=0.065\textheight]{figures/condition_swap/gen_images17/4.png}
            \includegraphics[height=0.065\textheight]{figures/condition_swap/gen_images1/4.png}
            \includegraphics[height=0.065\textheight]{figures/condition_swap/gen_images56/4.png}\\

	        \begin{turn}{90}\thead{GIF($\color{red}\boldsymbol{\beta}_2,\boldsymbol{\theta}_2$, \\ $\color{red}\boldsymbol{\psi}_2,\boldsymbol{\alpha}_2$,$\mathbf{l}_1$,  \\ $\color{red}\mathbf{c}_2,\mathbf{s}_2$)}\end{turn} &
            \includegraphics[height=0.065\textheight]{figures/condition_swap/gen_images50/5.png}
            \includegraphics[height=0.065\textheight]{figures/condition_swap/gen_images17/5.png}
            \includegraphics[height=0.065\textheight]{figures/condition_swap/gen_images1/5.png}
            \includegraphics[height=0.065\textheight]{figures/condition_swap/gen_images56/5.png}\\

	        \begin{turn}{90}\thead{GIF($\color{red}\boldsymbol{\beta}_2,\boldsymbol{\theta}_2$, \\ $\color{red}\boldsymbol{\psi}_2,\boldsymbol{\alpha}_2,\mathbf{l}_2$,  \\ $\color{red}\mathbf{c}_2,\mathbf{s}_2$)}\end{turn} &
            \includegraphics[height=0.065\textheight]{figures/condition_swap/gen_images50/6.png}
            \includegraphics[height=0.065\textheight]{figures/condition_swap/gen_images17/6.png}
            \includegraphics[height=0.065\textheight]{figures/condition_swap/gen_images1/6.png}
            \includegraphics[height=0.065\textheight]{figures/condition_swap/gen_images56/6.png}\\
    \end{tabular}
    \caption{Impact of the individual parameters, when they are exchanged between two different generated images one at a time. From top to bottom we progressively exchange style, shape, expression, head and jaw pose, appearance, and lighting of the two parameter sets. We progressively change color of the parameter symbol that is effected in every row to red.}
    \label{fig:cond_swap}
\end{center}
\vspace{-3mm}
\end{figure}

\qheading{Random sampling:}
To further evaluate GIF qualitatively, we sample FLAME parameters, appearance parameters, lighting parameters, and style embeddings and generate random images, shown in Figure~\ref{fig:random_samples}.
For shape, expression, and appearance parameters, we sample parameters of the first three principal components from a standard normal distribution and keep all other parameters at zero.
For pose, we sample from a uniform distribution in $[-\pi/8,+\pi/8]$ (head pose) for rotation around the y-axis, and $[0,+\pi/12]$ (jaw pose) around the x-axis.
For lighting parameters and style embeddings, we choose random samples from the set of training parameters.
Figure~\ref{fig:random_samples} shows that GIF produces photo-realistic images of different identities with a large variation in shape, pose, expression, skin color, and age.
Figure~\ref{fig:teaser_with_lighting} further shows rendered FLAME meshes for generated images, demonstrating that GIF generated images are well associated with the FLAME parameters.

\begin{figure*}
    \centerline{
       \includegraphics[height=0.122\textheight]{figures/random_samples/1.png}
       \includegraphics[height=0.122\textheight]{figures/random_samples/459.png}
       \includegraphics[height=0.122\textheight]{figures/random_samples/14.png}

       \includegraphics[height=0.122\textheight]{figures/random_samples/56.png}
       \includegraphics[height=0.122\textheight]{figures/random_samples/46.png}

       \includegraphics[height=0.122\textheight]{figures/random_samples/44.png}

    }
    \centerline{

      \includegraphics[height=0.122\textheight]{figures/random_samples/129.png}
      \includegraphics[height=0.122\textheight]{figures/random_samples/89.png}
      \includegraphics[height=0.122\textheight]{figures/random_samples/52.png}
      \includegraphics[height=0.122\textheight]{figures/random_samples/102.png}
      \includegraphics[height=0.122\textheight]{figures/random_samples/159.png}
      \includegraphics[height=0.122\textheight]{figures/random_samples/94.png}
    }
    \caption{Images obtained by randomly sampling FLAME, appearance parameters, style parameters, and lighting parameters. Specifically, for shape, expression, and appearance parameters, we sample parameters of the first three principal components from a standard normal distribution and keep all other parameters at zero.
    We sample pose from a uniform distribution in $[-\pi/8,+\pi/8]$ (head pose) for rotation around the y-axis, and $[0,+\pi/12]$ (jaw pose) around the x-axis}
    \label{fig:random_samples}
\end{figure*}

\qheading{Speech driven animation:}
As GIF uses FLAME's parametric control, it can directly be combined with existing FLAME-based application methods such as VOCA~\cite{VOCA2019}, which animates a face template in FLAME mesh topology from speech.
For this, we run VOCA for a speech sequence, fit FLAME to the resulting meshes, and use these parameters to drive GIF for different appearance embeddings (see Figure~\ref{fig:voca_seq}).
For more qualitative results and the full animation sequence, see the supplementary video.

\begin{figure}
    \centerline{
        \includegraphics[height=0.067\textheight]{figures/voca_seq/10/mesh_textured_0.png}

        \includegraphics[height=0.067\textheight]{figures/voca_seq/10/mesh_textured_4.png}

        \includegraphics[height=0.067\textheight]{figures/voca_seq/10/mesh_textured_7.png}

        \includegraphics[height=0.067\textheight]{figures/voca_seq/10/mesh_textured_12.png}

        \includegraphics[height=0.067\textheight]{figures/voca_seq/10/mesh_textured_16.png}

    }
    \centerline{
        \includegraphics[height=0.067\textheight]{figures/voca_seq/10/0.png}

        \includegraphics[height=0.067\textheight]{figures/voca_seq/10/4.png}

        \includegraphics[height=0.067\textheight]{figures/voca_seq/10/7.png}

        \includegraphics[height=0.067\textheight]{figures/voca_seq/10/12.png}

        \includegraphics[height=0.067\textheight]{figures/voca_seq/10/16.png}

    }
    \centerline{
        \includegraphics[height=0.067\textheight]{figures/voca_seq/16/0.png}

        \includegraphics[height=0.067\textheight]{figures/voca_seq/16/4.png}

        \includegraphics[height=0.067\textheight]{figures/voca_seq/16/7.png}

        \includegraphics[height=0.067\textheight]{figures/voca_seq/16/12.png}

        \includegraphics[height=0.067\textheight]{figures/voca_seq/16/16.png}

    }

    \caption{Combination of GIF with an existing speech-driven facial animation method by generating face images for FLAME parameters obtained from VOCA~\cite{VOCA2019}. Sample frames to highlight jaw pose variation. Please see the supplementary video for the full animation.}
    \vspace{-2mm}
    \label{fig:voca_seq}
\end{figure}

\subsection{Quantitative evaluation}
\label{sec:quantitative_eval}

We conduct two \ac{AMT} studies to quantitatively evaluate i) the effects of ablating individual model parts, and ii) the disentanglement of geometry and style.
See the video for examples for both studies.

\qheading{Ablation experiment:}
For the first experiment, participants see three images, a reference image in the center, which shows a rendered FLAME mesh, and two generated images to the left and right in random order.
Both images are generated from the same set of parameters,
one by using GIF, another by an ablated GIF model.
Participants then select the generated image that corresponds best with the reference image.
Table~\ref{table:modelA-vs_mdl_B-Ais_chosen_more_often} shows that with texture consistency loss, normal rendering, and texture rendering conditioning, GIF performs slightly better than without each of them.
Participants tend to select GIF generated results over a vanilla conditional StyleGAN2 (please refer to our supplementary for detail on architecture).
Furthermore, Figure~\ref{table:fid_over_varying_sigma} quantitatively evaluates the image quality with FID scores, indicating that all models produce similar high-quality results.

\begin{table}
    \centering
    \begin{tabular}{c c c c c}
        \toprule
         & \thead{Vector \\ cond.} & \thead{No Texture \\ interpolation} & \thead{Normal rend.\\conditioning} & \thead{Texture rend.\\ conditioning} \\
        \midrule
         GIF & 89.4\% & 51.1\% & 55.8\% & 51.7\% \\
         \bottomrule
    \end{tabular}
    \caption{AMT ablation experiment. Preference percentage of GIF generated images over ablated models and vector conditioning model. Participants were instructed to pay particular attention to shape, pose, and expression and ignore image quality.}
    \label{table:modelA-vs_mdl_B-Ais_chosen_more_often}
\end{table}

\begin{table}
    \centering
    \begin{tabular}{c c c c c c}
        \toprule
        GIF & \thead{Vector \\ cond.} & \thead{No Texture \\ interpolation} & \thead{Normal rend. \\conditioning} & \thead{Texture rend.\\ conditioning} \\
        \midrule
         \textbf{8.94}  & 10.34 & 11.71 & 9.89 & 11.28 \\
         \bottomrule
    \end{tabular}
    \caption{FID scores of images generated by GIF and ablated models (lower is better). Note that this score only evaluates image quality and does not judge how well the models obey the underlying FLAME conditions.}
    \label{table:fid_over_varying_sigma}
\end{table}
\qheading{Geometry-style disentanglement:}
In this experiment, we study the entanglement between the style vector and FLAME parameters.
We find qualitatively that the style vector mostly controls aspects of the image that are not influenced by FLAME parameters like background, hairstyle, etc. (see Figure~\ref{fig:cond_swap}).
To evaluate this quantitatively, we randomly pair style vectors and FLAME parameters and conduct a perceptual study with AMT.
Participants see a rendered FLAME image and a GIF generated images with the same FLAME parameters but with a variety of different style vectors.
Participants then rate the similarity of the generated image to shape, pose and expression of the FLAME rendering on a standard 5-Point Likert scale (i.e. 1: Strongly Disagree, 2. Disagree, 3. Neither agree nor disagree, 4. Agree, 5. Strongly Agree).
We use $10$ randomized styles $\mathbf{s}$ and $500$ random FLAME parameters totaling to $5000$ images.
We find that the majority of the participants agree that generated images and FLAME rendering are similar, irrespective of the style (see Figure~\ref{fig:flam_asso_likert}).

\begin{figure}[t]
    \includegraphics[width=\linewidth]{figures/mturk/hist_10_styles_style_flame_independence.pdf}
    \caption{Preference frequency of styles on a 5-Point Likert Scale.  Note that almost all style vectors, represented with different colors here get a similar distribution of likeness ratings indicating that they do not influence the perceived FLAME conditioning.}
    \label{fig:flam_asso_likert}
\end{figure}

\section{Introduction}

The ability to generate a person's face has several uses in computer graphics and computer vision that include constructing a personalized avatar for multimedia applications, face recognition and face analysis. To be widely useful, a generative model must offer control over the generative factors such as expression, pose, shape, lighting, skin tone, etc.
Early work focuses on learning a low dimensional representation of human faces using \ac{PCA} spaces~\cite{Craw:BMVC:1991:Parameterising,Cootes:CVIU:1995:ActiveShape,Cootes:ECCV:1998:Activeapp,Cootes:PAMI:2001:ActiveApp,Turk:JCN:1991:Eigenfaces} or higher-order tensor generalizations~\cite{Vasilescu:ECCV:2002:Multilinear}.
Although they provide some semantic control, these methods use linear transformations in pixel-domain to model facial variation resulting in blurry images.
Further, effects of rotations, are not well parameterized by linear transformations in 2D resulting in poor image quality.

To overcome this, Blanz and Vetter~\cite{Blanz:CGIT:1999:Morphable} introduced a statistical 3D morphable model, of facial shape and appearance.
Such, a statistical face model (e.g.~\cite{Cao:TVCG:2013:Facewarehouse,Paysan2009_BFM,FLAME:SiggraphAsia2017}) is used to manipulate shape, expression, or pose of the facial 3D geometry. This is then combined with a texture map (e.g.~\cite{Saito2017}) and rendered to an image.
Rendering of a 3D face model lacks photo-realism due to the difficulty in modeling hair, eyes, and the mouth cavity (i.e., teeth or tongue), along with the absence of facial details like wrinkles in the geometry of the facial model.
Further difficulties arise from subsurface scattering of facial material. These factors affect the photo-realism of the final rendering.

On the other hand, generative adversarial networks (GANs) have recently shown great success in generating photo-realistic face images at high resolution~\cite{Karras2018progressive}.
Methods like StyleGAN~\cite{karras2019style} or StyleGAN2~\cite{karras2019analyzing} even provide high-level control over factors like pose or identity when trained on face images.
However, these controlling factors are often entangled, and they are unknown prior to training.
The control provided by these models does not allow to independently change attributes like facial appearance, shape (e.g. length, width, roundness, etc.) or facial expression (e.g. raise eyebrows, open mouth, etc.) without changing other factors too.
Although these methods have made significant progress in image quality, the provided control is not sufficient for graphics applications.

In short, the discipline of generating face images reveals a gap between low quality face images with explicit control from a 3D face model on one side of the spectrum, and high-quality images from 2D generative models without explicit control on the other side.
We close this gap by incorporating 3D geometry from FLAME~\cite{FLAME:SiggraphAsia2017} (a publicly available statistical 3D face model) as a supervised condition to a high quality generative 2D model StyleGAN2 \cite{Karras2019stylegan2} . However, we found out that a naive conditional version of StyleGAN2 yields rather unsatisfactory results. We overcome this problem by rendering out geometric and photo-metric details of the FLAME mesh and by using them as conditions instead. This design combination results in a generative 2D face model called GIF (Generative Interpretable Faces) that produces photo-realistic images with explicit control over face shape, head and jaw pose, expression, appearance, and illumination (Figure~\ref{fig:teaser_with_lighting}).

In summary, our main contributions are
1) a generative 2D face model with FLAME~\cite{FLAME:SiggraphAsia2017} control,
2) use of FLAME renderings as conditioning for better association,
3) use of texture consistency constraint to improve disentanglement.

\section{Method}
\label{sec:method}
\begin{figure*}
    \centering

    \includegraphics[width=.9\linewidth]{figures/model/gif10.png}

    \caption{Our generator architecture is based  on StyleGAN2~\cite{Karras2019stylegan2}, $A$ is a learned affine transform, and $B$ stands for per-channel scaling. We make several key changes, such as introducing 3D model generated condition through the noise injection channels and introduce texture consistency loss. We refer to the process of projecting the generated image onto the FLAME mesh to obtain an incomplete texture map as \textit{texture stealing}.}
    \label{figure:gif_model}
\end{figure*}

\qheading{Goal:}
Our goal is to learn a generative 2D face model controlled by a parametric 3D face model.
Specifically, we seek a mapping GIF$(\Theta,\boldsymbol{\alpha},\mathbf{l},\mathbf{c},\mathbf{s}): {\mathbb{R}}^{156+50+27+3+512} \rightarrow {\mathbb{R}}^{P \times P \times 3}$, that given FLAME parameters $\Theta = \{\boldsymbol{\beta},\boldsymbol{\theta},\boldsymbol{\psi}\} \in {\mathbb{R}}^{156}$, parameters for appearance $\boldsymbol{\alpha} \in {\mathbb{R}}^{50}$, spherical harmonics lighting $\mathbf{l} \in {\mathbb{R}}^{27}$, camera $\mathbf{c} \in {\mathbb{R}}^{3}$ (2D translation and isotropic scale of a weak-perspective camera), and style $\mathbf{s} \in {\mathbb{R}}^{512}$, generates an image of resolution $P\timesP$.
Here, the FLAME parameters control all aspects related to the geometry of the face (i.e. width, height, expression, orientation, etc.), appearance and lighting parameters control the face color (i.e. skin tone, lighting, etc.), while the style vector $\mathbf{s}$ controls all factors that are not described by the FLAME geometry and appearance parameters, but are required to generate photo-realistic face images (e.g. hairstyle, background, etc.).

\subsection{Training data}
\label{sub_sec:dat_pre_process}

Our data set consists of the Flickr images (FFHQ) introduced in StyleGAN~\cite{karras2019style} and their corresponding FLAME parameters, appearance parameters, lighting parameters, and camera parameters.
We obtain these parameters with a regression-based method derived from RingNet~\cite{Sanyal:CVPR:2019:RingNet}, trained with an additional photometric loss using a differentiable renderer~\cite{Ravi2020pytorch3d}.
In total, we use about 65,500 FFHQ images, paired with the corresponding parameters.

\subsection{Condition representation}
\label{sec:cond_representation}

\qheading{Condition cross-talk:}
The vanilla conditional GAN formulation as described in Section~\ref{prilims} does not encode any semantic factorization of the conditional probability distributions that might exist in the nature of the problem.
Consider a situation where the true data depends upon two independent generating factors $c_1$ and $c_2$, i.e. true generation process of our data is  $x \sim P(x | c_1, c_2)$ where $P(x, c_1, c_2) = P(x | c_1, c_2) \cdot P(c_1) \cdot P(c_2)$.
Ideally, given complete data (often infinite) and a perfect modeling paradigm, this factorization should emerge automatically. However, in practice, neither of these can be assumed.
Hence, the representation of the condition highly influences the way it gets associated with the output.
We refer to this phenomenon of independent conditions influencing each other as -- \emph{condition cross-talk}.
Inductive bias introduced by condition representation in the context of conditional cross-talk is empirically evaluated in Section~\ref{sec:experiments}.
This prompts us to find a `better' representation of the conditioning variables.

\qheading{Pixel-aligned conditioning:}
Learning the rules of graphical projection (orthographic or perspective) and the notion of occlusion as part of the generator is wasteful if explicit 3D geometry information is present, as it uses parts of the representation power of the generator to approximate classical rendering operations, which can be done learning-free and which are already part of several software packages (e.g.~\cite{Loper:ECCV:2014,Ravi2020pytorch3d}).
The generator further needs to learn that rendering 3D models into images has few redundancies in its representation; namely, under a perspective projection, combinations of different geometries, distances between camera and object, and focal lengths result in the same 2D image~\cite{BasSmith2019}, and combinations of colors and lighting can also produce the same image~\cite{Egger17}.
Hence instead of learning these parts, we provide the generator explicit knowledge of the 3D geometry by conditioning the generator on renderings out of a classical renderer, rather than on abstract 3D-model parameters.
This makes pixel localized association between an abstract representation of the conditioning vector (i.e. the model parameters) and generated image explicit.
GIF, therefore, learns to generate better images that obey the given condition than a vanilla conditional GAN.
We find that although a vanilla conditional GAN achieves comparable image quality in terms of FID scores, it does not follow the controllable parameters in our setting.

We condition GIF on two renderings, one provides pixel-wise color information (referred to as texture rendering), and the other provides information about the mesh geometry (referred to as normal rendering).
We obtain a normal rendering by rendering the mesh with a color-coded map of the surface normals $\mathbf{n} = \mathbf{N}(M(\boldsymbol{\beta}, \boldsymbol{\theta}, \boldsymbol{\psi}))$.
Both renderings use a scale orthographic projection with the camera parameters provided with each training image.
For the color rendering, we use the provided inferred lighting parameter and appearance parameter.
The texture and the normal renderings are concatenated along the color channel and used to condition the generator as shown in Figure~\ref{figure:gif_model}.
As demonstrated in Section~\ref{sec:experiments}, this conditioning mechanism helps reduce condition cross-talk.

\subsection{GIF  architecture}
\label{sec:model_architecture}

The model architecture of GIF  is based on StyleGAN2 \cite{Karras2019stylegan2} , with several key modifications, discussed as follows. An overview is shown in Figure~\ref{figure:gif_model}.

\qheading{Style embedding:}
Rendering the textured FLAME mesh does not consider hair, mouth cavity (i.e., teeth or tongue), and fine-scale details like wrinkles and pores.
Generating a realistic face image, however, requires these factors to be considered. Hence we introduce a style vector $\mathbf{s} \in {\mathbb{R}}^{512}$ to model these factors.
Note that original StyleGAN2 \cite{Karras2019stylegan2}  has a similar vector ${\mathbf{z}}$ with the same dimensionality, however, instead of drawing random samples from a standard normal $\mathcal{N}(0, I)$ distribution (as common in GANs), we assign a random but unique vector for every image.
This is motivated by the key observation that in the FFHQ dataset~\cite{karras2019style}, each identity mostly occurs only once and mostly has a unique background.
Hence, if we use a dedicated vector for each image using, e.g., an embedding layer, we will encode a large inductive bias for this vector to capture background and appearance specific information, i.e. information that is not provided by our conditioning images.

\qheading{Noise channel conditioning:}
StyleGAN and StyleGAN2 insert random noise images at each resolution level into the generator, which mainly contributes to local texture changes.
We replace this random noise by the concatenated textured and normal renderings from the FLAME model, and insert scaled versions of these renderings at different resolutions into the generator.
This is motivated by the observation that varying FLAME parameters, and therefore varying FLAME renderings should have direct, pixel-aligned influence on the generated images.

\subsection{Texture consistency}
Using the parametrization of a 3D model has several benefits, one of which, as mentioned before, allows for direct pixel-aligned supervision by representing the condition as mesh renderings. Besides that, it also allows us to impose further constraints on the generator output as detailed here.

We encourage GIF to inherit FLAME's geometric disentanglement by introducing a texture consistency loss optimized during training.
We first generate a set of new FLAME parameters by randomly interpolating between the parameters within a mini batch. Next, we generate the corresponding images with the same style embedding $\mathbf{s}$, appearance $\boldsymbol{\alpha} $ and lighting parameters $\mathbf{l}$ by an additional forward pass through the model. Finally, the  corresponding FLAME meshes are projected onto the  generated images to get a partial texture map (also referred to as `texture stealing').
To enforce pixel-wise consistency, we apply an $L^2$ loss on the difference between pairs of texture maps, considering only pixels for which the corresponding 3D point on the mesh surface is visible in both the generated images.
We find that this texture consistency loss improves the parameter association and provides better disentanglement of the style vector from factors controlled by the FLAME parameters (see Section~\ref{sec:experiments}).
\section{Preliminaries}
\label{prilims}
\qheading{GANs and conditional GANs:}
Generative Adversarial Networks (GANs) are a class of neural networks where a generator ${G}$ and a discriminator ${D}$ have opposing objectives. Namely, the discriminator estimates the probability of its input to be a generated sample, as opposed to a natural random sample from the training set, while the generator tries to make this task as hard as possible.
This is extended in the case of conditional GANs~\cite{mirza2014conditional}. Here the discriminator estimates the probabilities of the above-mentioned quantities given the conditions.
The objective function in such a setting is given as
\begin{equation}
    \begin{split}
        \min_G\max_D V({D}, {G}) = \mathbb{E}_{x\sim p(x)}[\log{D}(x|c)] + \\ \mathbb{E}_{z\sim p(z)}[\log(1-{D}({G}(z|c))],
    \end{split}
    \label{eq:c_gan_obj}
\end{equation}
where $c$ is the conditioning variable.
Although sound in an ideal setting, this formulation, suffers a major drawback. Specifically under incomplete data regime, independent conditions tend to influence each other. In Section \ref{sec:cond_representation}, we discuss this phenomenon in detail.

\subsection{StyleGAN2}
\label{sec:stylegan}
StyleGAN2~\cite{Karras2019stylegan2}, a revised version of StyleGAN ~\cite{Karras2018progressive}, produces photo-realistic face images at $1024 \times 1024$ resolution.
Similar to StyleGAN, StyleGAN2, is controlled by a style vector ${\mathbf{z}}$.
This vector is first transformed by a mapping network of $8$ fully connected layers to ${\mathbf{w}}$, which then transforms the activations of the progressively growing resolution blocks using adaptive instance normalization (AdaIN) layers.
StyleGAN2 achieves significantly better visual image quality as compared to its predecessors.
Although StyleGAN2 provides some high-level control, it still lacks explicit and semantically meaningful control.
Our work addresses this shortcoming by distilling a conditional generative model out of StyleGAN2 and combining this with inputs from FLAME.
This not only helps to reduce the gap of photo-realism and controlled generation of face images but also sheds light on inductive bias of the condition-representation on the disentanglement of conditional GANs.

\subsection{FLAME}
FLAME is a publicly available 3D head model~\cite{FLAME:SiggraphAsia2017}, $M(\boldsymbol{\beta}, \boldsymbol{\theta}, \boldsymbol{\psi}): \mathbb{R}^{{\left| \shapecoeff \right|} \times {\left| \posecoeff \right|} \times {\left| \expcoeff \right|}}\rightarrow \mathbb{R}^{N \times 3}$, which given parameters for facial shape $\boldsymbol{\beta} \in \mathbb{R}^{300}$, pose $\boldsymbol{\theta} \in \mathbb{R}^{15}$ (i.e. axis-angle rotations for global rotation and rotations around joints for neck, jaw, and eyeballs), and facial expression $\boldsymbol{\psi} \in \mathbb{R}^{100}$ outputs a mesh with $N = 5023$ vertices.
We further transfer the appearance space of Basel Face Model~\cite{Paysan2009_BFM} parametrized by $\boldsymbol{\alpha} \in \mathbb{R}^{{\left| \albedocoeffs \right|}}$ into the FLAME's UV layout to augment it with a texture space.
We use the same subset of FLAME parameters as done by RingNet~\cite{Sanyal:CVPR:2019:RingNet}, namely $6$ pose coefficients for global rotation and jaw rotation, $100$ shape, and $50$ expression parameters, and we use $50$ parameters for appearance.
We use rendered FLAME meshes as the conditioning signal in GIF. This way we achieve both semantic control and photo-realism.

\section{Related Work}

\qheading{Generative 3D face models: }
Representing and manipulating human faces in 3D have a long standing history dating back almost five decades to the parametric 3D face model of Parke~\cite{Parke:1974:Parametric}.
Blanz and Vetter~\cite{Blanz:CGIT:1999:Morphable} propose a 3D morphable model (3DMM), the first generative 3D face model that uses linear subspaces to model shape and appearance variations.
This has given rise to a variety of 3D face models to model facial shape~\cite{Booth2018_LSFM,Paysan2009_BFM,Dai2017}, shape and expression~\cite{Amberg2008,BolkartWuhrer2015,Blanz2003,Cao:TVCG:2013:Facewarehouse,COMA:ECCV18,Vlasic2005}, shape, expression and head pose~\cite{FLAME:SiggraphAsia2017}, localized facial details~\cite{Brunton2014} and wrinkle details~\cite{Golovinskiy2006,Shin2014}.
However, renderings of these models do not reach photo-realism due to the lack of high-quality textures.

To overcome this, Saito et al.~\cite{Saito2017} introduce high-quality texture maps, and Slossberg et al.~\cite{Slossberg2018} and Gecer et al.~\cite{Gecer:CVPR:2019:Ganfit} train GANs to synthesize textures with high-frequency details.
While these works enhance the realism when being rendered by covering more texture details, they only model the face region (i.e. ignores hair, teeth, tongue, eyelids, eyes, etc.) required for photo-realistic rendering.
While separate part-based generative models of hair~\cite{Hu2017_hair,Saito2018_hair,Wei2018_hair}, eyes~\cite{Berard2014_eyes}, eyelids~\cite{Bermano2015_eyelids}, ears~\cite{Dai2018_ear}, teeth~\cite{Wu2016_teeth}, or tongue~\cite{Hewer2018} exist, combining these into a complete realistic 3D face model remains an open problem.

Instead of explicitly modeling all face parts, Gecer et al.~\cite{Gecer:ECCV:2018:Semi} use image-to-image translation to enhance the realism of images rendered from a 3D face mesh.
Nagano et al.~\cite{Nagano:ACM:2018:paGAN} generate dynamic textures that allow synthesizing expression dependent mouth interior and varying eye gaze.
Despite significant progress of generative 3D face models~\cite{Brunton:CVIU:2014:Review,Egger:arxiv:2019:3dMroph},
they still lack photo-realism.

Our approach, in contrast, combines the semantic control of generative 3D models with the image synthesis ability of generative 2D models.
This allows us to generate photo-realistic face images, including hair, eyes, teeth, etc. with explicit 3D face model controls.

\qheading{Generative 2D face models: }
Early parametric 2D face models like Eigenfaces~\cite{SirovichKirby1987,Turk:JCN:1991:Eigenfaces}, Fisherfaces~\cite{Belhumeur1997eigenfaces}, Active Shape Models~\cite{Cootes:CVIU:1995:ActiveShape}, or Active Appearance Models~\cite{Cootes:ECCV:1998:Activeapp} parametrize facial shape and appearance in images with linear spaces.
Tensor faces~\cite{Vasilescu:ECCV:2002:Multilinear} generalize these linear models to higher-order, generating face images with multiple independent factors like identity, pose, or expression.
Although these models provided some semantic control, they produced blurry and unrealistic images.

GANs~\cite{Goodfellow2014_GAN} and its variants, e.g. Progressive-GAN~\cite{Karras2018progressive} on the other side, generate photo-realistic face images but lack semantic control.
StyleGAN~\cite{karras2019style} extends Progressive-GAN~\cite{Karras2018progressive} by incorporating a style vector to recover control over the image generation.
As the semantics of the effects of the style vector are interpreted post-training, it is possible that desired controls might not be present at all. This drastically limits the potential for applications.
InterFaceGAN~\cite{Shen:arxiv:2019:Interpreting} and StyleRig~\cite{tewari2020stylerig} aim to gain control over a pre-trained StyleGAN~\cite{karras2019style}.
InterFaceGAN~\cite{Shen:arxiv:2019:Interpreting} identifies hyper-planes that separate positive and negative semantic attributes in the latent space of a GAN for semantic controls.
However, this requires categorical attributes for every kind of control.
These are not particularly suitable representation for many model factors e.g. facial shape.
Further, many attributes might not be linearly separable in the latent space without any supervision.
StyleRig~\cite{tewari2020stylerig} learns mappings between 3DMM parameters and the parameter vectors of each StyleGAN layer.
Given a set of StyleGAN parameter vectors and pose, expression, and lighting parameters, StyleRig outputs a set of parameters, which is fed to StyleGAN to generate a photo-realistic face image.
StyleRig learns to edit StyleGAN parameters, and hence a particular StyleGAN generated image, with 3DMM control, which is tailored to face editing or face reenactment tasks.
GIF in contrast provides full generative control over the image generation process (similar to regular GANs) but with semantic meaningful control over shape, pose, expression, appearance, lighting, and style.
Further, StyleRig inherits inductive biases of the underlying unconditional GAN, while GIF enforces disentanglement by conditioning on the pre-defined control parameters during GAN training. In summary wile StyleRig tries to gain control over StyleGan's generation process post hoc, GIF directly modifies the training process such that the controls emerge naturally.
CONFIG~\cite{kowalski2020config} combines synthetic images of faces along with unlabeled real ones to gain control over the image generation process.
During training, CONFIG tries to lower the representation gap in the shared factorized embedding space of real and synthetic encoders.
For inference, swapping sets of latent parameters then only influences desired aspects of the generated image.
However, supposedly due to the large domain gap between synthetic and real images, generated images lack photo-realism.
HoloGAN~\cite{nguyen2019hologan} randomly applies rigid transformations to learnt features during training, which provides explicit control over 3D rotations in the trained model.
While this is feasible for global transformations, it remains unclear how to extend this to transformations of local parts or parameters like facial shape or expression.
Similarly, IterGAN~\cite{Galama:CVIU:2019:Itergans} also only models rigid rotation of generated objects using a GAN, but these rotations are restricted to 2D transformations.
Further works use variational autoencoders~\cite{razavi2019generating,van2017neural} and flow-based methods~\cite{kingma2018glow} to generate images. These provides controllability, but does not reach the image quality of GANs.

\qheading{Facial animation: }
A large body of work focuses on face editing or facial animation, which can be grouped into 3D model-based approaches (e.g.~\cite{Geng2019,Kim:ACM:2018:Deep,Lombardi2018,Thies:ACM:2019:Deferred,Thies2016_Face2Face,Ververas2019}) or 3D model-free methods (e.g.~\cite{Bansal:ECCV:2018:Recycle,Pumarola:ECCV:2018:Ganimation,tripathy2020icface,Wu:ECCV:2018:Reenactgan,Zakharov:ICCV:2019:Few})

Thies et al.~\cite{Thies2016_Face2Face} build a subject, specific 3DMM from a video, reenact this model with expression parameters from another sequence, and blend the rendered mesh with the target video.
Follow-up work use similar 3DMM-based retargeting techniques but replace the traditional rendering pipeline or parts of it with learnable components~\cite{Kim:ACM:2018:Deep,Thies:ACM:2019:Deferred}.
Ververas and Zafeiriou~\cite{Ververas2019} (Slider-GAN) and Geng et al.~\cite{Geng2019} propose image-to-image translation models that, given an image of a particular subject, condition the face editing process on 3DMM parameters.
Lombardi et al.~\cite{Lombardi2018} learn a subject-specific autoencoder of facial shape and appearance from high-quality multi-view images that allows animation and photo-realistic rendering.
Like GIF, all these methods use explicit control of a pre-trained 3DMM or learn a 3D face model to manipulate or animate faces in images, but in contrast to GIF, they are unable to generate new identities.

Zakharov et al.~\cite{Zakharov:ICCV:2019:Few} use image-to-image translation to animate a face image from 2D landmarks, ReenactGAN~\cite{Wu:ECCV:2018:Reenactgan} and Recycle-GAN~\cite{Bansal:ECCV:2018:Recycle} transfer facial movement from a monocular video to a target person.
Pumarola et al. \cite{Pumarola:ECCV:2018:Ganimation} learn a GAN conditioned on facial action units for control over facial expressions.
None of these methods provide explicit control over a 3D face representation.

All methods discussed above are task specific, i.e., they are dedicated towards manipulating or animating faces, while GIF, in contrast, is a generative 2D model that is able to generate new identities, and it provides control of a 3D face model.
Further, most of the methods are trained on video data~\cite{Bansal:ECCV:2018:Recycle,Thies2016_Face2Face,Kim:ACM:2018:Deep,Thies:ACM:2019:Deferred,Lombardi2018,Zakharov:ICCV:2019:Few}, in contrast o GIF which is trained from static images only.
Regardless, GIF can be used to generate facial animations.

\section{Vector conditioning architecture}
Here we describe the model architecture of the vector condition model, used as one of the baseline models in Section 5.2 of the main paper.
For this model, we pass the vector values conditioning parameters FLAME ($\boldsymbol{\beta}, \boldsymbol{\theta}, \boldsymbol{\psi}, $), appearance ($\boldsymbol{\alpha}$) and lighting ($\mathbf{l}$) as a $236$ dimensional vector through the dimensions of style vector of the original StyleGAN2 architecture as shown in Figure~\ref{fig:vec_cond_architecture}.
We further input the same conditioning vector to the discriminator at the last fully connected layer of the discriminator by subtracting it from the last layer activation.

\begin{figure}[h]
    \centerline{
        \includegraphics[height=0.067\textheight]{figures/bad_random_smpls/mesh7.png}
        \includegraphics[height=0.067\textheight]{figures/bad_random_smpls/mesh10.png}
        \includegraphics[height=0.067\textheight]{figures/bad_random_smpls/mesh16.png}
        \includegraphics[height=0.067\textheight]{figures/bad_random_smpls/mesh80.png}
        \includegraphics[height=0.067\textheight]{figures/bad_random_smpls/mesh81.png}
    }
    \centerline{
        \includegraphics[height=0.067\textheight]{figures/bad_random_smpls/7.png}
        \includegraphics[height=0.067\textheight]{figures/bad_random_smpls/10.png}
        \includegraphics[height=0.067\textheight]{figures/bad_random_smpls/16.png}
        \includegraphics[height=0.067\textheight]{figures/bad_random_smpls/80.png}
        \includegraphics[height=0.067\textheight]{figures/bad_random_smpls/81.png}
    }
    \centerline{
        \includegraphics[height=0.067\textheight]{figures/bad_random_smpls/mesh160.png}
        \includegraphics[height=0.067\textheight]{figures/bad_random_smpls/mesh162.png}
        \includegraphics[height=0.067\textheight]{figures/bad_random_smpls/mesh164.png}
        \includegraphics[height=0.067\textheight]{figures/bad_random_smpls/mesh187.png}
        \includegraphics[height=0.067\textheight]{figures/bad_random_smpls/mesh192.png}
    }
    \centerline{
        \includegraphics[height=0.067\textheight]{figures/bad_random_smpls/160.png}
        \includegraphics[height=0.067\textheight]{figures/bad_random_smpls/162.png}
        \includegraphics[height=0.067\textheight]{figures/bad_random_smpls/164.png}
        \includegraphics[height=0.067\textheight]{figures/bad_random_smpls/187.png}
        \includegraphics[height=0.067\textheight]{figures/bad_random_smpls/192.png}
    }
    \captionof{figure}{In order for the eyes to be places at a given pixel location a profile view causes the face image to be highly zoomed in. This causes the generated images to become unrealistic.}
    \label{fig:too_zoomed_in_view}
\end{figure}

\section{Image centering for extreme rotations}

As discussed in Section 6 of the main paper, GIF produces artifacts for extreme head poses close to profile view.
This is due to the pixel alignment of the FLAME renderings and the generated images, which requires the images to be similarly eye-centered as the FFHQ training data.
For profile views however it is unclear how the centering within the training data was achieved.
The centering strategy used in GIF causes a zoom in for profile views, effectively cropping parts of the face, and hence the generator struggles to generate realistic images as shown in Figure~\ref{fig:too_zoomed_in_view}.

redpajama_set_name: RedPajamaArXiv